virtuemart "spropitné"
12. kvě 2021 15:49 #144329
mě to taky odchytilo, dík za připomenutí n3tDebug.
Nějaký ten trigger pro zobrazení by jsi věděl?
Odpověď od Ernst
Joomla Expert
sorry, chybička, už mi to tudy prochází, chyba byla až za klávesnicí
Ještě se zeptám, existuje nějaký trigger, který by mi mohl vypisovat částku spropitného v košíku? Tedy nějaký, který se spustí při přepočtu ceny a při změně toho spropitného.
mě to taky odchytilo, dík za připomenutí n3tDebug.
Nějaký ten trigger pro zobrazení by jsi věděl?
12. kvě 2021 19:12 #144330
existuje nějaký návod?
Odpověď od Ernst
Joomla Expert
Na ladění tohoto typu doporučuji n3t Debug
existuje nějaký návod?
13. kvě 2021 16:09 #144340
Já tohle neřešil, dýžko se zadává až jako poslední a nechtěl jsem aby kvůli tomu ještě uživatel znovu čekal na překreslení stránky.
Odpověď od Cony

Moderátor
To bys musel přes Javascript. A záleží pak jakých ckeckout používáš, jestli ten standardní z VM, nebo nějaký OPC.Ernst napsal: Nějaký ten trigger pro zobrazení by jsi věděl?
Já tohle neřešil, dýžko se zadává až jako poslední a nechtěl jsem aby kvůli tomu ještě uživatel znovu čekal na překreslení stránky.
Třída n3tDebug používá interně \Tracy\Debugger . Návod přímo k tomu pluginu do Joomly zatím není.Ernst napsal: existuje nějaký návod?
Poděkovali: Ernst
13. kvě 2021 22:05 - 13. kvě 2021 22:06 #144350
Odpověď od Ernst
Joomla Expert
to je jasný že přes js, jen jsem myslel nějaký trigger který funkcí zavolá javascript.
Stačí mi to pro standardní košík bez opc
Stačí mi to pro standardní košík bez opc
14. kvě 2021 02:00 #144351
Odpověď od Cony

Moderátor
No pak asi jednoduše onchange na tom inputu pro zpropitný...
17. kvě 2021 13:16 #144372
nevím, zda by to stačilo, mělo by se to přepočíst i při změně množství v košíku, protože se spropitné zadává v procentech, ale tohle nechávám stranou, není nutné vidět tu hodnotu v košíku.
Základ mám hotový, až to bude komplet, napíšu to zde nebo do článku pro ostatní zájemce.
Mám ale problém, kam uvést hodnotu spropitného.
Mi správně zvýší celkovou částku o to spropitné.
Nemohu však použít $order->order_billTaxAmount = $tip;, protože se zde pracuje s DPH a byl by v tom zmatek
Vytvořil jsem si vlastní daň TaxBill jako daň +, ale když do ní zapíšu spropitné, neuloží se, zůstane (nebo se přepíše) původní hodnota zadaná v dani.
Navíc mě udivuje, že ji nemohu ani uvést do poznámky objednávky,
mi to do poznámky nezapíše
Nemáte někdo nápad, jak z toho ven?
Odpověď od Ernst
Joomla Expert
Cony napsal: No pak asi jednoduše onchange na tom inputu pro zpropitný...
nevím, zda by to stačilo, mělo by se to přepočíst i při změně množství v košíku, protože se spropitné zadává v procentech, ale tohle nechávám stranou, není nutné vidět tu hodnotu v košíku.
Základ mám hotový, až to bude komplet, napíšu to zde nebo do článku pro ostatní zájemce.
Mám ale problém, kam uvést hodnotu spropitného.
Code:
$spr = (int)$order->tip / 100 * $order->order_salesPrice;
$order->order_total += $spr;
Nemohu však použít $order->order_billTaxAmount = $tip;, protože se zde pracuje s DPH a byl by v tom zmatek
Vytvořil jsem si vlastní daň TaxBill jako daň +, ale když do ní zapíšu spropitné, neuloží se, zůstane (nebo se přepíše) původní hodnota zadaná v dani.
Navíc mě udivuje, že ji nemohu ani uvést do poznámky objednávky,
Code:
$order->customer_note = $spr;
Nemáte někdo nápad, jak z toho ven?
18. kvě 2021 14:50 #144373
Odpověď od Cony

