Modifier la règle fiscale Programmatically - ensemble fiscal tableau Taux
-
16-10-2019 - |
Question
Suite à une question précédente comme guide simple:
Comment créer programatically taux d'imposition
Au lieu de créer une règle fiscale programme, je voudrais modifier une règle existante, en particulier le tableau de « tax_rule » (qui devrait contenir une liste d'identifiants de taux d'imposition qui sont valables pour cette règle.
Ces taux peuvent être trouvés en utilisant:
$ruleModel = Mage::getModel('tax/calculation_rule')->load($id);
Zend_Debug::dump($ruleModel->getRates());
Cela devrait retourner un tableau d'ID de taux d'imposition qui s'appliquent à cette règle.
Utilisation $ruleModel->setRates($array)->save()
salit juste cette règle, la suppression d'autres valeurs qui ont été précédemment enregistrées (nom de la règle, la priorité, etc.).
Comment puis-je charger simplement un modèle de taux existant et mettre à jour le champ « TAX_RATE » inclure un taux d'imposition supplémentaire? Si le tableau existant est array(5,7,9)
Je voudrais mettre à jour le tableau d'inclure une nouvelle valeur et, par exemple array(5,7,9,15)
.
La solution
A moins que quelqu'un d'autre vient à travers cette question et connaît une bonne réponse, il semble que Magento ne stocke pas les taux à l'intérieur tax/calculation_rule
mais dans la table de tax/calculation
. Lorsque les taux d'une règle sont mis à jour dans le back-end, Magento baissera nativement toutes les lignes de la table associée à la règle et créer de nouveaux. Ceci est démontré par le fait que la valeur d'identification de chaque ligne est incrémenté automatiquement, même si aucune des valeurs de cette ligne a changé.
Mon objectif était d'avoir de nouveaux tarifs créés dynamiquement et ajoutés à une règle existante. Je l'ai choisi de simplement créer une nouvelle règle dynamique aussi. Il va créer plus de frais généraux dans le DB de cette façon (chaque taux d'imposition a sa propre règle fiscale), mais je ne vois pas une manière propre autour de cela.