diff --git a/app/Classes/Jobs/Commands/V2/ProcessCreditNoteReportV2CommandJob.php b/app/Classes/Jobs/Commands/V2/ProcessCreditNoteReportV2CommandJob.php index 91dc27bb..41e2fe8b 100644 --- a/app/Classes/Jobs/Commands/V2/ProcessCreditNoteReportV2CommandJob.php +++ b/app/Classes/Jobs/Commands/V2/ProcessCreditNoteReportV2CommandJob.php @@ -15,6 +15,7 @@ use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; use App\Models\Booking; +use App\Models\Transaction; use Illuminate\Support\Facades\Log; @@ -71,19 +72,29 @@ class ProcessCreditNoteReportV2CommandJob implements ShouldQueue 'EInvoiceValidationLink' => $eInvoiceValidationLink, ]); - $booking = Booking::where('marking', $ref)->first(); - if($booking){ + // $booking = Booking::where('marking', $ref)->first(); + // if($booking){ + // if($docNo != "" && $docNo != "<>"){ + // $payments = $booking->transactions()->payments()->get(); + // foreach ($payments as $payment) { + // $refundTransaction = $payment->transactions()->refunds()->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED])->latest()->first(); + // if($refundTransaction){ + // $this->updateOrCreateKeyValuePair($refundTransaction, KVPKey::AUTOCOUNT_DOCNO_CREDIT_NOTE, $docNo); + // if($eInvoiceValidationLink){ + // $this->updateOrCreateKeyValuePair($refundTransaction, KVPKey::AUTOCOUNT_EINVOICE_VALIDATION_LINK_CREDIT_NOTE, $eInvoiceValidationLink); + // } + // break; + // } + // } + // } + // } + + $transaction = Transaction::where('bill_no', $ref)->first(); + if($transaction){ if($docNo != "" && $docNo != "<>"){ - $payments = $booking->transactions()->payments()->get(); - foreach ($payments as $payment) { - $refundTransaction = $payment->transactions()->refunds()->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED])->latest()->first(); - if($refundTransaction){ - $this->updateOrCreateKeyValuePair($refundTransaction, KVPKey::AUTOCOUNT_DOCNO_CREDIT_NOTE, $docNo); - if($eInvoiceValidationLink){ - $this->updateOrCreateKeyValuePair($refundTransaction, KVPKey::AUTOCOUNT_EINVOICE_VALIDATION_LINK_CREDIT_NOTE, $eInvoiceValidationLink); - } - break; - } + $this->updateOrCreateKeyValuePair($transaction, KVPKey::AUTOCOUNT_DOCNO_CREDIT_NOTE, $docNo); + if($eInvoiceValidationLink){ + $this->updateOrCreateKeyValuePair($transaction, KVPKey::AUTOCOUNT_EINVOICE_VALIDATION_LINK_CREDIT_NOTE, $eInvoiceValidationLink); } } } diff --git a/app/Classes/Modules/Exports/Services/ExportsARCreditNoteReport.php b/app/Classes/Modules/Exports/Services/ExportsARCreditNoteReport.php index 94651460..679f3003 100644 --- a/app/Classes/Modules/Exports/Services/ExportsARCreditNoteReport.php +++ b/app/Classes/Modules/Exports/Services/ExportsARCreditNoteReport.php @@ -79,7 +79,7 @@ class ExportsARCreditNoteReport implements FromQuery, WithHeadings, WithHeadingR $refundRemarkGroupAccNo = null; $company = $transaction->owner->owner; $kvps = KeyValuePair::where('value', $transaction->id) - ->where('key', 'App\Models\Transaction') + ->where('key', KVPKey::TRANSACTION_MODEL_CLASS) ->orderByDesc('created_at') ->get(); @@ -119,7 +119,7 @@ class ExportsARCreditNoteReport implements FromQuery, WithHeadings, WithHeadingR '<>', //DocNo $formattedDocumentDate, //DocDate $company->debtor, //DebtorCode - $booking ? $booking->marking : '', //Ref + $transaction->bill_no ?? '', //Ref $refundRemarkGroup ?? '', //Description $refundRemarkGroup ?? '', //Reason 'C', //DeptNo diff --git a/app/Classes/Modules/Transactions/ControllersLogic/GenerateCreditNotePdfV2Logic.php b/app/Classes/Modules/Transactions/ControllersLogic/GenerateCreditNotePdfV2Logic.php index b65985b0..1ae1bfeb 100644 --- a/app/Classes/Modules/Transactions/ControllersLogic/GenerateCreditNotePdfV2Logic.php +++ b/app/Classes/Modules/Transactions/ControllersLogic/GenerateCreditNotePdfV2Logic.php @@ -94,26 +94,43 @@ class GenerateCreditNotePdfV2Logic if($eInvoiceStarted) { $eInvoiceStarted = false; //reset to re-evaluate second time - $kvp = KeyValuePair::where('key', KVPKey::TRANSACTION_MODEL_CLASS)->where('value', $transaction->id)->first(); - $refundTransaction = $kvp ? $kvp->owner : null; - if($refundTransaction && $refundTransaction->type === TransactionType::REFUND){ - $metadata = $refundTransaction->attributesKVP()->where('key', KVPKey::AUTOCOUNT_DOCNO_CREDIT_NOTE)->first(); + //OLD BUSINESS LOGIC + // $kvp = KeyValuePair::where('key', KVPKey::TRANSACTION_MODEL_CLASS)->where('value', $transaction->id)->first(); + // $refundTransaction = $kvp ? $kvp->owner : null; + // if($refundTransaction && $refundTransaction->type === TransactionType::REFUND){ + // $metadata = $refundTransaction->attributesKVP()->where('key', KVPKey::AUTOCOUNT_DOCNO_CREDIT_NOTE)->first(); + // if($metadata){ + // $autoCountInvoiceId = $metadata->value; + // } + // $metadata = $refundTransaction->attributesKVP()->where('key', KVPKey::AUTOCOUNT_EINVOICE_VALIDATION_LINK_CREDIT_NOTE)->first(); + // if($metadata){ + // $autoCountEInvoiceValidationLink = $metadata->value; + // } + + // if($autoCountInvoiceId && $autoCountEInvoiceValidationLink){ + // $eInvoiceStarted = true; + // } + // } + if($transaction && $transaction->type === TransactionType::CREDIT_NOTE){ + $metadata = $transaction->attributesKVP()->where('key', KVPKey::AUTOCOUNT_DOCNO_CREDIT_NOTE)->first(); if($metadata){ $autoCountInvoiceId = $metadata->value; - } - $metadata = $refundTransaction->attributesKVP()->where('key', KVPKey::AUTOCOUNT_EINVOICE_VALIDATION_LINK_CREDIT_NOTE)->first(); - if($metadata){ - $autoCountEInvoiceValidationLink = $metadata->value; - } + $metadata = $transaction->attributesKVP()->where('key', KVPKey::AUTOCOUNT_EINVOICE_VALIDATION_LINK_CREDIT_NOTE)->first(); + if($metadata){ + $autoCountEInvoiceValidationLink = $metadata->value; + } - Log::info('AUTOCOUNT_DOCNO_CREDIT_NOTE: ' . $autoCountInvoiceId); - Log::info('AUTOCOUNT_EINVOICE_VALIDATION_LINK_CREDIT_NOTE: ' . $autoCountEInvoiceValidationLink); + if($autoCountInvoiceId && $autoCountEInvoiceValidationLink){ + $eInvoiceStarted = true; + } + } + else{ - if($autoCountInvoiceId && $autoCountEInvoiceValidationLink){ - $eInvoiceStarted = true; } } } + Log::info('AUTOCOUNT_DOCNO_CREDIT_NOTE: ' . $autoCountInvoiceId); + Log::info('AUTOCOUNT_EINVOICE_VALIDATION_LINK_CREDIT_NOTE: ' . $autoCountEInvoiceValidationLink); if($eInvoiceStarted) { diff --git a/app/Classes/Modules/Wallets/Processors/CreditWalletProcessor.php b/app/Classes/Modules/Wallets/Processors/CreditWalletProcessor.php index 6e9b33fc..29996e01 100644 --- a/app/Classes/Modules/Wallets/Processors/CreditWalletProcessor.php +++ b/app/Classes/Modules/Wallets/Processors/CreditWalletProcessor.php @@ -111,10 +111,10 @@ class CreditWalletProcessor $wallet = $this->updatesWallet->execute($wallet, $walletObject); if($relatedTransaction && $relatedTransaction instanceof Transaction){ - $kvp = $relatedTransaction->attributesKVP()->where('key', 'App\Models\Transaction')->where('value', $transaction->id)->latest()->first(); + $kvp = $relatedTransaction->attributesKVP()->where('key', KVPKey::TRANSACTION_MODEL_CLASS)->where('value', $transaction->id)->latest()->first(); if(!$kvp){ $keyValuePairObject = new KeyValuePairObject( - "App\Models\Transaction", + KVPKey::TRANSACTION_MODEL_CLASS, $transaction->id ); $this->createsKeyValuePair->execute($relatedTransaction, $keyValuePairObject); diff --git a/app/Http/Resources/TransactionResource.php b/app/Http/Resources/TransactionResource.php index b013f9db..172c29fd 100644 --- a/app/Http/Resources/TransactionResource.php +++ b/app/Http/Resources/TransactionResource.php @@ -7,6 +7,7 @@ use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Classes\ValueObjects\Constants\KVPKey; use App\Classes\ValueObjects\Constants\TransactionType; use App\Models\Booking; +use App\Models\Transaction; use Carbon\Carbon; use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Support\Facades\Log; @@ -40,9 +41,13 @@ class TransactionResource extends JsonResource $eInvoice = false; if($booking && $this->type === TransactionType::REFUND){ - $kvp = $this->attributesKVP()->where('key', KVPKey::AUTOCOUNT_DOCNO_CREDIT_NOTE)->first(); - if($kvp){ - $eInvoice = true; + $kvp = $this->attributesKVP()->where('key', KVPKey::TRANSACTION_MODEL_CLASS)->first(); + $transactionCreditNote = Transaction::where('id', $kvp->value)->first(); + if($transactionCreditNote){ + $kvp = $transactionCreditNote->attributesKVP()->where('key', KVPKey::AUTOCOUNT_DOCNO_CREDIT_NOTE)->first(); + if($kvp){ + $eInvoice = true; + } } } diff --git a/resources/assets/vue/components/bookings/elements/DownloadUploadComponent.vue b/resources/assets/vue/components/bookings/elements/DownloadUploadComponent.vue index 5dc427ac..e75b83b4 100644 --- a/resources/assets/vue/components/bookings/elements/DownloadUploadComponent.vue +++ b/resources/assets/vue/components/bookings/elements/DownloadUploadComponent.vue @@ -113,6 +113,9 @@ +
+ Note: Date filter not applicable to import +
{{error}}
diff --git a/resources/views/pages/pdfs/e_credit_note.blade.php b/resources/views/pages/pdfs/e_credit_note.blade.php index 0828ba1a..3ed5d861 100644 --- a/resources/views/pages/pdfs/e_credit_note.blade.php +++ b/resources/views/pages/pdfs/e_credit_note.blade.php @@ -119,25 +119,27 @@ - - - - - - - - - - -
- -
-

{{ $autocountEInvoiceValidationLink }}

-
+ +
+ + + +
+ {{ $autocountEInvoiceValidationLink }} +
+
+
This is generated by computer. No signature required.