diff --git a/app/Classes/Modules/Exports/Services/ExportsSalesInvoiceReport.php b/app/Classes/Modules/Exports/Services/ExportsSalesInvoiceReport.php index a801ca5b..34c743c8 100644 --- a/app/Classes/Modules/Exports/Services/ExportsSalesInvoiceReport.php +++ b/app/Classes/Modules/Exports/Services/ExportsSalesInvoiceReport.php @@ -72,7 +72,8 @@ class ExportsSalesInvoiceReport implements FromQuery, WithHeadings, WithHeadingR 'transactions.voucherRedemption', 'transactions.voucherRedemption.voucher.campaign' ]) - ->whereIn('status', [ApprovalStatus::COMPLETED]) + // ->whereIn('status', [ApprovalStatus::COMPLETED]) + ->where('is_invoice_generated', 1) ->whereHas('transactions', function ($query) use ($startDate, $endDate) { $query->payments() ->complete() diff --git a/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionV2Processor.php b/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionV2Processor.php index 619f34b5..399cb041 100644 --- a/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionV2Processor.php +++ b/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionV2Processor.php @@ -223,6 +223,10 @@ class CreateInvoiceTransactionV2Processor ); $invoice_transaction = $this->createsTransaction->execute($purchaseOrder->booking ?? $booking, $transaction_object); + //Update booking table, used on Export Sales Invoice Report + $booking->is_invoice_generated = true; + $booking->save(); + if ($kvpCopies) { foreach ($kvpCopies as $kvp) { $invoice_transaction->attributesKVP()->save($kvp); diff --git a/database/migrations/2025_11_27_120102_add_is_invoice_generated_to_bookings_table.php b/database/migrations/2025_11_27_120102_add_is_invoice_generated_to_bookings_table.php new file mode 100644 index 00000000..b2af1a22 --- /dev/null +++ b/database/migrations/2025_11_27_120102_add_is_invoice_generated_to_bookings_table.php @@ -0,0 +1,37 @@ +boolean('is_invoice_generated') + ->default(false) + ->after('status'); + + $table->index('is_invoice_generated', 'bookings_is_invoice_generated_index'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('bookings', function (Blueprint $table) { + $table->dropIndex('bookings_is_invoice_generated_index'); + $table->dropColumn('is_invoice_generated'); + }); + } +} diff --git a/database/migrations/2025_11_27_121256_add_is_invoice_generated_to_booking_logs_table.php b/database/migrations/2025_11_27_121256_add_is_invoice_generated_to_booking_logs_table.php new file mode 100644 index 00000000..e04b01d0 --- /dev/null +++ b/database/migrations/2025_11_27_121256_add_is_invoice_generated_to_booking_logs_table.php @@ -0,0 +1,34 @@ +boolean('is_invoice_generated') + ->default(false) + ->after('status'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('booking_logs', function (Blueprint $table) { + $table->dropColumn('is_invoice_generated'); + }); + } +}