function uc_tax_rate_save in Ubercart 8.4
Saves a tax rate to the database.
Parameters
$rate: The tax rate object to be saved.
bool $reset: If TRUE, resets the Rules cache after saving. Defaults to TRUE.
Return value
The saved tax rate object including the rate ID for new rates.
2 calls to uc_tax_rate_save()
- InclusiveTaxTest::testProductKitAttributes in uc_tax/
tests/ src/ Functional/ InclusiveTaxTest.php - Test inclusive taxes with product kit attributes.
- StoredTaxTest::testTaxDisplay in uc_tax/
tests/ src/ Functional/ StoredTaxTest.php - Tests display of taxes.
File
- uc_tax/
uc_tax.module, line 208 - Ubercart Tax module.
Code
function uc_tax_rate_save($rate, $reset = TRUE) {
$connection = \Drupal::database();
$fields = [
'name' => $rate->name,
'rate' => $rate->rate,
'shippable' => $rate->shippable,
'weight' => $rate->weight,
'display_include' => $rate->display_include,
'inclusion_text' => $rate->inclusion_text,
];
if (isset($rate->id)) {
$connection
->merge('uc_tax')
->key('id', $rate->id)
->fields($fields)
->execute();
}
else {
$rate->id = $connection
->insert('uc_tax')
->fields($fields)
->execute();
}
$connection
->delete('uc_tax_taxed_product_types')
->condition('tax_id', $rate->id)
->execute();
$connection
->delete('uc_tax_taxed_line_items')
->condition('tax_id', $rate->id)
->execute();
$p_insert = $connection
->insert('uc_tax_taxed_product_types')
->fields([
'tax_id',
'type',
]);
$l_insert = $connection
->insert('uc_tax_taxed_line_items')
->fields([
'tax_id',
'type',
]);
foreach ($rate->taxed_product_types as $type) {
$p_insert
->values([
'tax_id' => $rate->id,
'type' => $type,
]);
}
foreach ($rate->taxed_line_items as $type) {
$l_insert
->values([
'tax_id' => $rate->id,
'type' => $type,
]);
}
$p_insert
->execute();
$l_insert
->execute();
// if ($reset) {
// // Ensure Rules picks up the new condition.
// entity_flush_caches();
// }
return $rate;
}