Fixes for tax tests

This commit is contained in:
David Bomba 2023-04-07 19:51:17 +10:00
parent 231fdb00be
commit 4620120d38
3 changed files with 25 additions and 26 deletions

View File

@ -86,18 +86,16 @@ class Rule extends BaseRule implements RuleInterface
if ($this->client->is_tax_exempt) { if ($this->client->is_tax_exempt) {
return $this->taxExempt();
} elseif ($this->client->company->tax_data->regions->EU->tax_all) {
$this->tax_rate1 = $this->vat_rate;
$this->tax_name1 = "MwSt.";
return $this->taxExempt();
} elseif ($this->client->company->tax_data->regions->EU->tax_all_subregions || $this->client->company->tax_data->regions->EU->subregions->{$this->client_country_code}->apply_tax) {
$this->taxByType($type);
return $this; return $this;
} }
if ($type)
return $this->taxByType($type);
return $this; return $this;
@ -111,9 +109,6 @@ class Rule extends BaseRule implements RuleInterface
return $this->taxExempt(); return $this->taxExempt();
} }
if(!$product_tax_type)
return $this;
match($product_tax_type){ match($product_tax_type){
Product::PRODUCT_TYPE_EXEMPT => $this->taxExempt(), Product::PRODUCT_TYPE_EXEMPT => $this->taxExempt(),
Product::PRODUCT_TYPE_DIGITAL => $this->taxDigital(), Product::PRODUCT_TYPE_DIGITAL => $this->taxDigital(),
@ -146,29 +141,31 @@ class Rule extends BaseRule implements RuleInterface
public function taxDigital(): self public function taxDigital(): self
{ {
$this->tax(); // $this->tax();
return $this; return $this;
} }
public function taxService(): self public function taxService(): self
{ {
$this->tax(); // $this->tax();
return $this; return $this;
} }
public function taxShipping(): self public function taxShipping(): self
{ {
$this->tax(); // $this->tax();
return $this; return $this;
} }
public function taxPhysical(): self public function taxPhysical(): self
{ {
$this->tax(); // $this->tax();
$this->tax_rate1 = $this->vat_rate;
$this->tax_name1 = 'MwSt.';
return $this; return $this;
} }

View File

@ -53,7 +53,7 @@ class EuTaxTest extends TestCase
$tax_data->seller_region = 'DE'; $tax_data->seller_region = 'DE';
$tax_data->seller_subregion = 'DE'; $tax_data->seller_subregion = 'DE';
$tax_data->regions->EU->has_sales_above_threshold = true; $tax_data->regions->EU->has_sales_above_threshold = true;
$tax_data->regions->EU->tax_all = true; $tax_data->regions->EU->tax_all_subregions = true;
$company = Company::factory()->create([ $company = Company::factory()->create([
'account_id' => $this->account->id, 'account_id' => $this->account->id,
@ -90,6 +90,7 @@ class EuTaxTest extends TestCase
'tax_name3' => '', 'tax_name3' => '',
'tax_rate3' => 0, 'tax_rate3' => 0,
'type_id' => '1', 'type_id' => '1',
'tax_id' => 1
], ],
], ],
'tax_rate1' => 0, 'tax_rate1' => 0,
@ -116,7 +117,7 @@ class EuTaxTest extends TestCase
$tax_data->seller_region = 'DE'; $tax_data->seller_region = 'DE';
$tax_data->seller_subregion = 'DE'; $tax_data->seller_subregion = 'DE';
$tax_data->regions->EU->has_sales_above_threshold = true; $tax_data->regions->EU->has_sales_above_threshold = true;
$tax_data->regions->EU->tax_all = true; $tax_data->regions->EU->tax_all_subregions = true;
$company = Company::factory()->create([ $company = Company::factory()->create([
'account_id' => $this->account->id, 'account_id' => $this->account->id,
@ -131,6 +132,7 @@ class EuTaxTest extends TestCase
'country_id' => 56, 'country_id' => 56,
'shipping_country_id' => 56, 'shipping_country_id' => 56,
'has_valid_vat_number' => true, 'has_valid_vat_number' => true,
'is_tax_exempt' => false,
]); ]);
$invoice = Invoice::factory()->create([ $invoice = Invoice::factory()->create([
@ -180,7 +182,7 @@ class EuTaxTest extends TestCase
$tax_data->seller_region = 'DE'; $tax_data->seller_region = 'DE';
$tax_data->seller_subregion = 'DE'; $tax_data->seller_subregion = 'DE';
$tax_data->regions->EU->has_sales_above_threshold = true; $tax_data->regions->EU->has_sales_above_threshold = true;
$tax_data->regions->EU->tax_all = true; $tax_data->regions->EU->tax_all_subregions = true;
$company = Company::factory()->create([ $company = Company::factory()->create([
'account_id' => $this->account->id, 'account_id' => $this->account->id,
@ -217,6 +219,7 @@ class EuTaxTest extends TestCase
'tax_name3' => '', 'tax_name3' => '',
'tax_rate3' => 0, 'tax_rate3' => 0,
'type_id' => '1', 'type_id' => '1',
'tax_id' => 1,
], ],
], ],
'tax_rate1' => 0, 'tax_rate1' => 0,
@ -246,7 +249,7 @@ class EuTaxTest extends TestCase
$tax_data->seller_region = 'DE'; $tax_data->seller_region = 'DE';
$tax_data->seller_subregion = 'DE'; $tax_data->seller_subregion = 'DE';
$tax_data->regions->EU->has_sales_above_threshold = true; $tax_data->regions->EU->has_sales_above_threshold = true;
$tax_data->regions->EU->tax_all = true; $tax_data->regions->EU->tax_all_subregions = true;
$company = Company::factory()->create([ $company = Company::factory()->create([
'account_id' => $this->account->id, 'account_id' => $this->account->id,
@ -291,7 +294,7 @@ class EuTaxTest extends TestCase
$tax_data->seller_region = 'DE'; $tax_data->seller_region = 'DE';
$tax_data->seller_subregion = 'DE'; $tax_data->seller_subregion = 'DE';
$tax_data->regions->EU->has_sales_above_threshold = true; $tax_data->regions->EU->has_sales_above_threshold = true;
$tax_data->regions->EU->tax_all = true; $tax_data->regions->EU->tax_all_subregions = true;
$company = Company::factory()->create([ $company = Company::factory()->create([
'account_id' => $this->account->id, 'account_id' => $this->account->id,
@ -376,7 +379,7 @@ class EuTaxTest extends TestCase
$tax_data->seller_region = 'DE'; $tax_data->seller_region = 'DE';
$tax_data->seller_subregion = 'DE'; $tax_data->seller_subregion = 'DE';
$tax_data->regions->EU->has_sales_above_threshold = false; $tax_data->regions->EU->has_sales_above_threshold = false;
$tax_data->regions->EU->tax_all = true; $tax_data->regions->EU->tax_all_subregions = true;
$company = Company::factory()->create([ $company = Company::factory()->create([
'account_id' => $this->account->id, 'account_id' => $this->account->id,
@ -418,7 +421,7 @@ class EuTaxTest extends TestCase
$tax_data->seller_region = 'DE'; $tax_data->seller_region = 'DE';
$tax_data->seller_subregion = 'DE'; $tax_data->seller_subregion = 'DE';
$tax_data->regions->EU->has_sales_above_threshold = false; $tax_data->regions->EU->has_sales_above_threshold = false;
$tax_data->regions->EU->tax_all = true; $tax_data->regions->EU->tax_all_subregions = true;
$company = Company::factory()->create([ $company = Company::factory()->create([
'account_id' => $this->account->id, 'account_id' => $this->account->id,
@ -459,7 +462,7 @@ class EuTaxTest extends TestCase
$tax_data->seller_region = 'DE'; $tax_data->seller_region = 'DE';
$tax_data->seller_subregion = 'DE'; $tax_data->seller_subregion = 'DE';
$tax_data->regions->EU->has_sales_above_threshold = false; $tax_data->regions->EU->has_sales_above_threshold = false;
$tax_data->regions->EU->tax_all = true; $tax_data->regions->EU->tax_all_subregions = true;
$company = Company::factory()->create([ $company = Company::factory()->create([
'account_id' => $this->account->id, 'account_id' => $this->account->id,
@ -499,7 +502,7 @@ class EuTaxTest extends TestCase
$tax_data->seller_region = 'DE'; $tax_data->seller_region = 'DE';
$tax_data->seller_subregion = 'DE'; $tax_data->seller_subregion = 'DE';
$tax_data->regions->EU->has_sales_above_threshold = false; $tax_data->regions->EU->has_sales_above_threshold = false;
$tax_data->regions->EU->tax_all = true; $tax_data->regions->EU->tax_all_subregions = true;
$company = Company::factory()->create([ $company = Company::factory()->create([
'account_id' => $this->account->id, 'account_id' => $this->account->id,
@ -540,7 +543,7 @@ class EuTaxTest extends TestCase
$tax_data->seller_region = 'DE'; $tax_data->seller_region = 'DE';
$tax_data->seller_subregion = 'DE'; $tax_data->seller_subregion = 'DE';
$tax_data->regions->EU->has_sales_above_threshold = false; $tax_data->regions->EU->has_sales_above_threshold = false;
$tax_data->regions->EU->tax_all = true; $tax_data->regions->EU->tax_all_subregions = true;
$company = Company::factory()->create([ $company = Company::factory()->create([
'account_id' => $this->account->id, 'account_id' => $this->account->id,
@ -581,7 +584,7 @@ class EuTaxTest extends TestCase
$tax_data->seller_region = 'DE'; $tax_data->seller_region = 'DE';
$tax_data->seller_subregion = 'DE'; $tax_data->seller_subregion = 'DE';
$tax_data->regions->EU->has_sales_above_threshold = false; $tax_data->regions->EU->has_sales_above_threshold = false;
$tax_data->regions->EU->tax_all = true; $tax_data->regions->EU->tax_all_subregions = true;
$company = Company::factory()->create([ $company = Company::factory()->create([
'account_id' => $this->account->id, 'account_id' => $this->account->id,

View File

@ -203,7 +203,6 @@ class UsTaxTest extends TestCase
$client->is_tax_exempt = true; $client->is_tax_exempt = true;
$client->save(); $client->save();
$company = $invoice->company; $company = $invoice->company;
$tax_data = $company->tax_data; $tax_data = $company->tax_data;