INA-6 |Added purchase order number counter

This commit is contained in:
Nikola Cirkovic 2022-06-05 05:59:33 +02:00
parent 7e5e10e5f1
commit 4e4420dd32
2 changed files with 44 additions and 20 deletions

View File

@ -276,6 +276,9 @@ class CompanySettings extends BaseSettings
public $email_from_name = ''; public $email_from_name = '';
public $auto_archive_invoice_cancelled = false; public $auto_archive_invoice_cancelled = false;
public $purchase_order_number_counter = 1; //TODO
public static $casts = [ public static $casts = [
'page_numbering_alignment' => 'string', 'page_numbering_alignment' => 'string',
'page_numbering' => 'bool', 'page_numbering' => 'bool',
@ -474,6 +477,7 @@ class CompanySettings extends BaseSettings
'portal_custom_footer' => 'string', 'portal_custom_footer' => 'string',
'portal_custom_js' => 'string', 'portal_custom_js' => 'string',
'client_portal_enable_uploads' => 'bool', 'client_portal_enable_uploads' => 'bool',
'purchase_order_number_counter' => 'integer',
]; ];
public static $free_plan_casts = [ public static $free_plan_casts = [

View File

@ -18,6 +18,7 @@ use App\Models\Expense;
use App\Models\Invoice; use App\Models\Invoice;
use App\Models\Payment; use App\Models\Payment;
use App\Models\Project; use App\Models\Project;
use App\Models\PurchaseOrder;
use App\Models\Quote; use App\Models\Quote;
use App\Models\RecurringExpense; use App\Models\RecurringExpense;
use App\Models\RecurringInvoice; use App\Models\RecurringInvoice;
@ -153,6 +154,9 @@ trait GeneratesCounter
case Project::class: case Project::class:
return 'project_number_counter'; return 'project_number_counter';
break; break;
case PurchaseOrder::class:
return 'purchase_order_number_counter';
break;
default: default:
return 'default_number_counter'; return 'default_number_counter';
@ -188,6 +192,20 @@ trait GeneratesCounter
return $this->replaceUserVars($credit, $entity_number); return $this->replaceUserVars($credit, $entity_number);
}
/**
* Gets the next purchase order number.
*
* @param PurchaseOrder $purchase_order The purchase order
*
* @return string The next purchase order number.
*/
public function getNextPurchaseOrderNumber(Client $client, ?PurchaseOrder $purchase_order) :string
{
$entity_number = $this->getNextEntityNumber(PurchaseOrder::class, $client);
return $this->replaceUserVars($purchase_order, $entity_number);
} }
/** /**
@ -558,6 +576,7 @@ trait GeneratesCounter
$settings->invoice_number_counter = 1; $settings->invoice_number_counter = 1;
$settings->quote_number_counter = 1; $settings->quote_number_counter = 1;
$settings->credit_number_counter = 1; $settings->credit_number_counter = 1;
$settings->purchase_order_number_counter = 1;
$client->company->settings = $settings; $client->company->settings = $settings;
$client->company->save(); $client->company->save();
@ -622,6 +641,7 @@ trait GeneratesCounter
$settings->task_number_counter = 1; $settings->task_number_counter = 1;
$settings->expense_number_counter = 1; $settings->expense_number_counter = 1;
$settings->recurring_expense_number_counter =1; $settings->recurring_expense_number_counter =1;
$settings->purchase_order_number_counter = 1;
$company->settings = $settings; $company->settings = $settings;
$company->save(); $company->save();