Merge pull request #1107 from atm-maxime/develop
Add possibility to define dependencies between extra fields lists
This commit is contained in:
commit
4d2c80a122
@ -604,7 +604,7 @@ if (! empty($conf->banque->enabled))
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."bank_account";
|
||||
$sql.= " WHERE clos = 0";
|
||||
$sql.= " AND courant = 1";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
$sql.= " AND entity IN (".getEntity('bank_account', 1).")";
|
||||
$resql=$db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
|
||||
@ -432,7 +432,7 @@ if ($id > 0 || ! empty($ref))
|
||||
*/
|
||||
|
||||
$sql = "SELECT b.rowid, b.dateo as do, b.datev as dv,";
|
||||
$sql.= " b.amount, b.label, b.rappro, b.num_releve, b.num_chq, b.fk_type,";
|
||||
$sql.= " b.amount, b.label, b.rappro, b.num_releve, b.num_chq, b.fk_type, b.fk_bordereau,";
|
||||
$sql.= " ba.rowid as bankid, ba.ref as bankref, ba.label as banklabel";
|
||||
if ($mode_search)
|
||||
{
|
||||
@ -518,15 +518,21 @@ if ($id > 0 || ! empty($ref))
|
||||
print "</td>\n";
|
||||
|
||||
// Payment type
|
||||
print "<td nowrap>";
|
||||
print '<td class="nowrap">';
|
||||
$label=($langs->trans("PaymentTypeShort".$objp->fk_type)!="PaymentTypeShort".$objp->fk_type)?$langs->trans("PaymentTypeShort".$objp->fk_type):$objp->fk_type;
|
||||
|
||||
if ($objp->fk_type == 'SOLD') $label=' ';
|
||||
if ($objp->fk_type == 'CHQ' && $objp->fk_bordereau > 0) {
|
||||
dol_include_once('/compta/paiement/cheque/class/remisecheque.class.php');
|
||||
$bordereaustatic = new RemiseCheque($db);
|
||||
$bordereaustatic->id = $objp->fk_bordereau;
|
||||
$label .= ' '.$bordereaustatic->getNomUrl(2);
|
||||
}
|
||||
print $label;
|
||||
print "</td>\n";
|
||||
|
||||
// Num
|
||||
print '<td nowrap>'.($objp->num_chq?$objp->num_chq:"")."</td>\n";
|
||||
print '<td class="nowrap">'.($objp->num_chq?$objp->num_chq:"")."</td>\n";
|
||||
|
||||
// Description
|
||||
print '<td>';
|
||||
|
||||
@ -613,7 +613,7 @@ class Account extends CommonObject
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."bank_account as ba";
|
||||
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_pays as p ON ba.fk_pays = p.rowid';
|
||||
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_departements as d ON ba.state_id = d.rowid';
|
||||
$sql.= " WHERE entity = ".$conf->entity;
|
||||
$sql.= " WHERE entity IN (".getEntity($this->element, 1).")";
|
||||
if ($id) $sql.= " AND ba.rowid = ".$id;
|
||||
if ($ref) $sql.= " AND ba.ref = '".$this->db->escape($ref)."'";
|
||||
|
||||
|
||||
@ -59,7 +59,7 @@ $accounts = array();
|
||||
|
||||
$sql = "SELECT rowid, courant, rappro";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."bank_account";
|
||||
$sql.= " WHERE entity = ".$conf->entity;
|
||||
$sql.= " WHERE entity IN (".getEntity('bank_account', 1).")";
|
||||
if ($statut != 'all') $sql.= " AND clos = 0";
|
||||
$sql.= $db->order('label', 'ASC');
|
||||
|
||||
|
||||
@ -37,6 +37,7 @@ class RemiseCheque extends CommonObject
|
||||
var $id;
|
||||
var $num;
|
||||
var $intitule;
|
||||
var $ref_ext;
|
||||
//! Numero d'erreur Plage 1024-1279
|
||||
var $errno;
|
||||
|
||||
@ -63,7 +64,7 @@ class RemiseCheque extends CommonObject
|
||||
{
|
||||
global $conf;
|
||||
|
||||
$sql = "SELECT bc.rowid, bc.datec, bc.fk_user_author, bc.fk_bank_account, bc.amount, bc.number, bc.statut, bc.nbcheque";
|
||||
$sql = "SELECT bc.rowid, bc.datec, bc.fk_user_author, bc.fk_bank_account, bc.amount, bc.number, bc.statut, bc.nbcheque, bc.ref_ext";
|
||||
$sql.= ", bc.date_bordereau as date_bordereau";
|
||||
$sql.= ", ba.label as account_label";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."bordereau_cheque as bc";
|
||||
@ -86,6 +87,7 @@ class RemiseCheque extends CommonObject
|
||||
$this->author_id = $obj->fk_user_author;
|
||||
$this->nbcheque = $obj->nbcheque;
|
||||
$this->statut = $obj->statut;
|
||||
$this->ref_ext = $obj->ref_ext;
|
||||
|
||||
if ($this->statut == 0)
|
||||
{
|
||||
@ -139,6 +141,7 @@ class RemiseCheque extends CommonObject
|
||||
$sql.= ", number";
|
||||
$sql.= ", entity";
|
||||
$sql.= ", nbcheque";
|
||||
$sql.= ", ref_ext";
|
||||
$sql.= ") VALUES (";
|
||||
$sql.= $this->db->idate($now);
|
||||
$sql.= ", ".$this->db->idate($now);
|
||||
@ -149,6 +152,7 @@ class RemiseCheque extends CommonObject
|
||||
$sql.= ", 0";
|
||||
$sql.= ", ".$conf->entity;
|
||||
$sql.= ", 0";
|
||||
$sql.= ", ''";
|
||||
$sql.= ")";
|
||||
|
||||
dol_syslog("RemiseCheque::Create sql=".$sql, LOG_DEBUG);
|
||||
@ -720,12 +724,47 @@ class RemiseCheque extends CommonObject
|
||||
return -2;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the external ref
|
||||
*
|
||||
* @param User $user Object user
|
||||
* @param timestamp $ref_rext External ref
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
function set_ref_ext($user, $ref_ext)
|
||||
{
|
||||
if ($user->rights->banque->cheque)
|
||||
{
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."bordereau_cheque";
|
||||
$sql.= " SET ref_ext = '".$ref_ext."'";
|
||||
$sql.= " WHERE rowid = ".$this->id;
|
||||
|
||||
dol_syslog("RemiseCheque::set_ref_ext sql=$sql",LOG_DEBUG);
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$this->ref_ext = $ref_ext;
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error=$this->db->error();
|
||||
dol_syslog("RemiseCheque::set_ref_ext ".$this->error,LOG_ERR);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Renvoie nom clicable (avec eventuellement le picto)
|
||||
*
|
||||
* @param int $withpicto Inclut le picto dans le lien
|
||||
* @param int $withpicto 0=Pas de picto, 1=Inclut le picto dans le lien, 2=Picto seul
|
||||
* @param string $option Sur quoi pointe le lien
|
||||
* @return string Chaine avec URL
|
||||
*/
|
||||
@ -735,14 +774,13 @@ class RemiseCheque extends CommonObject
|
||||
|
||||
$result='';
|
||||
|
||||
$number=$this->ref;
|
||||
if ($this->statut == 0) $number='(PROV'.$this->id.')';
|
||||
|
||||
$lien = '<a href="'.DOL_URL_ROOT.'/compta/paiement/cheque/fiche.php?id='.$this->id.'">';
|
||||
$lienfin='</a>';
|
||||
|
||||
if ($withpicto) $result.=($lien.img_object($langs->trans("ShowCheckReceipt"),'payment').$lienfin.' ');
|
||||
$result.=$lien.$number.$lienfin;
|
||||
if ($withpicto) $result.=($lien.img_object($langs->trans("ShowCheckReceipt"),'payment').$lienfin);
|
||||
if ($withpicto && $withpicto != 2) $result.=' ';
|
||||
if ($withpicto != 2) $result.=$lien.$this->ref.$lienfin;
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
@ -89,6 +89,29 @@ if ($action == 'setdate' && $user->rights->banque->cheque)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Actions
|
||||
*/
|
||||
|
||||
if ($action == 'setrefext' && $user->rights->banque->cheque)
|
||||
{
|
||||
$result = $object->fetch(GETPOST('id','int'));
|
||||
if ($result > 0)
|
||||
{
|
||||
$ref_ext = GETPOST('ref_ext');
|
||||
|
||||
$result=$object->set_ref_ext($user, $ref_ext);
|
||||
if ($result < 0)
|
||||
{
|
||||
$mesg='<div class="error">'.$object->error.'</div>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$mesg='<div class="error">'.$object->error.'</div>';
|
||||
}
|
||||
}
|
||||
|
||||
if ($action == 'create' && $_POST["accountid"] > 0 && $user->rights->banque->cheque)
|
||||
{
|
||||
if (is_array($_POST['toRemise']))
|
||||
@ -491,6 +514,32 @@ else
|
||||
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
// External ref
|
||||
print '<tr><td>';
|
||||
|
||||
print '<table class="nobordernopadding" width="100%"><tr><td>';
|
||||
print $langs->trans('RefExt');
|
||||
print '</td>';
|
||||
if ($action != 'editrefext') print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editrefext&id='.$object->id.'">'.img_edit($langs->trans('SetRefExt'),1).'</a></td>';
|
||||
print '</tr></table>';
|
||||
print '</td><td colspan="2">';
|
||||
if ($action == 'editrefext')
|
||||
{
|
||||
print '<form name="setrefext" action="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'" method="post">';
|
||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||
print '<input type="hidden" name="action" value="setrefext">';
|
||||
print '<input type="text" name="ref_ext" value="'.$object->ref_ext.'">';
|
||||
print '<input type="submit" class="button" value="'.$langs->trans('Modify').'">';
|
||||
print '</form>';
|
||||
}
|
||||
else
|
||||
{
|
||||
print $object->ref_ext;
|
||||
}
|
||||
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
print '<tr><td>'.$langs->trans('Account').'</td><td colspan="2">';
|
||||
print $accountstatic->getNomUrl(1);
|
||||
|
||||
@ -55,7 +55,7 @@ $sql = "SELECT count(b.rowid)";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."bank as b";
|
||||
$sql.= ", ".MAIN_DB_PREFIX."bank_account as ba";
|
||||
$sql.= " WHERE ba.rowid = b.fk_account";
|
||||
$sql.= " AND ba.entity = ".$conf->entity;
|
||||
$sql.= " AND ba.entity IN (".getEntity('bank_account', 1).")";
|
||||
$sql.= " AND b.fk_type = 'CHQ'";
|
||||
$sql.= " AND b.fk_bordereau = 0";
|
||||
$sql.= " AND b.amount > 0";
|
||||
|
||||
@ -251,6 +251,19 @@ if (! empty($conf->banque->enabled))
|
||||
print $bankline->getNomUrl(1,0,'showall');
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
if($object->type_code == 'CHQ' && $bankline->fk_bordereau > 0) {
|
||||
dol_include_once('/compta/paiement/cheque/class/remisecheque.class.php');
|
||||
$bordereau = new RemiseCheque($db);
|
||||
$bordereau->fetch($bankline->fk_bordereau);
|
||||
|
||||
print '<tr>';
|
||||
print '<td>'.$langs->trans('CheckReceipt').'</td>';
|
||||
print '<td colspan="3">';
|
||||
print $bordereau->getNomUrl(1,0,'showall');
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -2271,6 +2271,35 @@ abstract class CommonObject
|
||||
}
|
||||
$out .= "\n";
|
||||
$out .= '<!-- /showOptionalsInput --> ';
|
||||
$out .= '
|
||||
<script type="text/javascript">
|
||||
jQuery(document).ready(function() {
|
||||
function showOptions(child_list, parent_list)
|
||||
{
|
||||
var val = $("select[name=\"options_"+parent_list+"\"]").val();
|
||||
var parentVal = parent_list + ":" + val;
|
||||
if(val > 0) {
|
||||
$("select[name=\""+child_list+"\"] option[parent]").hide();
|
||||
$("select[name=\""+child_list+"\"] option[parent=\""+parentVal+"\"]").show();
|
||||
} else {
|
||||
$("select[name=\""+child_list+"\"] option").show();
|
||||
}
|
||||
}
|
||||
function setListDependencies() {
|
||||
jQuery("select option[parent]").parent().each(function() {
|
||||
var child_list = $(this).attr("name");
|
||||
var parent = $(this).find("option[parent]:first").attr("parent");
|
||||
var infos = parent.split(":");
|
||||
var parent_list = infos[0];
|
||||
$("select[name=\"options_"+parent_list+"\"]").change(function() {
|
||||
showOptions(child_list, parent_list);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
setListDependencies();
|
||||
});
|
||||
</script>';
|
||||
}
|
||||
return $out;
|
||||
}
|
||||
|
||||
@ -673,8 +673,10 @@ class ExtraFields
|
||||
$out='<select class="flat" name="options_'.$key.'">';
|
||||
foreach ($param['options'] as $key=>$val )
|
||||
{
|
||||
list($val, $parent) = explode('|', $val);
|
||||
$out.='<option value="'.$key.'"';
|
||||
$out.= ($value==$key?'selected="selected"':'');
|
||||
$out.= ($value==$key?' selected="selected"':'');
|
||||
$out.= (!empty($parent)?' parent="'.$parent.'"':'');
|
||||
$out.='>'.$val.'</option>';
|
||||
}
|
||||
$out.='</select>';
|
||||
@ -688,11 +690,16 @@ class ExtraFields
|
||||
// 0 1 : tableName
|
||||
// 1 2 : label field name Nom du champ contenant le libelle
|
||||
// 2 3 : key fields name (if differ of rowid)
|
||||
// 3 4 : key field parent (for dependent lists)
|
||||
|
||||
$keyList='rowid';
|
||||
|
||||
if (count($InfoFieldList)==3)
|
||||
if (count($InfoFieldList)>=3)
|
||||
$keyList=$InfoFieldList[2].' as rowid';
|
||||
if (count($InfoFieldList)>=4) {
|
||||
list($parentName, $parentField) = explode('|', $InfoFieldList[3]);
|
||||
$keyList.= ', '.$parentField;
|
||||
}
|
||||
|
||||
$sql = 'SELECT '.$keyList.', '.$InfoFieldList[1];
|
||||
$sql.= ' FROM '.MAIN_DB_PREFIX .$InfoFieldList[0];
|
||||
@ -717,15 +724,16 @@ class ExtraFields
|
||||
}else {
|
||||
$labeltoshow=dol_trunc($obj->$InfoFieldList[1],18);
|
||||
}
|
||||
|
||||
if(!empty($InfoFieldList[3])) {
|
||||
$parent = $parentName.':'.$obj->{$parentField};
|
||||
}
|
||||
|
||||
if ($value==$obj->rowid)
|
||||
{
|
||||
$out.='<option value="'.$obj->rowid.'" selected="selected">'.$labeltoshow.'</option>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$out.='<option value="'.$obj->rowid.'" >'.$labeltoshow.'</option>';
|
||||
}
|
||||
$out.='<option value="'.$obj->rowid.'"';
|
||||
$out.= ($value==$obj->rowid?' selected="selected"':'');
|
||||
$out.= (!empty($parent)?' parent="'.$parent.'"':'');
|
||||
$out.='>'.$labeltoshow.'</option>';
|
||||
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2326,7 +2326,7 @@ class Form
|
||||
$sql = "SELECT rowid, label, bank";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."bank_account";
|
||||
$sql.= " WHERE clos = '".$statut."'";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
$sql.= " AND entity IN (".getEntity('bank_account', 1).")";
|
||||
if ($filtre) $sql.=" AND ".$filtre;
|
||||
$sql.= " ORDER BY label";
|
||||
|
||||
|
||||
@ -275,3 +275,6 @@ INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, nc
|
||||
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES('TN22', 1001, '', 0, '', 'Tozeur', 1);
|
||||
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES('TN23', 1001, '', 0, '', 'Tunis', 1);
|
||||
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES('TN24', 1001, '', 0, '', 'Zaghouan', 1);
|
||||
|
||||
# Add ref_ext on bordereau_cheque
|
||||
ALTER TABLE `llx_bordereau_cheque` ADD `ref_ext` VARCHAR( 255 ) NOT NULL;
|
||||
|
||||
@ -33,6 +33,7 @@ create table llx_bordereau_cheque
|
||||
fk_bank_account integer,
|
||||
fk_user_author integer,
|
||||
note text,
|
||||
statut smallint NOT NULL DEFAULT 0
|
||||
statut smallint NOT NULL DEFAULT 0,
|
||||
ref_ext varchar(255)
|
||||
|
||||
)ENGINE=innodb;
|
||||
|
||||
@ -364,10 +364,10 @@ ExtrafieldSelectList = Select from table
|
||||
ExtrafieldSeparator=Separator
|
||||
ExtrafieldCheckBox=Checkbox
|
||||
ExtrafieldRadio=Radio button
|
||||
ExtrafieldParamHelpselect=Parameters list have to be like key,value<br><br> for exemple : <br>1,value1<br>2,value2<br>3,value3<br>...
|
||||
ExtrafieldParamHelpselect=Parameters list have to be like key,value<br><br> for exemple : <br>1,value1<br>2,value2<br>3,value3<br>...<br><br>In order to have the list depending on another :<br>1,value1|parent_list_code:parent_key<br>2,value2|parent_list_code:parent_key
|
||||
ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value<br><br> for exemple : <br>1,value1<br>2,value2<br>3,value3<br>...
|
||||
ExtrafieldParamHelpradio=Parameters list have to be like key,value<br><br> for exemple : <br>1,value1<br>2,value2<br>3,value3<br>...
|
||||
ExtrafieldParamHelpsellist=Parameters list have come from table<br><br> for exemple : <br>c_typent:libelle:id<br>
|
||||
ExtrafieldParamHelpsellist=Parameters list have come from table<br><br> for exemple : <br>c_typent:libelle:id<br><br>In order to have the list depending on another :<br>c_typent:libelle:id:parent_list_code|parent_column
|
||||
LibraryToBuildPDF=Library used to build PDF
|
||||
WarningUsingFPDF=Warning: Your <b>conf.php</b> contains directive <b>dolibarr_pdf_force_fpdf=1</b>. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.<br>To solve this and have a full support of PDF generation, please download <a href="http://www.tcpdf.org/" target="_blank">TCPDF library</a>, then comment or remove the line <b>$dolibarr_pdf_force_fpdf=1</b>, and add instead <b>$dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir'</b>
|
||||
LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:<br>1 : local tax apply on products and services without vat (vat is not applied on local tax)<br>2 : local tax apply on products and services before vat (vat is calculated on amount + localtax)<br>3 : local tax apply on products without vat (vat is not applied on local tax)<br>4 : local tax apply on products before vat (vat is calculated on amount + localtax)<br>5 : local tax apply on services without vat (vat is not applied on local tax)<br>6 : local tax apply on services before vat (vat is calculated on amount + localtax)
|
||||
|
||||
@ -154,3 +154,4 @@ InvoiceLinesToDispatch=Invoice lines to dispatch
|
||||
InvoiceDispatched=Dispatched invoices
|
||||
AccountancyDashboard=Accountancy summary
|
||||
ByProductsAndServices=By products and services
|
||||
RefExt=External ref
|
||||
@ -365,10 +365,10 @@ ExtrafieldSelectList = Liste issue d'une table
|
||||
ExtrafieldSeparator=Séparateur de champ
|
||||
ExtrafieldCheckBox=Case à cocher
|
||||
ExtrafieldRadio=Bouton radio
|
||||
ExtrafieldParamHelpselect=La liste doit être de la forme clef,valeur<br><br> par exemple : <br>1,valeur1<br>2,valeur2<br>3,valeur3<br>…
|
||||
ExtrafieldParamHelpcheckbox=La liste doit être de la forme clef,valeur<br><br> par exemple : <br>1,valeur1<br>2,valeur2<br>3,valeur3<br>…
|
||||
ExtrafieldParamHelpradio=La liste doit être de la forme clef,valeur<br><br> par exemple : <br>1,valeur1<br>2,valeur2<br>3,valeur3<br>…
|
||||
ExtrafieldParamHelpsellist=La liste vient d'une table<br><br> par exemple : <br>c_typent:libelle:id<br>
|
||||
ExtrafieldParamHelpselect=La liste doit être de la forme clef,valeur<br><br> par exemple : <br>1,valeur1<br>2,valeur2<br>3,valeur3<br>...<br><br>Pour que la liste soit dépendante d'une autre :<br>1,valeur1|code_liste_parent:clef_parent<br>2,valeur2|code_liste_parent:clef_parent
|
||||
ExtrafieldParamHelpcheckbox=La liste doit être de la forme clef,valeur<br><br> par exemple : <br>1,valeur1<br>2,valeur2<br>3,valeur3<br>...
|
||||
ExtrafieldParamHelpradio=La liste doit être de la forme clef,valeur<br><br> par exemple : <br>1,valeur1<br>2,valeur2<br>3,valeur3<br>...
|
||||
ExtrafieldParamHelpsellist=La liste vient d'une table<br><br> par exemple : <br>c_typent:libelle:id<br><br>Pour que la liste soit dépendante d'une autre :<br>c_typent:libelle:id:code_liste_parent|colonne_parent
|
||||
LibraryToBuildPDF=Bibliothèque utilisée pour la génération des PDF
|
||||
WarningUsingFPDF=Attention : votre fichier <b>conf.php</b> contient la directive <b>dolibarr_pdf_force_fpdf=1</b>. Cela signifie que vous utilisez la librairie FPDF pour générer vos fichiers PDF. Cette librairie est ancienne et ne couvre pas de nombreuses fonctionnalités (Unicode, transparence des images, langues cyrilliques, arabes ou asiatiques...), aussi vous pouvez rencontrer des problèmes durant la génération des PDF.<br>Pour résoudre cela et avoir une prise en charge complète de PDF, vous pouvez télécharger la <a href="http://www.tcpdf.org/" target="_blank">bibliothèque TCPDF</a> puis commenter ou supprimer la ligne <b>$dolibarr_pdf_force_fpdf=1</b>, et ajouter à la place <b>$dolibarr_lib_TCPDF_PATH='chemin_vers_TCPDF'</b>
|
||||
LocalTaxDesc=Certains pays appliquent 2 voire 3 taux sur chaque ligne de facture. Si c'est le cas, choisissez le type du deuxième et troisième taux et sa valeur. Les types possibles sont:<br>1 : taxe locale sur les produits et services hors tva (la tva n'est pas appliquée sur la taxe locale)<br>2 : taxe locale sur les produits et services avant tva (la tva est appliquée sur le montant + la taxe locale)<br>3 : taxe locale uniquement sur les produits hors tva (la tva n'est pas appliquée sur la taxe locale)<br>4 : taxe locale uniquement sur les produits avant tva (la tva est appliquée sur le montant + la taxe locale)<br>5 : taxe locale uniquement sur les services hors tva (la tva n'est pas appliquée sur la taxe locale)<br>6 : taxe locale uniquement sur les service avant tva (la tva est appliquée sur le montant + la taxe locale)
|
||||
|
||||
@ -165,3 +165,4 @@ InvoiceLinesToDispatch=Lignes de factures à ventiler
|
||||
InvoiceDispatched=Factures ventilées
|
||||
AccountancyDashboard=Synthèse compta/tréso
|
||||
ByProductsAndServices=Par produits et services
|
||||
RefExt=Référence externe
|
||||
|
||||
Loading…
Reference in New Issue
Block a user