From 59ae0d3219656fc999b653040456fea5a67dd6be Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sat, 6 Feb 2021 09:31:26 +1100 Subject: [PATCH] Fixes for migrations - do not applied cancelled payments to invoices --- .../Invoice/InvoiceItemSumInclusive.php | 7 +++- .../Migration/PaymentMigrationRepository.php | 36 +++++++++++-------- 2 files changed, 28 insertions(+), 15 deletions(-) diff --git a/app/Helpers/Invoice/InvoiceItemSumInclusive.php b/app/Helpers/Invoice/InvoiceItemSumInclusive.php index 818f228ab500..9a0d890cb3ab 100644 --- a/app/Helpers/Invoice/InvoiceItemSumInclusive.php +++ b/app/Helpers/Invoice/InvoiceItemSumInclusive.php @@ -225,7 +225,12 @@ class InvoiceItemSumInclusive $item_tax = 0; foreach ($this->line_items as $this->item) { - $amount = $this->item->line_total - ($this->item->line_total * ($this->invoice->discount / $this->sub_total)); + + if($this->sub_total == 0) + $amount = $this->item->line_total; + else + $amount = $this->item->line_total - ($this->item->line_total * ($this->invoice->discount / $this->sub_total)); + $item_tax_rate1_total = $this->calcInclusiveLineTax($this->item->tax_rate1, $amount); $item_tax += $item_tax_rate1_total; diff --git a/app/Repositories/Migration/PaymentMigrationRepository.php b/app/Repositories/Migration/PaymentMigrationRepository.php index c05c85c19a2c..13b305a065bc 100644 --- a/app/Repositories/Migration/PaymentMigrationRepository.php +++ b/app/Repositories/Migration/PaymentMigrationRepository.php @@ -92,6 +92,10 @@ class PaymentMigrationRepository extends BaseRepository } $payment->status_id = $data['status_id']; + + if($payment->status_id == Payment::STATUS_CANCELLED) + $payment->is_deleted = true; + $payment->deleted_at = $data['deleted_at'] ?: null; $payment->save(); @@ -113,24 +117,28 @@ class PaymentMigrationRepository extends BaseRepository $payment->invoices()->saveMany($invoices); - $payment->invoices->each(function ($inv) use ($invoice_totals, $refund_totals) { + $payment->invoices->each(function ($inv) use ($invoice_totals, $refund_totals, $payment) { - $inv->pivot->amount = $invoice_totals; - $inv->pivot->refunded = $refund_totals; - $inv->pivot->save(); - $inv->paid_to_date += $invoice_totals; - $inv->balance -= $invoice_totals; + if($payment->status_id != Payment::STATUS_CANCELLED) + { + $inv->pivot->amount = $invoice_totals; + $inv->pivot->refunded = $refund_totals; + $inv->pivot->save(); - if($inv->status_id == Invoice::STATUS_PAID) - $inv->balance = 0; - - // if($inv->balance > 0) - // - - // $inv->balance = max(0, $inv->balance); + $inv->paid_to_date += $invoice_totals; + $inv->balance -= $invoice_totals; - $inv->save(); + if($inv->status_id == Invoice::STATUS_PAID) + $inv->balance = 0; + + // if($inv->balance > 0) + // + + // $inv->balance = max(0, $inv->balance); + + $inv->save(); + } }); }