Moderátor
Nemám teď čas to zkontrolovat, tak jen z hlavy
- pokud si pamatuju dobře, order_billTaxAmount právě DPH neobsahuje, je to daň na objednávku, nebo jak tomu ve VM říkají, prostě něco co v ČR neexistuje, proto jsem to použil a jen přetextoval, abych nemusel upravovat hromady šablon
- šlo by samozřejmě přidat si políčko do databáze, nebo možná radši samostatnou tabulku a zapisovat hodnoty tam. Zobrazení by pak ale asi bylo složitější, buď úpravou šablony, nebo nějakým VM pluginem (ale tím si nejsem úplně jistý), to už se ale začíná nebezpečně blížit tomu obecnýmu řešení
- pokud si pamatuju dobře, order_billTaxAmount právě DPH neobsahuje, je to daň na objednávku, nebo jak tomu ve VM říkají, prostě něco co v ČR neexistuje, proto jsem to použil a jen přetextoval, abych nemusel upravovat hromady šablon
- šlo by samozřejmě přidat si políčko do databáze, nebo možná radši samostatnou tabulku a zapisovat hodnoty tam. Zobrazení by pak ale asi bylo složitější, buď úpravou šablony, nebo nějakým VM pluginem (ale tím si nejsem úplně jistý), to už se ale začíná nebezpečně blížit tomu obecnýmu řešení

Poděkovali: Ernst
18. kvě 2021 15:10 - 18. kvě 2021 15:15 #144374
Odpověď od Ernst
Joomla Expert
Bohužel $order->order_billTaxAmount právě obsahuje hodnotu DPH. Kdybych k ní spropitné přičetl byl by to zmatek, to nejde.
Vytvořil jsem si vlastní daň (TaxBill). V pluginu ji naplním spropitným, mám ji správně v orders.php v $_orderData, ale do objednávky se mi neuloží tato, ale ta původní (před změnou v pluginu).
jen pro zajímavost, kód je takhle:
Vytvořil jsem si vlastní daň (TaxBill). V pluginu ji naplním spropitným, mám ji správně v orders.php v $_orderData, ale do objednávky se mi neuloží tato, ale ta původní (před změnou v pluginu).
jen pro zajímavost, kód je takhle:
Code:
public function plgVmOnUserOrder(&$order) {
var_dump($order);
$dane = json_decode($order->order_billTax);
foreach ($dane as $key => $dan) {
if ($dan->calc_name == "Spropitné") {
$spr = (int)$order->tip / 100 * $order->order_salesPrice;
$order->order_total += $spr;
$dane->{$key}->result=$spr;
$dane->{$key}->calc_value=$spr;
$order->order_billTax = json_encode($dane);
}
}
return true;
}
18. kvě 2021 23:05 - 18. kvě 2021 23:05 #144375
Odpověď od Ernst
Joomla Expert
tak jsem pokročil o něco dál
ono se to vše správně do order_billTax v tabulce virtuemart_orders vše správně zapíše (tedy spropitné jako další daň).
Problém je jinde. V objednávce (backend, frondend, email) se ta daň nezobrazí odtud, ale ze spárované tabulky virtuemart_order_calc_rules.
Když tam hodnotu daně (spropitného) změním přímo v databázi, ta objednávka se zobrazuje tak jak chci.
Ale nevíte někdo, jak nastavením VM nebo tím pluginem dosáhnu změny v této tabulce?
Nebo jak udělat přepis /administrator/components/com_virtuemart/models/orders.php, protože mám obavu, že až zde budu muset provést ten zápis a byl bych rád aby to bylo upgradeodolné?
ono se to vše správně do order_billTax v tabulce virtuemart_orders vše správně zapíše (tedy spropitné jako další daň).
Problém je jinde. V objednávce (backend, frondend, email) se ta daň nezobrazí odtud, ale ze spárované tabulky virtuemart_order_calc_rules.
Když tam hodnotu daně (spropitného) změním přímo v databázi, ta objednávka se zobrazuje tak jak chci.
Ale nevíte někdo, jak nastavením VM nebo tím pluginem dosáhnu změny v této tabulce?
Nebo jak udělat přepis /administrator/components/com_virtuemart/models/orders.php, protože mám obavu, že až zde budu muset provést ten zápis a byl bych rád aby to bylo upgradeodolné?
21. kvě 2021 10:32 #144385
Odpověď od Ernst
Joomla Expert
Tak, plugin je hotov a funkční.
Trošku už se to začíná podobat out of box řešení, ale ještě vzdáleně.
Spropitné je přidáno jako daň typu TaxBill (Daň na účet). Tuto daň je nutné vytvořit ručně.
Vzhledem k tomu, že ji musím zapsat do tabulky virtuemart_order_calc_rules, tak pro její zápis používám ještě trigger plgVmConfirmedOrder.
Pro zadání výš spropitného slouží pole zákazníka. Zadání může být v % nebo jako částka v Kč.
Nevýhodou je, že částka spropitného se nezobrazuje v košíku, je až následně přidána k platbě. Možná tuto funkci ještě dodělám.
Pokud o toto řešení má někdo zájem, napište mi na email.
Trošku už se to začíná podobat out of box řešení, ale ještě vzdáleně.
Spropitné je přidáno jako daň typu TaxBill (Daň na účet). Tuto daň je nutné vytvořit ručně.
Vzhledem k tomu, že ji musím zapsat do tabulky virtuemart_order_calc_rules, tak pro její zápis používám ještě trigger plgVmConfirmedOrder.
Pro zadání výš spropitného slouží pole zákazníka. Zadání může být v % nebo jako částka v Kč.
Nevýhodou je, že částka spropitného se nezobrazuje v košíku, je až následně přidána k platbě. Možná tuto funkci ještě dodělám.
Pokud o toto řešení má někdo zájem, napište mi na email.
Poděkovali: Cony
21. kvě 2021 22:10 - 21. kvě 2021 22:10 #144392
Odpověď od Ernst
Joomla Expert
Ještě mám jeden dotaz. Co se dá zjistit v orderdone.php, tedy poděkování za objednávku.?
V $this nenajdu třeba id objednávky, neznáte někdo způsob jak zjistit něco co není v $this?
V $this nenajdu třeba id objednávky, neznáte někdo způsob jak zjistit něco co není v $this?
21. kvě 2021 22:41 #144393
Odpověď od Cony

