diff --git a/htdocs/admin/commande.php b/htdocs/admin/commande.php
index 6c96938e22e..993e15c5a6c 100644
--- a/htdocs/admin/commande.php
+++ b/htdocs/admin/commande.php
@@ -125,42 +125,40 @@ if ($_GET["action"] == 'setdoc')
if ($_GET["action"] == 'setmod')
{
- // \todo Verifier si module numerotation choisi peut etre activ�
+ // \todo Verifier si module numerotation choisi peut etre active
// par appel methode canBeActivated
dolibarr_set_const($db, "COMMANDE_ADDON",$_GET["value"]);
- Header("Location: commande.php");
- exit;
+}
+
+if ($_POST["action"] == 'set_COMMANDE_FREE_TEXT')
+{
+ dolibarr_set_const($db, "COMMANDE_FREE_TEXT",trim($_POST["COMMANDE_FREE_TEXT"]));
}
if ($_POST["action"] == 'setvalidorder')
{
- dolibarr_set_const($db, "COMMANDE_VALID_AFTER_CLOSE_PROPAL",$_POST["validorder"]);
- Header("Location: commande.php");
- exit;
+ dolibarr_set_const($db, "COMMANDE_VALID_AFTER_CLOSE_PROPAL",$_POST["validorder"]);
}
if ($_POST["action"] == 'deliverycostline')
{
- dolibarr_set_const($db, "COMMANDE_ADD_DELIVERY_COST_LINE",$_POST["addline"]);
- Header("Location: commande.php");
- exit;
+ dolibarr_set_const($db, "COMMANDE_ADD_DELIVERY_COST_LINE",$_POST["addline"]);
}
if ($_POST["action"] == 'set_use_customer_contact_as_recipient')
{
dolibarr_set_const($db, "COMMANDE_USE_CUSTOMER_CONTACT_AS_RECIPIENT",$_POST["use_customer_contact_as_recipient"]);
- Header("Location: commande.php");
- exit;
}
-// d�fini les constantes du mod�le saphir
+// defini les constantes du modele saphir
if ($_POST["action"] == 'updateMatrice') dolibarr_set_const($db, "COMMANDE_NUM_MATRICE",$_POST["matrice"]);
if ($_POST["action"] == 'updatePrefix') dolibarr_set_const($db, "COMMANDE_NUM_PREFIX",$_POST["prefix"]);
if ($_POST["action"] == 'setOffset') dolibarr_set_const($db, "COMMANDE_NUM_DELTA",$_POST["offset"]);
if ($_POST["action"] == 'setFiscalMonth') dolibarr_set_const($db, "SOCIETE_FISCAL_MONTH_START",$_POST["fiscalmonth"]);
if ($_POST["action"] == 'setNumRestart') dolibarr_set_const($db, "COMMANDE_NUM_RESTART_BEGIN_YEAR",$_POST["numrestart"]);
+
/*
* Affichage page
*/
@@ -423,6 +421,17 @@ print '
';
+print '';
+print ' | ';
+print $langs->trans("FreeLegalTextOnOrders").' ';
+print '';
+print ' | ';
+print '';
+print " |
\n";
+print '';
+
print '';
print '
';
diff --git a/htdocs/admin/facture.php b/htdocs/admin/facture.php
index e0b13c7c2a3..90604ff6295 100644
--- a/htdocs/admin/facture.php
+++ b/htdocs/admin/facture.php
@@ -145,6 +145,11 @@ if ($_POST["action"] == 'setribchq')
dolibarr_set_const($db, "FACTURE_CHQ_NUMBER",$_POST["chq"]);
}
+if ($_POST["action"] == 'set_FACTURE_FREE_TEXT')
+{
+ dolibarr_set_const($db, "FACTURE_FREE_TEXT",trim($_POST["FACTURE_FREE_TEXT"]));
+}
+
if ($_POST["action"] == 'setforcedate')
{
dolibarr_set_const($db, "FAC_FORCE_DATE_VALIDATION",$_POST["forcedate"]);
@@ -181,7 +186,7 @@ if ($_GET["action"] == 'delete')
}
}
-// d�fini les constantes du mod�le pluton
+// defini les constantes du modele pluton
if ($_POST["action"] == 'updateMatrice') dolibarr_set_const($db, "FACTURE_NUM_MATRICE",$_POST["matrice"]);
if ($_POST["action"] == 'updatePrefixFacture') dolibarr_set_const($db, "FACTURE_NUM_PREFIX",$_POST["prefixfacture"]);
if ($_POST["action"] == 'updatePrefixAvoir') dolibarr_set_const($db, "AVOIR_NUM_PREFIX",$_POST["prefixavoir"]);
@@ -457,7 +462,7 @@ print '\n";
$var=!$var;
print ' | ';
-print "| Proposer paiement par RIB sur le compte | ";
+print "".$langs->trans("SuggestPaymentByRIBOnAccount")." | ";
print "";
if ($conf->banque->enabled)
{
@@ -497,7 +502,7 @@ else
print " |
";
$var=!$var;
print '';
-print "| Proposer paiement par ch�que � l'ordre et adresse de | ";
+print "".$langs->trans("SuggestPaymentByChequeToAddress")." | ";
print "";
print ' |
\n";
print '';
+$var=! $var;
+print '';
+
print '';
diff --git a/htdocs/admin/propale.php b/htdocs/admin/propale.php
index d1dbb5d5193..1b44a5d269b 100644
--- a/htdocs/admin/propale.php
+++ b/htdocs/admin/propale.php
@@ -77,53 +77,44 @@ if ($_GET["action"] == 'specimen')
}
}
+if ($_POST["action"] == 'set_PROPALE_FREE_TEXT')
+{
+ dolibarr_set_const($db, "PROPALE_FREE_TEXT",trim($_POST["PROPALE_FREE_TEXT"]));
+}
+
if ($_POST["action"] == 'setnbprod')
{
dolibarr_set_const($db, "PROPALE_NEW_FORM_NB_PRODUCT",$_POST["value"]);
- Header("Location: propale.php");
- exit;
}
if ($_POST["action"] == 'setdefaultduration')
{
dolibarr_set_const($db, "PROPALE_VALIDITY_DURATION",$_POST["value"]);
- Header("Location: propale.php");
- exit;
}
if ($_POST["action"] == 'setaddshippingdate')
{
dolibarr_set_const($db, "PROPALE_ADD_SHIPPING_DATE",$_POST["value"]);
- Header("Location: propale.php");
- exit;
}
if ($_POST["action"] == 'setadddeliveryaddress')
{
dolibarr_set_const($db, "PROPALE_ADD_DELIVERY_ADDRESS",$_POST["value"]);
- Header("Location: propale.php");
- exit;
}
if ($_POST["action"] == 'setuseoptionline')
{
dolibarr_set_const($db, "PROPALE_USE_OPTION_LINE",$_POST["value"]);
- Header("Location: propale.php");
- exit;
}
if ($_POST["action"] == 'setclassifiedinvoiced')
{
dolibarr_set_const($db, "PROPALE_CLASSIFIED_INVOICED_WITH_ORDER",$_POST["value"]);
- Header("Location: propale.php");
- exit;
}
if ($_POST["action"] == 'setusecustomercontactasrecipient')
{
dolibarr_set_const($db, "PROPALE_USE_CUSTOMER_CONTACT_AS_RECIPIENT",$_POST["value"]);
- Header("Location: propale.php");
- exit;
}
@@ -493,6 +484,17 @@ if ($conf->commande->enabled)
print '';
}
+$var=! $var;
+print '';
+
print '';
diff --git a/htdocs/includes/modules/commande/pdf_einstein.modules.php b/htdocs/includes/modules/commande/pdf_einstein.modules.php
index 9a24f8b710f..15b2b1a764c 100644
--- a/htdocs/includes/modules/commande/pdf_einstein.modules.php
+++ b/htdocs/includes/modules/commande/pdf_einstein.modules.php
@@ -74,6 +74,7 @@ class pdf_einstein extends ModelePDFCommandes
$this->option_multilang = 1; // Dispo en plusieurs langues
$this->option_escompte = 1; // Affiche si il y a eu escompte
$this->option_credit_note = 1; // Gère les avoirs
+ $this->option_freetext = 1; // Support add of a personalised text
if (defined("FACTURE_TVAOPTION") && FACTURE_TVAOPTION == 'franchise')
$this->franchise=1;
@@ -952,6 +953,9 @@ class pdf_einstein extends ModelePDFCommandes
{
global $conf;
+ // Line of free text
+ $ligne=(! empty($conf->global->COMMANDE_FREE_TEXT))?$conf->global->COMMANDE_FREE_TEXT:"";
+
// Premiere ligne d'info réglementaires
$ligne1="";
if ($this->emetteur->forme_juridique_code)
@@ -990,8 +994,15 @@ class pdf_einstein extends ModelePDFCommandes
$pdf->SetDrawColor(224,224,224);
// On positionne le debut du bas de page selon nbre de lignes de ce bas de page
- $posy=$this->marge_basse + 1 + ($ligne1?3:0) + ($ligne2?3:0);
+ $posy=$this->marge_basse + 1 + ($ligne?4:0) + ($ligne1?3:0) + ($ligne2?3:0);
+ if ($ligne)
+ {
+ $pdf->SetXY($this->marge_gauche,-$posy);
+ $pdf->MultiCell(190, 3, $ligne, 0, 'L', 0);
+ $posy-=7;
+ }
+
$pdf->SetY(-$posy);
$pdf->line($this->marge_gauche, $this->page_hauteur-$posy, 200, $this->page_hauteur-$posy);
$posy--;
diff --git a/htdocs/includes/modules/facture/pdf_crabe.modules.php b/htdocs/includes/modules/facture/pdf_crabe.modules.php
index 29531a9fcfd..56af8487522 100644
--- a/htdocs/includes/modules/facture/pdf_crabe.modules.php
+++ b/htdocs/includes/modules/facture/pdf_crabe.modules.php
@@ -74,7 +74,7 @@ class pdf_crabe extends ModelePDFFactures
$this->option_multilang = 1; // Dispo en plusieurs langues
$this->option_escompte = 1; // Affiche si il y a eu escompte
$this->option_credit_note = 1; // Gère les avoirs
-
+ $this->option_freetext = 1; // Support add of a personalised text
if (defined("FACTURE_TVAOPTION") && FACTURE_TVAOPTION == 'franchise')
$this->franchise=1;
@@ -1142,7 +1142,10 @@ class pdf_crabe extends ModelePDFFactures
{
global $conf;
- // Premiere ligne d'info réglementaires
+ // Line of free text
+ $ligne=(! empty($conf->global->FACTURE_FREE_TEXT))?$conf->global->FACTURE_FREE_TEXT:"";
+
+ // Premiere ligne d'info réglementaires
$ligne1="";
if ($this->emetteur->forme_juridique_code)
{
@@ -1161,7 +1164,7 @@ class pdf_crabe extends ModelePDFFactures
$ligne1.=($ligne1?" - ":"").$outputlangs->transcountry("ProfId1",$this->emetteur->pays_code).": ".$this->emetteur->profid1;
}
- // Deuxieme ligne d'info réglementaires
+ // Deuxieme ligne d'info réglementaires
$ligne2="";
if ($this->emetteur->profid3)
{
@@ -1175,13 +1178,20 @@ class pdf_crabe extends ModelePDFFactures
{
$ligne2.=($ligne2?" - ":"").$outputlangs->transnoentities("VATIntraShort").": ".$this->emetteur->tva_intra;
}
-
+
$pdf->SetFont('Arial','',8);
$pdf->SetDrawColor(224,224,224);
// On positionne le debut du bas de page selon nbre de lignes de ce bas de page
- $posy=$this->marge_basse + 1 + ($ligne1?3:0) + ($ligne2?3:0);
+ $posy=$this->marge_basse + 1 + ($ligne?4:0) + ($ligne1?3:0) + ($ligne2?3:0);
+ if ($ligne)
+ {
+ $pdf->SetXY($this->marge_gauche,-$posy);
+ $pdf->MultiCell(190, 3, $ligne, 0, 'L', 0);
+ $posy-=7;
+ }
+
$pdf->SetY(-$posy);
$pdf->line($this->marge_gauche, $this->page_hauteur-$posy, 200, $this->page_hauteur-$posy);
$posy--;
diff --git a/htdocs/includes/modules/propale/pdf_propale_azur.modules.php b/htdocs/includes/modules/propale/pdf_propale_azur.modules.php
index fc5a073bcc7..c6f2b6a992e 100644
--- a/htdocs/includes/modules/propale/pdf_propale_azur.modules.php
+++ b/htdocs/includes/modules/propale/pdf_propale_azur.modules.php
@@ -16,8 +16,6 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* or see http://www.gnu.org/
- *
- * $Id$
*/
/**
@@ -25,7 +23,7 @@
\ingroup propale
\brief Fichier de la classe permettant de générer les propales au modèle Azur
\author Laurent Destailleur
- \version $Revision$
+ \version $Id$
*/
require_once(DOL_DOCUMENT_ROOT."/includes/modules/propale/modules_propale.php");
@@ -76,6 +74,7 @@ class pdf_propale_azur extends ModelePDFPropales
$this->option_multilang = 1; // Dispo en plusieurs langues
$this->option_escompte = 1; // Affiche si il y a eu escompte
$this->option_credit_note = 1; // Gère les avoirs
+ $this->option_freetext = 1; // Support add of a personalised text
if (defined("FACTURE_TVAOPTION") && FACTURE_TVAOPTION == 'franchise')
$this->franchise=1;
@@ -980,6 +979,9 @@ class pdf_propale_azur extends ModelePDFPropales
{
global $conf;
+ // Line of free text
+ $ligne=(! empty($conf->global->PROPALE_FREE_TEXT))?$conf->global->PROPALE_FREE_TEXT:"";
+
// Premiere ligne d'info réglementaires
$ligne1="";
if ($this->emetteur->forme_juridique_code)
@@ -1018,8 +1020,15 @@ class pdf_propale_azur extends ModelePDFPropales
$pdf->SetDrawColor(224,224,224);
// On positionne le debut du bas de page selon nbre de lignes de ce bas de page
- $posy=$this->marge_basse + 1 + ($ligne1?3:0) + ($ligne2?3:0);
+ $posy=$this->marge_basse + 1 + ($ligne?4:0) + ($ligne1?3:0) + ($ligne2?3:0);
+ if ($ligne)
+ {
+ $pdf->SetXY($this->marge_gauche,-$posy);
+ $pdf->MultiCell(190, 3, $ligne, 0, 'L', 0);
+ $posy-=7;
+ }
+
$pdf->SetY(-$posy);
$pdf->line($this->marge_gauche, $this->page_hauteur-$posy, 200, $this->page_hauteur-$posy);
$posy--;
diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
index a68330f3691..7956ed75656 100644
--- a/htdocs/langs/en_US/admin.lang
+++ b/htdocs/langs/en_US/admin.lang
@@ -603,8 +603,11 @@ CreditNote=Credit note
CreditNotes=Credit notes
ForceInvoiceDate=Force invoice date to validation date
DisableRepeatable=Disable repeatable invoices
-SuggestedPaymentModesIfNotDefinedInInvoice=Suggested Payments mode on invoices if not explicitely defined
+SuggestedPaymentModesIfNotDefinedInInvoice=Suggested payments mode on invoice by default if not defined for invoice
EnableEditDeleteValidInvoice=Enable the possibility to edit/delete valid invoice with no payment
+SuggestPaymentByRIBOnAccount=Suggest payment by withdraw on account
+SuggestPaymentByChequeToAddress=Suggest payment by cheque to
+FreeLegalTextOnInvoices=Free text on invoices
##### Proposals #####
PropalSetup=Commercial proposals module setup
CreateForm=Create forms
@@ -619,12 +622,14 @@ HideTreadedPropal=Hide the treated commercial proposals in the list
AddShippingDateAbility=Add shipping date ability
AddDeliveryAddressAbility=Add delivery date ability
UseOptionLineIfNoQuantity=A line of product/service with a zero amount is considered as an option
+FreeLegalTextOnProposal=Free text on commercial proposals
##### Orders #####
OrdersSetup=Orders' management setup
OrdersNumberingModules=Orders numbering modules
OrdersModelModule=Order documents models
HideTreadedOrders=Hide the treated or canceled orders in the list
ValidOrderAfterPropalClosed=To validate the order after proposal closer, makes it possible not to step by the provisional order
+FreeLegalTextOnOrders=Free text on orders
##### Fiche inter #####
FicheinterNumberingModules=Intervention numbering modules
TemplatePDFInterventions=Intervention card documents models
diff --git a/htdocs/langs/fr_BE/admin.lang b/htdocs/langs/fr_BE/admin.lang
index ebdeae82280..af1661016b6 100644
--- a/htdocs/langs/fr_BE/admin.lang
+++ b/htdocs/langs/fr_BE/admin.lang
@@ -456,8 +456,11 @@ CreditNote=Note de cr
CreditNotes=Notes de crédit
ForceInvoiceDate=Forcer la date de facturation à la date de validation
DisableRepeatable=Désactiver les factures récurrentes
-SuggestedPaymentModesIfNotDefinedInInvoice=Mode de paiement suggéré sur les factures si pas défini explicitement
+SuggestedPaymentModesIfNotDefinedInInvoice=Modes de paiements suggérés par défaut si non défini au niveau de la facture
EnableEditDeleteValidInvoice=Activer la possibilité de modifier/supprimer une facture valide sans paiement
+SuggestPaymentByRIBOnAccount=Proposer paiement par RIB sur le compte
+SuggestPaymentByChequeToAddress=Proposer paiement par chèque à l'ordre et adresse de
+FreeLegalTextOnInvoices=Mention complémentaire sur les factures
##### Proposals #####=
PropalSetup=Configuration du module de propositions commerciales
CreateForm=Créer des formulaires
@@ -469,11 +472,13 @@ ProposalsPDFModules=Mod
ClassifiedInvoiced=Factures classifiées
ClassifiedInvoicedWithOrder=Propositions facturées classifiées en même temps que la commande
HideTreadedPropal=Cacher les propositions commerciales traitées dans la liste
+FreeLegalTextOnProposal=Mention complémentaire sur les propositions
##### Orders #####=
OrdersSetup=Configuration de la gestion des commandes
OrdersNumberingModules=Module de numérotation des commandes
OrdersModelModule=Modèles de commandes
HideTreadedOrders=Cacher les commandes traitées de la liste
+FreeLegalTextOnOrders=Mention complémentaire sur les commandes
##### Fiche inter #####=
TemplatePDFInterventions=Modèles de fiches d'interventions
##### Clicktodial #####=
diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang
index 490a7f17418..69e2d58fbad 100644
--- a/htdocs/langs/fr_FR/admin.lang
+++ b/htdocs/langs/fr_FR/admin.lang
@@ -602,8 +602,11 @@ CreditNote=Avoir
CreditNotes=Avoirs
ForceInvoiceDate=Forcer la date de facture à la date de validation
DisableRepeatable=Désactiver les factures récurrentes
-SuggestedPaymentModesIfNotDefinedInInvoice=Modes de paiements suggérés sur les factures si non défini explicitement
+SuggestedPaymentModesIfNotDefinedInInvoice=Modes de paiements suggérés par défaut si non défini au niveau de la facture
EnableEditDeleteValidInvoice=Activer la possibilité d'éditer/supprimer une facture validée sans paiement
+SuggestPaymentByRIBOnAccount=Proposer paiement par RIB sur le compte
+SuggestPaymentByChequeToAddress=Proposer paiement par chèque à l'ordre et adresse de
+FreeLegalTextOnInvoices=Mention complémentaire sur les factures
##### Proposals #####
PropalSetup=Configuration du module Propositions Commerciales
CreateForm=Création formulaire
@@ -618,12 +621,14 @@ HideTreadedPropal=Cacher les propositions commerciales trait
AddShippingDateAbility=Possibilité de déterminer une date de livraison
AddDeliveryAddressAbility=Possibilité de sélectionner une adresse de livraison
UseOptionLineIfNoQuantity=Une ligne de produit/service ayant une quantité nulle est considérée comme une option
+FreeLegalTextOnProposal=Mention complémentaire sur les propositions
##### Orders #####
OrdersSetup=Configuration du module Commandes
OrdersNumberingModules=Modules de numérotation des commandes
OrdersModelModule=Modèles de document des commandes
HideTreadedOrders=Cacher les commandes traitées ou annulées de la liste
ValidOrderAfterPropalClosed=Valider la commande après la clôture de la propale, permet de ne pas passer par la commande provisoire
+FreeLegalTextOnOrders=Mention complémentaire sur les commandes
##### Fiche inter #####
FicheinterNumberingModules=Modules de numérotation des fiches interventions
TemplatePDFInterventions=Modèle de documents des fiches d'interventions