From 85f5d72d64ab437e4359f6fbae0e59c476a24342 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 26 Nov 2007 02:54:16 +0000 Subject: [PATCH] =?UTF-8?q?Debut=20correction=20pour=20gestion=20cas=20uti?= =?UTF-8?q?lisation=20no=20UCIN06.=20Les=20remises=20de=20type=20avoir=20n?= =?UTF-8?q?e=20doivent=20pas=20s'inclure=20dans=20les=20lignes=20details?= =?UTF-8?q?=20mais=20dans=20comme=20paiements=20deja=20r=C3=A9alis=C3=A9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- htdocs/comm/addpropal.php | 8 +- htdocs/comm/propal.php | 98 +++++--- htdocs/commande/fiche.php | 88 ++++---- htdocs/compta/commande/fiche.php | 27 ++- htdocs/compta/facture.php | 28 ++- htdocs/facture.class.php | 5 +- htdocs/html.form.class.php | 357 +++++++++++++++--------------- htdocs/langs/en_US/bills.lang | 1 + htdocs/langs/en_US/companies.lang | 1 + htdocs/langs/fr_FR/bills.lang | 1 + htdocs/langs/fr_FR/companies.lang | 1 + htdocs/societe.class.php | 135 +++++------ 12 files changed, 411 insertions(+), 339 deletions(-) diff --git a/htdocs/comm/addpropal.php b/htdocs/comm/addpropal.php index 306c3bd8ee8..829544b59f4 100644 --- a/htdocs/comm/addpropal.php +++ b/htdocs/comm/addpropal.php @@ -56,7 +56,7 @@ print_titre($langs->trans("NewProp")); $html=new Form($db); -// Récupération de l'id de projet +// R�cup�ration de l'id de projet $projetid = 0; if ($_GET["projetid"]) { @@ -129,7 +129,7 @@ if ($_GET["action"] == 'create') else print $langs->trans("CompanyHasNoRelativeDiscount"); $absolute_discount=$soc->getCurrentDiscount(); print '. '; - if ($absolute_discount) print $langs->trans("CompanyHasAbsoluteDiscount",$absolute_discount,$langs->trans("Currency".$conf->monnaie)); + if ($absolute_discount) print $langs->trans("CompanyHasAbsoluteDiscount",price($absolute_discount),$langs->trans("Currency".$conf->monnaie)); else print $langs->trans("CompanyHasNoAbsoluteDiscount"); print '.'; print ''; @@ -141,12 +141,12 @@ if ($_GET["action"] == 'create') print ''.$langs->trans("ValidityDuration").' '.$langs->trans("days").''; - // Conditions de réglement + // Conditions de r�glement print ''.$langs->trans('PaymentConditionsShort').''; $html->select_conditions_paiements($soc->cond_reglement,'cond_reglement_id'); print ''; - // Mode de réglement + // Mode de r�glement print ''.$langs->trans('PaymentMode').''; $html->select_types_paiements($soc->mode_reglement,'mode_reglement_id'); print ''; diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php index dae474a4d5a..142f2deb064 100644 --- a/htdocs/comm/propal.php +++ b/htdocs/comm/propal.php @@ -67,10 +67,10 @@ else if (isset($_GET["propalid"]) && $_GET["propalid"] > 0) $dbtable='propal'; } -// Sécurité d'accès client et commerciaux +// S�curit� d'acc�s client et commerciaux $socid = restrictedArea($user, $module, $objectid, $dbtable); -// Nombre de ligne pour choix de produit/service prédéfinis +// Nombre de ligne pour choix de produit/service pr�d�finis $NBLINES=4; $form=new Form($db); @@ -180,7 +180,7 @@ if ($_POST['action'] == 'add' && $user->rights->propale->creer) $db->begin(); - // Si on a selectionné une propal à copier, on réalise la copie + // Si on a selectionn� une propal � copier, on r�alise la copie if($_POST['createmode']=='copy' && $_POST['copie_propal']) { if ($propal->fetch($_POST['copie_propal']) > 0) @@ -244,7 +244,7 @@ if ($_POST['action'] == 'add' && $user->rights->propale->creer) { $error=0; - // Insertion contact par defaut si défini + // Insertion contact par defaut si d�fini if ($_POST["contactidp"]) { $result=$propal->add_contact($_POST["contactidp"],'CUSTOMER','external'); @@ -323,13 +323,13 @@ if ($_POST['action'] == 'send') if ($_POST['sendto']) { - // Le destinataire a été fourni via le champ libre + // Le destinataire a �t� fourni via le champ libre $sendto = $_POST['sendto']; $sendtoid = 0; } elseif ($_POST['receiver']) { - // Le destinataire a été fourni via la liste déroulante + // Le destinataire a �t� fourni via la liste d�roulante if ($_POST['receiver'] < 0) // Id du tiers { $sendto = $propal->client->email; @@ -360,11 +360,11 @@ if ($_POST['action'] == 'send') } $actiontypeid=3; - $actionmsg ='Mail envoyé par '.$from.' à '.$sendto.'.
'; + $actionmsg ='Mail envoy� par '.$from.' � '.$sendto.'.
'; if ($message) { - $actionmsg.='Texte utilisé dans le corps du message:
'; + $actionmsg.='Texte utilis� dans le corps du message:
'; $actionmsg.=$message; } @@ -455,7 +455,7 @@ if ($_POST['action'] == 'send') { $langs->load("other"); $mesg='
'.$langs->trans('ErrorFailedToReadEntity',$langs->trans("Invoice")).'
'; - dolibarr_syslog('Impossible de lire les données de la facture. Le fichier facture n\'a peut-être pas été généré.'); + dolibarr_syslog('Impossible de lire les donn�es de la facture. Le fichier facture n\'a peut-�tre pas �t� g�n�r�.'); } } @@ -479,6 +479,27 @@ if ($_GET['action'] == 'modif' && $user->rights->propale->creer) $propal->set_draft($user->id); } +if ($_POST['action'] == "setabsolutediscount" && $user->rights->propale->creer) +{ + if ($_POST["remise_id"]) + { + $prop = new Propal($db); + $prop->id=$_GET['propalid']; + $ret=$prop->fetch($_GET['propalid']); + if ($ret > 0) + { + $result=$prop->insert_discount($_POST["remise_id"]); + if ($result < 0) + { + $mesg='
'.$prop->error.'
'; + } + } + else + { + dolibarr_print_error($db,$prop->error); + } + } +} /* * Ajout d'une ligne produit dans la propale @@ -577,7 +598,7 @@ if ($_POST['action'] == "addligne" && $user->rights->propale->creer) } /* - * Mise à jour d'une ligne dans la propale + * Mise � jour d'une ligne dans la propale */ if ($_POST['action'] == 'updateligne' && $user->rights->propale->creer && $_POST["save"] == $langs->trans("Save")) { @@ -637,7 +658,7 @@ if ($_POST['action'] == 'classin') $propal->set_project($user, $_POST['projetidp']); } -// Conditions de règlement +// Conditions de r�glement if ($_POST["action"] == 'setconditions') { $propal = new Propal($db); @@ -662,7 +683,7 @@ if ($_REQUEST['action'] == 'setremiseabsolue' && $user->rights->propale->creer) $_GET['propalid']=$_REQUEST['propalid']; } -// Mode de règlement +// Mode de r�glement if ($_POST["action"] == 'setmode') { $propal = new Propal($db); @@ -794,7 +815,7 @@ if ($_GET['propalid'] > 0) $rowspan=8; - // Société + // Soci�t� print ''.$langs->trans('Company').''.$societe->getNomUrl(1).''; print ''; @@ -802,21 +823,28 @@ if ($_GET['propalid'] > 0) print ''.$langs->trans('Discounts').''; if ($societe->remise_client) print $langs->trans("CompanyHasRelativeDiscount",$societe->remise_client); else print $langs->trans("CompanyHasNoRelativeDiscount"); - $absolute_discount=$societe->getCurrentDiscount(); + $absolute_discount=$societe->getCurrentDiscount('','fk_facture_source IS NULL'); + $absolute_creditnote=$societe->getCurrentDiscount('','fk_facture_source IS NOT NULL'); print '. '; if ($absolute_discount) { if ($propal->statut > 0) { - print $langs->trans("CompanyHasAbsoluteDiscount",price($absolute_discount),$langs->trans("Currency".$conf->monnaie)); + print $langs->trans("CompanyHasAbsoluteDiscount",price($absolute_discount),$langs->transnoentities("Currency".$conf->monnaie)); } else { + // Remise dispo de type non avoir + $filter='fk_facture_source IS NULL'; print '
'; - print $html->form_remise_dispo($_SERVER["PHP_SELF"].'?propalid='.$propal->id,0,'remise_id',$societe->id,$absolute_discount); + print $html->form_remise_dispo($_SERVER["PHP_SELF"].'?propalid='.$propal->id,0,'remise_id',$societe->id,$absolute_discount,$filter); } } - else print $langs->trans("CompanyHasNoAbsoluteDiscount").'.'; + if ($absolute_creditnote) + { + print $langs->trans("CompanyHasCreditNote",price($absolute_creditnote),$langs->transnoentities("Currency".$conf->monnaie)).'. '; + } + if (! $absolute_discount && ! $absolute_creditnote) print $langs->trans("CompanyHasNoAbsoluteDiscount").'.'; print ''; // Dates @@ -868,8 +896,8 @@ if ($_GET['propalid'] > 0) print ''; - // date de livraison (conditionné sur PROPALE_ADD_SHIPPING_DATE car carac à - // gérer par les commandes et non les propal + // date de livraison (conditionn� sur PROPALE_ADD_SHIPPING_DATE car carac � + // g�rer par les commandes et non les propal if ($conf->expedition->enabled) { if ($conf->global->PROPALE_ADD_SHIPPING_DATE) @@ -921,7 +949,7 @@ if ($_GET['propalid'] > 0) } } - // Conditions et modes de réglement + // Conditions et modes de r�glement print ''; print '"; - print ''; print "\n"; - // Ajout produit produits/services personnalisés + // Ajout produit produits/services personnalis�s print ''; print ''; print ''; @@ -1398,7 +1426,7 @@ if ($_GET['propalid'] > 0) print '\n"; print '
'; print $langs->trans('PaymentConditionsShort'); @@ -1175,7 +1203,7 @@ if ($_GET['propalid'] > 0) print ''; if (($objp->info_bits & 2) == 2) { - // Ligne remise prédéfinie, on ne permet pas modif + // Ligne remise pr�d�finie, on ne permet pas modif } else { @@ -1227,7 +1255,7 @@ if ($_GET['propalid'] > 0) print ''; if (($objp->info_bits & 2) == 2) { - // Ligne remise prédéfinie, on permet pas modif + // Ligne remise pr�d�finie, on permet pas modif } else { @@ -1302,7 +1330,7 @@ if ($_GET['propalid'] > 0) } if ($_GET["action"] == 'editline') { - // éditeur wysiwyg + // �diteur wysiwyg if ($conf->fckeditor->enabled && $conf->global->FCKEDITOR_ENABLE_DETAILS) { require_once(DOL_DOCUMENT_ROOT."/lib/doleditor.class.php"); @@ -1351,7 +1379,7 @@ if ($_GET['propalid'] > 0) if ($conf->service->enabled) { print "
Si produit de type service à durée limitée: Du '; + print 'Si produit de type service � dur�e limit�e: Du '; print $html->select_date($objp->date_start,"date_start",0,0,$objp->date_start?0:1); print ' au '; print $html->select_date($objp->date_end,"date_end",0,0,$objp->date_end?0:1); @@ -1389,7 +1417,7 @@ if ($_GET['propalid'] > 0) print ' 
'; - // éditeur wysiwyg + // �diteur wysiwyg if ($conf->fckeditor->enabled && $conf->global->FCKEDITOR_ENABLE_DETAILS_PERSO) { require_once(DOL_DOCUMENT_ROOT."/lib/doleditor.class.php"); @@ -1428,7 +1456,7 @@ if ($_GET['propalid'] > 0) print ''; - // Ajout de produits/services prédéfinis + // Ajout de produits/services pr�d�finis if ($conf->produit->enabled) { if ($conf->global->PRODUIT_USE_MARKUP) @@ -1475,7 +1503,7 @@ if ($_GET['propalid'] > 0) if (! $conf->global->PRODUIT_CHANGE_PROD_DESC) { - // éditeur wysiwyg + // �diteur wysiwyg if ($conf->fckeditor->enabled && $conf->global->FCKEDITOR_ENABLE_DETAILS_PERSO) { require_once(DOL_DOCUMENT_ROOT."/lib/doleditor.class.php"); @@ -1505,7 +1533,7 @@ if ($_GET['propalid'] > 0) print "\n"; /* - * Formulaire cloture (signé ou non) + * Formulaire cloture (sign� ou non) */ $form_close = '
'; $form_close.= ''; @@ -1639,7 +1667,7 @@ if ($_GET['propalid'] > 0) /* - * Documents générés + * Documents g�n�r�s */ $filename=sanitize_string($propal->ref); $filedir=$conf->propal->dir_output . "/" . sanitize_string($propal->ref); @@ -1653,7 +1681,7 @@ if ($_GET['propalid'] > 0) /* - * Commandes rattachées + * Commandes rattach�es */ if($conf->commande->enabled) { @@ -1688,7 +1716,7 @@ if ($_GET['propalid'] > 0) print ''; // Date propale diff --git a/htdocs/commande/fiche.php b/htdocs/commande/fiche.php index ff4fdfa5c67..4eeb7152709 100644 --- a/htdocs/commande/fiche.php +++ b/htdocs/commande/fiche.php @@ -52,7 +52,7 @@ $user->getrights('expedition'); if (!$user->rights->commande->lire) accessforbidden(); -// Sécurité accés client +// S�curit� acc�s client $socid=0; if ($user->societe_id > 0) { @@ -69,7 +69,7 @@ if ($user->societe_id >0 && isset($_GET["id"]) && $_GET["id"]>0) -// Récupération de l'id de projet +// R�cup�ration de l'id de projet $projetid = 0; if ($_GET["projetid"]) { @@ -147,7 +147,7 @@ if ($_POST['action'] == 'add' && $user->rights->commande->creer) $commande->note = $_POST['note']; $commande->source = $_POST['source_id']; $commande->projetid = $_POST['projetid']; - //$commande->remise_absolue = $_POST['remise_absolue']; //la remise était appliquée sur les lignes et sur le total + //$commande->remise_absolue = $_POST['remise_absolue']; //la remise �tait appliqu�e sur les lignes et sur le total //$commande->remise_percent = $_POST['remise_percent']; $commande->ref_client = $_POST['ref_client']; $commande->modelpdf = $_POST['model']; @@ -173,7 +173,7 @@ if ($_POST['action'] == 'add' && $user->rights->commande->creer) if ($commande_id > 0) { - // Insertion contact par defaut si défini + // Insertion contact par defaut si d�fini if ($_POST["contactidp"]) { $result=$commande->add_contact($_POST["contactidp"],'CUSTOMER','external'); @@ -193,7 +193,7 @@ if ($_POST['action'] == 'add' && $user->rights->commande->creer) $action = ''; } - // Fin création facture, on l'affiche + // Fin cr�ation facture, on l'affiche if ($commande_id > 0 && ! $error) { $db->commit(); @@ -393,7 +393,7 @@ if ($_POST['action'] == 'addligne' && $user->rights->commande->creer) } /* - * Mise à jour d'une ligne dans la commande + * Mise � jour d'une ligne dans la commande */ if ($_POST['action'] == 'updateligne' && $user->rights->commande->creer && $_POST['save'] == $langs->trans('Save')) { @@ -423,12 +423,12 @@ if ($_POST['action'] == 'updateligne' && $user->rights->commande->creer && $_POS exit; } - $_GET['id']=$_POST['id']; // Pour réaffichage de la fiche en cours d'édition + $_GET['id']=$_POST['id']; // Pour r�affichage de la fiche en cours d'�dition } if ($_POST['action'] == 'updateligne' && $user->rights->commande->creer && $_POST['cancel'] == $langs->trans('Cancel')) { - Header('Location: fiche.php?id='.$_POST['id']); // Pour réaffichage de la fiche en cours d'édition + Header('Location: fiche.php?id='.$_POST['id']); // Pour r�affichage de la fiche en cours d'�dition exit; } @@ -511,10 +511,10 @@ if ($_REQUEST['action'] == 'builddoc') // En get ou en post { /* * Generation de la commande - * définit dans /includes/modules/commande/modules_commande.php + * d�finit dans /includes/modules/commande/modules_commande.php */ - // Sauvegarde le dernier modèle choisi pour générer un document + // Sauvegarde le dernier mod�le choisi pour g�n�rer un document $commande = new Commande($db, 0, $_REQUEST['id']); $commande->fetch($_REQUEST['id']); if ($_REQUEST['model']) @@ -573,13 +573,13 @@ if ($_POST['action'] == 'send') if ($_POST['sendto']) { - // Le destinataire a été fourni via le champ libre + // Le destinataire a �t� fourni via le champ libre $sendto = $_POST['sendto']; $sendtoid = 0; } elseif ($_POST['receiver']) { - // Le destinataire a été fourni via la liste déroulante + // Le destinataire a �t� fourni via la liste d�roulante if ($_POST['receiver'] < 0) // Id du tiers { $sendto = $commande->client->email; @@ -610,11 +610,11 @@ if ($_POST['action'] == 'send') } $actiontypeid=8; - $actionmsg ='Mail envoyé par '.$from.' à '.$sendto.'.
'; + $actionmsg ='Mail envoy� par '.$from.' � '.$sendto.'.
'; if ($message) { - $actionmsg.='Texte utilisé dans le corps du message:
'; + $actionmsg.='Texte utilis� dans le corps du message:
'; $actionmsg.=$message; } @@ -705,7 +705,7 @@ if ($_POST['action'] == 'send') { $langs->load("other"); $mesg='
'.$langs->trans('ErrorFailedToReadEntity',$langs->trans("Invoice")).'
'; - dolibarr_syslog('Impossible de lire les données de la facture. Le fichier facture n\'a peut-être pas été généré.'); + dolibarr_syslog('Impossible de lire les donn�es de la facture. Le fichier facture n\'a peut-�tre pas �t� g�n�r�.'); } } @@ -822,12 +822,12 @@ if ($_GET['action'] == 'create' && $user->rights->commande->creer) print ''; - // Conditions de réglement + // Conditions de r�glement print ''; - // Mode de réglement + // Mode de r�glement print ''; @@ -877,7 +877,7 @@ if ($_GET['action'] == 'create' && $user->rights->commande->creer) if ($conf->global->PRODUCT_SHOW_WHEN_CREATE) { /* - * Services/produits prédéfinis + * Services/produits pr�d�finis */ $NBLINES=8; @@ -1022,7 +1022,7 @@ else */ if ($_GET['action'] == 'validate') { - // on vérifie si la facture est en numérotation provisoire + // on v�rifie si la facture est en num�rotation provisoire $ref = substr($commande->ref, 1, 4); if ($ref == 'PROV') { @@ -1075,8 +1075,7 @@ else // Ref print ''; - print ''; - print ''; + print ''; print ''; // Ref commande client @@ -1103,7 +1102,7 @@ else print ''; - // Société + // Soci�t� print ''; print ''; print ''; @@ -1112,21 +1111,28 @@ else print ''; // Date @@ -1194,7 +1200,7 @@ else print ''; } - // Conditions et modes de réglement + // Conditions et modes de r�glement print '
'; /* - * Liste des actions propres à la propal + * Liste des actions propres � la propal */ $sql = 'SELECT id, '.$db->pdate('a.datea'). ' as da, label, note, fk_user_author' ; $sql .= ' FROM '.MAIN_DB_PREFIX.'actioncomm as a'; @@ -1750,7 +1778,7 @@ if ($_GET['propalid'] > 0) $liste[$key]=$value; } - // Créé l'objet formulaire mail + // Cr�� l'objet formulaire mail include_once('../html.formmail.class.php'); $formmail = new FormMail($db); $formmail->fromname = $user->fullname; @@ -1764,7 +1792,7 @@ if ($_GET['propalid'] > 0) $formmail->withdeliveryreceipt=1; // Tableau des substitutions $formmail->substit['__PROPREF__']=$propal->ref; - // Tableau des paramètres complémentaires + // Tableau des param�tres compl�mentaires $formmail->param['action']='send'; $formmail->param['models']='propal_send'; $formmail->param['propalid']=$propal->id; @@ -1917,7 +1945,7 @@ else $url = DOL_URL_ROOT.'/comm/prospect/fiche.php?socid='.$objp->rowid; } - // Société + // Soci�t� print ''.img_object($langs->trans('ShowCompany'),'company').' '.$objp->nom.'
'.$langs->trans('PaymentConditionsShort').''; $html->select_conditions_paiements($soc->cond_reglement,'cond_reglement_id',-1,1); print '
'.$langs->trans('PaymentMode').''; $html->select_types_paiements($soc->mode_reglement,'mode_reglement_id'); print '
'.$langs->trans('Ref').''.$commande->ref.''.$langs->trans('Author').' : '.$author->fullname.''.$commande->ref.'
'.$langs->trans('Company').''.$soc->getNomUrl(1).'
'.$langs->trans('Discounts').''; if ($soc->remise_client) print $langs->trans("CompanyHasRelativeDiscount",$soc->remise_client); else print $langs->trans("CompanyHasNoRelativeDiscount"); - $absolute_discount=$soc->getCurrentDiscount(); + $absolute_discount=$soc->getCurrentDiscount('','fk_facture_source IS NULL'); + $absolute_creditnote=$soc->getCurrentDiscount('','fk_facture_source IS NOT NULL'); print '. '; if ($absolute_discount) { if ($commande->statut > 0) { - print $langs->trans("CompanyHasAbsoluteDiscount",$absolute_discount,$langs->trans("Currency".$conf->monnaie)); + print $langs->trans("CompanyHasAbsoluteDiscount",$absolute_discount,$langs->transnoentities("Currency".$conf->monnaie)); } else { + // Remise dispo de type non avoir + $filter='fk_facture_source IS NULL'; print '
'; - print $html->form_remise_dispo($_SERVER["PHP_SELF"].'?id='.$commande->id,0,'remise_id',$soc->id,$absolute_discount); + print $html->form_remise_dispo($_SERVER["PHP_SELF"].'?id='.$commande->id,0,'remise_id',$soc->id,$absolute_discount,$filter); } } - else print $langs->trans("CompanyHasNoAbsoluteDiscount").'.'; + if ($absolute_creditnote) + { + print $langs->trans("CompanyHasCreditNote",price($absolute_creditnote),$langs->transnoentities("Currency".$conf->monnaie)).'. '; + } + if (! $absolute_discount && ! $absolute_creditnote) print $langs->trans("CompanyHasNoAbsoluteDiscount").'.'; print '
'; print ''; - //Note public lorsque le module expedition n'est pas activé + //Note public lorsque le module expedition n'est pas activ� if (!$conf->projet->enabled) $nbrow--; if (!$conf->expedition->enabled) { @@ -1342,7 +1348,7 @@ else $text.= ' - '.$objp->product; $description=($conf->global->PRODUIT_DESC_IN_FORM?'':$objp->description); print $html->textwithtooltip($text,$description,3,'','',$i); - // Todo: voir si on insert ou pas en option les dates de début et de fin de service + // Todo: voir si on insert ou pas en option les dates de d�but et de fin de service //print_date_range($objp->date_start,$objp->date_end); if ($conf->global->PRODUIT_DESC_IN_FORM) { @@ -1407,7 +1413,7 @@ else print ''; print ''; - // Ajout produit produits/services personnalisés + // Ajout produit produits/services personnalis�s print ''; print ''; print ''; @@ -1552,7 +1558,7 @@ else $var=true; print ''; print ''; @@ -1618,7 +1624,7 @@ else if (! $conf->global->PRODUIT_CHANGE_PROD_DESC) { - // éditeur wysiwyg + // �diteur wysiwyg if ($conf->fckeditor->enabled && $conf->global->FCKEDITOR_ENABLE_DETAILS_PERSO) { require_once(DOL_DOCUMENT_ROOT."/lib/doleditor.class.php"); @@ -1656,7 +1662,7 @@ else print 'use_ajax && $conf->global->MAIN_CONFIRM_AJAX) { - // on vérifie si la facture est en numérotation provisoire + // on v�rifie si la facture est en num�rotation provisoire $ref = substr($commande->ref, 1, 4); if ($ref == 'PROV') { @@ -1794,7 +1800,7 @@ else print ''; // ancre /* - * Documents générés + * Documents g�n�r�s * */ $comref = sanitize_string($commande->ref); @@ -1850,7 +1856,7 @@ else print ''; - // Société + // Soci�t� print ''; print ''; print ''; @@ -135,21 +135,28 @@ if ($_GET["id"] > 0) print ''; // Date @@ -214,7 +221,7 @@ if ($_GET["id"] > 0) } print ''; - // Conditions et modes de réglement + // Conditions et modes de r�glement print ''; @@ -2375,9 +2384,9 @@ class Form /** * \brief Affiche formulaire de selection de l'adresse de livraison * \param page Page - * \param selected Id condition présélectionnée + * \param selected Id condition pr�s�lectionn�e * \param htmlname Nom du formulaire select - * \param origin Origine de l'appel pour pouvoir créer un retour + * \param origin Origine de l'appel pour pouvoir cr�er un retour * \param originid Id de l'origine */ function form_adresse_livraison($page, $selected='', $socid, $htmlname='adresse_livraison_id', $origin='', $originid='') @@ -2414,16 +2423,16 @@ class Form /** * \brief Retourne la liste des devises, dans la langue de l'utilisateur - * \param selected code devise pré-sélectionnée + * \param selected code devise pr�-s�lectionn�e * \param htmlname nom de la liste deroulante - * \todo trier liste sur noms après traduction plutot que avant + * \todo trier liste sur noms apr�s traduction plutot que avant */ function select_currency($selected='',$htmlname='currency_id') { global $conf,$langs; $langs->load("dict"); - if ($selected=='euro' || $selected=='euros') $selected='EUR'; // Pour compatibilité + if ($selected=='euro' || $selected=='euros') $selected='EUR'; // Pour compatibilit� $sql = "SELECT code_iso, label, active FROM ".MAIN_DB_PREFIX."c_currencies"; $sql .= " WHERE active = 1"; @@ -2449,7 +2458,7 @@ class Form { print ''; @@ -2467,17 +2476,17 @@ class Form /** - * \brief Selection du taux de tva appliqué par vendeur + * \brief Selection du taux de tva appliqu� par vendeur * \param name Nom champ html - * \param defaulttx Forçage du taux tva présélectionné. Mettre '' pour aucun forcage. - * \param societe_vendeuse Objet société vendeuse - * \param societe_acheteuse Objet société acheteuse + * \param defaulttx For�age du taux tva pr�s�lectionn�. Mettre '' pour aucun forcage. + * \param societe_vendeuse Objet soci�t� vendeuse + * \param societe_acheteuse Objet soci�t� acheteuse * \param taux_produit Taux par defaut du produit vendu - * \remarks Si vendeur non assujeti à TVA, TVA par défaut=0. Fin de règle. - * Si le (pays vendeur = pays acheteur) alors la TVA par défaut=TVA du produit vendu. Fin de règle. - * Si (vendeur et acheteur dans Communauté européenne) et bien vendu = moyen de transports neuf (auto, bateau, avion), TVA par défaut=0 (La TVA doit être payé par l'acheteur au centre d'impots de son pays et non au vendeur). Fin de règle. - * Si (vendeur et acheteur dans Communauté européenne) et bien vendu autre que transport neuf alors la TVA par défaut=TVA du produit vendu. Fin de règle. - * Sinon la TVA proposée par défaut=0. Fin de règle. + * \remarks Si vendeur non assujeti � TVA, TVA par d�faut=0. Fin de r�gle. + * Si le (pays vendeur = pays acheteur) alors la TVA par d�faut=TVA du produit vendu. Fin de r�gle. + * Si (vendeur et acheteur dans Communaut� europ�enne) et bien vendu = moyen de transports neuf (auto, bateau, avion), TVA par d�faut=0 (La TVA doit �tre pay� par l'acheteur au centre d'impots de son pays et non au vendeur). Fin de r�gle. + * Si (vendeur et acheteur dans Communaut� europ�enne) et bien vendu autre que transport neuf alors la TVA par d�faut=TVA du produit vendu. Fin de r�gle. + * Sinon la TVA propos�e par d�faut=0. Fin de r�gle. */ function select_tva($name='tauxtva', $defaulttx='', $societe_vendeuse='', $societe_acheteuse='', $taux_produit='') { @@ -2539,13 +2548,13 @@ class Form print ''.$this->db->error().''; } - // Définition du taux à présélectionner (si defaulttx non forcé et donc vaut -1 ou '') + // D�finition du taux � pr�s�lectionner (si defaulttx non forc� et donc vaut -1 ou '') if ($defaulttx < 0 || strlen($defaulttx) == 0) { $defaulttx=get_default_tva($societe_vendeuse,$societe_acheteuse,$taux_produit); } - // Si taux par defaut n'a pu etre déterminé, on prend dernier de la liste. - // Comme ils sont triés par ordre croissant, dernier = plus élevé = taux courant + // Si taux par defaut n'a pu etre d�termin�, on prend dernier de la liste. + // Comme ils sont tri�s par ordre croissant, dernier = plus �lev� = taux courant if ($defaulttx < 0 || strlen($defaulttx) == 0) { $defaulttx = $txtva[sizeof($txtva)-1]; @@ -2582,7 +2591,7 @@ class Form * \brief Selection des unites de mesure * \param name Nom champ html * \param measuring_style Le style de mesure : weight, volume,... - * \param default Forçage de l'unite + * \param default For�age de l'unite * \remarks pour l'instant on ne definit pas les unites dans la base */ function select_measuring_units($name='measuring_units', $measuring_style='', $default='0', $adddefault=0) @@ -2657,10 +2666,10 @@ class Form } } - // Définition du taux à présélectionner + // D�finition du taux � pr�s�lectionner if ($defaulttx == '') $defaulttx=get_default_tva($societe_vendeuse,$societe_acheteuse,$taux_produit); - // Si taux par defaut n'a pu etre trouvé, on prend dernier. - // Comme ils sont triés par ordre croissant, dernier = plus élevé = taux courant + // Si taux par defaut n'a pu etre trouv�, on prend dernier. + // Comme ils sont tri�s par ordre croissant, dernier = plus �lev� = taux courant if ($defaulttx == '') $defaulttx = $txtva[sizeof($txtva)-1]; $nbdetaux = sizeof($txtva); @@ -2676,16 +2685,16 @@ class Form /** * \brief Affiche zone de selection de date * Liste deroulante pour les jours, mois, annee et eventuellement heurs et minutes - * Les champs sont présélectionnées avec: + * Les champs sont pr�s�lectionn�es avec: * - La date set_time (timestamps ou date au format YYYY-MM-DD ou YYYY-MM-DD HH:MM) * - La date du jour si set_time vaut '' * - Aucune date (champs vides) si set_time vaut -1 (dans ce cas empty doit valoir 1) - * \param set_time Date de pré-sélection + * \param set_time Date de pr�-s�lection * \param prefix Prefix pour nom champ * \param h 1=Affiche aussi les heures * \param m 1=Affiche aussi les minutes * \param empty 0=Champ obligatoire, 1=Permet une saisie vide - * \param form_name Nom du formulaire de provenance. Utilisé pour les dates en popup style andre. + * \param form_name Nom du formulaire de provenance. Utilis� pour les dates en popup style andre. * \param d 1=Affiche aussi les jours, mois, annees */ function select_date($set_time='', $prefix='re', $h=0, $m=0, $empty=0, $form_name="", $d=1) @@ -2699,7 +2708,7 @@ class Form if (! $set_time && $empty == 0) $set_time = time(); - // Analyse de la date de préselection + // Analyse de la date de pr�selection if (eregi('^([0-9]+)\-([0-9]+)\-([0-9]+)\s?([0-9]+)?:?([0-9]+)?',$set_time,$reg)) { // Date au format 'YYYY-MM-DD' ou 'YYYY-MM-DD HH:MM:SS' @@ -2834,7 +2843,7 @@ class Form } print ""; - // Année + // Ann�e if ($empty || $set_time == -1) { print ''; @@ -2917,7 +2926,7 @@ class Form } /** - \brief Fonction servant a afficher une durée dans une liste déroulante + \brief Fonction servant a afficher une dur�e dans une liste d�roulante \param prefix prefix \param iSecond Nombre de secondes */ @@ -2954,13 +2963,13 @@ class Form /** - \brief Affiche un select à partir d'un tableau + \brief Affiche un select � partir d'un tableau \param htmlname Nom de la zone select \param array Tableau de key+valeur - \param id Key pré-sélectionnée + \param id Key pr�-s�lectionn�e \param show_empty 1 si il faut ajouter une valeur vide dans la liste, 0 sinon \param key_in_label 1 pour afficher la key dans la valeur "[key] value" - \param value_as_key 1 pour utiliser la valeur comme clé + \param value_as_key 1 pour utiliser la valeur comme cl� \param $use_java 1 pour utiliser des fonctions javascript \param $fonction Fonction javascript \param $translate Traduire la valeur @@ -2985,7 +2994,7 @@ class Form while (list($key, $value) = each ($array)) { print '"; @@ -3423,10 +3432,10 @@ class Form } /** - * \brief Retourne la liste des modéles d'export - * \param selected Id modéle présélectionné + * \brief Retourne la liste des mod�les d'export + * \param selected Id mod�le pr�s�lectionn� * \param htmlname Nom de la zone select - * \param type Type des modéles recherchés + * \param type Type des mod�les recherch�s * \param useempty Affiche valeur vide dans liste */ function select_export_model($selected='',$htmlname='exportmodelid',$type='',$useempty=0) @@ -3471,7 +3480,7 @@ class Form /** * \brief Retourne la liste des mois - * \param selected Id mois présélectionné + * \param selected Id mois pr�s�lectionn� * \param htmlname Nom de la zone select * \param useempty Affiche valeur vide dans liste */ @@ -3540,11 +3549,11 @@ class Form } /** - * \brief Liste de sélection du générateur de codes barres - * \param selected Id code présélectionné + * \brief Liste de s�lection du g�n�rateur de codes barres + * \param selected Id code pr�s�lectionn� * \param code_id Id du code barre * \param idForm Id du formulaire - * Todo : ajouter une vérification de désactivation du code barre si il est déjà utilisé dans un module + * Todo : ajouter une v�rification de d�sactivation du code barre si il est d�j� utilis� dans un module */ function setBarcodeEncoder($selected=0,$code_id,$idForm='formbarcode') { @@ -3552,7 +3561,7 @@ class Form $disable = ''; - // On vérifie si le code de barre est déjà sélectionné par défaut dans le module produit + // On v�rifie si le code de barre est d�j� s�lectionn� par d�faut dans le module produit if ($conf->produit->enabled && $conf->global->PRODUIT_DEFAULT_BARCODE_TYPE == $code_id) { $disable = 'disabled="disabled"'; @@ -3573,7 +3582,7 @@ class Form /** * \brief Retourne la liste des types de codes barres - * \param selected Id code présélectionné + * \param selected Id code pr�s�lectionn� * \param htmlname Nom de la zone select * \param useempty Affiche valeur vide dans liste */ @@ -3627,7 +3636,7 @@ class Form /** * \brief Affiche formulaire de selection du type de code barre * \param page Page - * \param selected Id condition présélectionnée + * \param selected Id condition pr�s�lectionn�e * \param htmlname Nom du formulaire select */ function form_barcode_type($page, $selected='', $htmlname='barcodetype_id') diff --git a/htdocs/langs/en_US/bills.lang b/htdocs/langs/en_US/bills.lang index b08c6e1b2ef..4f443a2dc96 100644 --- a/htdocs/langs/en_US/bills.lang +++ b/htdocs/langs/en_US/bills.lang @@ -291,6 +291,7 @@ LawApplicationPart4=their price. VATDischarged=VAT paid on debits. LimitedLiabilityCompanyCapital=SARL with Capital of UseDiscount=Use discount +UseCreditNoteInInvoicePayment=Include credit note as payment MenuChequeDeposits=Cheques deposits MenuCheques=Cheques MenuChequesReceipts=Cheques receipts diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang index 985e9175c02..b733692fa72 100644 --- a/htdocs/langs/en_US/companies.lang +++ b/htdocs/langs/en_US/companies.lang @@ -117,6 +117,7 @@ CustomerAbsoluteDiscountShort=Absolute discount CompanyHasRelativeDiscount=This customer has a discount of %s%% CompanyHasNoRelativeDiscount=This customer has no relative discount by default CompanyHasAbsoluteDiscount=This customer still has discount credits for %s %s +CompanyHasCreditNote=This customer still has credit notes for %s %s CompanyHasNoAbsoluteDiscount=This customer has no discount credit available CustomerAbsoluteDiscountAllUsers=Absolute discounts (granted by all users) CustomerAbsoluteDiscountMy=Absolute discounts (granted by yourself) diff --git a/htdocs/langs/fr_FR/bills.lang b/htdocs/langs/fr_FR/bills.lang index aa42ea6c434..21ca1e40352 100644 --- a/htdocs/langs/fr_FR/bills.lang +++ b/htdocs/langs/fr_FR/bills.lang @@ -290,6 +290,7 @@ LawApplicationPart4=leurs prix. VATDischarged=TVA acquittée sur les débits. LimitedLiabilityCompanyCapital=SARL au Capital de UseDiscount=Appliquer remise +UseCreditNoteInInvoicePayment=Appliquer avoir en tant que paiement MenuChequeDeposits=Remises de chèques MenuCheques=Gestion chèques MenuChequesReceipts=Bordereaux diff --git a/htdocs/langs/fr_FR/companies.lang b/htdocs/langs/fr_FR/companies.lang index 0d10dc104af..225a1273f57 100644 --- a/htdocs/langs/fr_FR/companies.lang +++ b/htdocs/langs/fr_FR/companies.lang @@ -117,6 +117,7 @@ CustomerAbsoluteDiscountShort=Remise fixe CompanyHasRelativeDiscount=Ce client a une remise par défaut de %s%% CompanyHasNoRelativeDiscount=Ce client n'a pas de remises relatives par défaut CompanyHasAbsoluteDiscount=Ce client a %s %s de remises fixes disponibles +CompanyHasCreditNote=Ce client a %s %s d'avoirs disponibles CompanyHasNoAbsoluteDiscount=Ce client n'a pas ou plus de remises fixes disponibles CustomerAbsoluteDiscountAllUsers=Remises fixes en cours (accordées par tout utilisateur) CustomerAbsoluteDiscountMy=Remises fixes en cours (accordées personnellement) diff --git a/htdocs/societe.class.php b/htdocs/societe.class.php index bd2075772dd..1e3a4395b9c 100644 --- a/htdocs/societe.class.php +++ b/htdocs/societe.class.php @@ -95,12 +95,12 @@ class Societe var $price_level; - var $commercial_id; //Id du commercial affecté + var $commercial_id; //Id du commercial affect� /** * \brief Constructeur de la classe - * \param DB handler accès base de données + * \param DB handler acc�s base de donn�es * \param id id societe (0 par defaut) */ function Societe($DB, $id=0) @@ -123,8 +123,8 @@ class Societe } /** - * \brief Crée la societe en base - * \param user Objet utilisateur qui demande la création + * \brief Cr�e la societe en base + * \param user Objet utilisateur qui demande la cr�ation * \return int 0 si ok, < 0 si erreur */ @@ -132,7 +132,7 @@ class Societe { global $langs,$conf; - // Nettoyage paramètres + // Nettoyage param�tres $this->nom=trim($this->nom); dolibarr_syslog("Societe::create ".$this->nom); @@ -157,12 +157,12 @@ class Societe $ret = $this->update($this->id,$user,0,1,1); - // si un commercial crée un client il lui est affecté automatiquement + // si un commercial cr�e un client il lui est affect� automatiquement if (!$user->rights->commercial->client->voir) { $this->add_commercial($user, $user->id); } - // Ajout du commercial affecté + // Ajout du commercial affect� else if ($this->commercial_id != '' && $this->commercial_id != -1) { $this->add_commercial($user, $this->commercial_id); @@ -227,13 +227,13 @@ class Societe if (! $this->nom) { - $this->error = "Le nom de la société ne peut être vide.\n"; + $this->error = "Le nom de la soci�t� ne peut �tre vide.\n"; $result = -2; } if ($this->client && $this->codeclient_modifiable()) { - // On ne vérifie le code client que si la société est un client / prospect et que le code est modifiable - // Si il n'est pas modifiable il n'est pas mis à jour lors de l'update + // On ne v�rifie le code client que si la soci�t� est un client / prospect et que le code est modifiable + // Si il n'est pas modifiable il n'est pas mis � jour lors de l'update $rescode = $this->check_codeclient(); if ($rescode <> 0) { @@ -247,19 +247,19 @@ class Societe } if ($rescode == -3) { - $this->error .= "Ce code client est déjà utilisé.\n"; + $this->error .= "Ce code client est d�j� utilis�.\n"; } if ($rescode == -4) { - $this->error .= "Vous devez renseigner le préfix pour générer le code client.\n"; + $this->error .= "Vous devez renseigner le pr�fix pour g�n�rer le code client.\n"; } $result = -3; } } if ($this->fournisseur && $this->codefournisseur_modifiable()) { - // On ne vérifie le code fournisseur que si la société est un fournisseur et que le code est modifiable - // Si il n'est pas modifiable il n'est pas mis à jour lors de l'update + // On ne v�rifie le code fournisseur que si la soci�t� est un fournisseur et que le code est modifiable + // Si il n'est pas modifiable il n'est pas mis � jour lors de l'update $rescode = $this->check_codefournisseur(); if ($rescode <> 0) { @@ -273,11 +273,11 @@ class Societe } if ($rescode == -3) { - $this->error .= "Ce code fournisseur est déjà utilisé.\n"; + $this->error .= "Ce code fournisseur est d�j� utilis�.\n"; } if ($rescode == -5) { - $this->error .= "Vous devez renseigner le préfix pour générer le code fournisseur.\n"; + $this->error .= "Vous devez renseigner le pr�fix pour g�n�rer le code fournisseur.\n"; } $result = -3; } @@ -287,9 +287,9 @@ class Societe } /** - * \brief Mise a jour des paramètres de la société + * \brief Mise a jour des param�tres de la soci�t� * \param id id societe - * \param user Utilisateur qui demande la mise à jour + * \param user Utilisateur qui demande la mise � jour * \param call_trigger 0=non, 1=oui * \param allowmodcodeclient Autorise modif code client * \param allowmodcodefournisseur Autorise modif code fournisseur @@ -301,7 +301,7 @@ class Societe dolibarr_syslog("Societe::Update id=".$id." call_trigger=".$call_triger." allowmodcodeclient=".$allowmodcodeclient." allowmodcodefournisseur=".$allowmodcodefournisseur); - // Nettoyage des paramètres + // Nettoyage des param�tres $this->id=$id; $this->capital=trim($this->capital); $this->nom=trim($this->nom); @@ -414,7 +414,7 @@ class Societe if ($resql) { - //Si c'est un particulier on crée la fiche contact + //Si c'est un particulier on cr�e la fiche contact if ($this->particulier == 1) { require_once (DOL_DOCUMENT_ROOT."/contact.class.php"); @@ -477,7 +477,7 @@ class Societe /** * \brief Charge depuis la base l'objet societe - * \param socid Id de la société à charger en mémoire + * \param socid Id de la soci�t� � charger en m�moire * \param user Objet de l'utilisateur * \return int >0 si ok, <0 si ko */ @@ -680,8 +680,8 @@ class Societe } /** - * \brief Suppression d'une societe de la base avec ses dépendances (contacts, rib...) - * \param id id de la societe à supprimer + * \brief Suppression d'une societe de la base avec ses d�pendances (contacts, rib...) + * \param id id de la societe � supprimer */ function delete($id) { @@ -725,7 +725,7 @@ class Societe } else { - $this->error .= "Impossible de supprimer la société.\n"; + $this->error .= "Impossible de supprimer la soci�t�.\n"; dolibarr_syslog("Societe::Delete erreur -3"); } @@ -739,7 +739,7 @@ class Societe $this->db->commit(); - // Suppression du répertoire document + // Suppression du r�pertoire document $docdir = $conf->societe->dir_output . "/" . $id; if (file_exists ($docdir)) { @@ -759,8 +759,8 @@ class Societe /** - * \brief Retournes les factures impayées de la société - * \return array tableau des id de factures impayées + * \brief Retournes les factures impay�es de la soci�t� + * \return array tableau des id de factures impay�es * */ function factures_impayes() @@ -792,7 +792,7 @@ class Societe } /** - * \brief Attribut le prefix de la société en base + * \brief Attribut le prefix de la soci�t� en base * */ function attribute_prefix() @@ -843,10 +843,10 @@ class Societe } /** - * \brief Génère le préfix de la sociét - * \param nom nom de la sociét - * \param taille taille du prefix à retourner - * \param mot l'indice du mot à utiliser + * \brief G�n�re le pr�fix de la soci�t + * \param nom nom de la soci�t + * \param taille taille du prefix � retourner + * \param mot l'indice du mot � utiliser */ function genprefix($nom, $taille=4, $mot=0) { @@ -856,7 +856,7 @@ class Societe if ($mot < count($tab)) { $prefix = strtoupper(substr($tab[$mot],0,$taille)); - // On vérifie que ce prefix n'a pas déjà été pris ... + // On v�rifie que ce prefix n'a pas d�j� �t� pris ... $sql = "SELECT count(*) as nb FROM ".MAIN_DB_PREFIX."societe WHERE prefix_comm = '$prefix'"; $resql=$this->db->query( $sql); if ($resql) @@ -877,7 +877,7 @@ class Societe } /** - * \brief Définit la société comme un client + * \brief D�finit la soci�t� comme un client * */ function set_as_client() @@ -893,10 +893,10 @@ class Societe } /** - * \brief Définit la société comme un client + * \brief D�finit la soci�t� comme un client * \param remise Valeur en % de la remise * \param note Note/Motif de modification de la remise - * \param user Utilisateur qui définie la remise + * \param user Utilisateur qui d�finie la remise * \return int <0 si ko, >0 si ok */ function set_remise_client($remise, $note, $user) @@ -951,7 +951,7 @@ class Societe } /** - * \brief Ajoute une remise fixe pour la société + * \brief Ajoute une remise fixe pour la soci�t� * \param remise Montant de la remise * \param user Utilisateur qui accorde la remise * \param desc Motif de l'avoir @@ -1002,8 +1002,8 @@ class Societe } /** - * \brief Supprime un avoir (à condition que non affecté à une facture) - * \param id Id de l'avoir à supprimer + * \brief Supprime un avoir (� condition que non affect� � une facture) + * \param id Id de l'avoir � supprimer * \return int <0 si ko, id de l'avoir si ok */ function del_remise_except($id) @@ -1022,21 +1022,22 @@ class Societe /** - * \brief Renvoie montant des avoirs en cours - * \param user Filtre sur un user auteur des l'avoir + * \brief Renvoie montant des avoirs en cours disponibles + * \param user Filtre sur un user auteur des remises + * \param filter Filtre autre * \return int <0 si ko, montant avoir sinon */ - function getCurrentDiscount($user='') + function getCurrentDiscount($user='',$filter='') { $sql = "SELECT SUM(rc.amount_ht) as amount"; $sql.= " FROM ".MAIN_DB_PREFIX."societe_remise_except as rc"; $sql.= " WHERE rc.fk_soc =". $this->id; if (is_object($user)) $sql.= " AND rc.fk_user = ".$user->id; $sql.= " AND rc.fk_facture IS NULL"; - $resql=$this->db->query($sql); + if ($filter) $sql.=' AND '.$filter; - dolibarr_syslog("Societe::getCurrentDiscount sql=".$sql); - + dolibarr_syslog("Societe::getCurrentDiscount sql=".$sql,LOG_DEBUG); + $resql=$this->db->query($sql); if ($resql) { $obj = $this->db->fetch_object($resql); @@ -1157,8 +1158,8 @@ class Societe /** * \brief Renvoie le nom d'une societe a partir d'un id - * \param id id de la société recherchée - * \return string Nom de la société + * \param id id de la soci�t� recherch�e + * \return string Nom de la soci�t� */ function get_nom($id) { @@ -1184,7 +1185,7 @@ class Societe /** - * \brief Renvoie la liste des contacts emails existant pour la sociét + * \brief Renvoie la liste des contacts emails existant pour la soci�t * \return array tableau des contacts emails */ function thirdparty_and_contact_email_array() @@ -1194,14 +1195,14 @@ class Societe $contact_email = $this->contact_email_array(); if ($this->email) { - // TODO: Tester si email non deja présent dans tableau contact + // TODO: Tester si email non deja pr�sent dans tableau contact $contact_email[-1]=$langs->trans("ThirdParty").': '.dolibarr_trunc($this->nom,16)." <".$this->email.">";; } return $contact_email; } /** - * \brief Renvoie la liste des contacts emails existant pour la société + * \brief Renvoie la liste des contacts emails existant pour la soci�t� * \return array tableau des contacts emails */ function contact_email_array() @@ -1235,7 +1236,7 @@ class Societe /** - * \brief Renvoie la liste des contacts de cette sociét + * \brief Renvoie la liste des contacts de cette soci�t * \return array tableau des contacts */ function contact_array() @@ -1298,7 +1299,7 @@ class Societe /** - * \brief Renvoie la liste des libellés traduits des types actifs de sociétés + * \brief Renvoie la liste des libell�s traduits des types actifs de soci�t�s * \param mode 0=renvoi id+libelle, 1=renvoi code+libelle * \return array tableau des typesl */ @@ -1440,7 +1441,7 @@ class Societe } /** - * \brief Attribut un code client à partir du module de controle des codes. + * \brief Attribut un code client � partir du module de controle des codes. * \return code_client Code client automatique */ function get_codeclient($objsoc=0,$type=0) @@ -1460,7 +1461,7 @@ class Societe } /** - * \brief Attribut un code fournisseur à partir du module de controle des codes. + * \brief Attribut un code fournisseur � partir du module de controle des codes. * \return code_fournisseur Code fournisseur automatique */ function get_codefournisseur($objsoc=0,$type=1) @@ -1538,7 +1539,7 @@ class Societe /** * \brief Verifie code client - * \return int <0 si KO, 0 si OK, peut modifier le code client suivant le module utilisé + * \return int <0 si KO, 0 si OK, peut modifier le code client suivant le module utilis� */ function check_codeclient() { @@ -1563,7 +1564,7 @@ class Societe /** * \brief Verifie code fournisseur - * \return int <0 si KO, 0 si OK, peut modifier le code client suivant le module utilisé + * \return int <0 si KO, 0 si OK, peut modifier le code client suivant le module utilis� */ function check_codefournisseur() { @@ -1588,8 +1589,8 @@ class Societe /** * \brief Renvoie un code compta, suivant le module de code compta. - * Peut être identique à celui saisit ou généré automatiquement. - * A ce jour seule la génération automatique est implémentée + * Peut �tre identique � celui saisit ou g�n�r� automatiquement. + * A ce jour seule la g�n�ration automatique est impl�ment�e * \param type Type de tiers ('customer' ou 'supplier') * \return string Code compta si ok, 0 si aucun, <0 si ko */ @@ -1623,8 +1624,8 @@ class Societe } /** - * \brief Défini la société mère pour les filiales - * \param id id compagnie mère à positionner + * \brief D�fini la soci�t� m�re pour les filiales + * \param id id compagnie m�re � positionner * \return int <0 si ko, >0 si ok */ function set_parent($id) @@ -1647,8 +1648,8 @@ class Societe } /** - * \brief Supprime la société mère - * \param id id compagnie mère à effacer + * \brief Supprime la soci�t� m�re + * \param id id compagnie m�re � effacer * \return int <0 si ko, >0 si ok */ function remove_parent($id) @@ -1723,7 +1724,7 @@ class Societe } /** - * \brief Renvoi url de vérification d'un identifiant professionnal + * \brief Renvoi url de v�rification d'un identifiant professionnal * \param idprof 1,2,3,4 (Exemple: 1=siren,2=siret,3=naf,4=rcs/rm) * \param soc Objet societe * \return string url ou chaine vide si aucune url connue @@ -1741,8 +1742,8 @@ class Societe } /** - * \brief Indique si la société a des projets - * \return bool true si la société a des projets, false sinon + * \brief Indique si la soci�t� a des projets + * \return bool true si la soci�t� a des projets, false sinon */ function has_projects() { @@ -1823,12 +1824,12 @@ class Societe } /* - * \brief Renvoi si pays appartient à CEE + * \brief Renvoi si pays appartient � CEE * \param boolean true = pays dans CEE, false= pays hors CEE */ function isInEEC() { - // \todo liste code pays à compléter + // \todo liste code pays � compl�ter $country_code_in_EEC=array('BE','FR','LU','GB'); //print "dd".$this->pays_code; return in_array($this->pays_code,$country_code_in_EEC);
'; print $langs->trans('PaymentConditionsShort'); @@ -1213,7 +1219,7 @@ else } print ''; if (($objp->info_bits & 2) == 2) { - // Ligne remise prédéfinie, on permet pas modif + // Ligne remise pr�d�finie, on permet pas modif } else { @@ -1479,7 +1485,7 @@ else print ' - '.nl2br($objp->product); print '
'; } - // éditeur wysiwyg + // �diteur wysiwyg if ($conf->fckeditor->enabled && $conf->global->FCKEDITOR_ENABLE_DETAILS) { require_once(DOL_DOCUMENT_ROOT."/lib/doleditor.class.php"); @@ -1544,7 +1550,7 @@ else print '
 
