@@ -26,56 +26,99 @@ class LoadCampaignByCloseRevenueWidgetFixture extends AbstractFixture
26
26
27
27
private $ opportunityCount = 0 ;
28
28
29
- protected function createLead ()
30
- {
29
+ /**
30
+ * @param string $name
31
+ * @param Campaign $campaign
32
+ * @param string $referenceName
33
+ *
34
+ * @return Lead
35
+ */
36
+ protected function createLead (
37
+ $ name ,
38
+ Campaign $ campaign ,
39
+ $ referenceName = null
40
+ ) {
31
41
$ lead = new Lead ();
32
- $ lead ->setName (' Lead name' );
42
+ $ lead ->setName ($ name );
33
43
$ lead ->setOrganization ($ this ->organization );
34
- $ lead ->setCampaign ($ this -> getReference ( ' default_campaign ' ) );
44
+ $ lead ->setCampaign ($ campaign );
35
45
$ this ->em ->persist ($ lead );
36
46
$ this ->em ->flush ();
37
- $ this ->setReference ('default_lead ' , $ lead );
47
+
48
+ ($ referenceName === null ) ?: $ this ->setReference ($ referenceName , $ lead );
49
+
50
+ return $ lead ;
38
51
}
39
52
40
- protected function createOpportunity ($ createdAt , $ status )
41
- {
53
+ /**
54
+ * @param \DateTime $createdAt
55
+ * @param string $status
56
+ * @param Lead $lead
57
+ * @param int $closeRevenue
58
+ */
59
+ protected function createOpportunity (
60
+ $ createdAt ,
61
+ $ status ,
62
+ Lead $ lead ,
63
+ $ closeRevenue = null
64
+ ) {
42
65
$ className = ExtendHelper::buildEnumValueClassName (Opportunity::INTERNAL_STATUS_CODE );
43
66
$ opportunityStatus = $ this ->em ->getRepository ($ className )->find (ExtendHelper::buildEnumValueId ($ status ));
44
67
45
68
$ opportunity = new Opportunity ();
46
69
$ opportunity ->setName (sprintf ('Test Opportunity #%d ' , ++$ this ->opportunityCount ));
47
70
$ opportunity ->setStatus ($ opportunityStatus );
48
- $ opportunity ->setLead ($ this -> getReference ( ' default_lead ' ) );
49
- $ opportunity ->setCloseRevenue (100 );
71
+ $ opportunity ->setLead ($ lead );
72
+ ( $ closeRevenue === null ) ?: $ opportunity ->setCloseRevenue ($ closeRevenue );
50
73
$ opportunity ->setOrganization ($ this ->organization );
51
74
$ this ->em ->persist ($ opportunity );
52
75
53
76
$ opportunity ->setCreatedAt ($ createdAt );
54
77
$ this ->em ->flush ();
55
78
}
56
79
57
- protected function createCampaign ()
80
+ /**
81
+ * @param string $name
82
+ * @param string $code
83
+ * @param string $reference
84
+ *
85
+ * @return Campaign
86
+ */
87
+ protected function createCampaign ($ name , $ code , $ reference = null )
58
88
{
59
89
$ campaign = new Campaign ();
60
- $ campaign ->setName (' Campaign ' );
61
- $ campaign ->setCode (' cmp ' );
90
+ $ campaign ->setName ($ name );
91
+ $ campaign ->setCode ($ code );
62
92
$ campaign ->setOrganization ($ this ->organization );
63
93
$ campaign ->setReportPeriod (Campaign::PERIOD_MONTHLY );
64
94
$ this ->em ->persist ($ campaign );
65
95
$ this ->em ->flush ();
66
- $ this ->setReference ('default_campaign ' , $ campaign );
96
+
97
+ ($ reference === null ) ?: $ this ->setReference ($ reference , $ campaign );
98
+
99
+ return $ campaign ;
67
100
}
68
101
69
102
protected function createOpportunities ()
70
103
{
71
104
$ createdAt = new \DateTime ('2016-12-28 12:03:10 ' , new \DateTimeZone ('UTC ' ));
105
+
106
+ $ defaultCampaign = $ this ->createCampaign ('Default campaing ' , 'cmt ' );
107
+ $ anotherCampaign = $ this ->createCampaign ('Another campaing ' , 'test ' );
108
+
109
+ $ defaultLead = $ this ->createLead ('Default Lead ' , $ defaultCampaign );
110
+ $ anotherLead = $ this ->createLead ('Another Lead ' , $ anotherCampaign );
111
+
72
112
// Every opportunity has value of $100
73
- $ this ->createOpportunity ($ createdAt , 'won ' );
74
- $ this ->createOpportunity ($ createdAt , 'in_progress ' );
75
- $ this ->createOpportunity ($ createdAt , 'lost ' );
113
+ $ this ->createOpportunity ($ createdAt , 'won ' , $ defaultLead , 100 );
114
+ $ this ->createOpportunity ($ createdAt , 'in_progress ' , $ defaultLead , 100 );
115
+ $ this ->createOpportunity ($ createdAt , 'lost ' , $ defaultLead , 100 );
116
+
117
+ //This opportunity without close revenue
118
+ $ this ->createOpportunity ($ createdAt , 'won ' , $ anotherLead );
76
119
77
120
$ createdAt ->add (new \DateInterval ('P1D ' ));
78
- $ this ->createOpportunity ($ createdAt , 'won ' );
121
+ $ this ->createOpportunity ($ createdAt , 'won ' , $ defaultLead , 100 );
79
122
}
80
123
81
124
/**
@@ -85,8 +128,6 @@ public function load(ObjectManager $manager)
85
128
{
86
129
$ this ->organization = $ manager ->getRepository ('OroOrganizationBundle:Organization ' )->getFirst ();
87
130
$ this ->em = $ manager ;
88
- $ this ->createCampaign ();
89
- $ this ->createLead ();
90
131
$ this ->createOpportunities ();
91
132
$ dashboard = new Dashboard ();
92
133
$ dashboard ->setName ('dashboard ' );
0 commit comments