fix invoice amount not tally when voucher is apply for booking

This commit is contained in:
JiaSheng
2024-04-08 21:17:37 +08:00
parent a4cb2b2066
commit 02d28f8fba
@@ -24,10 +24,22 @@ class CalculatesBookingCurrencyAverageRate
public function execute(Booking $booking, $type){
$transaction = $booking->transactions()
->where('type', TransactionType::PAYMENT)
->latest()->get()[0];
$voucherRedemption = $transaction->voucherRedemption;
$discount = 0;
if ($voucherRedemption) {
$discount = $voucherRedemption->value;
}
if ($type == TransactionType::PAYMENT) {
$totalPayment = $booking->fix_currency_id === 1 ? $booking->transactions()->payments()->complete()->sum('original_amount') :
$booking->transactions()->payments()->complete()->selectRaw('sum(amount - service_charge - tax) as sub_total')->get()->sum('sub_total');
return $this->calculatesBookingPayableAmount->execute($booking, $booking->fix_currency_id) / $totalPayment;
return $this->calculatesBookingPayableAmount->execute($booking, $booking->fix_currency_id) / ($totalPayment + $discount);
}
else if ($type == TransactionType::BILL) {