diff --git a/app/Classes/Modules/Exports/Services/ExportsAgingList.php b/app/Classes/Modules/Exports/Services/ExportsAgingList.php index d44d55e4..111eb20a 100644 --- a/app/Classes/Modules/Exports/Services/ExportsAgingList.php +++ b/app/Classes/Modules/Exports/Services/ExportsAgingList.php @@ -12,6 +12,7 @@ use Maatwebsite\Excel\Concerns\ShouldAutoSize; use Maatwebsite\Excel\Concerns\WithHeadingRow; use App\Classes\General\Eloquent\ApplyFiltersToQuery; use App\Classes\ValueObjects\Constants\ApprovalStatus; +use DateTime; class ExportsAgingList implements WithHeadings, WithHeadingRow, WithMapping, ShouldAutoSize, FromQuery { @@ -19,10 +20,12 @@ class ExportsAgingList implements WithHeadings, WithHeadingRow, WithMapping, Sho private $filters; - public function __construct() { + public function __construct() + { $this->filters = [ - "has_invoice_status_in"=>[2],"packing_list_ordered_by_invoice_date"=>true, - "with_aging_column"=>true + "has_invoice_status_in" => [2], + "packing_list_ordered_by_invoice_date" => true, + "with_aging_column" => true ]; } @@ -31,12 +34,11 @@ class ExportsAgingList implements WithHeadings, WithHeadingRow, WithMapping, Sho return [ 'Company Name', 'Customer Marking', + 'Order Number', + 'Invoice No', 'Invoice Date', - 'Current', - '1-30 DAYS', - '31-60 DAYS', - '61-90 DAYS', - '91++ DAYS', + 'Days', + 'Amount', ]; } @@ -48,35 +50,49 @@ class ExportsAgingList implements WithHeadings, WithHeadingRow, WithMapping, Sho public function map($list): array { $marking = null; - $name = null; + $orderNo = null; + $name = null; $invDate = 'n/a'; + $invNo = 'n/a'; + $days = 'n/a'; + if ($list->owner instanceof Order) { - $inviterPivotInviteeReference = $list->owner->companyModule->inviters()->withPivot('invitee_reference')->first(); - - if ($inviterPivotInviteeReference) $marking = $inviterPivotInviteeReference->pivot->invitee_reference .'/'.$list->owner->reference; + $inviterPivotInviteeReference = $list->owner->companyModule->inviters()->withPivot('invitee_reference')->first(); + + if ($inviterPivotInviteeReference) { + $marking = $inviterPivotInviteeReference->pivot->invitee_reference; + $orderNo = $list->owner->reference; + } $name = $list->owner->companyModule->company->name; } $transaction = $list->transactions()->whereIn('status', [ApprovalStatus::APPROVED])->first(); if ($transaction) { - $invDate = date_format($transaction->updated_at,'d-m-Y'); - $amt = number_format($transaction->amount,2); + + $invoiceDate = $transaction->created_at; + $invDate = date_format($invoiceDate, 'd-m-Y'); + $invNo = $transaction->bill_no; + $amt = number_format($transaction->amount, 2); + + $currentDate = new DateTime(); + $interval = $currentDate->diff($invoiceDate); + $days = $interval->format('%a'); } return [ $name, $marking, + $orderNo, + $invNo, $invDate, - $this->dueDateColumn(0, $list->due_date_number, $amt), - $this->dueDateColumn(1, $list->due_date_number, $amt), - $this->dueDateColumn(2, $list->due_date_number, $amt), - $this->dueDateColumn(3, $list->due_date_number, $amt), - $this->dueDateColumn(4, $list->due_date_number, $amt), + $days, + $amt, ]; } - private function dueDateColumn($colNum, $dueDateNumber, $amt) { + private function dueDateColumn($colNum, $dueDateNumber, $amt) + { if ($colNum == $dueDateNumber) return $amt; return null; } -} \ No newline at end of file +}