diff --git a/app/Abstracts/Import.php b/app/Abstracts/Import.php index d6e5f5c3e..6a67407dd 100644 --- a/app/Abstracts/Import.php +++ b/app/Abstracts/Import.php @@ -3,6 +3,7 @@ namespace App\Abstracts; use Illuminate\Support\Str; +use Jenssegers\Date\Date; use Maatwebsite\Excel\Concerns\ToModel; use Maatwebsite\Excel\Concerns\WithBatchInserts; use Maatwebsite\Excel\Concerns\WithChunkReading; @@ -27,6 +28,15 @@ abstract class Import implements ToModel, WithBatchInserts, WithChunkReading, Wi $row['reconciled'] = (int) $row['reconciled']; } + $date_fields = ['paid_at', 'invoiced_at', 'billed_at', 'due_at', 'issued_at', 'created_at']; + foreach ($date_fields as $date_field) { + if (!isset($row[$date_field])) { + continue; + } + + $row[$date_field] = Date::parse($row[$date_field])->format('Y-m-d H:i:s'); + } + return $row; } diff --git a/app/Imports/Purchases/Payments.php b/app/Imports/Purchases/Payments.php index 5b34e8256..41f6d6785 100644 --- a/app/Imports/Purchases/Payments.php +++ b/app/Imports/Purchases/Payments.php @@ -5,7 +5,6 @@ namespace App\Imports\Purchases; use App\Abstracts\Import; use App\Models\Banking\Transaction as Model; use App\Http\Requests\Banking\Transaction as Request; -use Jenssegers\Date\Date; class Payments extends Import { @@ -16,14 +15,9 @@ class Payments extends Import public function map($row): array { - $row['company_id'] = session('company_id'); - $row['type'] = 'expense'; - $row['paid_at'] = Date::parse($row['paid_at'])->format('Y-m-d H:i:s'); + $row = parent::map($row); - // Make reconciled field integer - if (isset($row['reconciled'])) { - $row['reconciled'] = (int) $row['reconciled']; - } + $row['type'] = 'expense'; return $row; } diff --git a/app/Imports/Purchases/Sheets/BillTransactions.php b/app/Imports/Purchases/Sheets/BillTransactions.php index 1d20f0402..dcbafbf0c 100644 --- a/app/Imports/Purchases/Sheets/BillTransactions.php +++ b/app/Imports/Purchases/Sheets/BillTransactions.php @@ -5,7 +5,6 @@ namespace App\Imports\Purchases\Sheets; use App\Abstracts\Import; use App\Models\Banking\Transaction as Model; use App\Http\Requests\Banking\Transaction as Request; -use Jenssegers\Date\Date; class BillTransactions extends Import { @@ -16,14 +15,9 @@ class BillTransactions extends Import public function map($row): array { - $row['company_id'] = session('company_id'); - $row['type'] = 'expense'; - $row['paid_at'] = Date::parse($row['paid_at'])->format('Y-m-d H:i:s'); + $row = parent::map($row); - // Make reconciled field integer - if (isset($row['reconciled'])) { - $row['reconciled'] = (int) $row['reconciled']; - } + $row['type'] = 'expense'; return $row; } diff --git a/app/Imports/Purchases/Sheets/Bills.php b/app/Imports/Purchases/Sheets/Bills.php index 8a0649954..f50ca9d45 100644 --- a/app/Imports/Purchases/Sheets/Bills.php +++ b/app/Imports/Purchases/Sheets/Bills.php @@ -5,7 +5,6 @@ namespace App\Imports\Purchases\Sheets; use App\Abstracts\Import; use App\Models\Purchase\Bill as Model; use App\Http\Requests\Purchase\Bill as Request; -use Jenssegers\Date\Date; class Bills extends Import { @@ -14,15 +13,6 @@ class Bills extends Import return new Model($row); } - public function map($row): array - { - $row['company_id'] = session('company_id'); - $row['billed_at'] = Date::parse($row['billed_at'])->format('Y-m-d H:i:s'); - $row['due_at'] = Date::parse($row['due_at'])->format('Y-m-d H:i:s'); - - return $row; - } - public function rules(): array { return (new Request())->rules(); diff --git a/app/Imports/Purchases/Vendors.php b/app/Imports/Purchases/Vendors.php index 832d35100..2e9889714 100644 --- a/app/Imports/Purchases/Vendors.php +++ b/app/Imports/Purchases/Vendors.php @@ -15,13 +15,9 @@ class Vendors extends Import public function map($row): array { - $row['company_id'] = session('company_id'); - $row['type'] = 'vendor'; + $row = parent::map($row); - // Make enabled field integer - if (isset($row['enabled'])) { - $row['enabled'] = (int) $row['enabled']; - } + $row['type'] = 'vendor'; return $row; } diff --git a/app/Imports/Sales/Customers.php b/app/Imports/Sales/Customers.php index 5dcf7da41..a744bc64c 100644 --- a/app/Imports/Sales/Customers.php +++ b/app/Imports/Sales/Customers.php @@ -15,13 +15,9 @@ class Customers extends Import public function map($row): array { - $row['company_id'] = session('company_id'); - $row['type'] = 'customer'; + $row = parent::map($row); - // Make enabled field integer - if (isset($row['enabled'])) { - $row['enabled'] = (int) $row['enabled']; - } + $row['type'] = 'customer'; return $row; } diff --git a/app/Imports/Sales/Revenues.php b/app/Imports/Sales/Revenues.php index eedd4d266..5fe04dbf7 100644 --- a/app/Imports/Sales/Revenues.php +++ b/app/Imports/Sales/Revenues.php @@ -5,7 +5,6 @@ namespace App\Imports\Sales; use App\Abstracts\Import; use App\Models\Banking\Transaction as Model; use App\Http\Requests\Banking\Transaction as Request; -use Jenssegers\Date\Date; class Revenues extends Import { @@ -16,14 +15,9 @@ class Revenues extends Import public function map($row): array { - $row['company_id'] = session('company_id'); - $row['type'] = 'income'; - $row['paid_at'] = Date::parse($row['paid_at'])->format('Y-m-d H:i:s'); + $row = parent::map($row); - // Make reconciled field integer - if (isset($row['reconciled'])) { - $row['reconciled'] = (int) $row['reconciled']; - } + $row['type'] = 'income'; return $row; } diff --git a/app/Imports/Sales/Sheets/InvoiceTranactions.php b/app/Imports/Sales/Sheets/InvoiceTranactions.php index 38bac199a..0618d3f0f 100644 --- a/app/Imports/Sales/Sheets/InvoiceTranactions.php +++ b/app/Imports/Sales/Sheets/InvoiceTranactions.php @@ -5,7 +5,6 @@ namespace App\Imports\Sales\Sheets; use App\Abstracts\Import; use App\Models\Banking\Transaction as Model; use App\Http\Requests\Banking\Transaction as Request; -use Jenssegers\Date\Date; class InvoiceTranactions extends Import { @@ -16,14 +15,9 @@ class InvoiceTranactions extends Import public function map($row): array { - $row['company_id'] = session('company_id'); - $row['type'] = 'income'; - $row['paid_at'] = Date::parse($row['paid_at'])->format('Y-m-d H:i:s'); + $row = parent::map($row); - // Make reconciled field integer - if (isset($row['reconciled'])) { - $row['reconciled'] = (int) $row['reconciled']; - } + $row['type'] = 'income'; return $row; } diff --git a/app/Imports/Sales/Sheets/Invoices.php b/app/Imports/Sales/Sheets/Invoices.php index d9011ac94..dd5e0b75d 100644 --- a/app/Imports/Sales/Sheets/Invoices.php +++ b/app/Imports/Sales/Sheets/Invoices.php @@ -5,7 +5,6 @@ namespace App\Imports\Sales\Sheets; use App\Abstracts\Import; use App\Models\Sale\Invoice as Model; use App\Http\Requests\Sale\Invoice as Request; -use Jenssegers\Date\Date; class Invoices extends Import { @@ -14,15 +13,6 @@ class Invoices extends Import return new Model($row); } - public function map($row): array - { - $row['company_id'] = session('company_id'); - $row['invoiced_at'] = Date::parse($row['invoiced_at'])->format('Y-m-d H:i:s'); - $row['due_at'] = Date::parse($row['due_at'])->format('Y-m-d H:i:s'); - - return $row; - } - public function rules(): array { return (new Request())->rules();