'; - // éditeur wysiwyg + // �diteur wysiwyg if ($conf->fckeditor->enabled && $conf->global->FCKEDITOR_ENABLE_DETAILS_PERSO) { require_once(DOL_DOCUMENT_ROOT."/lib/doleditor.class.php"); @@ -1578,7 +1584,7 @@ else print ''; - // Ajout de produits/services prédéfinis + // Ajout de produits/services pr�d�finis if ($conf->produit->enabled) { print '
'; /* - * Liste des actions propres à la commande + * Liste des actions propres � la commande */ $sql = 'SELECT id, '.$db->pdate('a.datea'). ' as da, label, note, fk_user_author' ; $sql .= ' FROM '.MAIN_DB_PREFIX.'actioncomm as a'; @@ -1936,7 +1942,7 @@ else $liste[$key]=$value; } - // Créé l'objet formulaire mail + // Cr�� l'objet formulaire mail include_once('../html.formmail.class.php'); $formmail = new FormMail($db); $formmail->fromname = $user->fullname; @@ -1950,7 +1956,7 @@ else $formmail->withdeliveryreceipt=1; // Tableau des substitutions $formmail->substit['__ORDERREF__']=$commande->ref; - // Tableau des paramètres complémentaires + // Tableau des param�tres compl�mentaires $formmail->param['action']='send'; $formmail->param['models']='order_send'; $formmail->param['orderid']=$commande->id; @@ -1963,7 +1969,7 @@ else } else { - // Commande non trouvée + // Commande non trouv�e dolibarr_print_error($db); } } diff --git a/htdocs/compta/commande/fiche.php b/htdocs/compta/commande/fiche.php index f2902f6588a..35e222d6403 100644 --- a/htdocs/compta/commande/fiche.php +++ b/htdocs/compta/commande/fiche.php @@ -42,7 +42,7 @@ $user->getrights('commande'); if (! $user->rights->commande->lire) accessforbidden(); -// Sécurité accés client +// S�curit� acc�s client if ($user->societe_id > 0) { $action = ''; @@ -126,7 +126,7 @@ if ($_GET["id"] > 0) print '
'.$langs->trans('Company').''.$soc->getNomUrl(1,'compta').'
'.$langs->trans('Discounts').''; if ($soc->remise_client) print $langs->trans("CompanyHasRelativeDiscount",$soc->remise_client); else print $langs->trans("CompanyHasNoRelativeDiscount"); - $absolute_discount=$soc->getCurrentDiscount(); + $absolute_discount=$soc->getCurrentDiscount('','fk_facture_source IS NULL'); + $absolute_creditnote=$soc->getCurrentDiscount('','fk_facture_source IS NOT NULL'); print '. '; if ($absolute_discount) { if ($commande->statut > 0) { - print $langs->trans("CompanyHasAbsoluteDiscount",price($absolute_discount),$langs->trans("Currency".$conf->monnaie)); + print $langs->trans("CompanyHasAbsoluteDiscount",price($absolute_discount),$langs->transnoentities("Currency".$conf->monnaie)); } else { + // Remise dispo de type non avoir + $filter='fk_facture_source IS NULL'; print '
'; - print $html->form_remise_dispo($_SERVER["PHP_SELF"].'?id='.$commande->id,0,'remise_id',$soc->id,$absolute_discount); + print $html->form_remise_dispo($_SERVER["PHP_SELF"].'?id='.$commande->id,0,'remise_id',$soc->id,$absolute_discount,$filter); } } - else print $langs->trans("CompanyHasNoAbsoluteDiscount").'.'; + if ($absolute_creditnote) + { + print $langs->trans("CompanyHasCreditNote",price($absolute_creditnote),$langs->transnoentities("Currency".$conf->monnaie)).'. '; + } + if (! $absolute_discount && ! $absolute_creditnote) print $langs->trans("CompanyHasNoAbsoluteDiscount").'.'; print '
'; print ''; // Dates diff --git a/htdocs/facture.class.php b/htdocs/facture.class.php index b9e75f19045..3403ff0970b 100644 --- a/htdocs/facture.class.php +++ b/htdocs/facture.class.php @@ -2382,10 +2382,9 @@ class Facture extends CommonObject if ($obj->fk_statut == 2) $qualified=1; if ($qualified) { - //$ref=$obj->facnumber; - $ref=($obj->fk_paiement?1:0); - $return[$obj->rowid]=$ref; + $paymentornot=($obj->fk_paiement?1:0); + $return[$obj->rowid]=$paymentornot; } } diff --git a/htdocs/html.form.class.php b/htdocs/html.form.class.php index afcaaeeab98..c095de20830 100644 --- a/htdocs/html.form.class.php +++ b/htdocs/html.form.class.php @@ -6,7 +6,7 @@ * Copyright (C) 2004 Eric Seigne * Copyright (C) 2005-2007 Regis Houssin * Copyright (C) 2006 Andre Cianfarani - * Copyright (C) 2006 Marc Barilley/Océbo + * Copyright (C) 2006 Marc Barilley/Oc�bo * Copyright (C) 2007 Franky Van Liedekerke * Copyright (C) 2007 Patrick Raguin * @@ -30,14 +30,14 @@ /** \file htdocs/html.form.class.php - \brief Fichier de la classe des fonctions prédéfinie de composants html + \brief Fichier de la classe des fonctions pr�d�finie de composants html \version $Revision$ */ /** \class Form - \brief Classe permettant la génération de composants html + \brief Classe permettant la g�n�ration de composants html */ class Form @@ -54,7 +54,7 @@ class Form /** \brief Constructeur - \param DB handler d'accès base de donnée + \param DB handler d'acc�s base de donn�e */ function Form($DB) { @@ -66,10 +66,10 @@ class Form /** \brief Affiche un texte+picto avec tooltip sur texte ou sur picto - \param text Texte à afficher - \param htmltext Contenu html du tooltip, codé en html - \param tooltipon 1=tooltip sur texte, 2=tooltip sur picto, 3=tooltip sur les 2, 4=tooltip sur les 2 et forcé en Ajaxa - \param direction -1=Le picto est avant, 0=pas de picto, 1=le picto est après + \param text Texte � afficher + \param htmltext Contenu html du tooltip, cod� en html + \param tooltipon 1=tooltip sur texte, 2=tooltip sur picto, 3=tooltip sur les 2, 4=tooltip sur les 2 et forc� en Ajaxa + \param direction -1=Le picto est avant, 0=pas de picto, 1=le picto est apr�s \param img Code img du picto \return string Code html du texte,picto */ @@ -145,9 +145,9 @@ class Form /** \brief Affiche un texte avec picto help qui affiche un tooltip - \param text Texte à afficher + \param text Texte � afficher \param htmltooltip Contenu html du tooltip - \param direction 1=Le picto est après, -1=le picto est avant + \param direction 1=Le picto est apr�s, -1=le picto est avant \param usehelpcursor 1=Utilise curseur help, 0=Curseur par defaut \return string Code html du texte,picto */ @@ -158,9 +158,9 @@ class Form /** \brief Affiche un texte avec picto warning qui affiche un tooltip - \param text Texte à afficher + \param text Texte � afficher \param htmltooltip Contenu html du tooltip - \param direction 1=Le picto est après, -1=le picto est avant + \param direction 1=Le picto est apr�s, -1=le picto est avant \return string Code html du texte,picto */ function textwithwarning($text,$htmltext,$direction=1) @@ -170,13 +170,13 @@ class Form /** - * \brief Retourne la liste déroulante des départements/province/cantons tout pays confondu ou pour un pays donné. + * \brief Retourne la liste d�roulante des d�partements/province/cantons tout pays confondu ou pour un pays donn�. * \remarks Dans le cas d'une liste tout pays confondus, l'affichage fait une rupture sur le pays. - * \remarks La cle de la liste est le code (il peut y avoir plusieurs entrée pour - * un code donnée mais dans ce cas, le champ pays diffère). - * Ainsi les liens avec les départements se font sur un département indépendemment de nom som. - * \param selected code forme juridique a présélectionné - * \param pays_code 0=liste tous pays confondus, sinon code du pays à afficher + * \remarks La cle de la liste est le code (il peut y avoir plusieurs entr�e pour + * un code donn�e mais dans ce cas, le champ pays diff�re). + * Ainsi les liens avec les d�partements se font sur un d�partement ind�pendemment de nom som. + * \param selected code forme juridique a pr�s�lectionn� + * \param pays_code 0=liste tous pays confondus, sinon code du pays � afficher */ function select_departement($selected='',$pays_code=0) { @@ -187,7 +187,7 @@ class Form $htmlname='departement_id'; - // On recherche les départements/cantons/province active d'une region et pays actif + // On recherche les d�partements/cantons/province active d'une region et pays actif $sql = "SELECT d.rowid, d.code_departement as code , d.nom, d.active, p.libelle as libelle_pays, p.code as code_pays FROM"; $sql .= " ".MAIN_DB_PREFIX ."c_departements as d, ".MAIN_DB_PREFIX."c_regions as r,".MAIN_DB_PREFIX."c_pays as p"; $sql .= " WHERE d.fk_region=r.code_region and r.fk_pays=p.rowid"; @@ -232,7 +232,7 @@ class Form { print ''; } @@ -248,9 +248,9 @@ class Form /** - * \brief Retourne la liste déroulante des regions actives dont le pays est actif - * \remarks La cle de la liste est le code (il peut y avoir plusieurs entrée pour - * un code donnée mais dans ce cas, le champ pays et lang diffère). + * \brief Retourne la liste d�roulante des regions actives dont le pays est actif + * \remarks La cle de la liste est le code (il peut y avoir plusieurs entr�e pour + * un code donn�e mais dans ce cas, le champ pays et lang diff�re). * Ainsi les liens avec les regions se font sur une region independemment * de nom som. */ @@ -307,7 +307,7 @@ class Form /** * \brief Renvoie la liste des sources de commandes - * \param selected Id de la source pré-sélectionnée + * \param selected Id de la source pr�-s�lectionn�e * \param htmlname Nom de la liste deroulante * \param addempty 0=liste sans valeur nulle, 1=ajoute valeur inconnue * \return array Tableau des sources de commandes @@ -364,11 +364,11 @@ class Form } /** - * \brief Retourne la liste déroulante des pays actifs, dans la langue de l'utilisateur - * \param selected Id ou code pays pré-sélectionné + * \brief Retourne la liste d�roulante des pays actifs, dans la langue de l'utilisateur + * \param selected Id ou code pays pr�-s�lectionn� * \param htmlname Nom de la liste deroulante * \param htmloption Options html sur le select - * \todo trier liste sur noms après traduction plutot que avant + * \todo trier liste sur noms apr�s traduction plutot que avant */ function select_pays($selected='',$htmlname='pays_id',$htmloption='') { @@ -449,7 +449,7 @@ class Form { print ''; @@ -469,8 +469,8 @@ class Form /** - * \brief Retourne la liste déroulante des langues disponibles - * \param selected Langue présélectionnée + * \brief Retourne la liste d�roulante des langues disponibles + * \param selected Langue pr�s�lectionn�e * \param htmlname Nom de la zone select * \param showauto Affiche choix auto */ @@ -509,16 +509,16 @@ class Form /** - * \brief Retourne la liste déroulante des menus disponibles (eldy_backoffice, ...) - * \param selected Menu pré-sélectionnée + * \brief Retourne la liste d�roulante des menus disponibles (eldy_backoffice, ...) + * \param selected Menu pr�-s�lectionn�e * \param htmlname Nom de la zone select - * \param dirmenu Repértoire à scanner + * \param dirmenu Rep�rtoire � scanner */ function select_menu($selected='',$htmlname,$dirmenu) { global $langs,$conf; - if ($selected == 'eldy.php') $selected='eldy_backoffice.php'; // Pour compatibilité + if ($selected == 'eldy.php') $selected='eldy_backoffice.php'; // Pour compatibilit� $menuarray=array(); $handle=opendir($dirmenu); @@ -570,10 +570,10 @@ class Form } /** - * \brief Retourne la liste déroulante des menus disponibles (eldy) - * \param selected Menu pré-sélectionnée + * \brief Retourne la liste d�roulante des menus disponibles (eldy) + * \param selected Menu pr�-s�lectionn�e * \param htmlname Nom de la zone select - * \param dirmenu Repértoire à scanner + * \param dirmenu Rep�rtoire � scanner */ function select_menu_families($selected='',$htmlname,$dirmenu) { @@ -615,7 +615,7 @@ class Form /** * \brief Retourne la liste des types de comptes financiers - * \param selected Type pré-sélectionné + * \param selected Type pr�-s�lectionn� * \param htmlname Nom champ formulaire */ function select_type_comptes_financiers($selected=1,$htmlname='type') @@ -648,8 +648,8 @@ class Form /** - * \brief Retourne la liste déroulante des sociétés - * \param selected Societe présélectionnée + * \brief Retourne la liste d�roulante des soci�t�s + * \param selected Societe pr�s�lectionn�e * \param htmlname Nom champ formulaire * \param filter Criteres optionnels de filtre */ @@ -733,8 +733,8 @@ class Form /** - * \brief Retourne la liste déroulante des remises fixes - * \param selected Id remise fixe présélectionnée + * \brief Retourne la liste d�roulante des remises fixes + * \param selected Id remise fixe pr�s�lectionn�e * \param htmlname Nom champ formulaire * \param filter Criteres optionnels de filtre */ @@ -789,12 +789,12 @@ class Form /** - * \brief Retourne la liste déroulante des contacts d'une société donnée - * \param socid Id de la société - * \param selected Id contact pré-sélectionn + * \brief Retourne la liste d�roulante des contacts d'une soci�t� donn�e + * \param socid Id de la soci�t� + * \param selected Id contact pr�-s�lectionn * \param htmlname Nom champ formulaire ('none' pour champ non editable) * \param show_empty 0=liste sans valeur nulle, 1=ajoute valeur inconnue - * \param exclude Liste des id contacts à exclure + * \param exclude Liste des id contacts � exclure * \return int <0 if KO, Nb of contact in list if OK */ function select_contacts($socid,$selected='',$htmlname='contactid',$showempty=0,$exclude='') @@ -857,11 +857,11 @@ class Form /** - * \brief Retourne la liste déroulante des utilisateurs - * \param selected Id contact pré-sélectionn + * \brief Retourne la liste d�roulante des utilisateurs + * \param selected Id contact pr�-s�lectionn * \param htmlname Nom champ formulaire * \param show_empty 0=liste sans valeur nulle, 1=ajoute valeur inconnue - * \param exclude Liste des id utilisateurs à exclure + * \param exclude Liste des id utilisateurs � exclure */ function select_users($selected='',$htmlname='userid',$show_empty=0,$exclude='') { @@ -910,9 +910,9 @@ class Form /** - \brief Affiche la liste déroulante des projets d'une société donnée - \param socid Id société - \param selected Id projet présélectionné + \brief Affiche la liste d�roulante des projets d'une soci�t� donn�e + \param socid Id soci�t� + \param selected Id projet pr�s�lectionn� \param htmlname Nom de la zone html \return int Nbre de projet si ok, <0 si ko */ @@ -958,11 +958,11 @@ class Form } } /** - \brief Retourne la liste des produits en Ajax si ajax activé ou renvoie à select_produits_do - \param selected Produit présélectionné + \brief Retourne la liste des produits en Ajax si ajax activ� ou renvoie � select_produits_do + \param selected Produit pr�s�lectionn� \param htmlname Nom de la zone select \param filtretype Pour filtre sur type de produit - \param limit Limite sur le nombre de lignes retournées + \param limit Limite sur le nombre de lignes retourn�es \param price_level Niveau de prix en fonction du client */ function select_produits($selected='',$htmlname='productid',$filtretype='',$limit=20,$price_level=0) @@ -993,12 +993,12 @@ class Form /** \brief Retourne la liste des produits - \param selected Produit présélectionné + \param selected Produit pr�s�lectionn� \param htmlname Nom de la zone select \param filtretype Pour filtre sur type de produit - \param limit Limite sur le nombre de lignes retournées + \param limit Limite sur le nombre de lignes retourn�es \param price_level Niveau de prix en fonction du client - \param ajaxkeysearch Filtre des produits si ajax est utilisé + \param ajaxkeysearch Filtre des produits si ajax est utilis� */ function select_produits_do($selected='',$htmlname='productid',$filtretype='',$limit=20,$price_level=0,$ajaxkeysearch='') { @@ -1032,7 +1032,7 @@ class Form $result=$this->db->query($sql); if (! $result) dolibarr_print_error($this->db); - // Multilang : on construit une liste des traductions des produits listés + // Multilang : on construit une liste des traductions des produits list�s if ($conf->global->MAIN_MULTILANGS) { $sqld = "SELECT d.fk_product, d.label"; @@ -1071,7 +1071,7 @@ class Form { $objp = $this->db->fetch_object($result); - // Multilangs : modification des donnée si une traduction existe + // Multilangs : modification des donn�e si une traduction existe if ($conf->global->MAIN_MULTILANGS) { if ( $objp->rowid == $objtp->fk_product ) // si on a une traduction @@ -1147,11 +1147,11 @@ class Form } /** - \brief Retourne la liste des produits fournisseurs en Ajax si ajax activé ou renvoie à select_produits_fournisseurs_do - \param selected Produit présélectionné + \brief Retourne la liste des produits fournisseurs en Ajax si ajax activ� ou renvoie � select_produits_fournisseurs_do + \param selected Produit pr�s�lectionn� \param htmlname Nom de la zone select \param filtretype Pour filtre sur type de produit - \param limit Limite sur le nombre de lignes retournées + \param limit Limite sur le nombre de lignes retourn�es */ function select_produits_fournisseurs($socid,$selected='',$htmlname='productid',$filtretype='',$filtre='') { @@ -1169,12 +1169,12 @@ class Form /** \brief Retourne la liste des produits de fournisseurs - \param socid Id société fournisseur (0 pour aucun filtre) - \param selected Produit présélectionné + \param socid Id soci�t� fournisseur (0 pour aucun filtre) + \param selected Produit pr�s�lectionn� \param htmlname Nom de la zone select \param filtretype Pour filtre sur type de produit \param filtre Pour filtre - \param ajaxkeysearch Filtre des produits si ajax est utilisé + \param ajaxkeysearch Filtre des produits si ajax est utilis� */ function select_produits_fournisseurs_do($socid,$selected='',$htmlname='productid',$filtretype='',$filtre='',$ajaxkeysearch='') { @@ -1359,8 +1359,8 @@ class Form } /** - * \brief Retourne la liste déroulante des adresses de livraison - * \param selected Id contact pré-sélectionn + * \brief Retourne la liste d�roulante des adresses de livraison + * \param selected Id contact pr�-s�lectionn * \param htmlname Nom champ formulaire */ function select_adresse_livraison($selected='', $socid, $htmlname='adresse_livraison_id',$showempty=0) @@ -1405,13 +1405,13 @@ class Form /** * \brief Charge dans cache la liste des conditions de paiements possibles - * \return int Nb lignes chargées, 0 si déjà chargées, <0 si ko + * \return int Nb lignes charg�es, 0 si d�j� charg�es, <0 si ko */ function load_cache_conditions_paiements() { global $langs; - if (sizeof($this->cache_conditions_paiements_code)) return 0; // Cache déja chargé + if (sizeof($this->cache_conditions_paiements_code)) return 0; // Cache d�ja charg� dolibarr_syslog('Form::load_cache_conditions_paiements',LOG_DEBUG); @@ -1428,7 +1428,7 @@ class Form { $obj = $this->db->fetch_object($resql); - // Si traduction existe, on l'utilise, sinon on prend le libellé par défaut + // Si traduction existe, on l'utilise, sinon on prend le libell� par d�faut $libelle=($langs->trans("PaymentConditionShort".$obj->code)!=("PaymentConditionShort".$obj->code)?$langs->trans("PaymentConditionShort".$obj->code):($obj->libelle!='-'?$obj->libelle:'')); $this->cache_conditions_paiements_code[$obj->rowid]=$obj->code; $this->cache_conditions_paiements_libelle[$obj->rowid]=$libelle; @@ -1444,13 +1444,13 @@ class Form /** * \brief Charge dans cache la liste des types de paiements possibles - * \return int Nb lignes chargées, 0 si déjà chargées, <0 si ko + * \return int Nb lignes charg�es, 0 si d�j� charg�es, <0 si ko */ function load_cache_types_paiements() { global $langs; - if (sizeof($this->cache_types_paiements_code)) return 0; // Cache déja chargé + if (sizeof($this->cache_types_paiements_code)) return 0; // Cache d�ja charg� dolibarr_syslog('Form::load_cache_types_paiements',LOG_DEBUG); @@ -1467,7 +1467,7 @@ class Form { $obj = $this->db->fetch_object($resql); - // Si traduction existe, on l'utilise, sinon on prend le libellé par défaut + // Si traduction existe, on l'utilise, sinon on prend le libell� par d�faut $libelle=($langs->trans("PaymentTypeShort".$obj->code)!=("PaymentTypeShort".$obj->code)?$langs->trans("PaymentTypeShort".$obj->code):($obj->libelle!='-'?$obj->libelle:'')); $this->cache_types_paiements_code[$obj->id]=$obj->code; $this->cache_types_paiements_libelle[$obj->id]=$libelle; @@ -1486,10 +1486,10 @@ class Form /** * \brief Retourne la liste des types de paiements possibles - * \param selected Id du type de paiement présélectionné + * \param selected Id du type de paiement pr�s�lectionn� * \param htmlname Nom de la zone select * \param filtertype Pour filtre - * \param addempty Ajoute entrée vide + * \param addempty Ajoute entr�e vide */ function select_conditions_paiements($selected='',$htmlname='condid',$filtertype=-1,$addempty=0) { @@ -1517,7 +1517,7 @@ class Form /** * \brief Selection HT ou TTC - * \param selected Id présélectionné + * \param selected Id pr�s�lectionn� * \param htmlname Nom de la zone select */ function select_PriceBaseType($selected='',$htmlname='price_base_type') @@ -1545,7 +1545,7 @@ class Form /** * \brief Retourne la liste des modes de paiements possibles - * \param selected Id du mode de paiement présélectionné + * \param selected Id du mode de paiement pr�s�lectionn� * \param htmlname Nom de la zone select * \param filtertype Pour filtre * \param format 0=id+libelle, 1=code+code, 2=code+libelle @@ -1568,7 +1568,7 @@ class Form if ($empty) print ''; foreach($this->cache_types_paiements_code as $id => $code) { - // On passe si on a demandé de filtrer sur des modes de paiments particulièrs + // On passe si on a demand� de filtrer sur des modes de paiments particuli�rs if (sizeof($filterarray) && ! in_array($this->cache_types_paiements_type[$id],$filterarray)) continue; if ($format == 0) print ''; @@ -1633,9 +1633,9 @@ class Form /** * \brief Retourne la liste des comptes - * \param selected Id compte présélectionné + * \param selected Id compte pr�s�lectionn� * \param htmlname Nom de la zone select - * \param statut Statut des comptes recherchés + * \param statut Statut des comptes recherch�s * \param filtre Pour filtre sur la liste * \param useempty Affiche valeur vide dans liste */ @@ -1682,7 +1682,7 @@ class Form } /** - * \brief Retourne la liste des catégories du type choisi + * \brief Retourne la liste des cat�gories du type choisi * \param type Type de categories (0=produit, 1=fournisseur, 2=client) * \param selected Id categorie preselectionnee * \param select_name Nom formulaire HTML @@ -1726,8 +1726,8 @@ class Form /** - * \brief Retourne la liste déroulante des civilite actives - * \param selected civilite pré-sélectionnée + * \brief Retourne la liste d�roulante des civilite actives + * \param selected civilite pr�-s�lectionn�e */ function select_civilite($selected='') { @@ -1756,7 +1756,7 @@ class Form { print ''; $i++; @@ -1772,9 +1772,9 @@ class Form /** - * \brief Retourne le nom traduit de la civilité - * \param code Code de la civilité - * \return string Nom traduit de la civilité + * \brief Retourne le nom traduit de la civilit� + * \param code Code de la civilit� + * \return string Nom traduit de la civilit� */ function civilite_name($code) { @@ -1785,10 +1785,10 @@ class Form /** - * \brief Retourne la liste déroulante des formes juridiques tous pays confondus ou pour un pays donné. + * \brief Retourne la liste d�roulante des formes juridiques tous pays confondus ou pour un pays donn�. * \remarks Dans le cas d'une liste tous pays confondu, on affiche une rupture sur le pays - * \param selected Code forme juridique a présélectionn - * \param pays_code 0=liste tous pays confondus, sinon code du pays à afficher + * \param selected Code forme juridique a pr�s�lectionn + * \param pays_code 0=liste tous pays confondus, sinon code du pays � afficher */ function select_forme_juridique($selected='',$pays_code=0) { @@ -1837,7 +1837,7 @@ class Form { print ''; } @@ -1948,13 +1948,13 @@ class Form { global $langs; - // Si il existe une traduction, on peut renvoyer de suite le libellé + // Si il existe une traduction, on peut renvoyer de suite le libell� if ($langs->trans("Currency".$code_iso)!="Currency".$code_iso) { return $langs->trans("Currency".$code_iso); } - // Si pas de traduction, on consulte libellé par défaut en table + // Si pas de traduction, on consulte libell� par d�faut en table $sql = "SELECT label FROM ".MAIN_DB_PREFIX."c_currencies"; $sql.= " WHERE code_iso='$code_iso';"; @@ -2075,7 +2075,7 @@ class Form * \brief Affiche formulaire de selection de projet * \param page Page * \param socid Id societe - * \param selected Id projet présélectionné + * \param selected Id projet pr�s�lectionn� * \param htmlname Nom du formulaire select */ function form_project($page, $socid, $selected='', $htmlname='projectid') @@ -2109,9 +2109,9 @@ class Form /** * \brief Affiche formulaire de selection de conditions de paiement * \param page Page - * \param selected Id condition présélectionnée + * \param selected Id condition pr�s�lectionn�e * \param htmlname Nom du formulaire select - * \param addempty Ajoute entrée vide + * \param addempty Ajoute entr�e vide */ function form_conditions_reglement($page, $selected='', $htmlname='cond_reglement_id', $addempty=0) { @@ -2140,9 +2140,9 @@ class Form } /** - * \brief Affiche formulaire de selection de l'assujétissement à la TVA + * \brief Affiche formulaire de selection de l'assuj�tissement � la TVA * \param page Page - * \param selected Id condition présélectionnée + * \param selected Id condition pr�s�lectionn�e * \param htmlname Nom du formulaire select */ function form_assujetti_tva($page, $selected='', $htmlname='') @@ -2175,7 +2175,7 @@ class Form /** * \brief Affiche formulaire de selection des modes de reglement * \param page Page - * \param selected Id mode présélectionné + * \param selected Id mode pr�s�lectionn� * \param htmlname Nom du formulaire select */ function form_modes_reglement($page, $selected='', $htmlname='mode_reglement_id') @@ -2296,12 +2296,15 @@ class Form } /** - * \brief Affiche formulaire de selection de la remise fixe - * \param page Page - * \param selected Valeur à appliquer - * \param htmlname Nom du formulaire select. Si none, non modifiable + * \brief Affiche formulaire de selection de la remise fixe + * \param page Page + * \param selected Valeur a appliquer + * \param htmlname Nom du formulaire select. Si none, non modifiable + * \param socid + * \param amount + * \param filter Filtre */ - function form_remise_dispo($page, $selected='', $htmlname='remise_id',$socid, $absolute_discount) + function form_remise_dispo($page, $selected='', $htmlname='remise_id',$socid, $amount, $filter='') { global $conf,$langs; if ($htmlname != "none") @@ -2310,11 +2313,17 @@ class Form print ''; print '
'; print $langs->trans('PaymentConditionsShort'); @@ -436,7 +443,7 @@ if ($_GET["id"] > 0) /* - * Documents générés + * Documents g�n�r�s * */ $comref = sanitize_string($commande->ref); @@ -498,7 +505,7 @@ if ($_GET["id"] > 0) /* - * Liste des expéditions + * Liste des exp�ditions */ $sql = "SELECT cd.fk_product, cd.description, cd.rowid, cd.qty as qty_commande"; $sql .= " , ed.qty as qty_livre, e.ref, ed.fk_expedition as expedition_id"; @@ -593,7 +600,7 @@ if ($_GET["id"] > 0) } else { - // Commande non trouvée + // Commande non trouv�e print "Commande inexistante"; } } diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php index 677a704425f..a9cf8719ac5 100644 --- a/htdocs/compta/facture.php +++ b/htdocs/compta/facture.php @@ -1685,8 +1685,9 @@ else $soc = new Societe($db, $fac->socid); $soc->fetch($fac->socid); - $absolute_discount=$soc->getCurrentDiscount(); - + $absolute_discount=$soc->getCurrentDiscount('','fk_facture_source IS NULL'); + $absolute_creditnote=$soc->getCurrentDiscount('','fk_facture_source IS NOT NULL'); + $totalpaye = $fac->getSommePaiement(); $resteapayer = $fac->total_ttc - $totalpaye; if ($fac->paye) $resteapayer=0; @@ -1956,15 +1957,32 @@ else { if ($fac->statut > 0 || $fac->type == 2) { - print $langs->trans("CompanyHasAbsoluteDiscount",price($absolute_discount),$langs->trans("Currency".$conf->monnaie)); + print $langs->trans("CompanyHasAbsoluteDiscount",price($absolute_discount),$langs->transnoentities("Currency".$conf->monnaie)).'. '; } else { + // Remise dispo de type non avoir + $filter='fk_facture_source IS NULL'; print '
'; - print $html->form_remise_dispo($_SERVER["PHP_SELF"].'?facid='.$fac->id,0,'remise_id',$soc->id,price($absolute_discount)); + print $html->form_remise_dispo($_SERVER["PHP_SELF"].'?facid='.$fac->id,0,'remise_id',$soc->id,$absolute_discount,$filter); } } - else print $langs->trans("CompanyHasNoAbsoluteDiscount").'.'; + if ($absolute_creditnote) + { + // If validated, we show link "add credit note to payment" + if ($fac->statut != 1 || $fac->type == 2) + { + print $langs->trans("CompanyHasCreditNote",price($absolute_creditnote),$langs->transnoentities("Currency".$conf->monnaie)).'. '; + } + else + { + // Remise dispo de type avoir + $filter='fk_facture_source IS NOT NULL'; + if (! $absolute_discount) print '
'; + print $html->form_remise_dispo($_SERVER["PHP_SELF"].'?facid='.$fac->id,0,'remise_id_for_payment',$soc->id,$absolute_creditnote,$filter); + } + } + if (! $absolute_discount && ! $absolute_creditnote) print $langs->trans("CompanyHasNoAbsoluteDiscount").'.'; print '
'; print ''; - print ''; + print ''; print '
'; - print $langs->trans("CompanyHasAbsoluteDiscount",price($absolute_discount),$langs->trans("Currency".$conf->monnaie)).': '; -// print $langs->trans("AvailableGlobalDiscounts").': '; - print $this->select_remises('',$htmlname,'fk_facture IS NULL',$socid); + if (! $filter || $filter=='fk_facture_source IS NULL') print $langs->trans("CompanyHasAbsoluteDiscount",price($amount),$langs->transnoentities("Currency".$conf->monnaie)).': '; + else print $langs->trans("CompanyHasCreditNote",price($amount),$langs->transnoentities("Currency".$conf->monnaie)).': '; + // print $langs->trans("AvailableGlobalDiscounts").': '; + $newfilter='fk_facture IS NULL'; // Remises disponibles + if ($filter) $newfilter.=' AND '.$filter; + print $this->select_remises('',$htmlname,$newfilter,$socid); print ' trans("UseCreditNoteInInvoicePayment"); + print '">
'; } else @@ -2334,7 +2343,7 @@ class Form /** * \brief Affiche formulaire de selection des contacts * \param page Page - * \param selected Id contact présélectionné + * \param selected Id contact pr�s�lectionn� * \param htmlname Nom du formulaire select */ function form_contacts($page, $societe, $selected='', $htmlname='contactidp') @@ -2349,7 +2358,7 @@ class Form $num=$this->select_contacts($societe->id, $selected, $htmlname); if ($num==0) { - print 'Cette societe n\'a pas de contact, veuillez en créer un avant de faire votre proposition commerciale
'; + print 'Cette societe n\'a pas de contact, veuillez en cr�er un avant de faire votre proposition commerciale
'; print ''.$langs->trans('AddContact').''; } print '