diff --git a/htdocs/comm/propal/card.php b/htdocs/comm/propal/card.php
index a09485e0a9a..1b685825a13 100644
--- a/htdocs/comm/propal/card.php
+++ b/htdocs/comm/propal/card.php
@@ -1458,17 +1458,13 @@ if ($action == 'create')
// Ligne info remises tiers
print '
| ' . $langs->trans('Discounts') . ' | ';
- if ($soc->remise_percent)
- print $langs->trans("CompanyHasRelativeDiscount", $soc->remise_percent);
- else
- print $langs->trans("CompanyHasNoRelativeDiscount");
+
$absolute_discount = $soc->getAvailableDiscounts();
- print '. ';
- if ($absolute_discount)
- print $langs->trans("CompanyHasAbsoluteDiscount", price($absolute_discount, 0, $langs, 1, -1, -1, $conf->currency));
- else
- print $langs->trans("CompanyHasNoAbsoluteDiscount");
- print '.';
+
+ $thirdparty = $soc;
+ $discount_type = 0;
+ $backtopage = urlencode($_SERVER["PHP_SELF"] . '?socid=' . $thirdparty->id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid'));
+ include DOL_DOCUMENT_ROOT.'/core/tpl/object_discounts.tpl.php';
print ' |
';
}
@@ -1884,29 +1880,17 @@ if ($action == 'create')
}
print '| ' . $langs->trans('Discounts') . ' | ';
- if ($soc->remise_percent)
- print $langs->trans("CompanyHasRelativeDiscount", $soc->remise_percent);
- else
- print $langs->trans("CompanyHasNoRelativeDiscount");
- print '. ';
+
$absolute_discount = $soc->getAvailableDiscounts('', $filterabsolutediscount);
$absolute_creditnote = $soc->getAvailableDiscounts('', $filtercreditnote);
$absolute_discount = price2num($absolute_discount, 'MT');
$absolute_creditnote = price2num($absolute_creditnote, 'MT');
- if ($absolute_discount) {
- if ($object->statut > Propal::STATUS_DRAFT) {
- print $langs->trans("CompanyHasAbsoluteDiscount", price($absolute_discount, 0, $langs, 0, 0, -1, $conf->currency));
- } else {
- // Remise dispo de type non avoir
- print ' ';
- $form->form_remise_dispo($_SERVER["PHP_SELF"] . '?id=' . $object->id, 0, 'remise_id', $soc->id, $absolute_discount, $filterabsolutediscount, 0, '', 1);
- }
- }
- if ($absolute_creditnote) {
- print $langs->trans("CompanyHasCreditNote", price($absolute_creditnote, 0, $langs, 0, 0, -1, $conf->currency)) . '. ';
- }
- if (! $absolute_discount && ! $absolute_creditnote)
- print $langs->trans("CompanyHasNoAbsoluteDiscount") . '.';
+
+ $thirdparty = $soc;
+ $discount_type = 0;
+ $backtopage = urlencode($_SERVER["PHP_SELF"] . '?id=' . $object->id);
+ include DOL_DOCUMENT_ROOT.'/core/tpl/object_discounts.tpl.php';
+
print ' |
';
// Date of proposal
diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php
index dabd44ae448..cf70d422130 100644
--- a/htdocs/commande/card.php
+++ b/htdocs/commande/card.php
@@ -1558,17 +1558,14 @@ if ($action == 'create' && $user->rights->commande->creer)
// Ligne info remises tiers
print '| ' . $langs->trans('Discounts') . ' | ';
- if ($soc->remise_percent)
- print $langs->trans("CompanyHasRelativeDiscount", $soc->remise_percent);
- else
- print $langs->trans("CompanyHasNoRelativeDiscount");
- print '. ';
+
$absolute_discount = $soc->getAvailableDiscounts();
- if ($absolute_discount)
- print $langs->trans("CompanyHasAbsoluteDiscount", price($absolute_discount), $langs->trans("Currency" . $conf->currency));
- else
- print $langs->trans("CompanyHasNoAbsoluteDiscount");
- print '.';
+
+ $thirdparty = $soc;
+ $discount_type = 0;
+ $backtopage = urlencode($_SERVER["PHP_SELF"] . '?socid=' . $thirdparty->id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid'));
+ include DOL_DOCUMENT_ROOT.'/core/tpl/object_discounts.tpl.php';
+
print ' |
';
}
// Date
@@ -2052,29 +2049,17 @@ if ($action == 'create' && $user->rights->commande->creer)
$addcreditnote = 'id . '">' . $langs->trans("AddCreditNote") . '';
print '| ' . $langs->trans('Discounts') . ' | ';
- if ($soc->remise_percent)
- print $langs->trans("CompanyHasRelativeDiscount", $soc->remise_percent);
- else
- print $langs->trans("CompanyHasNoRelativeDiscount");
- print '. ';
+
$absolute_discount = $soc->getAvailableDiscounts('', $filterabsolutediscount);
$absolute_creditnote = $soc->getAvailableDiscounts('', $filtercreditnote);
$absolute_discount = price2num($absolute_discount, 'MT');
$absolute_creditnote = price2num($absolute_creditnote, 'MT');
- if ($absolute_discount) {
- if ($object->statut > Commande::STATUS_DRAFT) {
- print $langs->trans("CompanyHasAbsoluteDiscount", price($absolute_discount), $langs->transnoentities("Currency" . $conf->currency));
- } else {
- // Remise dispo de type remise fixe (not credit note)
- print ' ';
- $form->form_remise_dispo($_SERVER["PHP_SELF"] . '?id=' . $object->id, 0, 'remise_id', $soc->id, $absolute_discount, $filterabsolutediscount, 0, '', 1);
- }
- }
- if ($absolute_creditnote) {
- print $langs->trans("CompanyHasCreditNote", price($absolute_creditnote), $langs->transnoentities("Currency" . $conf->currency)) . '. ';
- }
- if (! $absolute_discount && ! $absolute_creditnote)
- print $langs->trans("CompanyHasNoAbsoluteDiscount") . '.';
+
+ $thirdparty = $soc;
+ $discount_type = 0;
+ $backtopage = urlencode($_SERVER["PHP_SELF"] . '?id=' . $object->id);
+ include DOL_DOCUMENT_ROOT.'/core/tpl/object_discounts.tpl.php';
+
print ' |
';
// Date
diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php
index 5062bc88f99..4ee9658c456 100644
--- a/htdocs/compta/facture/card.php
+++ b/htdocs/compta/facture/card.php
@@ -2699,19 +2699,12 @@ if ($action == 'create')
{
// Discounts for third party
print '| ' . $langs->trans('Discounts') . ' | ';
- if ($soc->remise_percent)
- print $langs->trans("CompanyHasRelativeDiscount", 'id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid')) . '">' . $soc->remise_percent . '');
- else
- print $langs->trans("CompanyHasNoRelativeDiscount");
- print ' id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid')) . '">(' . $langs->trans("EditRelativeDiscount") . ')';
- print '. ';
- print ' ';
- if ($absolute_discount)
- print $langs->trans("CompanyHasAbsoluteDiscount", 'id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid')) . '">' . price($absolute_discount) . '', $langs->trans("Currency" . $conf->currency));
- else
- print $langs->trans("CompanyHasNoAbsoluteDiscount");
- print ' id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid')) . '">(' . $langs->trans("EditGlobalDiscounts") . ')';
- print '.';
+
+ $thirdparty = $soc;
+ $discount_type = 0;
+ $backtopage = urlencode($_SERVER["PHP_SELF"] . '?socid=' . $thirdparty->id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid'));
+ include DOL_DOCUMENT_ROOT.'/core/tpl/object_discounts.tpl.php';
+
print ' |
';
}
@@ -3363,84 +3356,14 @@ else if ($id > 0 || ! empty($ref))
print '';
// Relative and absolute discounts
- $addrelativediscount = 'id . '">' . $langs->trans("EditRelativeDiscounts") . '';
- $addabsolutediscount = 'id . '">' . $langs->trans("EditGlobalDiscounts") . '';
- $addcreditnote = 'id . '">' . $langs->trans("AddCreditNote") . '';
- $viewabsolutediscount = 'id . '">' . $langs->trans("ViewAvailableGlobalDiscounts") . '';
-
print '| ' . $langs->trans('Discounts');
- print ' | ';
- if ($soc->remise_percent)
- print $langs->trans("CompanyHasRelativeDiscount", $soc->remise_percent);
- else
- print $langs->trans("CompanyHasNoRelativeDiscount");
- // print ' ('.$addrelativediscount.')';
- // Is there is commercial discount or down payment available ?
- if ($absolute_discount > 0) {
- print '. ';
- if ($object->statut > 0 || $object->type == Facture::TYPE_CREDIT_NOTE || $object->type == Facture::TYPE_DEPOSIT) {
- if ($object->statut == 0) {
- print $langs->trans("CompanyHasAbsoluteDiscount", price($absolute_discount), $langs->transnoentities("Currency" . $conf->currency));
- print '. ';
- } else {
- if ($object->statut < 1 || $object->type == Facture::TYPE_CREDIT_NOTE || $object->type == Facture::TYPE_DEPOSIT) {
- $text = $langs->trans("CompanyHasAbsoluteDiscount", price($absolute_discount), $langs->transnoentities("Currency" . $conf->currency));
- print ' ' . $text . '. ';
- } else {
- $text = $langs->trans("CompanyHasAbsoluteDiscount", price($absolute_discount), $langs->transnoentities("Currency" . $conf->currency));
- $text2 = $langs->trans("AbsoluteDiscountUse");
- print $form->textwithpicto($text, $text2);
- }
- }
- } else {
- // Discount available of type fixed amount (not credit note)
- print ' ';
- $form->form_remise_dispo($_SERVER["PHP_SELF"] . '?facid=' . $object->id, GETPOST('discountid'), 'remise_id', $soc->id, $absolute_discount, $filterabsolutediscount, $resteapayer, ' (' . $addabsolutediscount . ')');
- }
- } else {
- if ($absolute_creditnote > 0) // If not, link will be added later
- {
- if ($object->statut == Facture::STATUS_DRAFT && $object->type != Facture::TYPE_CREDIT_NOTE && $object->type != Facture::TYPE_DEPOSIT)
- print ' (' . $addabsolutediscount . ') ';
- else
- print '. ';
- } else
- print '. ';
- }
- // Is there credit notes availables ?
- if ($absolute_creditnote > 0)
- {
- // If validated, we show link "add credit note to payment"
- if ($object->statut != Facture::STATUS_VALIDATED || $object->type == Facture::TYPE_CREDIT_NOTE) {
- if ($object->statut == 0 && $object->type != Facture::TYPE_DEPOSIT) {
- $text = $langs->trans("CompanyHasCreditNote", price($absolute_creditnote), $langs->transnoentities("Currency" . $conf->currency));
- print $form->textwithpicto($text, $langs->trans("CreditNoteDepositUse"));
- } else {
- print $langs->trans("CompanyHasCreditNote", price($absolute_creditnote), $langs->transnoentities("Currency" . $conf->currency)) . '.';
- }
- } else { // We can add a credit note on a down payment or standard invoice or situation invoice
- // There is credit notes discounts available
- if (! $absolute_discount) print ' ';
- // $form->form_remise_dispo($_SERVER["PHP_SELF"].'?facid='.$object->id, 0, 'remise_id_for_payment', $soc->id, $absolute_creditnote, $filtercreditnote, $resteapayer);
- $more=' ('.$addcreditnote. (($addcreditnote && $viewabsolutediscount) ? ' - ' : '') . $viewabsolutediscount . ')';
- $form->form_remise_dispo($_SERVER["PHP_SELF"] . '?facid=' . $object->id, 0, 'remise_id_for_payment', $soc->id, $absolute_creditnote, $filtercreditnote, 0, $more); // We allow credit note even if amount is higher
- }
- }
- if (! $absolute_discount && ! $absolute_creditnote) {
- print $langs->trans("CompanyHasNoAbsoluteDiscount");
- if ($object->statut == Facture::STATUS_DRAFT && $object->type != Facture::TYPE_CREDIT_NOTE && $object->type != Facture::TYPE_DEPOSIT)
- print ' (' . $addabsolutediscount . ') ';
- else
- print '. ';
- }
- // if ($object->statut == 0 && $object->type != 2 && $object->type != 3)
- // {
- // if (! $absolute_discount && ! $absolute_creditnote) print ' ';
- // print ' - ';
- // print $addabsolutediscount;
- // print ' - '.$addcreditnote; // We disbale link to credit note
- // }
+ print ' | ';
+ $thirdparty = $soc;
+ $discount_type = 0;
+ $backtopage = urlencode($_SERVER["PHP_SELF"] . '?facid=' . $object->id);
+ include DOL_DOCUMENT_ROOT.'/core/tpl/object_discounts.tpl.php';
+
print ' |
';
// Date invoice
diff --git a/htdocs/compta/facture/prelevement.php b/htdocs/compta/facture/prelevement.php
index 01f2ff6aa27..e665eaf77d1 100644
--- a/htdocs/compta/facture/prelevement.php
+++ b/htdocs/compta/facture/prelevement.php
@@ -261,59 +261,13 @@ if ($object->id > 0)
// Discounts
print '| '.$langs->trans('Discounts').' | ';
- if ($object->thirdparty->remise_percent) print $langs->trans("CompanyHasRelativeDiscount",$object->thirdparty->remise_percent);
- else print $langs->trans("CompanyHasNoRelativeDiscount");
- print '. ';
- if ($absolute_discount > 0)
- {
- if ($object->statut > Facture::STATUS_DRAFT || $object->type == Facture::TYPE_CREDIT_NOTE || $object->type == Facture::TYPE_DEPOSIT)
- {
- if ($object->statut == Facture::STATUS_DRAFT)
- {
- print $langs->trans("CompanyHasAbsoluteDiscount",price($absolute_discount),$langs->transnoentities("Currency".$conf->currency)).'. ';
- }
- else
- {
- if ($object->statut < Facture::STATUS_VALIDATED || $object->type == Facture::TYPE_CREDIT_NOTE || $object->type == Facture::TYPE_DEPOSIT)
- {
- $text=$langs->trans("CompanyHasAbsoluteDiscount",price($absolute_discount),$langs->transnoentities("Currency".$conf->currency));
- print ' '.$text.'. ';
- }
- else
- {
- $text=$langs->trans("CompanyHasAbsoluteDiscount",price($absolute_discount),$langs->transnoentities("Currency".$conf->currency));
- $text2=$langs->trans("AbsoluteDiscountUse");
- print $form->textwithpicto($text,$text2);
- }
- }
- }
- else
- {
- // Remise dispo de type non avoir
- print ' ';
- $form->form_remise_dispo($_SERVER["PHP_SELF"].'?id='.$object->id,0,'remise_id',$object->thirdparty->id,$absolute_discount,$filterabsolutediscount,$resteapayer,'',1);
- }
- }
- if ($absolute_creditnote > 0)
- {
- // If validated, we show link "add credit note to payment"
- if ($object->statut != Facture::STATUS_VALIDATED || $object->type == Facture::TYPE_DEPOSIT || $object->type == Facture::TYPE_CREDIT_NOTE)
- {
- if ($object->statut == Facture::STATUS_DRAFT && $object->type != Facture::TYPE_DEPOSIT)
- {
- $text=$langs->trans("CompanyHasCreditNote",price($absolute_creditnote),$langs->transnoentities("Currency".$conf->currency));
- print $form->textwithpicto($text,$langs->trans("CreditNoteDepositUse"));
- }
- else print $langs->trans("CompanyHasCreditNote",price($absolute_creditnote),$langs->transnoentities("Currency".$conf->currency)).'.';
- }
- else
- {
- // Remise dispo de type avoir
- if (! $absolute_discount) print ' ';
- $form->form_remise_dispo($_SERVER["PHP_SELF"].'?id='.$object->id,0,'remise_id_for_payment',$object->thirdparty->id,$absolute_creditnote,$filtercreditnote,$resteapayer,'',1);
- }
- }
- if (! $absolute_discount && ! $absolute_creditnote) print $langs->trans("CompanyHasNoAbsoluteDiscount").'.';
+
+ $thirdparty = $object->thirdparty;
+ $discount_type = 0;
+ $backtopage = urlencode($_SERVER["PHP_SELF"] . '?facid=' . $object->id);
+ $cannotApplyDiscount = 1;
+ include DOL_DOCUMENT_ROOT.'/core/tpl/object_discounts.tpl.php';
+
print ' |
';
// Date invoice
diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index 16f72b2d837..a98729ac055 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -4239,26 +4239,27 @@ class Form
if(! empty($discount_type)) {
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS))
{
- if (! $filter || $filter=="fk_invoice_supplier_source IS NULL") print $langs->trans("CompanyHasAbsoluteDiscount",price($amount,0,$langs,0,0,-1,$conf->currency)); // If we want deposit to be substracted to payments only and not to total of final invoice
- else print $langs->trans("CompanyHasCreditNote",price($amount,0,$langs,0,0,-1,$conf->currency));
+ if (! $filter || $filter=="fk_invoice_supplier_source IS NULL") $translationKey = 'HasAbsoluteDiscountFromSupplier'; // If we want deposit to be substracted to payments only and not to total of final invoice
+ else $translationKey = 'HasCreditNoteFromSupplier';
}
else
{
- if (! $filter || $filter=="fk_invoice_supplier_source IS NULL OR (description LIKE '(DEPOSIT)%' AND description NOT LIKE '(EXCESS PAID)%')") print $langs->trans("CompanyHasAbsoluteDiscount",price($amount,0,$langs,0,0,-1,$conf->currency));
- else print $langs->trans("CompanyHasCreditNote",price($amount,0,$langs,0,0,-1,$conf->currency));
+ if (! $filter || $filter=="fk_invoice_supplier_source IS NULL OR (description LIKE '(DEPOSIT)%' AND description NOT LIKE '(EXCESS PAID)%')") $translationKey = 'HasAbsoluteDiscountFromSupplier';
+ else $translationKey = 'HasCreditNoteFromSupplier';
}
} else {
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS))
{
- if (! $filter || $filter=="fk_facture_source IS NULL") print $langs->trans("CompanyHasAbsoluteDiscount",price($amount,0,$langs,0,0,-1,$conf->currency)); // If we want deposit to be substracted to payments only and not to total of final invoice
- else print $langs->trans("CompanyHasCreditNote",price($amount,0,$langs,0,0,-1,$conf->currency));
+ if (! $filter || $filter=="fk_facture_source IS NULL") $translationKey = 'CompanyHasAbsoluteDiscount'; // If we want deposit to be substracted to payments only and not to total of final invoice
+ else $translationKey = 'CompanyHasCreditNote';
}
else
{
- if (! $filter || $filter=="fk_facture_source IS NULL OR (description LIKE '(DEPOSIT)%' AND description NOT LIKE '(EXCESS RECEIVED)%')") print $langs->trans("CompanyHasAbsoluteDiscount",price($amount,0,$langs,0,0,-1,$conf->currency));
- else print $langs->trans("CompanyHasCreditNote",price($amount,0,$langs,0,0,-1,$conf->currency));
+ if (! $filter || $filter=="fk_facture_source IS NULL OR (description LIKE '(DEPOSIT)%' AND description NOT LIKE '(EXCESS RECEIVED)%')") $translationKey = 'CompanyHasAbsoluteDiscount';
+ else $translationKey = 'CompanyHasCreditNote';
}
}
+ print $langs->trans($translationKey,price($amount,0,$langs,0,0,-1,$conf->currency));
if (empty($hidelist)) print ': ';
print '';
if (empty($hidelist))
diff --git a/htdocs/core/tpl/object_discounts.tpl.php b/htdocs/core/tpl/object_discounts.tpl.php
new file mode 100644
index 00000000000..e8accdc4d26
--- /dev/null
+++ b/htdocs/core/tpl/object_discounts.tpl.php
@@ -0,0 +1,104 @@
+
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ * Needs the following variables defined:
+ * $object Proposal, order, invoice (including supplier versions)
+ * $thirdparty Thirdparty of object
+ * $absolute_discount Amount of fixed discounts available
+ * $absolute_creditnote Amount of credit notes available
+ * $discount_type 0 => Customer discounts, 1 => Supplier discounts
+ * $cannotApplyDiscount Set it to prevent form to apply discount
+ * $backtopage URL to come back to from discount modification pages
+ */
+
+$classname = get_class($object);
+$isInvoice = in_array($object->element, array('facture', 'invoice', 'facture_fourn', 'invoice_supplier'));
+$isNewObject = empty($object->id) && empty($object->rowid);
+
+// Relative and absolute discounts
+$addrelativediscount = '' . $langs->trans("EditRelativeDiscount") . '';
+$addabsolutediscount = '' . $langs->trans("EditGlobalDiscounts") . '';
+$viewabsolutediscount = '' . $langs->trans("ViewAvailableGlobalDiscounts") . '';
+
+$fixedDiscount = $thirdparty->remise_percent;
+
+if(! empty($discount_type)) {
+ $fixedDiscount = $thirdparty->remise_supplier_percent;
+}
+
+$translationKey = ! empty($discount_type) ? 'HasRelativeDiscountFromSupplier' : 'CompanyHasRelativeDiscount';
+if ($fixedDiscount > 0)
+ print $langs->trans($translationKey, $fixedDiscount).'.';
+else
+ print $langs->trans($translationKey).'.';
+if($isNewObject) print ' ('.$addrelativediscount.')';
+
+// Is there is commercial discount or down payment available ?
+if ($absolute_discount > 0) {
+
+ if ($cannotApplyDiscount || ! $isInvoice || $isNewObject || $object->statut > $classname::STATUS_DRAFT || $object->type == $classname::TYPE_CREDIT_NOTE || $object->type == $classname::TYPE_DEPOSIT) {
+ $translationKey = ! empty($discount_type) ? 'HasAbsoluteDiscountFromSupplier' : 'CompanyHasAbsoluteDiscount';
+ $text = $langs->trans($translationKey, price($absolute_discount), $langs->transnoentities("Currency" . $conf->currency)).'.';
+
+ if ($isInvoice && ! $isNewObject && $object->statut > $classname::STATUS_DRAFT && $object->type != $classname::TYPE_CREDIT_NOTE && $object->type != $classname::TYPE_DEPOSIT) {
+ $text = $form->textwithpicto($text, $langs->trans('AbsoluteDiscountUse'));
+ }
+
+ if ($isNewObject) {
+ $text.= ' ('.$addabsolutediscount.')';
+ }
+
+ print '
'.$text;
+ } else {
+ // Discount available of type fixed amount (not credit note)
+ $more = '(' . $addabsolutediscount . ')';
+ $form->form_remise_dispo($_SERVER["PHP_SELF"] . '?facid=' . $object->id, GETPOST('discountid'), 'remise_id', $thirdparty->id, $absolute_discount, $filterabsolutediscount, $resteapayer, $more, 0, $discount_type);
+ }
+}
+
+// Is there credit notes availables ?
+if ($absolute_creditnote > 0) {
+
+ // If validated, we show link "add credit note to payment"
+ if ($cannotApplyDiscount || ! $isInvoice || $isNewObject || $object->statut != $classname::STATUS_VALIDATED || $object->type == $classname::TYPE_CREDIT_NOTE) {
+ $translationKey = ! empty($discount_type) ? 'HasCreditNoteFromSupplier' : 'CompanyHasCreditNote';
+ $text = $langs->trans($translationKey, price($absolute_creditnote), $langs->transnoentities("Currency" . $conf->currency)) . '.';
+
+ if ($isInvoice && ! $isNewObject && $object->statut == $classname::STATUS_DRAFT && $object->type != $classname::TYPE_DEPOSIT) {
+ $text = $form->textwithpicto($text, $langs->trans('CreditNoteDepositUse'));
+ }
+
+ if ($absolute_discount <= 0 || $isNewObject) {
+ $text.= '('.$addabsolutediscount.')';
+ }
+
+ print '
'.$text;
+ } else { // We can add a credit note on a down payment or standard invoice or situation invoice
+ // There is credit notes discounts available
+ $more = $isInvoice && ! $isNewObject ? ' (' . $viewabsolutediscount . ')' : '';
+ $form->form_remise_dispo($_SERVER["PHP_SELF"] . '?facid=' . $object->id, 0, 'remise_id_for_payment', $thirdparty->id, $absolute_creditnote, $filtercreditnote, 0, $more, 0, $discount_type); // We allow credit note even if amount is higher
+ }
+}
+
+if($absolute_discount <= 0 && $absolute_creditnote <= 0) {
+ $translationKey = ! empty($discount_type) ? 'HasNoAbsoluteDiscountFromSupplier' : 'CompanyHasNoAbsoluteDiscount';
+ print '
'.$langs->trans($translationKey).'.';
+
+ if ($isInvoice && $object->statut == $classname::STATUS_DRAFT && $object->type != $classname::TYPE_CREDIT_NOTE && $object->type != $classname::TYPE_DEPOSIT) {
+ print ' (' . $addabsolutediscount . ')';
+ }
+}
+
diff --git a/htdocs/expedition/shipment.php b/htdocs/expedition/shipment.php
index f16ee1eac48..a9bb706c4d8 100644
--- a/htdocs/expedition/shipment.php
+++ b/htdocs/expedition/shipment.php
@@ -340,31 +340,17 @@ if ($id > 0 || ! empty($ref))
}
print '| '.$langs->trans('Discounts').' | ';
- if ($soc->remise_percent) print $langs->trans("CompanyHasRelativeDiscount",$soc->remise_percent);
- else print $langs->trans("CompanyHasNoRelativeDiscount");
- print '. ';
+
$absolute_discount=$soc->getAvailableDiscounts('',$filterabsolutediscount);
$absolute_creditnote=$soc->getAvailableDiscounts('',$filtercreditnote);
$absolute_discount=price2num($absolute_discount,'MT');
$absolute_creditnote=price2num($absolute_creditnote,'MT');
- if ($absolute_discount)
- {
- if ($object->statut > Commande::STATUS_DRAFT)
- {
- print $langs->trans("CompanyHasAbsoluteDiscount",price($absolute_discount),$langs->transnoentities("Currency".$conf->currency));
- }
- else
- {
- // Remise dispo de type non avoir
- print ' ';
- $form->form_remise_dispo($_SERVER["PHP_SELF"].'?id='.$object->id,0,'remise_id',$soc->id,$absolute_discount,$filterabsolutediscount, 0, '', 1);
- }
- }
- if ($absolute_creditnote)
- {
- print $langs->trans("CompanyHasCreditNote",price($absolute_creditnote),$langs->transnoentities("Currency".$conf->currency)).'. ';
- }
- if (! $absolute_discount && ! $absolute_creditnote) print $langs->trans("CompanyHasNoAbsoluteDiscount").'.';
+
+ $thirdparty = $soc;
+ $discount_type = 0;
+ $backtopage = urlencode($_SERVER["PHP_SELF"] . '?id=' . $object->id);
+ $cannotApplyDiscount = 1;
+ include DOL_DOCUMENT_ROOT.'/core/tpl/object_discounts.tpl.php';
print ' |
';
// Date
diff --git a/htdocs/fourn/commande/card.php b/htdocs/fourn/commande/card.php
index 0026bfe8fe7..c7487f4cc51 100644
--- a/htdocs/fourn/commande/card.php
+++ b/htdocs/fourn/commande/card.php
@@ -1483,22 +1483,14 @@ if ($action=='create')
{
// Discounts for third party
print '| ' . $langs->trans('Discounts') . ' | ';
- if ($societe->remise_supplier_percent)
- print $langs->trans("HasRelativeDiscountFromSupplier", 'id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid')) . '">' . $societe->remise_supplier_percent . '');
- else
- print $langs->trans("HasNoRelativeDiscountFromSupplier");
- print ' id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid')) . '">(' . $langs->trans("EditRelativeDiscount") . ')';
- print '. ';
- print ' ';
$absolute_discount = $societe->getAvailableDiscounts('', '', 0, 1);
- if ($absolute_discount)
- print $langs->trans("CompanyHasAbsoluteDiscount", 'id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid')) . '">' . price($absolute_discount) . '', $langs->trans("Currency" . $conf->currency));
- else
- print $langs->trans("CompanyHasNoAbsoluteDiscount");
- print ' id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid')) . '">(' . $langs->trans("EditGlobalDiscounts") . ')';
- print '.';
+ $thirdparty = $societe;
+ $discount_type = 1;
+ $backtopage = urlencode($_SERVER["PHP_SELF"] . '?socid=' . $thirdparty->id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid'));
+ include DOL_DOCUMENT_ROOT.'/core/tpl/object_discounts.tpl.php';
+
print ' |
';
}
@@ -1892,37 +1884,19 @@ elseif (! empty($object->id))
$filterabsolutediscount = "fk_invoice_supplier_source IS NULL OR (description LIKE '(DEPOSIT)%' AND description NOT LIKE '(EXCESS PAID)%')";
$filtercreditnote = "fk_invoice_supplier_source IS NOT NULL AND (description NOT LIKE '(DEPOSIT)%' OR description LIKE '(EXCESS PAID)%')";
}
-
- $addrelativediscount = 'id . '">' . $langs->trans("EditRelativeDiscounts") . '';
- $addabsolutediscount = 'id . '">' . $langs->trans("EditGlobalDiscounts") . '';
- $addcreditnote = 'id . '">' . $langs->trans("AddCreditNote") . '';
-
- print '| ' . $langs->trans('Discounts') . ' | ';
-
- if ($societe->remise_supplier_percent)
- print $langs->trans("HasRelativeDiscountFromSupplier", $societe->remise_supplier_percent);
- else
- print $langs->trans("HasNoRelativeDiscountFromSupplier");
- print '. ';
$absolute_discount = $societe->getAvailableDiscounts('', $filterabsolutediscount, 0, 1);
$absolute_creditnote = $societe->getAvailableDiscounts('', $filtercreditnote, 0, 1);
$absolute_discount = price2num($absolute_discount, 'MT');
$absolute_creditnote = price2num($absolute_creditnote, 'MT');
- if ($absolute_discount) {
- if ($object->statut > CommandeFournisseur::STATUS_DRAFT) {
- print $langs->trans("CompanyHasAbsoluteDiscount", price($absolute_discount), $langs->transnoentities("Currency" . $conf->currency));
- } else {
- // Remise dispo de type remise fixe (not credit note)
- print ' ';
- $form->form_remise_dispo($_SERVER["PHP_SELF"] . '?id=' . $object->id, 0, 'remise_id', $societe->id, $absolute_discount, $filterabsolutediscount, 0, '', 1, 1);
- }
- }
- if ($absolute_creditnote) {
- print $langs->trans("CompanyHasCreditNote", price($absolute_creditnote), $langs->transnoentities("Currency" . $conf->currency)) . '. ';
- }
- if (! $absolute_discount && ! $absolute_creditnote)
- print $langs->trans("CompanyHasNoAbsoluteDiscount") . '.';
+
+ print ' |
| ' . $langs->trans('Discounts') . ' | ';
+
+ $thirdparty = $societe;
+ $discount_type = 1;
+ $backtopage = urlencode($_SERVER["PHP_SELF"] . '?id=' . $object->id);
+ include DOL_DOCUMENT_ROOT.'/core/tpl/object_discounts.tpl.php';
+
print ' |
';
}
diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php
index 9f2610d093b..14909a1fc2e 100644
--- a/htdocs/fourn/facture/card.php
+++ b/htdocs/fourn/facture/card.php
@@ -1920,20 +1920,11 @@ if ($action == 'create')
// Discounts for third party
print '| ' . $langs->trans('Discounts') . ' | ';
- if ($societe->remise_supplier_percent)
- print $langs->trans("HasRelativeDiscountFromSupplier", 'id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid')) . '">' . $societe->remise_supplier_percent . '');
- else
- print $langs->trans("HasNoRelativeDiscountFromSupplier");
- print ' id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid')) . '">(' . $langs->trans("EditRelativeDiscount") . ')';
- print '. ';
- print ' ';
+ $thirdparty = $societe;
+ $discount_type = 1;
+ $backtopage = urlencode($_SERVER["PHP_SELF"] . '?socid=' . $societe->id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid'));
+ include DOL_DOCUMENT_ROOT.'/core/tpl/object_discounts.tpl.php';
- if ($absolute_discount)
- print $langs->trans("CompanyHasAbsoluteDiscount", 'id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid')) . '">' . price($absolute_discount) . '', $langs->trans("Currency" . $conf->currency));
- else
- print $langs->trans("CompanyHasNoAbsoluteDiscount");
- print ' id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid')) . '">(' . $langs->trans("EditGlobalDiscounts") . ')';
- print '.';
print ' |
';
}
@@ -2421,89 +2412,15 @@ else
print '';
if ($conf->global->MAIN_FEATURES_LEVEL > 0) {
-
// Relative and absolute discounts
- $addrelativediscount = 'id . '">' . $langs->trans("EditRelativeDiscounts") . '';
- $addabsolutediscount = 'id . '">' . $langs->trans("EditGlobalDiscounts") . '';
- $addcreditnote = 'id . '">' . $langs->trans("AddCreditNote") . '';
- $viewabsolutediscount = 'id . '">' . $langs->trans("ViewAvailableGlobalDiscounts") . '';
-
print '| ' . $langs->trans('Discounts');
print ' | ';
- if ($societe->remise_supplier_percent)
- print $langs->trans("HasRelativeDiscountFromSupplier", $societe->remise_supplier_percent);
- else
- print $langs->trans("HasNoRelativeDiscountFromSupplier");
- // print ' ('.$addrelativediscount.')';
+ $thirdparty = $societe;
+ $discount_type = 1;
+ $backtopage = urlencode($_SERVER["PHP_SELF"] . '?facid=' . $object->id);
+ include DOL_DOCUMENT_ROOT.'/core/tpl/object_discounts.tpl.php';
-
- // Is there is commercial discount or down payment available ?
- if ($absolute_discount > 0) {
- print '. ';
- if ($object->statut > 0 || $object->type == FactureFournisseur::TYPE_CREDIT_NOTE || $object->type == FactureFournisseur::TYPE_DEPOSIT) {
- if ($object->statut == 0) {
- print $langs->trans("CompanyHasAbsoluteDiscount", price($absolute_discount), $langs->transnoentities("Currency" . $conf->currency));
- print '. ';
- } else {
- if ($object->statut < 1 || $object->type == FactureFournisseur::TYPE_CREDIT_NOTE || $object->type == FactureFournisseur::TYPE_DEPOSIT) {
- $text = $langs->trans("CompanyHasAbsoluteDiscount", price($absolute_discount), $langs->transnoentities("Currency" . $conf->currency));
- print ' ' . $text . '. ';
- } else {
- $text = $langs->trans("CompanyHasAbsoluteDiscount", price($absolute_discount), $langs->transnoentities("Currency" . $conf->currency));
- $text2 = $langs->trans("AbsoluteDiscountUse");
- print $form->textwithpicto($text, $text2);
- }
- }
- } else {
- // Discount available of type fixed amount (not credit note)
- print ' ';
- $form->form_remise_dispo($_SERVER["PHP_SELF"] . '?facid=' . $object->id, GETPOST('discountid'), 'remise_id', $societe->id, $absolute_discount, $filterabsolutediscount, $resteapayer, ' (' . $addabsolutediscount . ')', 0, 1);
- }
- } else {
- if ($absolute_creditnote > 0) // If not, link will be added later
- {
- if ($object->statut == FactureFournisseur::STATUS_DRAFT && $object->type != FactureFournisseur::TYPE_CREDIT_NOTE && $object->type != FactureFournisseur::TYPE_DEPOSIT)
- print ' (' . $addabsolutediscount . ') ';
- else
- print '. ';
- }
- else
- print '. ';
- }
- // Is there credit notes availables ?
- if ($absolute_creditnote > 0)
- {
- // If validated, we show link "add credit note to payment"
- if ($object->statut != FactureFournisseur::STATUS_VALIDATED || $object->type == FactureFournisseur::TYPE_CREDIT_NOTE) {
- if ($object->statut == 0 && $object->type != FactureFournisseur::TYPE_DEPOSIT) {
- $text = $langs->trans("CompanyHasCreditNote", price($absolute_creditnote), $langs->transnoentities("Currency" . $conf->currency));
- print $form->textwithpicto($text, $langs->trans("CreditNoteDepositUse"));
- } else {
- print $langs->trans("CompanyHasCreditNote", price($absolute_creditnote), $langs->transnoentities("Currency" . $conf->currency)) . '.';
- }
- } else { // We can add a credit note on a down payment or standard invoice or situation invoice
- // There is credit notes discounts available
- if (! $absolute_discount) print ' ';
- // $form->form_remise_dispo($_SERVER["PHP_SELF"].'?facid='.$object->id, 0, 'remise_id_for_payment', $societe->id, $absolute_creditnote, $filtercreditnote, $resteapayer, '', 0, 1);
- $more=' ('.$addcreditnote. (($addcreditnote && $viewabsolutediscount) ? ' - ' : '') . $viewabsolutediscount . ')';
- $form->form_remise_dispo($_SERVER["PHP_SELF"] . '?facid=' . $object->id, 0, 'remise_id_for_payment', $societe->id, $absolute_creditnote, $filtercreditnote, 0, $more, 0, 1); // We allow credit note even if amount is higher
- }
- }
- if (! $absolute_discount && ! $absolute_creditnote) {
- print $langs->trans("CompanyHasNoAbsoluteDiscount");
- if ($object->statut == FactureFournisseur::STATUS_DRAFT && $object->type != FactureFournisseur::TYPE_CREDIT_NOTE && $object->type != FactureFournisseur::TYPE_DEPOSIT)
- print ' (' . $addabsolutediscount . ') ';
- else
- print '. ';
- }
- // if ($object->statut == 0 && $object->type != 2 && $object->type != 3)
- // {
- // if (! $absolute_discount && ! $absolute_creditnote) print ' ';
- // print ' - ';
- // print $addabsolutediscount;
- // print ' - '.$addcreditnote; // We disbale link to credit note
- // }
print ' |
';
}
diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang
index aab3ee183da..5a6d2d1fc52 100644
--- a/htdocs/langs/en_US/companies.lang
+++ b/htdocs/langs/en_US/companies.lang
@@ -273,6 +273,10 @@ HasNoRelativeDiscountFromSupplier=You have no default relative discount from thi
CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s
CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for %s %s
CompanyHasCreditNote=This customer still has credit notes for %s %s
+HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
+HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for %s %s from this supplier
+HasDownPaymentOrCommercialDiscountFromSupplier=You have discounts available (commercial, down payments) for %s %s from this supplier
+HasCreditNoteFromSupplier=You have credit notes for %s %s from this supplier
CompanyHasNoAbsoluteDiscount=This customer has no discount credit available
CustomerAbsoluteDiscountAllUsers=Absolute customer discounts (granted by all users)
CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
diff --git a/htdocs/supplier_proposal/card.php b/htdocs/supplier_proposal/card.php
index 75575bf087b..4e4611d4fd5 100644
--- a/htdocs/supplier_proposal/card.php
+++ b/htdocs/supplier_proposal/card.php
@@ -1055,22 +1055,13 @@ if ($action == 'create')
// Discounts for third party
print '| ' . $langs->trans('Discounts') . ' | ';
- if ($soc->remise_supplier_percent)
- print $langs->trans("HasRelativeDiscountFromSupplier", 'id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid')) . '">' . $soc->remise_supplier_percent . '');
- else
- print $langs->trans("HasNoRelativeDiscountFromSupplier");
- print ' id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid')) . '">(' . $langs->trans("EditRelativeDiscount") . ')';
- print '. ';
- print ' ';
-
$absolute_discount = $soc->getAvailableDiscounts('', '', 0, 1);
- if ($absolute_discount)
- print $langs->trans("CompanyHasAbsoluteDiscount", 'id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid')) . '">' . price($absolute_discount) . '', $langs->trans("Currency" . $conf->currency));
- else
- print $langs->trans("CompanyHasNoAbsoluteDiscount");
- print ' id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid')) . '">(' . $langs->trans("EditGlobalDiscounts") . ')';
- print '.';
+ $thirdparty = $soc;
+ $discount_type = 1;
+ $backtopage = urlencode($_SERVER["PHP_SELF"] . '?socid=' . $thirdparty->id . '&action=' . $action . '&origin=' . GETPOST('origin') . '&originid=' . GETPOST('originid'));
+ include DOL_DOCUMENT_ROOT.'/core/tpl/object_discounts.tpl.php';
+
print ' |
';
}
@@ -1423,37 +1414,19 @@ if ($action == 'create')
$filterabsolutediscount = "fk_invoice_supplier_source IS NULL OR (description LIKE '(DEPOSIT)%' AND description NOT LIKE '(EXCESS PAID)%')";
$filtercreditnote = "fk_invoice_supplier_source IS NOT NULL AND (description NOT LIKE '(DEPOSIT)%' OR description LIKE '(EXCESS PAID)%')";
}
-
- $addrelativediscount = 'id . '">' . $langs->trans("EditRelativeDiscounts") . '';
- $addabsolutediscount = 'id . '">' . $langs->trans("EditGlobalDiscounts") . '';
- $addcreditnote = 'id . '">' . $langs->trans("AddCreditNote") . '';
-
- print '| ' . $langs->trans('Discounts') . ' | ';
- if ($soc->remise_supplier_percent)
- print $langs->trans("HasRelativeDiscountFromSupplier", $soc->remise_supplier_percent);
- else
- print $langs->trans("HasNoRelativeDiscountFromSupplier");
- print '. ';
+ print ' |
| ' . $langs->trans('Discounts') . ' | ';
$absolute_discount = $soc->getAvailableDiscounts('', $filterabsolutediscount, 0, 1);
$absolute_creditnote = $soc->getAvailableDiscounts('', $filtercreditnote, 0, 1);
$absolute_discount = price2num($absolute_discount, 'MT');
$absolute_creditnote = price2num($absolute_creditnote, 'MT');
- if ($absolute_discount) {
- if ($object->statut > SupplierProposal::STATUS_DRAFT) {
- print $langs->trans("CompanyHasAbsoluteDiscount", price($absolute_discount), $langs->transnoentities("Currency" . $conf->currency));
- } else {
- // Remise dispo de type remise fixe (not credit note)
- print ' ';
- $form->form_remise_dispo($_SERVER["PHP_SELF"] . '?id=' . $object->id, 0, 'remise_id', $soc->id, $absolute_discount, $filterabsolutediscount, 0, '', 1, 1);
- }
- }
- if ($absolute_creditnote) {
- print $langs->trans("CompanyHasCreditNote", price($absolute_creditnote), $langs->transnoentities("Currency" . $conf->currency)) . '. ';
- }
- if (! $absolute_discount && ! $absolute_creditnote)
- print $langs->trans("CompanyHasNoAbsoluteDiscount") . '.';
+
+ $thirdparty = $soc;
+ $discount_type = 1;
+ $backtopage = urlencode($_SERVER["PHP_SELF"] . '?id=' . $object->id);
+ include DOL_DOCUMENT_ROOT.'/core/tpl/object_discounts.tpl.php';
+
print ' |
';
}