Update for ivnoice backup casting

This commit is contained in:
David Bomba 2025-08-12 12:13:44 +10:00
parent 94b628b6eb
commit 1836ccc434
3 changed files with 14 additions and 9 deletions

View File

@ -51,8 +51,8 @@ class CanGenerateModificationInvoice implements ValidationRule
$fail("Cannot create a modification invoice where a payment has been made.");
} elseif($invoice->status_id === Invoice::STATUS_CANCELLED ) {
$fail("Cannot create a modification invoice for a cancelled invoice.");
// } elseif($invoice->status_id === Invoice::STATUS_REPLACED) {
// $fail("Cannot create a modification invoice for a replaced invoice.");
} elseif($invoice->status_id === Invoice::STATUS_REPLACED) {
$fail("Cannot create a modification invoice for a replaced invoice.");
} elseif($invoice->status_id === Invoice::STATUS_REVERSED) {
$fail("Cannot create a modification invoice for a reversed invoice.");
// } elseif ($invoice->status_id !== Invoice::STATUS_SENT) {

View File

@ -37,12 +37,11 @@ class SendToAeat implements ShouldQueue
public $deleteWhenMissingModels = true;
/**
* Modification Invoices - (modify) Generates a F3 document which replaces the original invoice. And becomes the new invoice.
* Create Invoices - (create) Generates a F1 document.
* Cancellation Invoices - (cancel) Generates a R3 document with full negative values of the original invoice.
*/
/**
* Modification Invoices - (modify) Generates a F3 document which replaces the original invoice. And becomes the new invoice.
* Create Invoices - (create) Generates a F1 document.
* Cancellation Invoices - (cancel) Generates a R3 document with full negative values of the original invoice.
*/
/**
* __construct

View File

@ -719,8 +719,14 @@ class InvoiceService
*/
public function modifyVerifactuWorkflow(string $modified_invoice_hashed_id): self
{
//if the new invoice has a negative amount - then it is not a replacement, it is a
//delta modification on an existing invoice.
$modified_invoice = Invoice::withTrashed()->find($this->decodePrimaryKey($modified_invoice_hashed_id));
$modified_invoice->status_id = Invoice::STATUS_REPLACED;
if($this->invoice->amount > 0) {
$modified_invoice->status_id = Invoice::STATUS_REPLACED;
}
$modified_invoice->backup->modified_invoice_id = $this->invoice->hashed_id;
$modified_invoice->save();