diff --git a/app/Classes/Jobs/Commands/V2/ProcessSalesInvoiceReportV2CommandJob.php b/app/Classes/Jobs/Commands/V2/ProcessSalesInvoiceReportV2CommandJob.php index d96fa761..66a4d457 100644 --- a/app/Classes/Jobs/Commands/V2/ProcessSalesInvoiceReportV2CommandJob.php +++ b/app/Classes/Jobs/Commands/V2/ProcessSalesInvoiceReportV2CommandJob.php @@ -15,7 +15,7 @@ use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; use App\Models\Booking; use Illuminate\Support\Facades\Log; - +use PhpOffice\PhpSpreadsheet\Shared\Date; class ProcessSalesInvoiceReportV2CommandJob implements ShouldQueue { @@ -81,6 +81,9 @@ class ProcessSalesInvoiceReportV2CommandJob implements ShouldQueue if($eInvoiceValidationLink){ $this->updateOrCreateKeyValuePair($booking, KVPKey::AUTOCOUNT_EINVOICE_VALIDATION_LINK, $eInvoiceValidationLink); } + if($docDate){ + $this->updateOrCreateKeyValuePair($booking, KVPKey::AUTOCOUNT_DOCDATE_INVOICE, is_numeric($docDate) ? $this->convertDocDateToString($docDate) : $docDate); + } } $end = new Carbon(); @@ -100,4 +103,12 @@ class ProcessSalesInvoiceReportV2CommandJob implements ShouldQueue (App()->make(CreatesKeyValuePair::class))->execute($booking, $keyValuePairObject); } } + + private function convertDocDateToString($value, $format = 'm/d/Y') { + if (is_numeric($value)) { + return Carbon::instance(Date::excelToDateTimeObject($value))->format($format); + } + + return Carbon::parse($value)->format($format); + } } diff --git a/app/Classes/Modules/Transactions/Processors/CreateInvoiceDocumentProcessor.php b/app/Classes/Modules/Transactions/Processors/CreateInvoiceDocumentProcessor.php index 96e64155..6e746415 100644 --- a/app/Classes/Modules/Transactions/Processors/CreateInvoiceDocumentProcessor.php +++ b/app/Classes/Modules/Transactions/Processors/CreateInvoiceDocumentProcessor.php @@ -63,9 +63,6 @@ class CreateInvoiceDocumentProcessor if ($bookingCreatedDate->isAfter($eInvoiceStartDate)) { $lastPaymentTransaction = $booking->transactions()->where('type', TransactionType::PAYMENT)->whereIn('status', [ApprovalStatus::COMPLETED, ApprovalStatus::APPROVED])->latest()->first(); $documentDate = $lastPaymentTransaction->created_at; - // if(Carbon::parse($booking->updated_at)->isAfter($lastPaymentTransaction->created_at)){ //cief todo: 90 - Batch generate E-Invoice date incorrect - // $documentDate = $booking->updated_at; - // } } if($document_type === DocumentType::EINVOICE){ @@ -77,8 +74,14 @@ class CreateInvoiceDocumentProcessor if($metadata){ $autoCountEInvoiceValidationLink = $metadata->value; } - $lastDayOfMonth = $documentDate->copy()->endOfMonth(); - $documentDate = $lastDayOfMonth; + $metadata = $booking->attributesKVP()->where('key', KVPKey::AUTOCOUNT_DOCDATE_INVOICE)->first(); + if($metadata){ + $documentDate = Carbon::parse($metadata->value); + } + else{ + $lastDayOfMonth = $documentDate->copy()->endOfMonth(); + $documentDate = $lastDayOfMonth; + } } $payment = $booking->transactions()->where('type', TransactionType::PAYMENT)->whereIn('status', [ApprovalStatus::COMPLETED, ApprovalStatus::APPROVED])->first(); $refundAmount = $payment->transactions()->refunds()->whereIn('status', [ApprovalStatus::PENDING_VERIFICATION, ApprovalStatus::APPROVED])->sum('amount'); diff --git a/app/Classes/ValueObjects/Constants/DocumentType.php b/app/Classes/ValueObjects/Constants/DocumentType.php index b11b6874..91ff84bb 100644 --- a/app/Classes/ValueObjects/Constants/DocumentType.php +++ b/app/Classes/ValueObjects/Constants/DocumentType.php @@ -29,5 +29,5 @@ final class DocumentType { public const BILL_GROUP_PAYMENT_PROOF = 'BILL_GROUP_PAYMENT_PROOF'; public const RECEIPT_VOUCHER = 'RECEIPT_VOUCHER'; - public const EINVOICE = 'E_INVOICE'; //cief todo: 90 - why is there no E-CREDITNOTE + public const EINVOICE = 'E_INVOICE'; } diff --git a/app/Classes/ValueObjects/Constants/KVPKey.php b/app/Classes/ValueObjects/Constants/KVPKey.php index 7a8b42ae..a5f2cf64 100644 --- a/app/Classes/ValueObjects/Constants/KVPKey.php +++ b/app/Classes/ValueObjects/Constants/KVPKey.php @@ -10,6 +10,8 @@ class KVPKey public const AUTOCOUNT_DOCNO_OFFICIAL_RECEIPT = 'AUTOCOUNT_DOCNO_OR'; + public const AUTOCOUNT_DOCDATE_INVOICE = 'AUTOCOUNT_DOCDATE_I'; + public const AUTOCOUNT_EINVOICE_VALIDATION_LINK = 'AUTOCOUNT_EINVOICE_VALIDATION_LINK'; public const CREDIT_NOTE_APPROVAL_DATE = 'CREDIT_NOTE_APPROVAL_DATE'; diff --git a/resources/assets/vue/components/bookings/sections/BookingDetailsSectionComponent.vue b/resources/assets/vue/components/bookings/sections/BookingDetailsSectionComponent.vue index c7717536..271826ff 100644 --- a/resources/assets/vue/components/bookings/sections/BookingDetailsSectionComponent.vue +++ b/resources/assets/vue/components/bookings/sections/BookingDetailsSectionComponent.vue @@ -46,7 +46,7 @@ -
+
+
+
+ +
+

E-Invoice (Pending)

+
@@ -626,8 +635,6 @@ display: inline-block; text-align: center; } - - /* cief todo: 90 - to be continue */ .disabled-block { opacity: 0.5; pointer-events: none; diff --git a/resources/views/pages/pdfs/e_invoice.blade.php b/resources/views/pages/pdfs/e_invoice.blade.php index e5ddcb49..9c7dce39 100644 --- a/resources/views/pages/pdfs/e_invoice.blade.php +++ b/resources/views/pages/pdfs/e_invoice.blade.php @@ -92,21 +92,22 @@ - - - - - - - - - - -
- -
-

{{ $autocountEInvoiceValidationLink }}

-
+ +
+ + + +
+ {{ $autocountEInvoiceValidationLink }} +
+