diff --git a/app/Exports/Purchases/Payments.php b/app/Exports/Purchases/Payments.php index 48a1a8288..731a8969b 100644 --- a/app/Exports/Purchases/Payments.php +++ b/app/Exports/Purchases/Payments.php @@ -9,7 +9,7 @@ class Payments extends Export { public function collection() { - $model = Model::type('expense')->usingSearchString(request('search')); + $model = Model::with(['account', 'bill', 'category', 'contact'])->type('expense')->usingSearchString(request('search')); if (!empty($this->ids)) { $model->whereIn('id', (array) $this->ids); @@ -18,6 +18,16 @@ class Payments extends Export return $model->get(); } + public function map($model): array + { + $model->account_name = $model->account->name; + $model->bill_number = $model->bill ? $model->bill->bill_number : 0; + $model->contact_email = $model->contact->email; + $model->category_name = $model->category->name; + + return parent::map($model); + } + public function fields(): array { return [ @@ -25,10 +35,10 @@ class Payments extends Export 'amount', 'currency_code', 'currency_rate', - 'account_id', - 'document_id', - 'contact_id', - 'category_id', + 'account_name', + 'bill_number', + 'contact_email', + 'category_name', 'description', 'payment_method', 'reference', diff --git a/app/Imports/Purchases/Payments.php b/app/Imports/Purchases/Payments.php index 41f6d6785..6c6a20e9f 100644 --- a/app/Imports/Purchases/Payments.php +++ b/app/Imports/Purchases/Payments.php @@ -5,6 +5,7 @@ namespace App\Imports\Purchases; use App\Abstracts\Import; use App\Models\Banking\Transaction as Model; use App\Http\Requests\Banking\Transaction as Request; +use App\Models\Purchase\Bill; class Payments extends Import { @@ -19,6 +20,34 @@ class Payments extends Import $row['type'] = 'expense'; + if (empty($row['account_id']) && !empty($row['account_name'])) { + $row['account_id'] = $this->getAccountIdFromName($row); + } + + if (empty($row['account_id']) && !empty($row['account_number'])) { + $row['account_id'] = $this->getAccountIdFromNumber($row); + } + + if (empty($row['account_id']) && !empty($row['currency_code'])) { + $row['account_id'] = $this->getAccountIdFromCurrency($row); + } + + if (empty($row['contact_id']) && !empty($row['contact_name'])) { + $row['contact_id'] = $this->getContactIdFromName($row, 'vendor'); + } + + if (empty($row['contact_id']) && !empty($row['contact_email'])) { + $row['contact_id'] = $this->getContactIdFromEmail($row, 'vendor'); + } + + if (empty($row['category_id']) && !empty($row['category_name'])) { + $row['category_id'] = $this->getCategoryIdFromName($row, 'expense'); + } + + if (!empty($row['bill_number'])) { + $row['document_id'] = Bill::number($row['bill_number'])->pluck('id')->first(); + } + return $row; } diff --git a/public/files/import/payments.xlsx b/public/files/import/payments.xlsx index c2a0f0f0e..fad84f1d4 100644 Binary files a/public/files/import/payments.xlsx and b/public/files/import/payments.xlsx differ