Updated mock data for templates

This commit is contained in:
David Bomba 2025-01-24 13:23:15 +11:00
parent a703b99fc0
commit 1bfcd22b34
4 changed files with 77 additions and 10 deletions

File diff suppressed because one or more lines are too long

View File

@ -534,14 +534,15 @@ trait GeneratesCounter
$reset_counter_frequency = (int) $client->getSetting('reset_counter_frequency_id');
$settings_entity = $client->getSettingEntity('reset_counter_frequency_id');
$settings = $settings_entity->settings;
if ($reset_counter_frequency == 0) {
if ($client->getSetting('reset_counter_date')) {
$settings->reset_counter_date = "";
$settings_entity->settings = $settings;
$settings_entity->saveQuietly();
}
return;
}

View File

@ -154,7 +154,7 @@ class VendorHtmlEngine
$data['$entity'] = ['value' => '', 'label' => ctrans('texts.purchase_order')];
$data['$number'] = ['value' => $this->entity->number ?: ' ', 'label' => ctrans('texts.number')];
$data['$number_short'] = ['value' => $this->entity->number ?: ' ', 'label' => ctrans('texts.purchase_order_number_short')];
$data['$entity.terms'] = ['value' => Helpers::processReservedKeywords(\nl2br($this->entity->terms), $this->company) ?: '', 'label' => ctrans('texts.invoice_terms')];
$data['$entity.terms'] = ['value' => Helpers::processReservedKeywords(\nl2br($this->entity->terms ?? ''), $this->company) ?: '', 'label' => ctrans('texts.invoice_terms')];
$data['$terms'] = &$data['$entity.terms'];
$data['$view_link'] = ['value' => $this->buildViewButton($this->invitation->getLink(), ctrans('texts.view_purchase_order')), 'label' => ctrans('texts.view_purchase_order')];
$data['$viewLink'] = &$data['$view_link'];
@ -404,7 +404,7 @@ class VendorHtmlEngine
$data['$item'] = ['value' => '', 'label' => ctrans('texts.item')];
$data['$description'] = ['value' => '', 'label' => ctrans('texts.description')];
$data['$entity_footer'] = ['value' => Helpers::processReservedKeywords(\nl2br($this->entity->footer), $this->company), 'label' => ''];
$data['$entity_footer'] = ['value' => Helpers::processReservedKeywords(\nl2br($this->entity->footer ??''), $this->company), 'label' => ''];
$data['$footer'] = &$data['$entity_footer'];
$data['$page_size'] = ['value' => $this->settings->page_size, 'label' => ''];

View File

@ -56,6 +56,72 @@ class GeneratesCounterTest extends TestCase
$this->makeTestData();
}
public function testResetCounterFromClientCounter()
{
$settings = CompanySettings::defaults();
$settings->reset_counter_date = "2026-01-01";
$settings->reset_counter_frequency_id = "10";
$settings->invoice_number_pattern = '{$client_id_number}/{$year}-{$client_counter}';
$company = Company::factory()->create([
'account_id' => $this->account->id,
]);
$client = Client::factory()->create([
'company_id' => $company->id,
'user_id' => $this->user->id,
'id_number' => 'IDNUMBER',
'settings' => $settings,
]);
$this->assertEquals("10", $client->getSetting('reset_counter_frequency_id'));
$this->assertEquals("2026-01-01", $client->getSetting('reset_counter_date'));
$invoice = Invoice::factory()->create([
'client_id' => $client->id,
'company_id' => $company->id,
'user_id' => $this->user->id,
]);
$this->travelTo('2025-02-01');
$invoice->number = null;
$invoice->status_id = Invoice::STATUS_DRAFT;
$invoice->save();
$this->travelTo('2025-02-01');
$invoice->number = null;
$invoice->status_id = Invoice::STATUS_DRAFT;
$invoice->save();
$invoice = $invoice->service()->markSent()->save();
$this->assertNotNull($invoice->number);
$this->assertEquals("IDNUMBER/2025-0001", $invoice->number);
$this->travelTo('2026-02-01');
$invoice = Invoice::factory()->create([
'client_id' => $client->id,
'company_id' => $company->id,
'user_id' => $this->user->id,
]);
$invoice->number = null;
$invoice->status_id = Invoice::STATUS_DRAFT;
$invoice->save();
$invoice = $invoice->service()->markSent()->save();
$this->assertEquals("IDNUMBER/2026-0001", $invoice->number);
}
public function testAnnualCounterResetLogic()
{
$settings = CompanySettings::defaults();