Untitled
unknown
javascript
3 years ago
9.7 kB
11
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...