Изменить программно изменение налогового правила - установить массив налоговых ставок

magento.stackexchange https://magento.stackexchange.com/questions/6936

  •  16-10-2019
  •  | 
  •  

Вопрос

После предыдущего вопроса в качестве простого руководства:

Как программатически создавать налоговые ставки

Вместо того, чтобы создавать налоговое правило программно, я хотел бы изменить существующее правило, в частности, массив «TAME_RULE» (который должен содержать список идентификаторов налоговой ставки, которые действительны для этого правила.

Эти ставки можно найти с помощью:

$ruleModel = Mage::getModel('tax/calculation_rule')->load($id);
Zend_Debug::dump($ruleModel->getRates());

Это должно вернуть массив идентификаторов налоговой ставки, которые применяются к этому правилу.

С использованием $ruleModel->setRates($array)->save() Просто испортит это правило, удаляя другие значения, которые были ранее сохранены (имя правила, приоритет и т. Д.).

Как я могу просто загрузить существующую модель ставки и обновить поле «Tax_Rate», чтобы включить дополнительную налоговую ставку? Если существующий массив array(5,7,9) Я хотел бы обновить массив, чтобы включить новое значение, т.е. array(5,7,9,15).

Это было полезно?

Решение

Если кто -то другой не столкнется с этим вопросом и не знает правильного ответа, кажется, что Magento не хранит ставки внутри tax/calculation_rule но вместо этого в tax/calculation стол. Когда ставки правила обновляются в бэкэнде, Magento изначально отбросит все строки в таблице, связанные с правилом, и создаст новые. Об этом свидетельствует тот факт, что значение идентификатора каждой строки автоматически вводится, даже если ни одно из значений этой строки не изменилось.

Моя цель состояла в том, чтобы создать новые ставки динамически, а затем добавить к существующему правилу. Я также решил просто создать новое правило динамически. Таким образом, он создаст больше накладных расходов в БД (каждая налоговая ставка имеет свое собственное налоговое правило), но я не вижу этого чистого пути.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top