税規則をプログラムで変更します - 税率の配列を設定します
-
16-10-2019 - |
質問
簡単なガイドとして以前の質問に従ってください:
税ルールをプログラムで作成する代わりに、既存のルール、特に「TAX_RULE」アレイ(この規則に有効な税率IDのリストが含まれる必要があります。
これらのレートは、次のことを使用して見つけることができます。
$ruleModel = Mage::getModel('tax/calculation_rule')->load($id);
Zend_Debug::dump($ruleModel->getRates());
これにより、この規則に適用される一連の税率IDを返す必要があります。
使用 $ruleModel->setRates($array)->save()
このルールを台無しにして、以前に保存されていた他の値(ルール名、優先度など)を削除します。
既存のレートモデルを単純にロードして、「tax_rate」フィールドを更新して追加の税率を含めるにはどうすればよいですか?既存の配列がある場合 array(5,7,9)
新しい値も含めるように配列を更新したいと思います。 array(5,7,9,15)
.
解決
他の誰かがこの質問に出くわして適切な答えを知らない限り、Magentoは金利を内部に保存しないようです tax/calculation_rule
代わりに tax/calculation
テーブル。ルールのレートがバックエンドで更新されると、Magentoはルールに関連付けられたテーブル内のすべての行をネイティブにドロップし、新しい行を作成します。これは、たとえその行の値が変更されていなくても、各行のID値が自動化されているという事実によって証明されています。
私の目標は、新しいレートを動的に作成し、既存のルールに追加することでした。私も動的に新しいルールを作成することを選択しました。この方法でDBでより多くのオーバーヘッドを作成する予定です(各税率には独自の税規則があります)が、私はそれについてきれいな方法を見ていません。