From 8918431b5164bbd1cc4a2f5db09452566ca57b84 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 2 Feb 2022 17:07:37 +1100 Subject: [PATCH] Payment Transformer for CSV imports --- .../Transformer/Csv/PaymentTransformer.php | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 app/Import/Transformer/Csv/PaymentTransformer.php diff --git a/app/Import/Transformer/Csv/PaymentTransformer.php b/app/Import/Transformer/Csv/PaymentTransformer.php new file mode 100644 index 000000000000..b1264d938f2a --- /dev/null +++ b/app/Import/Transformer/Csv/PaymentTransformer.php @@ -0,0 +1,64 @@ +getClient( $this->getString( $data, 'payment.client_id' ), $this->getString( $data, 'payment.client_id' ) ); + + if ( empty( $client_id ) ) { + throw new ImportException( 'Could not find client.' ); + } + + $transformed = [ + 'company_id' => $this->maps['company']->id, + 'number' => $this->getString( $data, 'payment.number' ), + 'user_id' => $this->getString( $data, 'payment.user_id' ), + 'amount' => $this->getFloat( $data, 'payment.amount' ), + 'refunded' => $this->getFloat( $data, 'payment.refunded' ), + 'applied' => $this->getFloat( $data, 'payment.applied' ), + 'transaction_reference' => $this->getString( $data, 'payment.transaction_reference ' ), + 'date' => $this->getString( $data, 'payment.date' ), + 'private_notes' => $this->getString( $data, 'payment.private_notes' ), + 'custom_value1' => $this->getString( $data, 'payment.custom_value1' ), + 'custom_value2' => $this->getString( $data, 'payment.custom_value2' ), + 'custom_value3' => $this->getString( $data, 'payment.custom_value3' ), + 'custom_value4' => $this->getString( $data, 'payment.custom_value4' ), + 'client_id' => $client_id, + ]; + + + if ( isset( $data['payment.invoice_number'] ) && + $invoice_id = $this->getInvoiceId( $data['payment.invoice_number'] ) ) { + $transformed['invoices'] = [ + [ + 'invoice_id' => $invoice_id, + 'amount' => $transformed['amount'] ?? null, + ], + ]; + } + + return $transformed; + } +}