Preise¶
Preise eines Produktes laden¶
Mit dem Price Provider werden die Bestände für ein Produkt geladen.
$iid=2568;
$priceProvider=new \Alvine\Application\Platform\Plugin\Commerce\Item\Price\Provider();
$priceCollection=$priceProvider->getAvailablePriceFromIIDWithFactory($iid, new \Alvine\Application\Platform\Plugin\Commerce\Item\Price\Factory());
Die Price Strategy holt sich aus der Plugin Konfiguration die Strategie Factory, die wiederum die Strategie erstellt.
Die Factory bekommt die zuvor geladenen Preise.
$priceStrategyFactory->setPriceCollection($priceCollection);
Die Factory wird mit weiteren Informationen ereitert , die für das Berechnen der Preise berücksichtigt werden sollen
$priceStrategyFactory->setItemVariant('XL');
$priceStrategyFactory->setLocale(\Alvine\I18n\Locale::getInstance('de'));
$priceStrategyFactory->setCustomerUID(1235);
$priceStrategyFactory->setCompanySHID(1);
nun kann die Strategie erstellt werden
$priceStrategy=$priceStrategyFactory->createPriceStrategy();
nun kann der Preis und die Steuer ermittelt werden.
$price=$priceStrategy->getPrice();
$net=$priceStrategy->getNet()
$gross=$priceStrategy->getGross()
$vat=$priceStrategy->getVat()
Convertieren¶
Die Preise werden in der Datenbank als INT gespeichert. Die Netto und Brutto Werte kommen als Money Objekte da diese Berechnet werden müssen.
Die Umwandlung übernimmt der Converter.
Umwandlung in ein Price Objekt
$price = \Alvine\Application\Platform\Plugin\Commerce\Item\Price\Converter::toPrice($priceStrategy->getNet(), $price->getDigits());
/**
* Wert zum speichern in der Datenbank
*/
$value = $price->getAmount();
Umwandlung in ein Money Objekt
$money = \Alvine\Application\Platform\Plugin\Commerce\Item\Price\Converter::toMoney($price);
Steuern¶
Die Steuersätze werden in der Tabelle sh_finance_vat
zentral gespeichert.
Mindestkonfiguration¶
Folgende werte müssen gefüllt werden
sys_vat Steuersatz zum Beispiel 1900
sys_digits Anzahl der nachkommastellen Standart 2
sys_filter_mnemonic zum Beispiel de
weitere konfiguration¶
Die Steuersätze können pro IID oder Kategorie oder Benugtzerguppe definiert werden
sys_filter_item_IID
sys_filter_group_GID
sys_filter_item_category_CID
Über die Datumsfelder kann eine Gültigkeit inegstellt werden.
sys_filter_date_from
sys_filter_date_to
über das sys_ranking wird die Priorität definiert
laden der Steuern¶
Der Vat Provider braucht ein AlvineI18nLocale Objekt um die Steuern laden zu können.
Der Steuersatz wird mit einem AlvineMeasureAmount Objekt zurück geliefert.
$provider=new \Alvine\Application\Platform\Plugin\Commerce\Finance\Vat\Provider();
$provider->setLocale($this->locale);
$vat = $provider->getVat();