From 4d8ef04247af7e12a170c6118ce32bb87b6f2d71 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 1 Dec 2021 08:46:19 +1100 Subject: [PATCH] Fixes for CSV import --- .../Transformers/Csv/InvoiceTransformer.php | 4 +++- app/Jobs/Import/CSVImport.php | 17 ++++++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/app/Import/Transformers/Csv/InvoiceTransformer.php b/app/Import/Transformers/Csv/InvoiceTransformer.php index 9e3db2db90e6..2e4ed09841a1 100644 --- a/app/Import/Transformers/Csv/InvoiceTransformer.php +++ b/app/Import/Transformers/Csv/InvoiceTransformer.php @@ -92,7 +92,7 @@ class InvoiceTransformer extends BaseTransformer { 'amount' => $this->getFloat( $invoice_data, 'invoice.amount' ), ], ]; - } elseif ( isset( $transformed['amount'] ) && isset( $transformed['balance'] ) ) { + } elseif ( isset( $transformed['amount'] ) && isset( $transformed['balance'] ) && ($transformed['amount'] != $transformed['balance'])) { $transformed['payments'] = [ [ 'date' => isset( $invoice_data['payment.date'] ) ? date( 'Y-m-d', strtotime( $invoice_data['payment.date'] ) ) : date( 'y-m-d' ), @@ -126,6 +126,8 @@ class InvoiceTransformer extends BaseTransformer { } $transformed['line_items'] = $line_items; +nlog($transformed); + return $transformed; } } diff --git a/app/Jobs/Import/CSVImport.php b/app/Jobs/Import/CSVImport.php index d4e0dcf56c0e..27626ad9f484 100644 --- a/app/Jobs/Import/CSVImport.php +++ b/app/Jobs/Import/CSVImport.php @@ -332,18 +332,21 @@ class CSVImport implements ShouldQueue { $invoice = $invoice->service()->markViewed()->save(); } - if ( $invoice->status_id === Invoice::STATUS_SENT ) { + if( $invoice->status_id === Invoice::STATUS_DRAFT ){ + + } + elseif ( $invoice->status_id === Invoice::STATUS_SENT ) { $invoice = $invoice->service()->markSent()->save(); } - - if ( $invoice->status_id <= Invoice::STATUS_SENT && $invoice->amount > 0 ) { - if ( $invoice->balance < $invoice->amount ) { - $invoice->status_id = Invoice::STATUS_PARTIAL; - $invoice->save(); - } elseif ( $invoice->balance <= 0 ) { + elseif ( $invoice->status_id <= Invoice::STATUS_SENT && $invoice->amount > 0 ) { + if ( $invoice->balance <= 0 ) { $invoice->status_id = Invoice::STATUS_PAID; $invoice->save(); } + elseif ( $invoice->balance != $invoice->amount ) { + $invoice->status_id = Invoice::STATUS_PARTIAL; + $invoice->save(); + } }