From 8102ae6705d8d553abed5937106f682eb5e024ec Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 25 Mar 2018 18:25:52 +0200 Subject: [PATCH] Work on setup for vat of product payments --- htdocs/admin/taxes.php | 91 +++++++++++++++++++++++------------ htdocs/langs/en_US/admin.lang | 4 +- 2 files changed, 62 insertions(+), 33 deletions(-) diff --git a/htdocs/admin/taxes.php b/htdocs/admin/taxes.php index 5e276d5b972..0374e3c8e42 100644 --- a/htdocs/admin/taxes.php +++ b/htdocs/admin/taxes.php @@ -72,35 +72,38 @@ if ($action == 'update') { switch ($tax_mode) { case 0: - $value = 'payment'; + $valuesellproduct = 'invoice'; + $valuebuyproduct = 'invoice'; + $valuesellservice = 'payment'; + $valuebuyservice = 'payment'; break; case 1: - $value = 'invoice'; + $valuesellproduct = 'invoice'; + $valuebuyproduct = 'invoice'; + $valuesellservice = 'invoice'; + $valuebuyservice = 'invoice'; + break; + case 2: + $valuesellproduct = 'payment'; + $valuebuyproduct = 'payment'; + $valuesellservice = 'payment'; + $valuebuyservice = 'payment'; break; } - $res = dolibarr_set_const($db, 'TAX_MODE_SELL_PRODUCT', 'invoice','chaine',0,'',$conf->entity); + $res = dolibarr_set_const($db, 'TAX_MODE_SELL_PRODUCT', $valuesellproduct,'chaine',0,'',$conf->entity); if (! $res > 0) $error++; - $res = dolibarr_set_const($db, 'TAX_MODE_BUY_PRODUCT', 'invoice','chaine',0,'',$conf->entity); + $res = dolibarr_set_const($db, 'TAX_MODE_BUY_PRODUCT', $valuebuyproduct,'chaine',0,'',$conf->entity); if (! $res > 0) $error++; - $res = dolibarr_set_const($db, 'TAX_MODE_SELL_SERVICE', $value,'chaine',0,'',$conf->entity); + $res = dolibarr_set_const($db, 'TAX_MODE_SELL_SERVICE', $valuesellservice, 'chaine',0,'',$conf->entity); if (! $res > 0) $error++; - $res = dolibarr_set_const($db, 'TAX_MODE_BUY_SERVICE', $value,'chaine',0,'',$conf->entity); + $res = dolibarr_set_const($db, 'TAX_MODE_BUY_SERVICE', $valuebuyservice, 'chaine',0,'',$conf->entity); if (! $res > 0) $error++; dolibarr_set_const($db, "MAIN_INFO_TVAINTRA", GETPOST("tva",'alpha'),'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_INFO_VAT_RETURN", GETPOST("MAIN_INFO_VAT_RETURN",'alpha'),'chaine',0,'',$conf->entity); - // Others options - foreach ($list as $constname) { - $constvalue = GETPOST($constname, 'alpha'); - - if (!dolibarr_set_const($db, $constname, $constvalue, 'chaine', 0, '', $conf->entity)) { - $error++; - } - } - if (! $error) { $db->commit(); setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); @@ -153,10 +156,11 @@ else else { print ''; - $listval=array('0'=>$langs->trans(""), - '1'=>$langs->trans("Monthly"), - '2'=>$langs->trans("Quarterly"), - '3'=>$langs->trans("Annual"), + $listval=array( + '0'=>$langs->trans(""), + '1'=>$langs->trans("Monthly"), + '2'=>$langs->trans("Quarterly"), + '3'=>$langs->trans("Annual"), ); print $form->selectarray("MAIN_INFO_VAT_RETURN", $listval, $conf->global->MAIN_INFO_VAT_RETURN); print ""; @@ -173,54 +177,77 @@ else print ''; print ''.$langs->trans('OptionVatMode').''.$langs->trans('Description').''; print "\n"; - print ' '.$langs->trans('OptionVATDefault').''; + // Standard + print ' '.$langs->trans('OptionVATDefault').''; print ''.nl2br($langs->trans('OptionVatDefaultDesc')); print "\n"; - print ' '.$langs->trans('OptionVATDebitOption').''; + // On debit for services + print ' '.$langs->trans('OptionVATDebitOption').''; print ''.nl2br($langs->trans('OptionVatDebitOptionDesc'))."\n"; - + // On payment for both products and services + if ($conf->global->MAIN_FEATURES_LEVEL >= 1) + { + print ' '.$langs->trans('OptionPaymentForProductAndServices').''; + print ''.nl2br($langs->trans('OptionPaymentForProductAndServicesDesc'))."\n"; + } print "\n"; print '
'; - print ' -> '.$langs->trans("SummaryOfVatExigibilityUsedByDefault"); + print load_fiche_titre('', '', '', 0, 0, '', '-> '.$langs->trans("SummaryOfVatExigibilityUsedByDefault")); //print ' ('.$langs->trans("CanBeChangedWhenMakingInvoice").')'; print ''; - print ''; + print ''; // Products print ''; print ''; print ''; // Services print ''; print ''; print '
 '.$langs->trans("Buy").''.$langs->trans("Sell").'
 '.$langs->trans("Buy").''.$langs->trans("Sell").'
'.$langs->trans("Product").''; - print $langs->trans("OnDelivery"); - print ' ('.$langs->trans("SupposedToBeInvoiceDate").')'; + if ($conf->global->TAX_MODE_BUY_PRODUCT == 'payment') + { + print $langs->trans("OnPayment"); + print ' ('.$langs->trans("SupposedToBePaymentDate").')'; + } + else + { + print $langs->trans("OnDelivery"); + print ' ('.$langs->trans("SupposedToBeInvoiceDate").')'; + } print ''; - print $langs->trans("OnDelivery"); - print ' ('.$langs->trans("SupposedToBeInvoiceDate").')'; + if ($conf->global->TAX_MODE_SELL_PRODUCT == 'payment') + { + print $langs->trans("OnPayment"); + print ' ('.$langs->trans("SupposedToBePaymentDate").')'; + } + else + { + print $langs->trans("OnDelivery"); + print ' ('.$langs->trans("SupposedToBeInvoiceDate").')'; + } print '
'.$langs->trans("Services").''; - if ($tax_mode == 0) + if ($conf->global->TAX_MODE_BUY_SERVICE == 'payment') { print $langs->trans("OnPayment"); print ' ('.$langs->trans("SupposedToBePaymentDate").')'; } - if ($tax_mode == 1) + else { print $langs->trans("OnInvoice"); print ' ('.$langs->trans("InvoiceDateUsed").')'; } print ''; - if ($tax_mode == 0) + if ($conf->global->TAX_MODE_SELL_SERVICE == 'payment') { print $langs->trans("OnPayment"); print ' ('.$langs->trans("SupposedToBePaymentDate").')'; } - if ($tax_mode == 1) + else { print $langs->trans("OnInvoice"); print ' ('.$langs->trans("InvoiceDateUsed").')'; diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index ac3e27a7166..be46a1e15c8 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -1546,10 +1546,12 @@ FailedToInitializeMenu=Failed to initialize menu ##### Tax ##### TaxSetup=Taxes, social or fiscal taxes and dividends module setup OptionVatMode=VAT due -OptionVATDefault=Cash basis +OptionVATDefault=Standard basis OptionVATDebitOption=Accrual basis OptionVatDefaultDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on payments for services OptionVatDebitOptionDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on invoice (debit) for services +OptionPaymentForProductAndServices=Cash basis for products and services +OptionPaymentForProductAndServicesDesc=VAT is due:
- on payment for goods
- on payments for services SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option: OnDelivery=On delivery OnPayment=On payment