diff --git a/app/Classes/Modules/Transactions/ControllersLogic/ListTransactionsLogic.php b/app/Classes/Modules/Transactions/ControllersLogic/ListTransactionsLogic.php index a0030317..1dfe1084 100644 --- a/app/Classes/Modules/Transactions/ControllersLogic/ListTransactionsLogic.php +++ b/app/Classes/Modules/Transactions/ControllersLogic/ListTransactionsLogic.php @@ -6,6 +6,7 @@ namespace App\Classes\Modules\Transactions\ControllersLogic; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Transactions\Services\ListsTransactions; use App\Http\Resources\TransactionWithStorageResource; +use Carbon\Carbon; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\Log; @@ -40,7 +41,19 @@ class ListTransactionsLogic extends AbstractControllerLogic $query = $this->listsTransactions->execute($this->listsTransactions->deserializeFilters($request->input('filters'))); foreach ($query->items() as $item) { if($item instanceof \App\Models\Transaction && $item->owner && $item->owner->owner->companyModule){ - $item['is_einvoice_applicable'] = $item->owner->owner->companyModule->company->e_invoice === 1; + $eInvoice = false; + $eInvoiceStartDate = Carbon::parse(env('E_INVOICE_START_DATE', '2025-07-01 00:00:00')); + $transactionCreatedDate = Carbon::parse($item->created_at); + $eInvoiceRequestedDate = Carbon::parse($item->owner->owner->companyModule->company->e_invoice_requested_at); + + if ($transactionCreatedDate->isAfter($eInvoiceStartDate) + &&($transactionCreatedDate->isAfter($eInvoiceRequestedDate) || $transactionCreatedDate->diffInMinutes($eInvoiceRequestedDate) <= 60) + && $item->owner->owner->companyModule->company->e_invoice === 1) + { + $eInvoice = true; + } + $item['is_einvoice_applicable'] = $eInvoice; + // $item['is_einvoice_applicable'] = $item->owner->owner->companyModule->company->e_invoice === 1; } } diff --git a/app/Http/Resources/FetchOrderResource.php b/app/Http/Resources/FetchOrderResource.php index ddf7e584..4024695b 100644 --- a/app/Http/Resources/FetchOrderResource.php +++ b/app/Http/Resources/FetchOrderResource.php @@ -5,6 +5,7 @@ namespace App\Http\Resources; use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Classes\ValueObjects\Constants\OrderRoleTypes; use App\Classes\ValueObjects\Constants\TransactionType; +use Carbon\Carbon; use Illuminate\Http\Resources\Json\JsonResource; class FetchOrderResource extends JsonResource @@ -30,7 +31,19 @@ class FetchOrderResource extends JsonResource 'invoices' => $this->whenLoaded('packingLists', function() { $transactions = $this->transactions()->whereNotIn('transactions.status', [0, 1])->whereIn('transactions.type', [TransactionType::SHIPPING_INVOICE, TransactionType::STORAGE_INVOICE])->get(); foreach ($transactions as $transaction) { - $transaction['is_einvoice_applicable'] = $this->companyModule->company->e_invoice === 1; + $eInvoice = false; + $eInvoiceStartDate = Carbon::parse(env('E_INVOICE_START_DATE', '2025-07-01 00:00:00')); + $transactionCreatedDate = Carbon::parse($transaction->created_at); + $eInvoiceRequestedDate = Carbon::parse($this->companyModule->company->e_invoice_requested_at); + + if ($transactionCreatedDate->isAfter($eInvoiceStartDate) + &&($transactionCreatedDate->isAfter($eInvoiceRequestedDate) || $transactionCreatedDate->diffInMinutes($eInvoiceRequestedDate) <= 60) + && $this->companyModule->company->e_invoice === 1) + { + $eInvoice = true; + } + $transaction['is_einvoice_applicable'] = $eInvoice; + // $transaction['is_einvoice_applicable'] = $this->companyModule->company->e_invoice === 1; } return TransactionWithStorageResource::collection($transactions); }),