diff --git a/Jenkinsfile b/Jenkinsfile
index ed52bd70..cd286f65 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -120,10 +120,29 @@ pipeline {
steps {
script {
try {
- sh 'docker image prune -a -f'
+ sh '''
+ echo "Starting Docker cleanup..."
+
+ # Remove stopped containers
+ docker container prune -f
+
+ # Remove unused networks
+ docker network prune -f
+
+ # Remove unused images
+ docker image prune -a -f
+
+ # Remove unused build cache
+ docker builder prune -f
+
+ echo "Docker cleanup completed."
+
+ docker system df
+ '''
} catch (Exception e) {
echo "Error during cleanup: ${e.message}"
}
+
currentBuild.description = 'Step 6 of 6 Completed'
}
}
diff --git a/app/Classes/Modules/Bookings/ControllersLogic/RegenerateInvoiceBookingLogic.php b/app/Classes/Modules/Bookings/ControllersLogic/RegenerateInvoiceBookingLogic.php
index 2c06836f..3b151b84 100644
--- a/app/Classes/Modules/Bookings/ControllersLogic/RegenerateInvoiceBookingLogic.php
+++ b/app/Classes/Modules/Bookings/ControllersLogic/RegenerateInvoiceBookingLogic.php
@@ -12,6 +12,7 @@ use App\Http\Resources\BookingResource;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
+use App\Classes\ValueObjects\Constants\TransactionType;
use Illuminate\Support\Facades\Log;
class RegenerateInvoiceBookingLogic extends AbstractControllerLogic
@@ -81,15 +82,16 @@ class RegenerateInvoiceBookingLogic extends AbstractControllerLogic
$eInvoiceWithNormalInvoiceTemplate = $request->input('normal_invoice', false);
$eInvoiceRefund = $request->input('e_invoice_refund', false);
+ $eInvoiceTry = $request->input('e_invoice_try', false);
- if(!$eInvoiceRefund){
+ if(!$eInvoiceRefund && !$eInvoiceTry){
if($booking->status !== ApprovalStatus::COMPLETED){
throw new MalformedRequestException('Booking incomplete.');
}
}
// if($eInvoiceRefund){
- $this->regenerateInvoiceBookingV2Processor->execute($booking, $eInvoiceWithNormalInvoiceTemplate, $eInvoiceRefund);
+ $this->regenerateInvoiceBookingV2Processor->execute($booking, $eInvoiceWithNormalInvoiceTemplate, $eInvoiceRefund, $eInvoiceTry);
// }
// else{
// $this->regenerateInvoiceBookingProcessor->execute($booking, $eInvoiceWithNormalInvoiceTemplate);
diff --git a/app/Classes/Modules/Bookings/Processors/RegenerateInvoiceBookingV2Processor.php b/app/Classes/Modules/Bookings/Processors/RegenerateInvoiceBookingV2Processor.php
index 2e758c81..08f189ef 100644
--- a/app/Classes/Modules/Bookings/Processors/RegenerateInvoiceBookingV2Processor.php
+++ b/app/Classes/Modules/Bookings/Processors/RegenerateInvoiceBookingV2Processor.php
@@ -10,6 +10,7 @@ use App\Classes\Modules\Transactions\Processors\CreateInvoiceTransactionV2Proces
use Illuminate\Support\Str;
use App\Classes\ValueObjects\Constants\DocumentType;
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;
@@ -51,10 +52,16 @@ class RegenerateInvoiceBookingV2Processor
public function execute(Booking $booking,
bool $eInvoiceWithNormalInvoiceTemplate = false,
- bool $eInvoiceWithRefund = false)
+ bool $eInvoiceWithRefund = false, bool $eInvoiceTry = false)
{
$bookingOriginalStatus = $booking->status;
+ if($eInvoiceTry){
+ if($booking->invoice_status === ApprovalStatus::APPROVED){
+ $bookingOriginalStatus = ApprovalStatus::COMPLETED;
+ }
+ }
+
if(!$eInvoiceWithRefund){
$this->updatesBookingStatus->execute($booking, ApprovalStatus::APPROVED);
}
@@ -70,6 +77,13 @@ class RegenerateInvoiceBookingV2Processor
->latest()
->first();
+ // if($eInvoiceTry){
+ // $kvpQuery = $latestInvoice->attributesKVP()->where('key', KVPKey::AUTOCOUNT_DOCNO_INVOICE);
+ // if($kvpQuery->exists()){
+ // $this->updateOrCreateKeyValuePair($booking, KVPKey::BOOKING_EINVOICE_ELIGIBLE, '1');
+ // }
+ // }
+
Log::info('RegenerateInvoiceBookingV2Processor booking: ' . json_encode($booking->marking));
// get the first bill_no
@@ -135,4 +149,12 @@ class RegenerateInvoiceBookingV2Processor
]);
}
}
+
+ private function updateOrCreateKeyValuePair($booking, $key, $value)
+ {
+ $booking->attributesKVP()->updateOrCreate(
+ ['key' => $key],
+ ['value' => $value]
+ );
+ }
}
diff --git a/app/Classes/Modules/Transactions/Processors/CreateInvoiceDocumentProcessor.php b/app/Classes/Modules/Transactions/Processors/CreateInvoiceDocumentProcessor.php
index 751981e3..0e6bb95f 100644
--- a/app/Classes/Modules/Transactions/Processors/CreateInvoiceDocumentProcessor.php
+++ b/app/Classes/Modules/Transactions/Processors/CreateInvoiceDocumentProcessor.php
@@ -163,6 +163,11 @@ class CreateInvoiceDocumentProcessor
foreach ($purchaseOrderDocuments as $document){
$currentFile = $document->files()->first()->file->file_info->original->file;
if($filesystemDriver === 's3'){
+ if (!Storage::disk('s3')->exists($currentFile)) {
+ Log::error('S3 file missing: ' . $currentFile);
+ continue;
+ }
+
Log::info('CreateInvoiceDocumentProcessor 1: ' . $currentFile);
$fileContent = Storage::disk('s3')->get($currentFile);
$filepath = storage_path('app/documents/' . $currentFile);
diff --git a/app/Http/Controllers/Bookings/RegenerateBookingEInvoiceController.php b/app/Http/Controllers/Bookings/RegenerateBookingEInvoiceController.php
index baec723f..55338257 100644
--- a/app/Http/Controllers/Bookings/RegenerateBookingEInvoiceController.php
+++ b/app/Http/Controllers/Bookings/RegenerateBookingEInvoiceController.php
@@ -26,4 +26,13 @@ class RegenerateBookingEInvoiceController
public function batchProcess(Request $request, BatchBookingsGenerateEInvoiceLogic $logic): JsonResponse {
return $logic->execute($request);
}
+
+ /**
+ * @param Request $request
+ * @param RegenerateInvoiceBookingLogic $logic
+ * @return JsonResponse
+ */
+ public function tryRegenerate(Request $request, RegenerateInvoiceBookingLogic $logic): JsonResponse {
+ return $logic->execute($request);
+ }
}
diff --git a/resources/assets/vue/components/bookings/forms/RegenerateEInvoiceTryComponent.vue b/resources/assets/vue/components/bookings/forms/RegenerateEInvoiceTryComponent.vue
new file mode 100644
index 00000000..ede0ce62
--- /dev/null
+++ b/resources/assets/vue/components/bookings/forms/RegenerateEInvoiceTryComponent.vue
@@ -0,0 +1,43 @@
+
+ Are you Sure?
+