Moderátor
Jojo, jeden z neduhů VM. VM z nějakého důvodu počítá s tím, že to vše řeší Payment plugin. To že pak při každém způsobu platby vypadá poděkování jinak, nebo že konverze je potřeba řešit u všech pluginů není nějak úplně domyšlené 
Osobně opět řeším opět systémovým pluginem, který ukládá ID objednávky do application input a v order done jej čtu odtamtud a objednávku si znovu nahraju.
Plugin
orderdone

Osobně opět řeším opět systémovým pluginem, který ukládá ID objednávky do application input a v order done jej čtu odtamtud a objednávku si znovu nahraju.
Plugin
Code:
public function plgVmOnUpdateOrderPayment($data) {
JFactory::getApplication()->input->set('virtuemart_order_id', $data->virtuemart_order_id);
}
orderdone
Code:
$order_id = JFactory::getApplication()->input->get('virtuemart_order_id');
if (!empty($order_id)) {
$orderModel = VmModel::getModel('orders');
$order = $orderModel->getOrder($order_id);
// konverze, poděkování a pod...
}
Poděkovali: Ernst
21. kvě 2021 22:53 - 21. kvě 2021 22:54 #144394
Odpověď od Ernst
Joomla Expert
Super elegantní řešení, tohle bych asi nevymyslel.
Běží to ok.
Díky moc, jsem dlužník.
Bude se to hodit i na jindy, protože děkovná stránka je dost chudá a často si zaslouží trochu rozšířit.
Běží to ok.
Díky moc, jsem dlužník.
Bude se to hodit i na jindy, protože děkovná stránka je dost chudá a často si zaslouží trochu rozšířit.
22. kvě 2021 23:52 - 22. kvě 2021 23:52 #144398
Odpověď od Ernst
Joomla Expert
dovolím se ještě jednou zeptat, netušíte jak do sublayout addtocart.php dostanu objekt košíku?
Nebo zda to vůbec jde.
Nebo zda to vůbec jde.