diff --git a/htdocs/core/lib/payments.lib.php b/htdocs/core/lib/payments.lib.php index e5199ad50a8..a1e554fa28d 100644 --- a/htdocs/core/lib/payments.lib.php +++ b/htdocs/core/lib/payments.lib.php @@ -97,9 +97,10 @@ function payment_supplier_prepare_head(Paiement $object) { * @param Translate $langs Output language * @param int $addformmessage Add the payment form message * @param string $suffix Suffix to use on constants + * @param Object $object Object related to payment * @return void */ -function htmlPrintOnlinePaymentFooter($fromcompany,$langs,$addformmessage=0,$suffix='') +function htmlPrintOnlinePaymentFooter($fromcompany,$langs,$addformmessage=0,$suffix='',$object=null) { global $conf; @@ -156,10 +157,20 @@ function htmlPrintOnlinePaymentFooter($fromcompany,$langs,$addformmessage=0,$suf print '
'."\n"; if ($addformmessage) { + print ''; print '
'; + $parammessageform='ONLINE_PAYMENT_MESSAGE_FORM_'.$suffix; if (! empty($conf->global->$parammessageform)) print $conf->global->$parammessageform; else if (! empty($conf->global->ONLINE_PAYMENT_MESSAGE_FORM)) print $conf->global->ONLINE_PAYMENT_MESSAGE_FORM; + + // Add other message if VAT exists + if (! empty($object->total_vat) || ! empty($object->total_tva)) + { + $parammessageform='ONLINE_PAYMENT_MESSAGE_FORMIFVAT_'.$suffix; + if (! empty($conf->global->$parammessageform)) print $conf->global->$parammessageform; + else if (! empty($conf->global->ONLINE_PAYMENT_MESSAGE_FORMIFVAT)) print $conf->global->ONLINE_PAYMENT_MESSAGE_FORMIFVAT; + } } print '

'."\n"; diff --git a/htdocs/public/payment/newpayment.php b/htdocs/public/payment/newpayment.php index fc16f8c0a9d..620ac797818 100644 --- a/htdocs/public/payment/newpayment.php +++ b/htdocs/public/payment/newpayment.php @@ -66,6 +66,7 @@ $suffix=GETPOST("suffix",'aZ09'); $amount=price2num(GETPOST("amount",'alpha')); if (! GETPOST("currency",'alpha')) $currency=$conf->currency; else $currency=GETPOST("currency",'alpha'); +$source = GETPOST("source",'alpha'); if (! $action) { @@ -607,8 +608,11 @@ $found=false; $error=0; $var=false; +$object = null; + + // Free payment -if (! GETPOST("source")) +if (! $source) { $found=true; $tag=GETPOST("tag"); @@ -655,7 +659,7 @@ if (! GETPOST("source")) // Payment on customer order -if (GETPOST("source") == 'order') +if ($source == 'order') { $found=true; $langs->load("orders"); @@ -672,6 +676,8 @@ if (GETPOST("source") == 'order') else { $result=$order->fetch_thirdparty($order->socid); + + $object = $order; } if ($action != 'dopayment') // Do not change amount if we just click on first dopayment @@ -765,7 +771,7 @@ if (GETPOST("source") == 'order') // Payment on customer invoice -if (GETPOST("source") == 'invoice') +if ($source == 'invoice') { $found=true; $langs->load("bills"); @@ -782,6 +788,8 @@ if (GETPOST("source") == 'invoice') else { $result=$invoice->fetch_thirdparty($invoice->socid); + + $object = $invoice; } if ($action != 'dopayment') // Do not change amount if we just click on first dopayment @@ -874,7 +882,7 @@ if (GETPOST("source") == 'invoice') } // Payment on contract line -if (GETPOST("source") == 'contractline') +if ($source == 'contractline') { $found=true; $langs->load("contracts"); @@ -882,6 +890,7 @@ if (GETPOST("source") == 'contractline') require_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php'; $contractline=new ContratLigne($db); + $result=$contractline->fetch('',$ref); if ($result < 0) { @@ -892,6 +901,8 @@ if (GETPOST("source") == 'contractline') { if ($contractline->fk_contrat > 0) { + $object = $contractline; + $contract=new Contrat($db); $result=$contract->fetch($contractline->fk_contrat); if ($result > 0) @@ -914,7 +925,8 @@ if (GETPOST("source") == 'contractline') if ($action != 'dopayment') // Do not change amount if we just click on first dopayment { $amount=$contractline->total_ttc; - if ($contractline->fk_product) + + if ($contractline->fk_product && ! empty($conf->global-PAYMENT_USE_NEW_PRICE_FOR_CONTRACTLINES)) { $product=new Product($db); $result=$product->fetch($contractline->fk_product); @@ -940,6 +952,7 @@ if (GETPOST("source") == 'contractline') exit; } } + if (GETPOST("amount",'int')) $amount=GETPOST("amount",'int'); $amount=price2num($amount); } @@ -1072,7 +1085,7 @@ if (GETPOST("source") == 'contractline') } // Payment on member subscription -if (GETPOST("source") == 'membersubscription') +if ($source == 'membersubscription') { $found=true; $langs->load("members"); @@ -1089,6 +1102,8 @@ if (GETPOST("source") == 'membersubscription') } else { + $object = $member; + $subscription=new Subscription($db); } @@ -1446,8 +1461,7 @@ if (preg_match('/^dopayment/',$action)) } - -htmlPrintOnlinePaymentFooter($mysoc,$langs,1,$suffix); +htmlPrintOnlinePaymentFooter($mysoc,$langs,1,$suffix,$object); llxFooter('', 'public');