From 4b61f0d606d4a6bf2633e36d4410580ddfcd83d0 Mon Sep 17 00:00:00 2001 From: David Beniamine Date: Wed, 13 Mar 2019 11:56:21 +0100 Subject: [PATCH] Grouped VAT Add an option to group VAT by rate in receipt --- htdocs/langs/en_US/cashdesk.lang | 3 ++- htdocs/langs/fr_FR/cashdesk.lang | 1 + htdocs/takepos/admin/setup.php | 10 +++++++++- htdocs/takepos/receipt.php | 25 +++++++++++++++++++++++-- 4 files changed, 35 insertions(+), 4 deletions(-) diff --git a/htdocs/langs/en_US/cashdesk.lang b/htdocs/langs/en_US/cashdesk.lang index 83939e94187..411ba2b3dc5 100644 --- a/htdocs/langs/en_US/cashdesk.lang +++ b/htdocs/langs/en_US/cashdesk.lang @@ -55,4 +55,5 @@ Numberspad=Numbers Pad BillsCoinsPad=Bills and Coins Pad DolistorePosCategory=TakePOS modules and other POS solutions for Dolibarr TakeposNeedsCategories=TakePOS needs product categories to work -OrderNotes=Order Notes \ No newline at end of file +OrderNotes=Order Notes +TicketVatGrouped=Group VAT by rate in tickets diff --git a/htdocs/langs/fr_FR/cashdesk.lang b/htdocs/langs/fr_FR/cashdesk.lang index f588b04a751..74a5d9cb468 100644 --- a/htdocs/langs/fr_FR/cashdesk.lang +++ b/htdocs/langs/fr_FR/cashdesk.lang @@ -49,3 +49,4 @@ AmountAtEndOfPeriod=Montant en fin de période (jour, mois ou année) TheoricalAmount=Montant théorique RealAmount=Montant réel CashFenceDone=Clôture de caisse faite pour la période +TicketVatGrouped=Grouper la TVA par taux dans les tickets diff --git a/htdocs/takepos/admin/setup.php b/htdocs/takepos/admin/setup.php index c00fa060493..d80297d53a2 100644 --- a/htdocs/takepos/admin/setup.php +++ b/htdocs/takepos/admin/setup.php @@ -61,6 +61,7 @@ if (GETPOST('action', 'alpha') == 'set') $res = dolibarr_set_const($db, "TAKEPOSCONNECTOR", GETPOST('TAKEPOSCONNECTOR', 'alpha'), 'chaine', 0, '', $conf->entity); $res = dolibarr_set_const($db, "TAKEPOS_BAR_RESTAURANT", GETPOST('TAKEPOS_BAR_RESTAURANT', 'alpha'), 'chaine', 0, '', $conf->entity); + $res = dolibarr_set_const($db, "TAKEPOS_TICKET_VAT_GROUPPED", GETPOST('TAKEPOS_TICKET_VAT_GROUPPED', 'alpha'), 'chaine', 0, '', $conf->entity); $res = dolibarr_set_const($db, "TAKEPOS_PRINT_SERVER", GETPOST('TAKEPOS_PRINT_SERVER', 'alpha'), 'chaine', 0, '', $conf->entity); $res = dolibarr_set_const($db, "TAKEPOS_ORDER_PRINTERS", GETPOST('TAKEPOS_ORDER_PRINTERS', 'alpha'), 'chaine', 0, '', $conf->entity); $res = dolibarr_set_const($db, "TAKEPOS_ORDER_NOTES", GETPOST('TAKEPOS_ORDER_NOTES', 'alpha'), 'chaine', 0, '', $conf->entity); @@ -146,6 +147,7 @@ if ($conf->global->TAKEPOSCONNECTOR){ print ''; } + // Bar Restaurant mode print ''; print 'Bar Restaurant'; @@ -167,6 +169,12 @@ if ($conf->global->TAKEPOS_BAR_RESTAURANT && $conf->global->TAKEPOSCONNECTOR){ print ''; } +print ''; +print $langs->trans('TicketVatGrouped'); +print ''; +print $form->selectyesno("TAKEPOS_TICKET_VAT_GROUPPED", $conf->global->TAKEPOS_TICKET_VAT_GROUPPED, 1); +print "\n"; + // Payment numpad print ''; print $langs->trans("Paymentnumpad"); @@ -225,7 +233,7 @@ print "\n"; print ''.$langs->trans("CashDeskThirdPartyForSell").''; print ''; -print $form->select_company($conf->global->CASHDESK_ID_THIRDPARTY, 'socid', 's.client in (1,3) AND s.status = 1', 1, 0, 0, array(), 0); +print $form->select_company($conf->global->CASHDESK_ID_THIRDPARTY, 'socid', 's.client in (1, 3) AND s.status = 1', 1, 0, 0, array(), 0); print ''; if (! empty($conf->banque->enabled)) { diff --git a/htdocs/takepos/receipt.php b/htdocs/takepos/receipt.php index 1610dbb8c59..fb23120623a 100644 --- a/htdocs/takepos/receipt.php +++ b/htdocs/takepos/receipt.php @@ -103,11 +103,32 @@ print $object->ref; trans("TotalHT");?> total_ht, 1, '', 1, - 1, - 1, $conf->currency)."\n";?> +global->TAKEPOS_TICKET_VAT_GROUPPED):?> +lines as $line) + { + if(!array_key_exists($line->tva_tx, $vat_groups)){ + $vat_groups[$line->tva_tx] = 0; + } + $vat_groups[$line->tva_tx] += $line->total_tva; + } + foreach($vat_groups as $key => $val){ + ?> + + trans("VAT").' '.vatrate($key, 1);?> + currency)."\n";?> + + + - trans("TotalVAT").''.price($object->total_tva, 1, '', 1, - 1, - 1, $conf->currency)."\n";?> + trans("TotalVAT").''.price($object->total_tva, 1, '', 1, - 1, - 1, $conf->currency)."\n";?> + - trans("TotalTTC").''.price($object->total_ttc, 1, '', 1, - 1, - 1, $conf->currency)."\n";?> + trans("TotalTTC").''.price($object->total_ttc, 1, '', 1, - 1, - 1, $conf->currency)."\n";?>