initial commit
[namibia] / module / Valuation / src / Valuation / Service / ValuationAppointments.php
1 <?php
2 namespace Valuation\Service;
3
4
5
6 /**
7  * Manage Valuation Appointments data.
8  * @author andre.fourie
9  */
10 class ValuationAppointments extends \Valuation\DataBin\ValuationAppointments
11 {
12
13     /**
14      * ExecuteAfter: Update.
15      * @param array                                 $meta
16      * @param object|null                           $jobRecord
17      * @param object|null                           $record
18      * @param \Workspace\Utility\ServiceInputParams $contract
19      * @return array
20      */
21     public function updateSendCustomerEmail($meta, $jobRecord, $record, \Workspace\Utility\ServiceInputParams $contract)
22     {
23         $record = $record
24             ? $record
25             : $jobRecord;
26
27         //send the email to customer informing them about the changes to the appointment
28
29         $appointmentDate = new \DateTime($record->appointmentDate->format('Y-m-d'));
30
31         $fromCompanyId  = isset($authData['company']['id']) ? $authData['company']['id'] : null;
32         $fromProfileId  = isset($authData['id']) ? $authData['id'] : null;
33
34         $toCompanyId    = $fromCompanyId;
35         $toProfileId    = $record->valuation->valuatedBy;
36         $email                  = $record->valuation->email;
37         $mobile                 = null;
38         $subject                = "Notification of successful submission of vehicle";
39         $templateName   = 'public-general';
40
41
42         $params['body'] = '<table border="0" cellspacing="0" cellpadding="0" width="600" style="border-collapse:collapse; border-spacing:0; margin:0; padding:0; width:600px; font-family: Arial, Sans-serif; font-size:12px;">
43                             <tr>
44                                 <td width="100%" valign="top" style="width:100%;">
45                                     Good Day ' . $record->valuation->firstName . ' ' . $record->valuation->familyName . ',
46                                 </td>
47                             </tr>
48                             <tr>
49                                 <td width="100%" valign="top" style="width:100%;">
50                                     &nbsp;
51                                 </td>
52                             </tr>
53                             <tr>
54                                 <td width="100%" valign="top" style="width:100%;">
55                                     Your <a target="blank" href="{APP_HOST}">WePay4Cars</a> valuation appointment has been updated.
56                                 </td>
57                             </tr>
58                             <tr>
59                                 <td width="100%" valign="top" style="width:100%;">
60                                     &nbsp;
61                                 </td>
62                             </tr>
63                         </table>
64                         <table border="0" cellspacing="0" cellpadding="0" width="800" style="border-collapse:collapse; border-spacing:0; margin:0; padding:0; width:800px; font-family: Arial, Sans-serif; font-size:12px;">
65                             <tr>
66                                 <td width="10" valign="top" style="width:10px;">&nbsp;</td>
67                                 <td width="50" valign="top" style="width:50px; font-family: Arial, Sans-serif; font-size:12px;">
68                                     <b>Year:</b>
69                                 </td>
70                                 <td width="180" valign="top" style="width:180px;">
71                                     ' . $record->valuation->stock->vehicleYear->name . '
72                                 </td>
73                                 <td width="20" valign="top" style="width:20px;">&nbsp;</td>
74                             </tr>
75                             <tr>
76                                 <td width="10" valign="top" style="width:10px;">&nbsp;</td>
77                                 <td width="50" valign="top" style="width:50px; font-family: Arial, Sans-serif; font-size:12px;">
78                                     <b>Make:</b>
79                                 </td>
80                                 <td width="180" valign="top" style="width:180px;">
81                                    ' . $record->valuation->stock->type->model->make->name . '
82                                 </td>
83                                 <td width="20" valign="top" style="width:20px;">&nbsp;</td>
84                             </tr>
85                             <tr>
86                                 <td width="10" valign="top" style="width:10px;">&nbsp;</td>
87                                 <td width="50" valign="top" style="width:50px; font-family: Arial, Sans-serif; font-size:12px;">
88                                     <b>Model:</b>
89                                 </td>
90                                 <td width="180" valign="top" style="width:180px;">
91                                    ' . $record->valuation->stock->type->model->name . '
92                                 </td>
93                                 <td width="20" valign="top" style="width:20px;">&nbsp;</td>
94                             </tr>
95                             <tr>
96                                 <td width="10" valign="top" style="width:10px;">&nbsp;</td>
97                                 <td width="50" valign="top" style="width:50px; font-family: Arial, Sans-serif; font-size:12px;">
98                                     <b>Type:</b>
99                                 </td>
100                                 <td width="180" valign="top" style="width:180px;">
101                                     ' . $record->valuation->stock->type->name . '
102                                 </td>
103                                 <td width="20" valign="top" style="width:20px;">&nbsp;</td>
104                             </tr>
105                             <tr>
106                                 <td width="10" valign="top" style="width:10px;">&nbsp;</td>
107                                 <td width="50" valign="top" style="width:50px; font-family: Arial, Sans-serif; font-size:12px;">
108                                     <b>Reg no:</b>
109                                 </td>
110                                 <td width="180" valign="top" style="width:180px;">
111                                     ' . $record->valuation->stock->registrationNumber . '
112                                 </td>
113                                 <td width="20" valign="top" style="width:20px;">&nbsp;</td>
114                             </tr>
115                         </table>
116                         <table border="0" cellspacing="0" cellpadding="0" width="600" style="border-collapse:collapse; border-spacing:0; margin:0; padding:0; width:600px; font-family: Arial, Sans-serif; font-size:12px;">
117                             <tr>
118                                 <td width="100%" valign="top" style="width:100%;">
119                                     &nbsp;
120                                 </td>
121                             </tr>
122                             <tr>
123                                 <td width="100%" valign="top" style="width:100%;">
124                                     Please not that the price offered on your vehicle is subject to final viewing.
125                                 </td>
126                             </tr>
127                             <tr>
128                                 <td width="100%" valign="top" style="width:100%;">
129                                     Your booking for valuation will take place at:
130                                 </td>
131                             </tr>
132                             <tr>
133                                 <td width="100%" valign="top" style="width:100%;">
134                                     &nbsp;
135                                 </td>
136                             </tr>
137                         </table>
138                         <table border="0" cellspacing="0" cellpadding="0" width="600" style="border-collapse:collapse; border-spacing:0; margin:0; padding:0; width:600px; font-family: Arial, Sans-serif; font-size:12px;">
139                             <tr>
140                                 <td width="100%" valign="top" style="width:100%; font-family: Arial, Sans-serif; font-size:17px; font-weight:bold;">';
141         $params['body'] .= $record->valuation->stock->company->name . ' ( ' . null != $record->valuation->stock->company->contact->office ? null != $record->valuation->stock->company->contact->office : $record->valuation->stock->company->contact->mobile . ' ) ';
142         $params['body'] .=  '</td>
143                             </tr>
144                             <tr>
145                                 <td width="100%" valign="top" style="width:100%;">
146                                     &nbsp;
147                                 </td>
148                             </tr>
149                             <tr>
150                                 <td width="100%" valign="top" style="width:100%;font-weight:bold;font-size:14px;">
151                                     Date / Time:
152                                 </td>
153                             </tr>
154                             <tr>
155                                 <td width="100%" valign="top" style="width:100%;">
156                                     ' . $appointmentDate->format('Y-m-d') . '
157                                 </td>
158                             </tr>
159                             <tr>
160                                 <td width="100%" valign="top" style="width:100%;">
161                                     ' . $record->timeSlot->timeSlotDisplayName . '
162                                 </td>
163                             </tr>
164                             <tr>
165                                 <td width="100%" valign="top" style="width:100%;">
166                                     &nbsp;
167                                 </td>
168                             </tr>
169                             <tr>
170                                 <td width="100%" valign="top" style="width:100%;font-weight:bold;font-size:14px;">
171                                     Your Address:
172                                 </td>
173                             </tr>
174                             <tr>
175                                 <td width="100%" valign="top" style="width:100%;">
176                                     ' . $record->valuation->customerAddressStreet . '
177                                 </td>
178                             </tr>
179                             <tr>
180                                 <td width="100%" valign="top" style="width:100%;">
181                                     ' . $record->valuation->customerAddressStreetName . '
182                                 </td>
183                             </tr>
184                             <tr>
185                                 <td width="100%" valign="top" style="width:100%;">
186                                     ' . $record->valuation->customerAddressSuburb . '
187                                 </td>
188                             </tr>
189                             <tr>
190                                 <td width="100%" valign="top" style="width:100%;">
191                                     ' . $record->valuation->customerAddressCity . '
192                                 </td>
193                             </tr>
194                             <tr>
195                                 <td width="100%" valign="top" style="width:100%;">
196                                     ' . $record->valuation->customerAddressPostalCode . '
197                                 </td>
198                             </tr>
199                             <tr>
200                                 <td width="100%" valign="top" style="width:100%;">
201                                     &nbsp;
202                                 </td>
203                             </tr>
204                             <tr>
205                                 <td width="100%" valign="top" style="width:100%;font-weight:bold;font-size:14px;">
206                                     Email:
207                                 </td>
208                             </tr>
209                             <tr>
210                                 <td width="100%" valign="top" style="width:100%;">
211                                    ' . $record->valuation->email . '
212                                 </td>
213                             </tr>
214                         </table>
215                         <table border="0" cellspacing="0" cellpadding="0" width="600" style="border-collapse:collapse; border-spacing:0; margin:0; padding:0; width:600px; font-family: Arial, Sans-serif; font-size:12px;">
216                             <tr>
217                                 <td width="100%" valign="top" style="width:100%;">
218                                     &nbsp;
219                                 </td>
220                             </tr>
221                             <tr>
222                                 <td width="100%" valign="top" style="width:100%;">
223                                     Regards
224                                 </td>
225                             </tr>
226                             <tr>
227                                 <td width="100%" valign="top" style="width:100%;">
228                                     WePay4Cars Team
229                                 </td>
230                             </tr>
231                         </table>';
232         $params['smsBody'] = '';
233
234
235 //        error_log('email body');
236 //        error_log($params['body']);
237
238         $oNotify = new \Utility\Comms\Notification();
239         $oNotify->sendFromTemplate(
240             $fromCompanyId,
241             $fromProfileId,
242             $toCompanyId,
243             $toProfileId,
244             $email,
245             $mobile,
246             $subject,
247             $templateName,
248             $params
249         );
250
251
252     }
253
254 }