Untitled
unknown
javascript
2 years ago
9.7 kB
5
Indexable
public function sendConfirmationMail(array $orderDetails, string $summary, array $finalPrices): void { $template = (new MailTemplate)->getAll()->first()->template_uuid; $allNumbersCost = 0; foreach ($orderDetails['order_numbers'] as &$number) { $allNumbersCost = $number['is_main'] ? (float)$finalPrices['offer_price'] : $allNumbersCost + (float)$finalPrices['additional_number_offer_price']; } $GoldenNumbersSum = 0; foreach ($finalPrices['final_price_golden_numbers'] as &$number) { $GoldenNumbersSum = (float)$GoldenNumbersSum + (float)$number['price_after_discount']; } $finalGoldenNumbersSum = number_format((float)$GoldenNumbersSum, 2, '.', ''); $sumToPay = $finalPrices['orders']['offer']['authorization_price'] + $finalGoldenNumbersSum + $orderDetails['delivery']['price']; $sumToPay = number_format((float)$sumToPay, 2, '.', ''); $mailParams = [ 'summary' => $summary, 'offer_name' => $orderDetails['offer']['name'], 'tariff_plan' => $orderDetails['offer']['tariff_plan'], 'offer_duration_name' => $orderDetails['duration']['duration'], 'invoice_type' => $this->avaliableFields['customfield_12332']['value'], 'invoice_cost' => $this->avaliableFields['customfield_12332']['value'] === 'Faktura papierowa' ? '5,00 zł' : '0,00 zł', 'delivery_name' => $orderDetails['delivery']['name'], 'delivery_cost' => $orderDetails['delivery']['price'], 'all_numbers_cost' => $allNumbersCost, 'main_number_offer_price' => $finalPrices['offer_price'], 'main_number_activation_price' => $finalPrices['activation_price'], 'cost_summary_main_number' => $this->prepareCostsSummaryForMainNumber($finalPrices), 'costs_summary_additional_number' => $this->prepareCostsSummaryForAdditionalNumber($finalPrices), 'golden_numbers_fee' => $finalGoldenNumbersSum, 'authorization_price' => $finalPrices['orders']['offer']['authorization_price'], 'to_pay' => $sumToPay, 'agreements' => $this->prepareAgreements($orderDetails, $finalPrices), ]; // var_dump($finalPrices['orders']['terms']);die(); // var_dump($orderDetails['offer']['terms']);die(); \LMail::sendMailImmediately($template, $orderDetails['email'], $mailParams); } /** * prepare costs summary for HTML template * @return string */ public function prepareCostsSummaryForAdditionalNumber(array $finalPrices): string { $summary = ''; $isBussiness = $finalPrices['orders']['offer']['client_type']['name'] === 'business'; $activationOriginal = (float)$finalPrices['orders']['offer']['additional_numbers_activation_price'] - (float)$finalPrices['orders']['offer']['additional_number_activation_price_reduction']; $activationFinal = (float)$finalPrices['additional_number_activation_price']; $subscriptionOriginal = $isBussiness ? $finalPrices['orders']['offer']['additional_numbers_price_net'] : $finalPrices['orders']['offer']['additional_numbers_price_gross']; $subscriptionFinal = $finalPrices['additional_number_offer_price']; foreach ($finalPrices['orders']['order_numbers'] as &$number) { if (!$number['is_main']) { $summaryItem = '<li style=" display: inline; font-size: 14px; font-weight: 600"> Kolejny numer </li> <div style="margin: 5px 0"/> <li style=" display: inline; font-size: 13px; font-weight: 400"> Opłata za abonament </li> <div style="font-size: 13px; display: inline; float: right; ">'; if ($subscriptionOriginal === $subscriptionFinal) { $summaryItem = $summaryItem . ' <li style="font-weight: 600; display: inline;">' . $subscriptionFinal . 'zł</li></div><div/>'; } else { $summaryItem = $summaryItem . ' <li style="display: inline; text-decoration-line: line-through; color: #6A6A6A" >' . $subscriptionOriginal . 'zł</li> <li style="font-weight: 600; display: inline; color: #008A00">' . $subscriptionFinal . 'zł</li> </div>'; } $summaryItem = $summaryItem . '</div> <li style=" display: inline; font-size: 13px; font-weight: 400"> Jednorazowa opłata aktywacyjna </li> <div style="font-size: 13px; display: inline; float: right; ">'; if ($activationOriginal === $activationFinal) { $summaryItem = $summaryItem . '<li style="font-weight: 600; display: inline;">' . $activationFinal . 'zł</li> </div>'; } else { $summaryItem = $summaryItem . ' <li style="display: inline; text-decoration-line: line-through; color: #6A6A6A" >' . number_format($activationOriginal, 2, '.', '') . 'zł</li> <li style="font-weight: 600; display: inline; color: #008A00">' . $activationFinal . 'zł</li> </div>'; } $summaryItem = $summaryItem . '<div/><div style="font-size: 11px; color: #6A6A6A">Doliczona do pierwszej faktury</div> <div style="margin: 8px 0;"></div>'; $summary = $summary . $summaryItem; } } return $summary; } public function prepareCostsSummaryForMainNumber(array $finalPrices): string { $summary = ''; $isBussiness = $finalPrices['orders']['offer']['client_type']['name'] === 'business'; $activationOriginal = number_format((float)((float)$finalPrices['orders']['offer']['activation_price'] - (float)$finalPrices['orders']['offer']['activation_price_reduction']), 2, '.', ''); $activationFinal = $finalPrices['activation_price']; $subscriptionOriginal = $isBussiness ? $finalPrices['orders']['offer']['price_net'] : $finalPrices['orders']['offer']['price_gross']; $subscriptionFinal = $finalPrices['offer_price']; foreach ($finalPrices['orders']['order_numbers'] as &$number) { if ($number['is_main']) { $summary = '<li style=" display: inline; font-size: 14px; font-weight: 600"> Główny numer </li> <div style="margin: 5px 0"/> <li style=" display: inline; font-size: 13px; font-weight: 400"> Opłata za abonament </li> <div style="font-size: 13px; display: inline; float: right; ">'; if ($subscriptionOriginal !== $subscriptionFinal) { $summary = $summary . '<li style="display: inline; text-decoration-line: line-through; color: #6A6A6A">' . $subscriptionOriginal . ' zł</li> <li style="font-weight: 600; display: inline; color: #008A00">' . $subscriptionFinal . ' zł</li>'; } else { $summary = $summary . '<li style="display: inline; font-weight: 600; ">' . $subscriptionOriginal . ' zł</li>'; } $summary = $summary . '</div><div/> <li style=" display: inline; font-size: 13px; font-weight: 400"> Jednorazowa opłata aktywacyjna </li> <div style="font-size: 13px; display: inline; float: right; ">'; if ($activationOriginal !== $activationFinal) { $summary = $summary . '<li style="display: inline; text-decoration-line: line-through; color: #6A6A6A" >' . $activationOriginal . ' zł</li> <li style="font-weight: 600; display: inline; color: #008A00">' . $activationFinal. ' zł</li>'; } else { $summary = $summary . '<li style="font-weight: 600; display: inline; ">' . $activationFinal . ' zł</li>'; } $summary = $summary . '</div> <div style="font-size: 11px; color: #6A6A6A">Doliczona do pierwszej faktury</div>'; } } return $summary; } public function prepareAgreements(array $orderDetails, array $finalPrices): string { $summary = ''; foreach ($orderDetails['offer']['terms'] as &$number) { $summary = $summary . '<tr><td><br style="display: block; margin-bottom: 2px" /></td></tr> <tr><td style="width: 5%">'; $imgSrc = '<img src="https://staging-v2.lajtmobile.pl/wp-content/uploads/2022/09/Group-5-1.png"/>'; foreach ($finalPrices['orders']['terms'] as &$term) { if ($number['id'] === $term['id']) { $imgSrc = '<img src="https://staging-v2.lajtmobile.pl/wp-content/uploads/2022/09/Group-1.png"/>'; } } $summary = $summary . $imgSrc . '</td> <td style="text-align: justify; font-size: 10px; color: #6A6A6A;">' . $number['description'] . '</td> </tr> </tr>'; } return $summary; } }
Editor is loading...