Merge branch 'develop' of https://github.com/Dolibarr/dolibarr.git into develop

This commit is contained in:
Florian Henry 2013-09-03 20:07:13 +02:00
commit d8ddb8b3e7
52 changed files with 512 additions and 281 deletions

View File

@ -119,6 +119,8 @@ Fix: If only service module is activated, it's impossible to delete service
Fix: [ bug #1043 ] Bad interventions ref numbering Fix: [ bug #1043 ] Bad interventions ref numbering
Fix: Mailing module : if an email is already in destinaires list all other email from selector was not inserted Fix: Mailing module : if an email is already in destinaires list all other email from selector was not inserted
Fix: Localtaxes balance not showing Fix: Localtaxes balance not showing
Fix: Intervention box links to contracts id
Fix: Compatiblity with multicompany module
***** ChangeLog for 3.4 compared to 3.3.* ***** ***** ChangeLog for 3.4 compared to 3.3.* *****
For users: For users:

View File

@ -11,7 +11,7 @@
if [ "x$1" = "x" ] if [ "x$1" = "x" ]
then then
echo "This pull remote transifex files to local dir." echo "This pull remote transifex files to local dir."
echo "Note: If you push a language file (not source), file will be skipped if transifex file is newer." echo "Note: If you pull a language file (not source), file will be skipped if local file is newer."
echo " Using -f will overwrite local file (does not work with 'all')." echo " Using -f will overwrite local file (does not work with 'all')."
echo "Usage: txpull.sh (all|xx_XX) [-r dolibarr.file] [-f]" echo "Usage: txpull.sh (all|xx_XX) [-r dolibarr.file] [-f]"
exit exit

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

View File

@ -107,8 +107,7 @@ if ((! empty($foruserid) || ! empty($foruserlogin) || ! empty($mode)) && ! $mesg
'%MONTH%'=>$month, '%MONTH%'=>$month,
'%DAY%'=>$day, '%DAY%'=>$day,
'%DOL_MAIN_URL_ROOT%'=>DOL_MAIN_URL_ROOT, '%DOL_MAIN_URL_ROOT%'=>DOL_MAIN_URL_ROOT,
'%SERVER%'=>"http://".$_SERVER["SERVER_NAME"]."/", '%SERVER%'=>"http://".$_SERVER["SERVER_NAME"]."/"
'%SOCIETE%'=>$objp->company
); );
complete_substitutions_array($substitutionarray, $langs); complete_substitutions_array($substitutionarray, $langs);

View File

@ -35,6 +35,8 @@ if (!$user->admin) accessforbidden();
$action = GETPOST('action','alpha'); $action = GETPOST('action','alpha');
$value = GETPOST('value','alpha'); $value = GETPOST('value','alpha');
$scandir = GETPOST('scandir','alpha');
$type='contrat';
if (empty($conf->global->CONTRACT_ADDON)) if (empty($conf->global->CONTRACT_ADDON))
{ {
@ -64,11 +66,6 @@ if ($action == 'updateMask')
} }
} }
if ($action == 'setmod')
{
dolibarr_set_const($db, "CONTRACT_ADDON",$value,'chaine',0,'',$conf->entity);
}
else if ($action == 'specimen') // For contract else if ($action == 'specimen') // For contract
{ {
$modele= GETPOST('module','alpha'); $modele= GETPOST('module','alpha');
@ -155,10 +152,10 @@ else if ($action == 'setmod')
dolibarr_set_const($db, "CONTRACT_ADDON",$value,'chaine',0,'',$conf->entity); dolibarr_set_const($db, "CONTRACT_ADDON",$value,'chaine',0,'',$conf->entity);
} }
else if ($action == 'set_CONTRAT_FREE_TEXT') else if ($action == 'set_CONTRACT_FREE_TEXT')
{ {
$freetext= GETPOST('CONTRAT_FREE_TEXT','alpha'); $freetext= GETPOST('CONTRACT_FREE_TEXT','alpha');
$res = dolibarr_set_const($db, "CONTRAT_FREE_TEXT",$freetext,'chaine',0,'',$conf->entity); $res = dolibarr_set_const($db, "CONTRACT_FREE_TEXT",$freetext,'chaine',0,'',$conf->entity);
if (! $res > 0) $error++; if (! $res > 0) $error++;
@ -172,11 +169,11 @@ else if ($action == 'set_CONTRAT_FREE_TEXT')
} }
} }
else if ($action == 'set_CONTRAT_DRAFT_WATERMARK') else if ($action == 'set_CONTRACT_DRAFT_WATERMARK')
{ {
$draft= GETPOST('CONTRAT_DRAFT_WATERMARK','alpha'); $draft= GETPOST('CONTRACT_DRAFT_WATERMARK','alpha');
$res = dolibarr_set_const($db, "CONTRAT_DRAFT_WATERMARK",trim($draft),'chaine',0,'',$conf->entity); $res = dolibarr_set_const($db, "CONTRACT_DRAFT_WATERMARK",trim($draft),'chaine',0,'',$conf->entity);
if (! $res > 0) $error++; if (! $res > 0) $error++;
@ -492,10 +489,10 @@ $var=true;
$var=! $var; $var=! $var;
print '<form action="'.$_SERVER["PHP_SELF"].'" method="post">'; print '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="set_CONTRAT_FREE_TEXT">'; print '<input type="hidden" name="action" value="set_CONTRACT_FREE_TEXT">';
print '<tr '.$bc[$var].'><td colspan="2">'; print '<tr '.$bc[$var].'><td colspan="2">';
print $langs->trans("FreeLegalTextOnContracts").' ('.$langs->trans("AddCRIfTooLong").')<br>'; print $langs->trans("FreeLegalTextOnContracts").' ('.$langs->trans("AddCRIfTooLong").')<br>';
print '<textarea name="CONTRAT_FREE_TEXT" class="flat" cols="120">'.$conf->global->CONTRAT_FREE_TEXT.'</textarea>'; print '<textarea name="CONTRACT_FREE_TEXT" class="flat" cols="120">'.$conf->global->CONTRACT_FREE_TEXT.'</textarea>';
print '</td><td align="right">'; print '</td><td align="right">';
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">'; print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
print "</td></tr>\n"; print "</td></tr>\n";
@ -505,10 +502,10 @@ print '</form>';
$var=!$var; $var=!$var;
print "<form method=\"post\" action=\"".$_SERVER["PHP_SELF"]."\">"; print "<form method=\"post\" action=\"".$_SERVER["PHP_SELF"]."\">";
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print "<input type=\"hidden\" name=\"action\" value=\"set_CONTRAT_DRAFT_WATERMARK\">"; print "<input type=\"hidden\" name=\"action\" value=\"set_CONTRACT_DRAFT_WATERMARK\">";
print '<tr '.$bc[$var].'><td colspan="2">'; print '<tr '.$bc[$var].'><td colspan="2">';
print $langs->trans("WatermarkOnDraftContractCards").'<br>'; print $langs->trans("WatermarkOnDraftContractCards").'<br>';
print '<input size="50" class="flat" type="text" name="CONTRAT_DRAFT_WATERMARK" value="'.$conf->global->CONTRAT_DRAFT_WATERMARK.'">'; print '<input size="50" class="flat" type="text" name="CONTRACT_DRAFT_WATERMARK" value="'.$conf->global->CONTRACT_DRAFT_WATERMARK.'">';
print '</td><td align="right">'; print '</td><td align="right">';
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">'; print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
print "</td></tr>\n"; print "</td></tr>\n";

View File

@ -5,6 +5,8 @@
* Copyright (C) 2006-2012 Regis Houssin <regis.houssin@capnetworks.com> * Copyright (C) 2006-2012 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2006-2012 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2006-2012 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2007 Patrick Raguin <patrick.raguin@gmail.com> * Copyright (C) 2007 Patrick Raguin <patrick.raguin@gmail.com>
* Copyright (C) 2013 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2013 Philippe Grand <philippe.grand@atoo-net.com>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -610,8 +612,7 @@ class Categorie
$sql = "SELECT fk_parent as id_parent, rowid as id_son"; $sql = "SELECT fk_parent as id_parent, rowid as id_son";
$sql.= " FROM ".MAIN_DB_PREFIX."categorie"; $sql.= " FROM ".MAIN_DB_PREFIX."categorie";
$sql.= " WHERE fk_parent != 0"; $sql.= " WHERE fk_parent != 0";
$sql.= " AND entity = ".$conf->entity; $sql.= " AND entity IN (".getEntity('category',1).")";
dol_syslog(get_class($this)."::load_motherof sql=".$sql); dol_syslog(get_class($this)."::load_motherof sql=".$sql);
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if ($resql) if ($resql)

View File

@ -1,5 +1,6 @@
<?php <?php
/* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro> /* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
* Copyright (C) 2013 Juanjo Menent <jmenent@2byte.es>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -95,11 +96,11 @@ class box_ficheinter extends ModeleBoxes
$this->info_box_contents[$i][0] = array('td' => 'align="left" width="16"', $this->info_box_contents[$i][0] = array('td' => 'align="left" width="16"',
'logo' => $this->boximg, 'logo' => $this->boximg,
'url' => DOL_URL_ROOT."/ficheinter/fiche.php?id=".$objp->rowid); 'url' => DOL_URL_ROOT."/fichinter/fiche.php?id=".$objp->rowid);
$this->info_box_contents[$i][1] = array('td' => 'align="left"', $this->info_box_contents[$i][1] = array('td' => 'align="left"',
'text' => ($objp->ref?$objp->ref:$objp->rowid), // Some contracts have no ref 'text' => ($objp->ref?$objp->ref:$objp->rowid), // Some interventions have no ref
'url' => DOL_URL_ROOT."/contrat/fiche.php?id=".$objp->rowid); 'url' => DOL_URL_ROOT."/fichinter/fiche.php?id=".$objp->rowid);
$this->info_box_contents[$i][2] = array('td' => 'align="left" width="16"', $this->info_box_contents[$i][2] = array('td' => 'align="left" width="16"',
'logo' => 'company', 'logo' => 'company',
@ -120,9 +121,10 @@ class box_ficheinter extends ModeleBoxes
$i++; $i++;
} }
if ($num==0) $this->info_box_contents[$i][0] = array('td' => 'align="center"','text'=>$langs->trans("NoRecordedContracts")); if ($num==0) $this->info_box_contents[$i][0] = array('td' => 'align="center"','text'=>$langs->trans("NoRecordedInterventions"));
$db->free($resql); $db->free($resql);
} }
else else
{ {

View File

@ -69,7 +69,6 @@ class box_graph_product_distribution extends ModeleBoxes
include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
include_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; include_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php';
include_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; include_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php';
$facturestatic=new Facture($db);
$text = $langs->trans("BoxProductDistribution",$max); $text = $langs->trans("BoxProductDistribution",$max);
$this->info_box_head = array( $this->info_box_head = array(
@ -90,8 +89,11 @@ class box_graph_product_distribution extends ModeleBoxes
$showinvoicenb=GETPOST($param_showinvoicenb,'alpha',4); $showinvoicenb=GETPOST($param_showinvoicenb,'alpha',4);
$showpropalnb=GETPOST($param_showpropalnb,'alpha',4); $showpropalnb=GETPOST($param_showpropalnb,'alpha',4);
$showordernb=GETPOST($param_showordernb,'alpha',4); $showordernb=GETPOST($param_showordernb,'alpha',4);
if (empty($showinvoicenb) && empty($showpropalnb) && empty($showordernb)) { $showpropalnb=1; $showinvoicenb=1; $showordernb=1; } if (empty($showinvoicenb) && empty($showpropalnb) && empty($showordernb)) { $showpropalnb=1; $showinvoicenb=1; $showordernb=1; }
if (empty($conf->facture->enabled) || empty($user->rights->facture->lire)) $showinvoicenb=0;
if (empty($conf->propal->enabled) || empty($user->rights->propal->lire)) $showpropalnb=0;
if (empty($conf->commande->enabled) || empty($user->rights->commande->lire)) $showordernb=0;
$nowarray=dol_getdate(dol_now(),true); $nowarray=dol_getdate(dol_now(),true);
$year=(GETPOST($param_year,'',4)?GETPOST($param_year,'int',4):$nowarray['year']); $year=(GETPOST($param_year,'',4)?GETPOST($param_year,'int',4):$nowarray['year']);
@ -107,7 +109,7 @@ class box_graph_product_distribution extends ModeleBoxes
$socid=empty($user->societe_id)?0:$user->societe_id; $socid=empty($user->societe_id)?0:$user->societe_id;
$userid=0; // No filter on user creation $userid=0; // No filter on user creation
if ($user->rights->facture->lire) if (! empty($conf->facture->enabled) && ! empty($user->rights->facture->lire))
{ {
include_once DOL_DOCUMENT_ROOT.'/core/class/dolgraph.class.php'; include_once DOL_DOCUMENT_ROOT.'/core/class/dolgraph.class.php';
@ -170,7 +172,7 @@ class box_graph_product_distribution extends ModeleBoxes
} }
} }
if ($user->rights->propal->lire) if (! empty($conf->propal->enabled) && ! empty($user->rights->propal->lire))
{ {
// Build graphic number of object. $data = array(array('Lib',val1,val2,val3),...) // Build graphic number of object. $data = array(array('Lib',val1,val2,val3),...)
if ($showpropalnb) if ($showpropalnb)
@ -228,7 +230,7 @@ class box_graph_product_distribution extends ModeleBoxes
} }
} }
if ($user->rights->commande->lire) if (! empty($conf->commande->enabled) && ! empty($user->rights->commande->lire))
{ {
// Build graphic number of object. $data = array(array('Lib',val1,val2,val3),...) // Build graphic number of object. $data = array(array('Lib',val1,val2,val3),...)
if ($showordernb) if ($showordernb)
@ -300,11 +302,20 @@ class box_graph_product_distribution extends ModeleBoxes
$stringtoshow.='<form class="flat formboxfilter" method="POST" action="'.$_SERVER["PHP_SELF"].'">'; $stringtoshow.='<form class="flat formboxfilter" method="POST" action="'.$_SERVER["PHP_SELF"].'">';
$stringtoshow.='<input type="hidden" name="action" value="'.$refreshaction.'">'; $stringtoshow.='<input type="hidden" name="action" value="'.$refreshaction.'">';
$stringtoshow.='<input type="hidden" name="DOL_AUTOSET_COOKIE" value="'.$param_year.','.$param_showinvoicenb.','.$param_showpropalnb.','.$param_showordernb.'">'; $stringtoshow.='<input type="hidden" name="DOL_AUTOSET_COOKIE" value="'.$param_year.','.$param_showinvoicenb.','.$param_showpropalnb.','.$param_showordernb.'">';
$stringtoshow.='<input type="checkbox" name="'.$param_showinvoicenb.'"'.($showinvoicenb?' checked="true"':'').'> '.$langs->trans("ForCustomersInvoices"); if (! empty($conf->facture->enabled) || ! empty($user->rights->facture->lire))
$stringtoshow.=' &nbsp; '; {
$stringtoshow.='<input type="checkbox" name="'.$param_showpropalnb.'"'.($showpropalnb?' checked="true"':'').'> '.$langs->trans("ForProposals"); $stringtoshow.='<input type="checkbox" name="'.$param_showinvoicenb.'"'.($showinvoicenb?' checked="true"':'').'> '.$langs->trans("ForCustomersInvoices");
$stringtoshow.='&nbsp;'; $stringtoshow.=' &nbsp; ';
$stringtoshow.='<input type="checkbox" name="'.$param_showordernb.'"'.($showordernb?' checked="true"':'').'> '.$langs->trans("ForCustomersOrders"); }
if (! empty($conf->propal->enabled) || ! empty($user->rights->propal->lire))
{
$stringtoshow.='<input type="checkbox" name="'.$param_showpropalnb.'"'.($showpropalnb?' checked="true"':'').'> '.$langs->trans("ForProposals");
$stringtoshow.='&nbsp;';
}
if (! empty($conf->commande->enabled) || ! empty($user->rights->commande->lire))
{
$stringtoshow.='<input type="checkbox" name="'.$param_showordernb.'"'.($showordernb?' checked="true"':'').'> '.$langs->trans("ForCustomersOrders");
}
$stringtoshow.='<br>'; $stringtoshow.='<br>';
$stringtoshow.=$langs->trans("Year").' <input class="flat" size="4" type="text" name="'.$param_year.'" value="'.$year.'">'; $stringtoshow.=$langs->trans("Year").' <input class="flat" size="4" type="text" name="'.$param_year.'" value="'.$year.'">';
$stringtoshow.='<input type="image" src="'.img_picto($langs->trans("Refresh"),'refresh.png','','',1).'">'; $stringtoshow.='<input type="image" src="'.img_picto($langs->trans("Refresh"),'refresh.png','','',1).'">';

View File

@ -590,12 +590,18 @@ class DolGraph
/** /**
* Build a graph onto disk using correct library * Build a graph onto disk using correct library
* *
* @param string $file Image file name to use if we save onto disk * @param string $file Image file name to use to save onto disk (also used as javascript unique id)
* @param string $fileurl Url path to show image if saved onto disk * @param string $fileurl Url path to show image if saved onto disk
* @return void * @return void
*/ */
function draw($file,$fileurl='') function draw($file,$fileurl='')
{ {
if (empty($file))
{
$this->error="Call to draw method was made with empty value for parameter file.";
dol_syslog(get_class($this)."::draw ".$this->error, LOG_ERR);
return -2;
}
if (! is_array($this->data) || count($this->data) < 1) if (! is_array($this->data) || count($this->data) < 1)
{ {
$this->error="Call to draw method was made but SetData was not called or called with an empty dataset for parameters"; $this->error="Call to draw method was made but SetData was not called or called with an empty dataset for parameters";
@ -797,7 +803,7 @@ class DolGraph
* $this->bgcolorgrid * $this->bgcolorgrid
* $this->datacolor * $this->datacolor
* *
* @param string $file Image file name to use if we save onto disk * @param string $file Image file name to use to save onto disk (also used as javascript unique id)
* @param string $fileurl Url path to show image if saved onto disk * @param string $fileurl Url path to show image if saved onto disk
* @return void * @return void
*/ */
@ -807,6 +813,12 @@ class DolGraph
dol_syslog(get_class($this)."::draw_jflot this->type=".join(',',$this->type)); dol_syslog(get_class($this)."::draw_jflot this->type=".join(',',$this->type));
if (empty($this->width) && empty($this->height))
{
print 'Error width or height not set';
return;
}
$legends=array(); $legends=array();
$nblot=count($this->data[0])-1; // -1 to remove legend $nblot=count($this->data[0])-1; // -1 to remove legend
if ($nblot < 0) dol_print_error('Bad value for property ->data. Must be set by mydolgraph->SetData before callinf mydolgrapgh->draw'); if ($nblot < 0) dol_print_error('Bad value for property ->data. Must be set by mydolgraph->SetData before callinf mydolgrapgh->draw');

View File

@ -683,9 +683,9 @@ class ExtraFields
} }
elseif ($type == 'sellist') elseif ($type == 'sellist')
{ {
$out='<select class="flat" name="options_'.$key.'">'; $out='<select class="flat" name="options_'.$key.'">';
if (is_array($param['options'])) { if (is_array($param['options']))
{
$param_list=array_keys($param['options']); $param_list=array_keys($param['options']);
$InfoFieldList = explode(":", $param_list[0]); $InfoFieldList = explode(":", $param_list[0]);
@ -696,38 +696,38 @@ class ExtraFields
$keyList='rowid'; $keyList='rowid';
if (count($InfoFieldList)>=3) if (count($InfoFieldList)>=3)
$keyList=$InfoFieldList[2].' as rowid'; $keyList=$InfoFieldList[2].' as rowid';
if (count($InfoFieldList)>=4) { if (count($InfoFieldList)>=4) {
list($parentName, $parentField) = explode('|', $InfoFieldList[3]); list($parentName, $parentField) = explode('|', $InfoFieldList[3]);
$keyList.= ', '.$parentField; $keyList.= ', '.$parentField;
} }
$fields_label = explode('|',$InfoFieldList[1]); $fields_label = explode('|',$InfoFieldList[1]);
if(is_array($fields_label)) { if(is_array($fields_label)) {
$keyList .=', '; $keyList .=', ';
$keyList .= implode(', ', $fields_label); $keyList .= implode(', ', $fields_label);
} }
$fields_label = explode('|',$InfoFieldList[1]); $fields_label = explode('|',$InfoFieldList[1]);
if(is_array($fields_label)) { if(is_array($fields_label)) {
$keyList .=', '; $keyList .=', ';
$keyList .= implode(', ', $fields_label); $keyList .= implode(', ', $fields_label);
} }
$sql = 'SELECT '.$keyList; $sql = 'SELECT '.$keyList;
$sql.= ' FROM '.MAIN_DB_PREFIX .$InfoFieldList[0]; $sql.= ' FROM '.MAIN_DB_PREFIX .$InfoFieldList[0];
//$sql.= ' WHERE entity = '.$conf->entity; //$sql.= ' WHERE entity = '.$conf->entity;
//print $sql;
dol_syslog(get_class($this).'::showInputField type=sellist sql='.$sql); dol_syslog(get_class($this).'::showInputField type=sellist sql='.$sql);
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if ($resql) if ($resql)
{ {
$out.='<option value="0">&nbsp;</option>'; $out.='<option value="0">&nbsp;</option>';
$num = $this->db->num_rows($resql); $num = $this->db->num_rows($resql);
$i = 0; $i = 0;
if ($num) while ($i < $num)
{ {
$labeltoshow=''; $labeltoshow='';
$obj = $this->db->fetch_object($resql); $obj = $this->db->fetch_object($resql);
@ -764,16 +764,18 @@ class ExtraFields
$translabel=$langs->trans($obj->$InfoFieldList[1]); $translabel=$langs->trans($obj->$InfoFieldList[1]);
if ($translabel!=$obj->$InfoFieldList[1]) { if ($translabel!=$obj->$InfoFieldList[1]) {
$labeltoshow=dol_trunc($translabel,18); $labeltoshow=dol_trunc($translabel,18);
}else { }
else {
$labeltoshow=dol_trunc($obj->$InfoFieldList[1],18); $labeltoshow=dol_trunc($obj->$InfoFieldList[1],18);
} }
if (empty($labeltoshow)) $labeltoshow='(not defined)';
if ($value==$obj->rowid) if ($value==$obj->rowid)
{ {
$out.='<option value="'.$obj->rowid.'" selected="selected">'.$labeltoshow.'</option>'; $out.='<option value="'.$obj->rowid.'" selected="selected">'.$labeltoshow.'</option>';
} }
if(!empty($InfoFieldList[3])) { if (!empty($InfoFieldList[3]))
{
$parent = $parentName.':'.$obj->{$parentField}; $parent = $parentName.':'.$obj->{$parentField};
} }
@ -781,9 +783,9 @@ class ExtraFields
$out.= ($value==$obj->rowid?' selected="selected"':''); $out.= ($value==$obj->rowid?' selected="selected"':'');
$out.= (!empty($parent)?' parent="'.$parent.'"':''); $out.= (!empty($parent)?' parent="'.$parent.'"':'');
$out.='>'.$labeltoshow.'</option>'; $out.='>'.$labeltoshow.'</option>';
$i++;
} }
$i++;
} }
$this->db->free(); $this->db->free();
} }

View File

@ -345,9 +345,9 @@ class Form
* *
* @param string $text Text to show * @param string $text Text to show
* @param string $htmltext HTML content of tooltip. Must be HTML/UTF8 encoded. * @param string $htmltext HTML content of tooltip. Must be HTML/UTF8 encoded.
* @param int $tooltipon 1=tooltip sur texte, 2=tooltip sur picto, 3=tooltip sur les 2 * @param int $tooltipon 1=tooltip on text, 2=tooltip on image, 3=tooltip sur les 2
* @param int $direction -1=Le picto est avant, 0=pas de picto, 1=le picto est apres * @param int $direction -1=image is before, 0=no image, 1=image is after
* @param string $img Code img du picto (use img_xxx() function to get it) * @param string $img Html code for image (use img_xxx() function to get it)
* @param string $extracss Add a CSS style to td tags * @param string $extracss Add a CSS style to td tags
* @param int $notabs 0=Include table and tr tags, 1=Do not include table and tr tags, 2=use div, 3=use span * @param int $notabs 0=Include table and tr tags, 1=Do not include table and tr tags, 2=use div, 3=use span
* @param string $incbefore Include code before the text * @param string $incbefore Include code before the text

View File

@ -1032,6 +1032,22 @@ function pdf_getlinedesc($object,$i,$outputlangs,$hideref=0,$hidedesc=0,$issuppl
} }
} }
// Add an additional description for the category products
if (! empty($conf->categorie->enabled))
{
include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
$categstatic=new Categorie($db);
// recovering the list of all the categories linked to product
$tblcateg=$categstatic->containing($idprod,0);
foreach ($tblcateg as $cate)
{
// Adding the descriptions if they are filled
$desccateg=$cate->add_description;
if ($desccateg)
$libelleproduitservice.='__N__'.$desccateg;
}
}
if (! empty($object->lines[$i]->date_start) || ! empty($object->lines[$i]->date_end)) if (! empty($object->lines[$i]->date_start) || ! empty($object->lines[$i]->date_end))
{ {
$format='day'; $format='day';

View File

@ -433,9 +433,9 @@ class pdf_strato extends ModelePDFContract
pdf_pagehead($pdf,$outputlangs,$this->page_hauteur); pdf_pagehead($pdf,$outputlangs,$this->page_hauteur);
//Affiche le filigrane brouillon - Print Draft Watermark //Affiche le filigrane brouillon - Print Draft Watermark
if($object->statut==0 && (! empty($conf->global->CONTRAT_DRAFT_WATERMARK)) ) if($object->statut==0 && (! empty($conf->global->CONTRACT_DRAFT_WATERMARK)) )
{ {
pdf_watermark($pdf,$outputlangs,$this->page_hauteur,$this->page_largeur,'mm',$conf->global->CONTRAT_DRAFT_WATERMARK); pdf_watermark($pdf,$outputlangs,$this->page_hauteur,$this->page_largeur,'mm',$conf->global->CONTRACT_DRAFT_WATERMARK);
} }
//Prepare la suite //Prepare la suite
@ -601,7 +601,7 @@ class pdf_strato extends ModelePDFContract
*/ */
function _pagefoot(&$pdf,$object,$outputlangs,$hidefreetext=0) function _pagefoot(&$pdf,$object,$outputlangs,$hidefreetext=0)
{ {
return pdf_pagefoot($pdf,$outputlangs,'CONTRAT_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,0,$hidefreetext); return pdf_pagefoot($pdf,$outputlangs,'CONTRACT_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,0,$hidefreetext);
} }
} }

View File

@ -25,7 +25,7 @@
/** /**
* \file htdocs/core/modules/contract/modules_contract.php * \file htdocs/core/modules/contract/modules_contract.php
* \ingroup contract * \ingroup contract
* \brief Fichier contenant la classe mere de generation des fiches interventions en PDF and File of class to manage contract numbering * \brief File with parent class for generating contracts to PDF and File of class to manage contract numbering
*/ */
require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
@ -105,7 +105,7 @@ class ModelNumRefContracts
/** /**
* Test if existing numbers make problems with numbering * Test if existing numbers make problems with numbering
* *
* @return boolean false if conflit, true if ok * @return boolean false if conflict, true if ok
*/ */
function canBeActivated() function canBeActivated()
{ {

View File

@ -122,10 +122,10 @@ class pdf_standard
* @param Translate $outputlangs Output langs * @param Translate $outputlangs Output langs
* @param string $textright Text right * @param string $textright Text right
* @param int $idmember Id member * @param int $idmember Id member
* @param string $photomember Photo member * @param string $photo Photo member
* @return void * @return void
*/ */
function Add_PDF_card(&$pdf,$textleft,$header,$footer,$outputlangs,$textright='',$idmember=0,$photomember='') function Add_PDF_card(&$pdf,$textleft,$header,$footer,$outputlangs,$textright='',$idmember=0,$photo='')
{ {
global $mysoc,$conf,$langs; global $mysoc,$conf,$langs;
@ -154,9 +154,9 @@ class pdf_standard
// Define photo // Define photo
$dir=$conf->adherent->dir_output; $dir=$conf->adherent->dir_output;
$file=get_exdir($idmember,2).'photos/'.$photomember; $file=get_exdir($idmember,2).'photos/'.$photo;
$photo=$dir.'/'.$file; $photo=$dir.'/'.$file;
if (empty($photomember) || ! is_readable($photo)) $photo=''; if (empty($photo) || ! is_readable($photo)) $photo='';
// Define background image // Define background image
$backgroundimage=''; $backgroundimage='';
@ -408,12 +408,13 @@ class pdf_standard
/** /**
* Function to build PDF on disk, then output on HTTP strem. * Function to build PDF on disk, then output on HTTP strem.
* *
* @param array $arrayofmembers Array of members informations * @param array $arrayofrecords Array of record informations (array('textleft'=>,'textheader'=>, ...'id'=>,'photo'=>)
* @param Translate $outputlangs Lang object for output language * @param Translate $outputlangs Lang object for output language
* @param string $srctemplatepath Full path of source filename for generator using a template file * @param string $srctemplatepath Full path of source filename for generator using a template file
* @param string $mode Tell if doc module is called for 'member, ...
* @return int 1=OK, 0=KO * @return int 1=OK, 0=KO
*/ */
function write_file($arrayofmembers,$outputlangs,$srctemplatepath) function write_file($arrayofrecords,$outputlangs,$srctemplatepath,$mode='member')
{ {
global $user,$conf,$langs,$mysoc,$_Avery_Labels; global $user,$conf,$langs,$mysoc,$_Avery_Labels;
@ -433,9 +434,20 @@ class pdf_standard
$outputlangs->load("members"); $outputlangs->load("members");
$outputlangs->load("admin"); $outputlangs->load("admin");
if (empty($mode) || $mode == 'member')
{
$title=$outputlangs->transnoentities('MembersCards');
$keywords=$outputlangs->transnoentities('MembersCards')." ".$outputlangs->transnoentities("Foundation")." ".$outputlangs->convToOutputCharset($mysoc->name);
$outputdir=$conf->adherent->dir_temp;
}
else
{
dol_print_error('','Bad value for $mode');
return -1;
}
$dir = (empty($outputdir)?$conf->adherent->dir_temp:$outputdir); $dir = $outputdir;
$filename='tmp_cards.pdf'; $filename = 'tmp_cards.pdf';
$file = $dir."/".$filename; $file = $dir."/".$filename;
if (! file_exists($dir)) if (! file_exists($dir))
@ -456,11 +468,11 @@ class pdf_standard
} }
$pdf->SetFont(pdf_getPDFFont($outputlangs)); $pdf->SetFont(pdf_getPDFFont($outputlangs));
$pdf->SetTitle($outputlangs->transnoentities('MembersCards')); $pdf->SetTitle($title);
$pdf->SetSubject($outputlangs->transnoentities("MembersCards")); $pdf->SetSubject($title);
$pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetCreator("Dolibarr ".DOL_VERSION);
$pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs)));
$pdf->SetKeyWords($outputlangs->transnoentities('MembersCards')." ".$outputlangs->transnoentities("Foundation")." ".$outputlangs->convToOutputCharset($mysoc->name)); $pdf->SetKeyWords($keywords);
if (! empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) $pdf->SetCompression(false); if (! empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) $pdf->SetCompression(false);
$pdf->SetMargins(0,0); $pdf->SetMargins(0,0);
@ -482,7 +494,7 @@ class pdf_standard
// Add each record // Add each record
foreach($arrayofmembers as $val) foreach($arrayofrecords as $val)
{ {
// imprime le texte specifique sur la carte // imprime le texte specifique sur la carte
$this->Add_PDF_card($pdf,$val['textleft'],$val['textheader'],$val['textfooter'],$langs,$val['textright'],$val['id'],$val['photo']); $this->Add_PDF_card($pdf,$val['textleft'],$val['textheader'],$val['textfooter'],$langs,$val['textright'],$val['id'],$val['photo']);
@ -499,7 +511,6 @@ class pdf_standard
@chmod($file, octdec($conf->global->MAIN_UMASK)); @chmod($file, octdec($conf->global->MAIN_UMASK));
// Output to http stream // Output to http stream
clearstatcache(); clearstatcache();

View File

@ -175,9 +175,9 @@ class modAdherent extends DolibarrModules
$this->export_code[$r]=$this->rights_class.'_'.$r; $this->export_code[$r]=$this->rights_class.'_'.$r;
$this->export_label[$r]='MembersAndSubscriptions'; $this->export_label[$r]='MembersAndSubscriptions';
$this->export_permission[$r]=array(array("adherent","export")); $this->export_permission[$r]=array(array("adherent","export"));
$this->export_fields_array[$r]=array('a.rowid'=>'Id','a.civilite'=>"UserTitle",'a.lastname'=>"Lastname",'a.firstname'=>"Firstname",'a.login'=>"Login",'a.morphy'=>'Nature','a.societe'=>'Company','a.address'=>"Address",'a.zip'=>"Zip",'a.town'=>"Town",'a.country'=>"Country",'a.phone'=>"PhonePro",'a.phone_perso'=>"PhonePerso",'a.phone_mobile'=>"PhoneMobile",'a.email'=>"Email",'a.birth'=>"Birthday",'a.statut'=>"Status",'a.photo'=>"Photo",'a.note'=>"Note",'a.datec'=>'DateCreation','a.datevalid'=>'DateValidation','a.tms'=>'DateLastModification','a.datefin'=>'DateEndSubscription','ta.rowid'=>'MemberTypeId','ta.libelle'=>'MemberTypeLabel','c.rowid'=>'SubscriptionId','c.dateadh'=>'DateSubscription','c.cotisation'=>'Amount'); $this->export_fields_array[$r]=array('a.rowid'=>'Id','a.civilite'=>"UserTitle",'a.lastname'=>"Lastname",'a.firstname'=>"Firstname",'a.login'=>"Login",'a.morphy'=>'Nature','a.societe'=>'Company','a.address'=>"Address",'a.zip'=>"Zip",'a.town'=>"Town",'d.nom'=>"State",'p.code'=>"CountryCode",'p.libelle'=>"Country",'a.phone'=>"PhonePro",'a.phone_perso'=>"PhonePerso",'a.phone_mobile'=>"PhoneMobile",'a.email'=>"Email",'a.birth'=>"Birthday",'a.statut'=>"Status",'a.photo'=>"Photo",'a.note'=>"Note",'a.datec'=>'DateCreation','a.datevalid'=>'DateValidation','a.tms'=>'DateLastModification','a.datefin'=>'DateEndSubscription','ta.rowid'=>'MemberTypeId','ta.libelle'=>'MemberTypeLabel','c.rowid'=>'SubscriptionId','c.dateadh'=>'DateSubscription','c.cotisation'=>'Amount');
$this->export_TypeFields_array[$r]=array('a.civilite'=>"Text",'a.lastname'=>"Text",'a.firstname'=>"Text",'a.login'=>"Text",'a.morphy'=>'Text','a.societe'=>'Text','a.address'=>"Text",'a.zip'=>"Text",'a.town'=>"Text",'a.country'=>"Text",'a.phone'=>"Text",'a.phone_perso'=>"Text",'a.phone_mobile'=>"Text",'a.email'=>"Text",'a.birth'=>"Date",'a.statut'=>"Status",'a.note'=>"Text",'a.datec'=>'Date','a.datevalid'=>'Date','a.tms'=>'Date','a.datefin'=>'Date','ta.rowid'=>'List:fk_adherent_type:libelle','ta.libelle'=>'Text','c.dateadh'=>'Date','c.cotisation'=>'Number'); $this->export_TypeFields_array[$r]=array('a.civilite'=>"Text",'a.lastname'=>"Text",'a.firstname'=>"Text",'a.login'=>"Text",'a.morphy'=>'Text','a.societe'=>'Text','a.address'=>"Text",'a.zip'=>"Text",'a.town'=>"Text",'d.nom'=>"Text",'p.code'=>'Text','p.libelle'=>"Text",'a.phone'=>"Text",'a.phone_perso'=>"Text",'a.phone_mobile'=>"Text",'a.email'=>"Text",'a.birth'=>"Date",'a.statut'=>"Status",'a.note'=>"Text",'a.datec'=>'Date','a.datevalid'=>'Date','a.tms'=>'Date','a.datefin'=>'Date','ta.rowid'=>'List:fk_adherent_type:libelle','ta.libelle'=>'Text','c.dateadh'=>'Date','c.cotisation'=>'Number');
$this->export_entities_array[$r]=array('a.rowid'=>'member','a.civilite'=>"member",'a.lastname'=>"member",'a.firstname'=>"member",'a.login'=>"member",'a.morphy'=>'member','a.societe'=>'member','a.address'=>"member",'a.zip'=>"member",'a.town'=>"member",'a.country'=>"member",'a.phone'=>"member",'a.phone_perso'=>"member",'a.phone_mobile'=>"member",'a.email'=>"member",'a.birth'=>"member",'a.statut'=>"member",'a.photo'=>"member",'a.note'=>"member",'a.datec'=>'member','a.datevalid'=>'member','a.tms'=>'member','a.datefin'=>'member','ta.rowid'=>'member_type','ta.libelle'=>'member_type','c.rowid'=>'subscription','c.dateadh'=>'subscription','c.cotisation'=>'subscription'); $this->export_entities_array[$r]=array('a.rowid'=>'member','a.civilite'=>"member",'a.lastname'=>"member",'a.firstname'=>"member",'a.login'=>"member",'a.morphy'=>'member','a.societe'=>'member','a.address'=>"member",'a.zip'=>"member",'a.town'=>"member",'d.nom'=>"member",'p.code'=>"member",'p.libelle'=>"member",'a.phone'=>"member",'a.phone_perso'=>"member",'a.phone_mobile'=>"member",'a.email'=>"member",'a.birth'=>"member",'a.statut'=>"member",'a.photo'=>"member",'a.note'=>"member",'a.datec'=>'member','a.datevalid'=>'member','a.tms'=>'member','a.datefin'=>'member','ta.rowid'=>'member_type','ta.libelle'=>'member_type','c.rowid'=>'subscription','c.dateadh'=>'subscription','c.cotisation'=>'subscription');
// Add extra fields // Add extra fields
$sql="SELECT name, label FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'adherent' AND entity = ".$conf->entity; $sql="SELECT name, label FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'adherent' AND entity = ".$conf->entity;
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
@ -193,6 +193,8 @@ class modAdherent extends DolibarrModules
$this->export_sql_end[$r] =' FROM ('.MAIN_DB_PREFIX.'adherent_type as ta, '.MAIN_DB_PREFIX.'adherent as a)'; $this->export_sql_end[$r] =' FROM ('.MAIN_DB_PREFIX.'adherent_type as ta, '.MAIN_DB_PREFIX.'adherent as a)';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'adherent_extrafields as extra ON a.rowid = extra.fk_object'; $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'adherent_extrafields as extra ON a.rowid = extra.fk_object';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'cotisation as c ON c.fk_adherent = a.rowid'; $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'cotisation as c ON c.fk_adherent = a.rowid';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_departements as d ON a.state_id = d.rowid';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_pays as p ON a.country = p.rowid';
$this->export_sql_end[$r] .=' WHERE a.fk_adherent_type = ta.rowid'; $this->export_sql_end[$r] .=' WHERE a.fk_adherent_type = ta.rowid';
$this->export_dependencies_array[$r]=array('subscription'=>'c.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them $this->export_dependencies_array[$r]=array('subscription'=>'c.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them
@ -210,7 +212,7 @@ class modAdherent extends DolibarrModules
$this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon $this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon
$this->import_tables_array[$r]=array('a'=>MAIN_DB_PREFIX.'adherent','extra'=>MAIN_DB_PREFIX.'adherent_extrafields'); $this->import_tables_array[$r]=array('a'=>MAIN_DB_PREFIX.'adherent','extra'=>MAIN_DB_PREFIX.'adherent_extrafields');
$this->import_tables_creator_array[$r]=array('a'=>'fk_user_author'); // Fields to store import user id $this->import_tables_creator_array[$r]=array('a'=>'fk_user_author'); // Fields to store import user id
$this->import_fields_array[$r]=array('a.civilite'=>"UserTitle",'a.lastname'=>"Lastname*",'a.firstname'=>"Firstname",'a.login'=>"Login*","a.pass"=>"Password","a.fk_adherent_type"=>"MemberType*",'a.morphy'=>'Nature*','a.societe'=>'Company','a.address'=>"Address",'a.zip'=>"Zip",'a.town'=>"Town",'a.country'=>"Country",'a.phone'=>"PhonePro",'a.phone_perso'=>"PhonePerso",'a.phone_mobile'=>"PhoneMobile",'a.email'=>"Email",'a.birth'=>"Birthday",'a.statut'=>"Status*",'a.photo'=>"Photo",'a.note'=>"Note",'a.datec'=>'DateCreation','a.datefin'=>'DateEndSubscription'); $this->import_fields_array[$r]=array('a.civilite'=>"UserTitle",'a.lastname'=>"Lastname*",'a.firstname'=>"Firstname",'a.login'=>"Login*","a.pass"=>"Password","a.fk_adherent_type"=>"MemberType*",'a.morphy'=>'Nature*','a.societe'=>'Company','a.address'=>"Address",'a.zip'=>"Zip",'a.town'=>"Town",'a.state_id'=>'StateId','a.country'=>"CountryId",'a.phone'=>"PhonePro",'a.phone_perso'=>"PhonePerso",'a.phone_mobile'=>"PhoneMobile",'a.email'=>"Email",'a.birth'=>"Birthday",'a.statut'=>"Status*",'a.photo'=>"Photo",'a.note'=>"Note",'a.datec'=>'DateCreation','a.datefin'=>'DateEndSubscription');
// Add extra fields // Add extra fields
$sql="SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'adherent' AND entity = ".$conf->entity; $sql="SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'adherent' AND entity = ".$conf->entity;
$resql=$this->db->query($sql); $resql=$this->db->query($sql);

View File

@ -320,8 +320,8 @@ class modSociete extends DolibarrModules
$this->export_label[$r]='ExportDataset_company_2'; $this->export_label[$r]='ExportDataset_company_2';
$this->export_icon[$r]='contact'; $this->export_icon[$r]='contact';
$this->export_permission[$r]=array(array("societe","contact","export")); $this->export_permission[$r]=array(array("societe","contact","export"));
$this->export_fields_array[$r]=array('c.rowid'=>"IdContact",'c.civilite'=>"CivilityCode",'c.lastname'=>'Lastname','c.firstname'=>'Firstname','c.poste'=>'PostOrFunction','c.datec'=>"DateCreation",'c.tms'=>"DateLastModification",'c.priv'=>"ContactPrivate",'c.address'=>"Address",'c.zip'=>"Zip",'c.town'=>"Town",'c.phone'=>"Phone",'c.fax'=>"Fax",'c.phone_mobile'=>"Mobile",'c.email'=>"EMail",'p.libelle'=>"Country",'p.code'=>"CountryCode",'s.rowid'=>"IdCompany",'s.nom'=>"CompanyName",'s.status'=>"Status",'s.code_client'=>"CustomerCode",'s.code_fournisseur'=>"SupplierCode"); $this->export_fields_array[$r]=array('c.rowid'=>"IdContact",'c.civilite'=>"CivilityCode",'c.lastname'=>'Lastname','c.firstname'=>'Firstname','c.poste'=>'PostOrFunction','c.datec'=>"DateCreation",'c.tms'=>"DateLastModification",'c.priv'=>"ContactPrivate",'c.address'=>"Address",'c.zip'=>"Zip",'c.town'=>"Town",'d.nom'=>'State','p.libelle'=>"Country",'p.code'=>"CountryCode",'c.phone'=>"Phone",'c.fax'=>"Fax",'c.phone_mobile'=>"Mobile",'c.email'=>"EMail",'s.rowid'=>"IdCompany",'s.nom'=>"CompanyName",'s.status'=>"Status",'s.code_client'=>"CustomerCode",'s.code_fournisseur'=>"SupplierCode");
$this->export_TypeFields_array[$r]=array('c.civilite'=>"List:c_civilite:civilite:code",'c.name'=>'Text','c.firstname'=>'Text','c.poste'=>'Text','c.datec'=>"Date",'c.priv'=>"Boolean",'c.address'=>"Text",'c.cp'=>"Text",'c.ville'=>"Text",'c.phone'=>"Text",'c.fax'=>"Text",'c.email'=>"Text",'p.libelle'=>"List:c_pays:libelle:rowid",'p.code'=>"Text",'s.rowid'=>"List:societe:nom",'s.nom'=>"Text",'s.status'=>"Status",'s.code_client'=>"Text",'s.code_fournisseur'=>"Text"); $this->export_TypeFields_array[$r]=array('c.civilite'=>"List:c_civilite:civilite:code",'c.lastname'=>'Text','c.firstname'=>'Text','c.poste'=>'Text','c.datec'=>"Date",'c.priv'=>"Boolean",'c.address'=>"Text",'c.cp'=>"Text",'c.ville'=>"Text",'d.nom'=>'Text','p.libelle'=>"List:c_pays:libelle:rowid",'p.code'=>"Text",'c.phone'=>"Text",'c.fax'=>"Text",'c.email'=>"Text",'s.rowid'=>"List:societe:nom",'s.nom'=>"Text",'s.status'=>"Status",'s.code_client'=>"Text",'s.code_fournisseur'=>"Text");
$this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>"company",'s.code_client'=>"company",'s.code_fournisseur'=>"company"); // We define here only fields that use another picto $this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>"company",'s.code_client'=>"company",'s.code_fournisseur'=>"company"); // We define here only fields that use another picto
if (empty($conf->fournisseur->enabled)) if (empty($conf->fournisseur->enabled))
{ {
@ -365,6 +365,7 @@ class modSociete extends DolibarrModules
$this->export_sql_start[$r]='SELECT DISTINCT '; $this->export_sql_start[$r]='SELECT DISTINCT ';
$this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'socpeople as c'; $this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'socpeople as c';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'societe as s ON c.fk_soc = s.rowid'; $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'societe as s ON c.fk_soc = s.rowid';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_departements as d ON c.fk_departement = d.rowid';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_pays as p ON c.fk_pays = p.rowid'; $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_pays as p ON c.fk_pays = p.rowid';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'socpeople_extrafields as extra ON extra.fk_object = c.rowid'; $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'socpeople_extrafields as extra ON extra.fk_object = c.rowid';
$this->export_sql_end[$r] .=' WHERE c.entity IN ('.getEntity("societe", 1).')'; $this->export_sql_end[$r] .=' WHERE c.entity IN ('.getEntity("societe", 1).')';
@ -381,7 +382,7 @@ class modSociete extends DolibarrModules
$this->import_icon[$r]='company'; $this->import_icon[$r]='company';
$this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon $this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon
$this->import_tables_array[$r]=array('s'=>MAIN_DB_PREFIX.'societe','extra'=>MAIN_DB_PREFIX.'societe_extrafields'); // List of tables to insert into (insert done in same order) $this->import_tables_array[$r]=array('s'=>MAIN_DB_PREFIX.'societe','extra'=>MAIN_DB_PREFIX.'societe_extrafields'); // List of tables to insert into (insert done in same order)
$this->import_fields_array[$r]=array('s.nom'=>"Name*",'s.status'=>"Status",'s.client'=>"Customer*",'s.fournisseur'=>"Supplier*",'s.code_client'=>"CustomerCode",'s.code_fournisseur'=>"SupplierCode",'s.code_compta'=>"CustomerAccountancyCode",'s.code_compta_fournisseur'=>"SupplierAccountancyCode",'s.address'=>"Address",'s.zip'=>"Zip",'s.town'=>"Town",'s.fk_pays'=>"CountryCode",'s.phone'=>"Phone",'s.fax'=>"Fax",'s.url'=>"Url",'s.email'=>"Email",'s.siret'=>"ProfId1",'s.siren'=>"ProfId2",'s.ape'=>"ProfId3",'s.idprof4'=>"ProfId4",'s.tva_intra'=>"VATIntraShort",'s.capital'=>"Capital",'s.note_private'=>"NotePrivate",'s.note_public'=>"NotePublic",'s.fk_typent'=>"ThirdPartyType",'s.fk_effectif'=>"Staff","s.fk_forme_juridique"=>"JuridicalStatus",'s.fk_prospectlevel'=>'ProspectLevel','s.fk_stcomm'=>'ProspectStatus','s.default_lang'=>'DefaultLanguage','s.barcode'=>'BarCode','s.datec'=>"DateCreation"); $this->import_fields_array[$r]=array('s.nom'=>"Name*",'s.status'=>"Status",'s.client'=>"Customer*",'s.fournisseur'=>"Supplier*",'s.code_client'=>"CustomerCode",'s.code_fournisseur'=>"SupplierCode",'s.code_compta'=>"CustomerAccountancyCode",'s.code_compta_fournisseur'=>"SupplierAccountancyCode",'s.address'=>"Address",'s.zip'=>"Zip",'s.town'=>"Town",'s.fk_departement'=>"StateId",'s.fk_pays'=>"CountryCode",'s.phone'=>"Phone",'s.fax'=>"Fax",'s.url'=>"Url",'s.email'=>"Email",'s.siret'=>"ProfId1",'s.siren'=>"ProfId2",'s.ape'=>"ProfId3",'s.idprof4'=>"ProfId4",'s.tva_intra'=>"VATIntraShort",'s.capital'=>"Capital",'s.note_private'=>"NotePrivate",'s.note_public'=>"NotePublic",'s.fk_typent'=>"ThirdPartyType",'s.fk_effectif'=>"Staff","s.fk_forme_juridique"=>"JuridicalStatus",'s.fk_prospectlevel'=>'ProspectLevel','s.fk_stcomm'=>'ProspectStatus','s.default_lang'=>'DefaultLanguage','s.barcode'=>'BarCode','s.datec'=>"DateCreation");
// Add extra fields // Add extra fields
$sql="SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'societe' AND entity = ".$conf->entity; $sql="SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'societe' AND entity = ".$conf->entity;
$resql=$this->db->query($sql); $resql=$this->db->query($sql);

View File

@ -1521,13 +1521,11 @@ else
/* /*
* List of payments * List of payments
*/ */
$nbrows=7; $nbcols=2; $nbrows=9; $nbcols=2;
if (! empty($conf->projet->enabled)) $nbrows++; if (! empty($conf->projet->enabled)) $nbrows++;
if (! empty($conf->banque->enabled)) $nbcols++; if (! empty($conf->banque->enabled)) $nbcols++;
// Local taxes // Local taxes
// TODO I use here $societe->localtax1_assuj. Before it was $mysoc->localtax1_assuj, but this is a supplier invoice, so made by supplier, so depends on supplier properties
if ($mysoc->country_code=='ES') if ($mysoc->country_code=='ES')
{ {
if($mysoc->localtax1_assuj=="1") $nbrows++; if($mysoc->localtax1_assuj=="1") $nbrows++;
@ -1683,8 +1681,21 @@ else
$alreadypaid=$object->getSommePaiement(); $alreadypaid=$object->getSommePaiement();
print '<tr><td>'.$langs->trans('Status').'</td><td colspan="3">'.$object->getLibStatut(4,$alreadypaid).'</td></tr>'; print '<tr><td>'.$langs->trans('Status').'</td><td colspan="3">'.$object->getLibStatut(4,$alreadypaid).'</td></tr>';
print '<tr><td>'.$langs->trans('AmountHT').'</td><td align="right">'.price($object->total_ht).'</td><td colspan="2" align="left">'.$langs->trans('Currency'.$conf->currency).'</td></tr>'; print '<tr><td>'.$langs->trans('AmountHT').'</td><td align="right">'.price($object->total_ht,1,$langs,0,-1,-1,$conf->currency).'</td><td colspan="2" align="left">&nbsp;</td></tr>';
print '<tr><td>'.$langs->trans('AmountVAT').'</td><td align="right">'.price($object->total_tva).'</td><td colspan="2" align="left">'.$langs->trans('Currency'.$conf->currency).'</td></tr>'; print '<tr><td>'.$langs->trans('AmountVAT').'</td><td align="right">'.price($object->total_tva,1,$langs,0,-1,-1,$conf->currency).'</td><td colspan="2" align="left">';
if (! empty($conf->global->MAIN_FEATURES_LEVEL))
{
if (GETPOST('calculationrule')) $calculationrule=GETPOST('calculationrule','alpha');
else $calculationrule=(empty($conf->global->MAIN_ROUNDOFTOTAL_NOT_TOTALOFROUND)?'totalofround':'roundoftotal');
if ($calculationrule == 'totalofround') $calculationrulenum=1;
else $calculationrulenum=2;
$s=$langs->trans("ReCalculate").' ';
$s.='<a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=calculate&calculationrule=totalofround">'.$langs->trans("Mode1").'</a>';
$s.=' / ';
$s.='<a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=calculate&calculationrule=roundototal">'.$langs->trans("Mode2").'</a>';
print $form->textwithtooltip($s, $langs->trans("CalculationRuleDesc",$calculationrulenum).'<br>'.$langs->trans("CalculationRuleDescSupplier"), 2, 1, img_picto('','help'));
}
print '</td></tr>';
// Amount Local Taxes // Amount Local Taxes
//TODO: Place into a function to control showing by country or study better option //TODO: Place into a function to control showing by country or study better option
@ -1693,14 +1704,14 @@ else
if ($mysoc->localtax1_assuj=="1") //Localtax1 RE if ($mysoc->localtax1_assuj=="1") //Localtax1 RE
{ {
print '<tr><td>'.$langs->transcountry("AmountLT1",$societe->country_code).'</td>'; print '<tr><td>'.$langs->transcountry("AmountLT1",$societe->country_code).'</td>';
print '<td align="right">'.price($object->total_localtax1).'</td>'; print '<td align="right">'.price($object->total_localtax1,1,$langs,0,-1,-1,$conf->currency).'</td>';
print '<td>'.$langs->trans("Currency".$conf->currency).'</td></tr>'; print '<td colspan="2">&nbsp;</td></tr>';
} }
if ($societe->localtax2_assuj=="1") //Localtax2 IRPF if ($societe->localtax2_assuj=="1") //Localtax2 IRPF
{ {
print '<tr><td>'.$langs->transcountry("AmountLT2",$societe->country_code).'</td>'; print '<tr><td>'.$langs->transcountry("AmountLT2",$societe->country_code).'</td>';
print '<td align="right">'.price($object->total_localtax2).'</td>'; print '<td align="right">'.price($object->total_localtax2,1,$langs,0,-1,-1,$conf->currency).'</td>';
print '<td>'.$langs->trans("Currency".$conf->currency).'</td></tr>'; print '<td colspan="2">&nbsp;</td></tr>';
} }
} }
else else
@ -1708,17 +1719,17 @@ else
if ($societe->localtax1_assuj=="1") //Localtax1 RE if ($societe->localtax1_assuj=="1") //Localtax1 RE
{ {
print '<tr><td>'.$langs->transcountry("AmountLT1",$societe->country_code).'</td>'; print '<tr><td>'.$langs->transcountry("AmountLT1",$societe->country_code).'</td>';
print '<td align="right">'.price($object->total_localtax1).'</td>'; print '<td align="right">'.price($object->total_localtax1,1,$langs,0,-1,-1,$conf->currency).'</td>';
print '<td>'.$langs->trans("Currency".$conf->currency).'</td></tr>'; print '<td colspan="2">&nbsp;</td></tr>';
} }
if ($societe->localtax2_assuj=="1") //Localtax2 IRPF if ($societe->localtax2_assuj=="1") //Localtax2 IRPF
{ {
print '<tr><td>'.$langs->transcountry("AmountLT2",$societe->country_code).'</td>'; print '<tr><td>'.$langs->transcountry("AmountLT2",$societe->country_code).'</td>';
print '<td align="right">'.price($object->total_localtax2).'</td>'; print '<td align="right">'.price($object->total_localtax2,1,$langs,0,-1,-1,$conf->currency).'</td>';
print '<td>'.$langs->trans("Currency".$conf->currency).'</td></tr>'; print '<td colspan="2">&nbsp;</td></tr>';
} }
} }
print '<tr><td>'.$langs->trans('AmountTTC').'</td><td align="right">'.price($object->total_ttc).'</td><td colspan="2" align="left">'.$langs->trans('Currency'.$conf->currency).'</td></tr>'; print '<tr><td>'.$langs->trans('AmountTTC').'</td><td align="right">'.price($object->total_ttc,1,$langs,0,-1,-1,$conf->currency).'</td><td colspan="2" align="left">&nbsp;</td></tr>';
// Project // Project
if (! empty($conf->projet->enabled)) if (! empty($conf->projet->enabled))
@ -2132,13 +2143,13 @@ else
} }
//Make payments // Make payments
if ($action != 'edit' && $object->statut == 1 && $object->paye == 0 && $user->societe_id == 0) if ($action != 'edit' && $object->statut == 1 && $object->paye == 0 && $user->societe_id == 0)
{ {
print '<a class="butAction" href="paiement.php?facid='.$object->id.'&amp;action=create">'.$langs->trans('DoPayment').'</a>'; print '<a class="butAction" href="paiement.php?id='.$object->id.'&amp;action=create">'.$langs->trans('DoPayment').'</a>';
} }
//Classify paid // Classify paid
if ($action != 'edit' && $object->statut == 1 && $object->paye == 0 && $user->societe_id == 0) if ($action != 'edit' && $object->statut == 1 && $object->paye == 0 && $user->societe_id == 0)
{ {
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=paid"'; print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=paid"';
@ -2147,7 +2158,7 @@ else
//print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=paid">'.$langs->trans('ClassifyPaid').'</a>'; //print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=paid">'.$langs->trans('ClassifyPaid').'</a>';
} }
//Validate // Validate
if ($action != 'edit' && $object->statut == 0) if ($action != 'edit' && $object->statut == 0)
{ {
if (count($object->lines)) if (count($object->lines))
@ -2165,13 +2176,13 @@ else
} }
} }
//Clone // Clone
if ($action != 'edit' && $user->rights->fournisseur->facture->creer) if ($action != 'edit' && $user->rights->fournisseur->facture->creer)
{ {
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=clone&amp;socid='.$object->socid.'">'.$langs->trans('ToClone').'</a>'; print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=clone&amp;socid='.$object->socid.'">'.$langs->trans('ToClone').'</a>';
} }
//Delete // Delete
if ($action != 'edit' && $user->rights->fournisseur->facture->supprimer) if ($action != 'edit' && $user->rights->fournisseur->facture->supprimer)
{ {
print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=delete">'.$langs->trans('Delete').'</a>'; print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=delete">'.$langs->trans('Delete').'</a>';

View File

@ -1,4 +1,4 @@
# Dolibarr language file - Source file is ca_ES - agenda # Dolibarr language file - Source file is en_US - agenda
CHARSET=UTF-8 CHARSET=UTF-8
IdAgenda=ID esdeveniment IdAgenda=ID esdeveniment
Actions=Esdeveniments Actions=Esdeveniments

View File

@ -75,6 +75,7 @@ NoRecordedProducts=Sense productes/serveis registrats
NoRecordedProspects=Sense clients potencials registrats NoRecordedProspects=Sense clients potencials registrats
NoContractedProducts=Sense productes/serveis contractats NoContractedProducts=Sense productes/serveis contractats
NoRecordedContracts=Sense contractes registrats NoRecordedContracts=Sense contractes registrats
NoRecordedInterventions=Sense intervencions registrades
BoxLatestSupplierOrders=Últimes comandes a proveïdors BoxLatestSupplierOrders=Últimes comandes a proveïdors
BoxTitleLatestSupplierOrders=Les %s últimes comandes a proveïdors BoxTitleLatestSupplierOrders=Les %s últimes comandes a proveïdors
NoSupplierOrder=Sense comandes a proveïdors NoSupplierOrder=Sense comandes a proveïdors

View File

@ -199,3 +199,9 @@ CostPmpHT=Cost de compra
ProductUsedForBuild=Auto consumit per producció ProductUsedForBuild=Auto consumit per producció
ProductBuilded=Producció completada ProductBuilded=Producció completada
ProductsMultiPrice=Producte multi-preu ProductsMultiPrice=Producte multi-preu
ProductSellByQuarterHT=Vendes trimestrals de productes
ServiceSellByQuarterHT=Vendes trimestrals de serveis
Quarter1=1er. Trimestre
Quarter2=2on. Trimestre
Quarter3=3er. Trimestre
Quarter4=4at. Trimestre

View File

@ -65,7 +65,7 @@ PreviewNotAvailable=Vorschau nicht verfügbar
ThemeCurrentlyActive=Derzeit aktivierte Oberfläche ThemeCurrentlyActive=Derzeit aktivierte Oberfläche
CurrentTimeZone=Aktuelle Zeitzone des PHP-Servers CurrentTimeZone=Aktuelle Zeitzone des PHP-Servers
Space=Raum Space=Raum
# Table=Table Table=Tabelle
Fields=Felder Fields=Felder
# Index=Index # Index=Index
Mask=Maske Mask=Maske
@ -176,7 +176,7 @@ FullPathToPostgreSQLdumpCommand=Vollständiger Pfad zum pg_dump-Befehl
ExportOptions=Exportoptionen ExportOptions=Exportoptionen
AddDropDatabase=DROP DATABASE Befehl hinzufügen AddDropDatabase=DROP DATABASE Befehl hinzufügen
AddDropTable=DROP TABLE Befehl hinzufügen AddDropTable=DROP TABLE Befehl hinzufügen
# ExportStructure=Structure ExportStructure=Struktur
Datas=Daten Datas=Daten
NameColumn=Name der Spalten NameColumn=Name der Spalten
ExtendedInsert=Erweiterte INSERTS ExtendedInsert=Erweiterte INSERTS
@ -271,7 +271,7 @@ ModuleFamilyFinancial=Finanzmodule (Rechnungswesen/Finanzen)
ModuleFamilyECM=Inhaltsverwaltung (ECM) ModuleFamilyECM=Inhaltsverwaltung (ECM)
MenuHandlers=Menü-Handler MenuHandlers=Menü-Handler
MenuAdmin=Menü-Editor MenuAdmin=Menü-Editor
# DoNotUseInProduction=Do not use in production DoNotUseInProduction=Nicht in Produktion nutzen
ThisIsProcessToFollow=So führen Sie die Installation/Aktualisierung des Systems durch: ThisIsProcessToFollow=So führen Sie die Installation/Aktualisierung des Systems durch:
StepNb=Schritt %s StepNb=Schritt %s
FindPackageFromWebSite=Finden Sie ein Paket, das die gewünschten Funktionen beinhaltet (zum Beispiel auf der offiziellen Website %s). FindPackageFromWebSite=Finden Sie ein Paket, das die gewünschten Funktionen beinhaltet (zum Beispiel auf der offiziellen Website %s).
@ -281,7 +281,7 @@ SetupIsReadyForUse=Die Installation ist abgeschlossen und das System zur Verwend
# NotExistsDirect=The alternative root directory is not defined.<br> # NotExistsDirect=The alternative root directory is not defined.<br>
# InfDirAlt=Since version 3 it is possible to define an alternative root directory.This allows you to store, same place, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br> # InfDirAlt=Since version 3 it is possible to define an alternative root directory.This allows you to store, same place, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
# InfDirExample=<br>Then declare it in the file conf.php<br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>*These lines are commented with "#", to uncomment only remove the character. # InfDirExample=<br>Then declare it in the file conf.php<br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>*These lines are commented with "#", to uncomment only remove the character.
# YouCanSubmitFile=Select module: YouCanSubmitFile=Modul wählen:
CurrentVersion=Aktuelle dolibarr-Version CurrentVersion=Aktuelle dolibarr-Version
CallUpdatePage=Zur Aktualisierung der Daten und Datenbankstrukturen gehen Sie zur Seite %s. CallUpdatePage=Zur Aktualisierung der Daten und Datenbankstrukturen gehen Sie zur Seite %s.
LastStableVersion=Letzte stabile Version LastStableVersion=Letzte stabile Version
@ -358,7 +358,7 @@ String=Zeichenkette
# Boolean=Boolean (Checkbox) # Boolean=Boolean (Checkbox)
ExtrafieldPhone = Telefon ExtrafieldPhone = Telefon
ExtrafieldPrice = Preis ExtrafieldPrice = Preis
# ExtrafieldMail = Email ExtrafieldMail = E-Mail
# ExtrafieldSelect = Select list # ExtrafieldSelect = Select list
# ExtrafieldSelectList = Select from table # ExtrafieldSelectList = Select from table
# ExtrafieldSeparator=Separator # ExtrafieldSeparator=Separator
@ -371,7 +371,7 @@ ExtrafieldPrice = Preis
# LibraryToBuildPDF=Library used to build PDF # 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> # 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) # 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)
# SMS=SMS SMS=SMS
# LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user <strong>%s</strong> # LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user <strong>%s</strong>
# RefreshPhoneLink=Refresh link # RefreshPhoneLink=Refresh link
# LinkToTest=Clickable link generated for user <strong>%s</strong> (click phone number to test) # LinkToTest=Clickable link generated for user <strong>%s</strong> (click phone number to test)
@ -487,7 +487,7 @@ Module2900Name= GeoIPMaxmind
Module2900Desc= GeoIP Maxmind Konvertierung Module2900Desc= GeoIP Maxmind Konvertierung
Module5000Name=Mandantenfähigkeit Module5000Name=Mandantenfähigkeit
Module5000Desc=Ermöglicht Ihnen die Verwaltung mehrerer Firmen Module5000Desc=Ermöglicht Ihnen die Verwaltung mehrerer Firmen
# Module20000Name=Holidays Module20000Name=Ferien
# Module20000Desc=Declare and follow employees holidays # Module20000Desc=Declare and follow employees holidays
Module50000Name=PayBox Module50000Name=PayBox
Module50000Desc=Über dieses Modul können Sie online Kreditkartenzahlungen entgegennehmen Module50000Desc=Über dieses Modul können Sie online Kreditkartenzahlungen entgegennehmen
@ -793,7 +793,7 @@ PhpConf=Config
PhpWebLink=PHP Web-Link PhpWebLink=PHP Web-Link
Pear=Pear Pear=Pear
PearPackages=Pear Packages PearPackages=Pear Packages
# Browser=Browser Browser=Browser
Server=Server Server=Server
Database=Datenbank Database=Datenbank
DatabaseServer=Datenbankserver DatabaseServer=Datenbankserver

View File

@ -11,7 +11,7 @@ ReplaceWindow=Aktuelles Fenster ersetzen
BookmarkTargetNewWindowShort=Neues Fenster BookmarkTargetNewWindowShort=Neues Fenster
BookmarkTargetReplaceWindowShort=Aktuelles Fenster BookmarkTargetReplaceWindowShort=Aktuelles Fenster
BookmarkTitle=Titel des Lesezeichens BookmarkTitle=Titel des Lesezeichens
UrlOrLink=URL oder Link UrlOrLink=URL
BehaviourOnClick=Verhalten bei Klick auf den Link BehaviourOnClick=Verhalten bei Klick auf den Link
CreateBookmark=Erstelle Lesezeichen CreateBookmark=Erstelle Lesezeichen
SetHereATitleForLink=Geben Sie hier einen Linktitel ein SetHereATitleForLink=Geben Sie hier einen Linktitel ein

View File

@ -304,7 +304,7 @@ DemandReasonTypeSRC_COMM=Kaufmännischer Ansprechpartner
DemandReasonTypeSRC_SHOP=Shop-Kontakt DemandReasonTypeSRC_SHOP=Shop-Kontakt
# DemandReasonTypeSRC_WOM=Word of mouth # DemandReasonTypeSRC_WOM=Word of mouth
# DemandReasonTypeSRC_PARTNER=Partner # DemandReasonTypeSRC_PARTNER=Partner
# DemandReasonTypeSRC_EMPLOYEE=Employee DemandReasonTypeSRC_EMPLOYEE=Angestellter
# DemandReasonTypeSRC_SPONSORING=Sponsorship # DemandReasonTypeSRC_SPONSORING=Sponsorship
#### Paper formats #### #### Paper formats ####

View File

@ -2,8 +2,8 @@
CHARSET= UTF-8 CHARSET= UTF-8
# HRM=HRM # HRM=HRM
# Holidays=Holidays Holidays=Ferien
# CPTitreMenu=Holidays CPTitreMenu=Ferien
# MenuReportMonth=Monthly statement # MenuReportMonth=Monthly statement
# MenuAddCP=Apply for holidays # MenuAddCP=Apply for holidays
# NotActiveModCP=You must enable the module holidays to view this page. # NotActiveModCP=You must enable the module holidays to view this page.
@ -11,7 +11,7 @@ CHARSET= UTF-8
# NoCPforUser=You don't have a demand for holidays. # NoCPforUser=You don't have a demand for holidays.
# AddCP=Apply for holidays # AddCP=Apply for holidays
# CPErrorSQL=An SQL error occurred: # CPErrorSQL=An SQL error occurred:
# Employe=Employee Employe=Angestellter
DateDebCP=Vertragsbeginn DateDebCP=Vertragsbeginn
DateFinCP=Vertragsende DateFinCP=Vertragsende
DateCreateCP=Erstellungsdatum DateCreateCP=Erstellungsdatum
@ -23,7 +23,7 @@ RefuseCP=Abgelehnt
# ValidatorCP=Approbator # ValidatorCP=Approbator
# ListeCP=List of holidays # ListeCP=List of holidays
# ReviewedByCP=Will be reviewed by # ReviewedByCP=Will be reviewed by
DescCP=Titel DescCP=Beschreibung
# SendRequestCP=Creating demand for holidays # SendRequestCP=Creating demand for holidays
# DelayToRequestCP=Applications for holidays must be made at least <b>%s day(s)</b> before them. # DelayToRequestCP=Applications for holidays must be made at least <b>%s day(s)</b> before them.
# MenuConfCP=Edit balance of holidays # MenuConfCP=Edit balance of holidays
@ -79,12 +79,12 @@ UserCP=Benutzer
# MenuLogCP=View logs of holidays # MenuLogCP=View logs of holidays
# LogCP=Log of updates of holidays # LogCP=Log of updates of holidays
# ActionByCP=Performed by # ActionByCP=Performed by
# UserUpdateCP=For the user UserUpdateCP=Für den Benutzer
# PrevSoldeCP=Previous Balance # PrevSoldeCP=Previous Balance
# NewSoldeCP=New Balance # NewSoldeCP=New Balance
# alreadyCPexist=A request for holidays has already been done on this period. # alreadyCPexist=A request for holidays has already been done on this period.
UserName=Nachname UserName=Nachname
# Employee=Employee Employee=Angestellter
# FirstDayOfHoliday=First day of holiday # FirstDayOfHoliday=First day of holiday
# LastDayOfHoliday=Last day of holiday # LastDayOfHoliday=Last day of holiday
# HolidaysMonthlyUpdate=Monthly update # HolidaysMonthlyUpdate=Monthly update
@ -129,11 +129,11 @@ DeleteEventOptionCP=Lösche Gruppe
UpdateEventOptionCP=Aktualisieren UpdateEventOptionCP=Aktualisieren
# ErrorMailNotSend=An error occurred while sending email: # ErrorMailNotSend=An error occurred while sending email:
# NoCPforMonth=No leave this month. # NoCPforMonth=No leave this month.
# nbJours=Number days nbJours=Anzahl der Tage
# TitleAdminCP=Configuration of Holidays # TitleAdminCP=Configuration of Holidays
#Messages #Messages
# Hello=Hello Hello=Hallo
# HolidaysToValidate=Validate holidays # HolidaysToValidate=Validate holidays
# HolidaysToValidateBody=Below is a request for holidays to validate # HolidaysToValidateBody=Below is a request for holidays to validate
# HolidaysToValidateDelay=This request for holidays will take place within a period of less than %s days. # HolidaysToValidateDelay=This request for holidays will take place within a period of less than %s days.

View File

@ -12,11 +12,11 @@ CHARSET=UTF-8
# DescADHERENT_MAILMAN_URL=URL for Mailman subscriptions # DescADHERENT_MAILMAN_URL=URL for Mailman subscriptions
# DescADHERENT_MAILMAN_UNSUB_URL=URL for Mailman unsubscriptions # DescADHERENT_MAILMAN_UNSUB_URL=URL for Mailman unsubscriptions
# DescADHERENT_MAILMAN_LISTS=List(s) for automatic inscription of new members (separated by a comma) # DescADHERENT_MAILMAN_LISTS=List(s) for automatic inscription of new members (separated by a comma)
# SPIPTitle=SPIP Content Management System SPIPTitle=SPIP Content Management System
# DescADHERENT_SPIP_SERVEUR=SPIP Server DescADHERENT_SPIP_SERVEUR=SPIP-Server
# DescADHERENT_SPIP_DB=SPIP database name DescADHERENT_SPIP_DB=SPIP-Datenbankname
# DescADHERENT_SPIP_USER=SPIP database login DescADHERENT_SPIP_USER=SPIP-Datenbankkennung
# DescADHERENT_SPIP_PASS=SPIP database password DescADHERENT_SPIP_PASS=SPIP-Datenbankpasswort
# AddIntoSpip=Add into SPIP # AddIntoSpip=Add into SPIP
# AddIntoSpipConfirmation=Are you sure you want to add this member into SPIP? # AddIntoSpipConfirmation=Are you sure you want to add this member into SPIP?
# AddIntoSpipError=Failed to add the user in SPIP # AddIntoSpipError=Failed to add the user in SPIP

View File

@ -5,8 +5,8 @@ DIRECTION=ltr
# msungstdlight or cid0ct are for traditionnal chinese (traditionnal does not render with ubuntu pdf reader) # msungstdlight or cid0ct are for traditionnal chinese (traditionnal does not render with ubuntu pdf reader)
# stsongstdlight or cid0cs are for simplified chinese # stsongstdlight or cid0cs are for simplified chinese
# To read chinese pdf with linux: sudo apt-get install poppler-data # To read chinese pdf with linux: sudo apt-get install poppler-data
FONTFORPDF=helvetica # FONTFORPDF=helvetica
FONTSIZEFORPDF=10 # FONTSIZEFORPDF=10
SeparatorDecimal=, SeparatorDecimal=,
SeparatorThousand=. SeparatorThousand=.
FormatDateShort=%d/%m/%Y FormatDateShort=%d/%m/%Y

View File

@ -7,11 +7,11 @@ CHARSET=UTF-8
# NoSurveysInDatabase=%s survey(s) into database. # NoSurveysInDatabase=%s survey(s) into database.
# OpenSurveyArea=Surveys area # OpenSurveyArea=Surveys area
# AddACommentForPoll=You can add a comment into survey... # AddACommentForPoll=You can add a comment into survey...
# AddComment=Add comment AddComment=Kommentar hinzufügen
# CreatePoll=Create poll # CreatePoll=Create poll
# PollTitle=Poll title # PollTitle=Poll title
# OpenSurveyYourName=Your name OpenSurveyYourName=Ihr Name
# OpenSurveyYourEMail=Your email address OpenSurveyYourEMail=Ihre E-Mail-Adresse
# VotersCanModify=Voters can modify vote of others # VotersCanModify=Voters can modify vote of others
# ToReceiveEMailForEachVote=To receive an email for each vote # ToReceiveEMailForEachVote=To receive an email for each vote
# TypeDate=Type date # TypeDate=Type date
@ -19,7 +19,7 @@ CHARSET=UTF-8
# YouAreInPollCreateArea=You are in the poll creation section # YouAreInPollCreateArea=You are in the poll creation section
# FieldMandatory=Field mandatory # FieldMandatory=Field mandatory
# OpenSurveyDesc=Online service to plan a rendez-vous or do a survey quickly and easily. # OpenSurveyDesc=Online service to plan a rendez-vous or do a survey quickly and easily.
# OpenSurveyNoRegistration=No registration required. OpenSurveyNoRegistration=Keine Registrierung benötigt.
# OpenSurveyStep2=Select your dates amoung the free days (green). The selected days are in blue. You can unselect a day previously selected by clicking again on it # OpenSurveyStep2=Select your dates amoung the free days (green). The selected days are in blue. You can unselect a day previously selected by clicking again on it
# RemoveAllDays=Remove all days # RemoveAllDays=Remove all days
# CopyHoursOfFirstDay=Copy hours of first day # CopyHoursOfFirstDay=Copy hours of first day
@ -27,7 +27,7 @@ CHARSET=UTF-8
# SelectedDays=Selected days # SelectedDays=Selected days
# TheBestChoice=The best choice currently is # TheBestChoice=The best choice currently is
# TheBestChoices=The best choices currently are # TheBestChoices=The best choices currently are
# with=with with=mit
# OpenSurveyHowTo=If you agree to vote in this poll, you have to give your name, choose the values that fit best for you (without paying attention to the choices of the other voters) and validate with the plus button at the end of the line. # OpenSurveyHowTo=If you agree to vote in this poll, you have to give your name, choose the values that fit best for you (without paying attention to the choices of the other voters) and validate with the plus button at the end of the line.
# InitiatorOfPoll=Initiator of the poll # InitiatorOfPoll=Initiator of the poll
# CommentsOfVoters=Comments of voters # CommentsOfVoters=Comments of voters

View File

@ -11,7 +11,7 @@ SmsRecipient=Empfänger
SmsTitle=Titel SmsTitle=Titel
SmsFrom=Absender SmsFrom=Absender
SmsTo=Ziel SmsTo=Ziel
SmsTopic=SMS Thema SmsTopic=Thema der SMS
SmsText=Nachricht SmsText=Nachricht
SmsMessage=SMS Nachricht SmsMessage=SMS Nachricht
ShowSms=SMS Anzeigen ShowSms=SMS Anzeigen

View File

@ -1,6 +1,6 @@
# Dolibarr language file - Source file is en_US - admin # Dolibarr language file - Source file is en_US - admin
CHARSET=UTF-8 CHARSET=UTF-8
Foundation=Ίδρυμα Foundation=Οργανισμός
Version=Έκδοση Version=Έκδοση
VersionProgram=Έκδοση Προγράμματος VersionProgram=Έκδοση Προγράμματος
VersionLastInstall=Έκδοση Τελευταίας Εγκατάστασης VersionLastInstall=Έκδοση Τελευταίας Εγκατάστασης
@ -8,7 +8,7 @@ VersionLastUpgrade=Έκδοση Τελευταίας Ενημέρωσης
VersionExperimental=Πειραματική VersionExperimental=Πειραματική
VersionDevelopment=Υπό ανάπτυξη VersionDevelopment=Υπό ανάπτυξη
VersionUnknown=Άγνωστη VersionUnknown=Άγνωστη
VersionRecommanded=Προτινώμενη VersionRecommanded=Προτεινόμενη
SessionId=ID Συνόδου SessionId=ID Συνόδου
SessionSaveHandler=Φορέα εξυπηρέτησης για να σώσει συνεδρίες SessionSaveHandler=Φορέα εξυπηρέτησης για να σώσει συνεδρίες
SessionSavePath=Αποθήκευση τοπικής προσαρμογής συνεδρίας SessionSavePath=Αποθήκευση τοπικής προσαρμογής συνεδρίας
@ -18,7 +18,7 @@ NoSessionListWithThisHandler=Save session handler configured in your PHP does no
LockNewSessions=Κλειδώσετε τις νέες συνδέσεις LockNewSessions=Κλειδώσετε τις νέες συνδέσεις
ConfirmLockNewSessions=Είστε σίγουροι ότι θέλετε να περιορίσει κάθε νέα σύνδεση Dolibarr για τον εαυτό σας. Μόνο ο χρήστης <b>%s</b> θα είναι σε θέση να συνδεθεί μετά από αυτό. ConfirmLockNewSessions=Είστε σίγουροι ότι θέλετε να περιορίσει κάθε νέα σύνδεση Dolibarr για τον εαυτό σας. Μόνο ο χρήστης <b>%s</b> θα είναι σε θέση να συνδεθεί μετά από αυτό.
UnlockNewSessions=Κατάργηση κλειδώματος σύνδεσης UnlockNewSessions=Κατάργηση κλειδώματος σύνδεσης
YourSession=Η σύνοδός σας YourSession=Η σύνοδος σας
Sessions=Σύνοδοι χρηστών Sessions=Σύνοδοι χρηστών
WebUserGroup=Διακομιστή Web χρήστη / ομάδα WebUserGroup=Διακομιστή Web χρήστη / ομάδα
NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir). NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).

View File

@ -75,6 +75,7 @@ NoRecordedProducts=No recorded products/services
NoRecordedProspects=No recorded prospects NoRecordedProspects=No recorded prospects
NoContractedProducts=No products/services contracted NoContractedProducts=No products/services contracted
NoRecordedContracts=No recorded contracts NoRecordedContracts=No recorded contracts
NoRecordedInterventions=No recorded interventions
BoxLatestSupplierOrders=Latest supplier orders BoxLatestSupplierOrders=Latest supplier orders
BoxTitleLatestSupplierOrders=%s latest supplier orders BoxTitleLatestSupplierOrders=%s latest supplier orders
NoSupplierOrder=No recorded supplier order NoSupplierOrder=No recorded supplier order

View File

@ -157,4 +157,9 @@ ByProductsAndServices=By products and services
RefExt=External ref RefExt=External ref
ToCreateAPredefinedInvoice=To create a predefined invoice, create a standard invoice then, without validating it, click onto button "Convert to predefined invoice". ToCreateAPredefinedInvoice=To create a predefined invoice, create a standard invoice then, without validating it, click onto button "Convert to predefined invoice".
LinkedOrder=linked to command LinkedOrder=linked to command
ReCalculate=Recalculate
Mode1=Methode 1
Mode2=Method 2
CalculationRuleDesc=To calculate total VAT, there is two methods:<br>Method 1 is rounding vat on each line, then summing them.<br>Method 2 is summing all vat on each line, then rounding result.<br>Final result may differs from few cents. Default mode is mode <b>%s</b>.
CalculationRuleDescSupplier=according to supplier, choose appropriate method to apply same calculation rule and get same result expected by your supplier.

View File

@ -199,3 +199,9 @@ CostPmpHT=Net total VWAP
ProductUsedForBuild=Auto consumed by production ProductUsedForBuild=Auto consumed by production
ProductBuilded=Production completed ProductBuilded=Production completed
ProductsMultiPrice=Product multi-price ProductsMultiPrice=Product multi-price
ProductSellByQuarterHT=Products turnover quarterly VWAP
ServiceSellByQuarterHT=Services turnover quarterly VWAP
Quarter1=1st. Quarter
Quarter2=2nd. Quarter
Quarter3=3rd. Quarter
Quarter4=4th. Quarter

View File

@ -1,4 +1,4 @@
# Dolibarr language file - Source file is es_ES - agenda # Dolibarr language file - Source file is en_US - agenda
CHARSET=UTF-8 CHARSET=UTF-8
IdAgenda=ID evento IdAgenda=ID evento
Actions=Eventos Actions=Eventos

View File

@ -75,6 +75,7 @@ NoRecordedProducts=Sin productos/servicios registrados
NoRecordedProspects=Sin clientes potenciales registrados NoRecordedProspects=Sin clientes potenciales registrados
NoContractedProducts=Sin productos/servicios contratados NoContractedProducts=Sin productos/servicios contratados
NoRecordedContracts=Sin contratos registrados NoRecordedContracts=Sin contratos registrados
NoRecordedInterventions=Sin intervenciones registradas
BoxLatestSupplierOrders=Últimos pedidos a proveedores BoxLatestSupplierOrders=Últimos pedidos a proveedores
BoxTitleLatestSupplierOrders=Los %s últimos pedidos a proveedores BoxTitleLatestSupplierOrders=Los %s últimos pedidos a proveedores
NoSupplierOrder=Sin pedidos a proveedores NoSupplierOrder=Sin pedidos a proveedores

View File

@ -1,4 +1,4 @@
# Dolibarr language file - Source file is es_ES - categories # Dolibarr language file - Source file is en_US - categories
CHARSET=UTF-8 CHARSET=UTF-8
Category=Categoría Category=Categoría
Categories=Categorías Categories=Categorías
@ -102,4 +102,7 @@ CatSupLinks=Proveedores
CatCusLinks=Clientes/Clientes potenciales CatCusLinks=Clientes/Clientes potenciales
CatProdLinks=Productos CatProdLinks=Productos
CatMemberLinks=Miembros CatMemberLinks=Miembros
CatProdLinks=Productos
CatCusLinks=Clientes/Clientes potenciales
CatSupLinks=Proveedores
DeleteFromCat=Eliminar de la categoría DeleteFromCat=Eliminar de la categoría

View File

@ -1,4 +1,4 @@
# Dolibarr language file - Source file is es_ES - contracts # Dolibarr language file - Source file is en_US - contracts
CHARSET=UTF-8 CHARSET=UTF-8
ContractsArea=Área contratos ContractsArea=Área contratos
ListOfContracts=Listado de contratos ListOfContracts=Listado de contratos
@ -54,6 +54,7 @@ ListOfRunningContractsLines=Listado de líneas de contratos en servicio
ListOfRunningServices=Listado de servicios activos ListOfRunningServices=Listado de servicios activos
NotActivatedServices=Servicios no activados (con los contratos validados) NotActivatedServices=Servicios no activados (con los contratos validados)
BoardNotActivatedServices=Servicios a activar con los contratos validados BoardNotActivatedServices=Servicios a activar con los contratos validados
LastContracts=Los % últimos contratos
LastActivatedServices=Los %s últimos servicios activados LastActivatedServices=Los %s últimos servicios activados
LastModifiedServices=Los %s últimos servicios modificados LastModifiedServices=Los %s últimos servicios modificados
EditServiceLine=Edición línea del servicio EditServiceLine=Edición línea del servicio
@ -89,6 +90,7 @@ ListOfServicesToExpireWithDuration=Listado de servicios activos a expirar en %s
ListOfServicesToExpireWithDurationNeg=Listado de servicios expirados más de %s días ListOfServicesToExpireWithDurationNeg=Listado de servicios expirados más de %s días
ListOfServicesToExpire=Listado de servicios activos a expirar ListOfServicesToExpire=Listado de servicios activos a expirar
NoteListOfYourExpiredServices=Este listado contiene solamente los servicios de contratos de terceros de los que usted es comercial NoteListOfYourExpiredServices=Este listado contiene solamente los servicios de contratos de terceros de los que usted es comercial
##### Types de contacts ##### ##### Types de contacts #####
TypeContact_contrat_internal_SALESREPSIGN=Comercial firmante del contrato TypeContact_contrat_internal_SALESREPSIGN=Comercial firmante del contrato
TypeContact_contrat_internal_SALESREPFOLL=Comercial seguimiento del contrato TypeContact_contrat_internal_SALESREPFOLL=Comercial seguimiento del contrato

View File

@ -1,7 +1,9 @@
# Dolibarr language file - Source file is es_ES - errors # Dolibarr language file - Source file is en_US - errors
CHARSET=UTF-8 CHARSET=UTF-8
# No errors # No errors
NoErrorCommitIsDone=Sin errores, es válido NoErrorCommitIsDone=Sin errores, es válido
# Errors # Errors
Error=Error Error=Error
Errors=Errores Errors=Errores
@ -123,7 +125,7 @@ ErrorToConnectToMysqlCheckInstance=Error de conexión con el servidor de la base
ErrorFailedToAddContact=Error en la adición del contacto ErrorFailedToAddContact=Error en la adición del contacto
ErrorDateMustBeBeforeToday=La fecha no puede ser superior a hoy ErrorDateMustBeBeforeToday=La fecha no puede ser superior a hoy
ErrorPaymentModeDefinedToWithoutSetup=Se ha establecido el modo de pago al tipo %s pero en la configuración del módulo de facturas no se ha indicado la información para mostrar de este modo de pago. ErrorPaymentModeDefinedToWithoutSetup=Se ha establecido el modo de pago al tipo %s pero en la configuración del módulo de facturas no se ha indicado la información para mostrar de este modo de pago.
ErrorPHPNeedModule=Error, su PHP debe tener instalado el módulo<b>%s</b> para utilizar esta característica.
# Warnings # Warnings
WarningMandatorySetupNotComplete=Los parámetros obligatorios de configuración no están todavía definidos WarningMandatorySetupNotComplete=Los parámetros obligatorios de configuración no están todavía definidos
WarningSafeModeOnCheckExecDir=Atención, está activada la opción PHP <b>safe_mode</b>, el comando deberá estar dentro de un directorio declarado dentro del parámetro php <b>safe_mode_exec_dir</b>. WarningSafeModeOnCheckExecDir=Atención, está activada la opción PHP <b>safe_mode</b>, el comando deberá estar dentro de un directorio declarado dentro del parámetro php <b>safe_mode_exec_dir</b>.

View File

@ -80,6 +80,7 @@ MailtoEMail=mailto email (hyperlink)
ActivateCheckRead=Activar confirmación de lectura y opción de desuscripción ActivateCheckRead=Activar confirmación de lectura y opción de desuscripción
ActivateCheckReadKey=Clave usada para encriptar la URL de la confirmación de lectura y la función de desuscripción ActivateCheckReadKey=Clave usada para encriptar la URL de la confirmación de lectura y la función de desuscripción
EMailSentToNRecipients=E-Mail enviado a %s destinatarios. EMailSentToNRecipients=E-Mail enviado a %s destinatarios.
# Libelle des modules de liste de destinataires mailing # Libelle des modules de liste de destinataires mailing
MailingModuleDescContactCompanies=Contactos de terceros (clientes potenciales, clientes, proveedores...) MailingModuleDescContactCompanies=Contactos de terceros (clientes potenciales, clientes, proveedores...)
MailingModuleDescDolibarrUsers=Usuarios de Dolibarr MailingModuleDescDolibarrUsers=Usuarios de Dolibarr
@ -92,6 +93,8 @@ MailingModuleDescContactsByCompanyCategory=Contactos de terceros (por categoría
MailingModuleDescContactsByCategory=Contactos/direcciones de terceros por categoría MailingModuleDescContactsByCategory=Contactos/direcciones de terceros por categoría
MailingModuleDescMembersCategories=Miembros (por categoría) MailingModuleDescMembersCategories=Miembros (por categoría)
MailingModuleDescContactsByFunction=Contactos de terceros (por puesto/función) MailingModuleDescContactsByFunction=Contactos de terceros (por puesto/función)
LineInFile=Línea %s en archivo LineInFile=Línea %s en archivo
RecipientSelectionModules=Módulos de selección de los destinatarios RecipientSelectionModules=Módulos de selección de los destinatarios
MailSelectedRecipients=Destinatarios seleccionados MailSelectedRecipients=Destinatarios seleccionados
@ -119,6 +122,7 @@ TagCheckMail=Seguimiento de la apertura del email
TagUnsubscribe=Link de desuscripción TagUnsubscribe=Link de desuscripción
TagSignature=Firma del usuario remitente TagSignature=Firma del usuario remitente
TagMailtoEmail=Email del destinatario TagMailtoEmail=Email del destinatario
# Module Notifications # Module Notifications
Notifications=Notificaciones Notifications=Notificaciones
NoNotificationsWillBeSent=Ninguna notificación por e-mail está prevista para este evento y empresa NoNotificationsWillBeSent=Ninguna notificación por e-mail está prevista para este evento y empresa

View File

@ -199,3 +199,9 @@ CostPmpHT=Coste de compra sin IVA
ProductUsedForBuild=Auto consumido por producción ProductUsedForBuild=Auto consumido por producción
ProductBuilded=Producción completada ProductBuilded=Producción completada
ProductsMultiPrice=Producto multi-precio ProductsMultiPrice=Producto multi-precio
ProductSellByQuarterHT=Ventas trimestrales de productos
ServiceSellByQuarterHT=Ventas trimestrales de servicios
Quarter1=1er. Trimestre
Quarter2=2º Trimestre
Quarter3=3er. Trimestre
Quarter4=4º Trimestre

View File

@ -95,8 +95,6 @@ ProjectReportDate=Cambiar las fechas de las tareas en función de la fecha de in
ErrorShiftTaskDate=Se ha producido un error en el cambio de las fechas de las tareas ErrorShiftTaskDate=Se ha producido un error en el cambio de las fechas de las tareas
ProjectsAndTasksLines=Proyectos y tareas ProjectsAndTasksLines=Proyectos y tareas
ProjectCreatedInDolibarr=Proyecto %s creado ProjectCreatedInDolibarr=Proyecto %s creado
SelectElement=Elementos vinculables al proyecto:
AddElement=Vincular
##### Types de contacts ##### ##### Types de contacts #####
TypeContact_project_internal_PROJECTLEADER=Jefe de proyecto TypeContact_project_internal_PROJECTLEADER=Jefe de proyecto
TypeContact_project_external_PROJECTLEADER=Jefe de proyecto TypeContact_project_external_PROJECTLEADER=Jefe de proyecto
@ -108,6 +106,6 @@ TypeContact_project_task_internal_CONTRIBUTOR=Participante
TypeContact_project_task_external_CONTRIBUTOR=Participante TypeContact_project_task_external_CONTRIBUTOR=Participante
# Documents models # Documents models
DocumentModelBaleine=Modelo de informe de proyecto completo (logo...) DocumentModelBaleine=Modelo de informe de proyecto completo (logo...)
PlannedWorkload=Carga de trabajo prevista PlannedWorkload = Carga de trabajo prevista
WorkloadOccupation=Porcentaje afectado WorkloadOccupation= Porcentaje afectado
ProjectReferers=Objetos vinculados ProjectReferers=Objetos vinculados

View File

@ -61,13 +61,16 @@ ShipmentCreationIsDoneFromOrder=De momento, la creación de una nueva expedició
RelatedShippings=Expedición(es) asociada(s) RelatedShippings=Expedición(es) asociada(s)
ShipmentLine=Línea de expedición ShipmentLine=Línea de expedición
CarrierList=Listado de transportistas CarrierList=Listado de transportistas
# Sending methods # Sending methods
SendingMethodCATCH=Recogido por el cliente SendingMethodCATCH=Recogido por el cliente
SendingMethodTRANS=Transportista SendingMethodTRANS=Transportista
SendingMethodCOLSUI=Colissimo SendingMethodCOLSUI=Colissimo
# ModelDocument # ModelDocument
DocumentModelSirocco=Modelo simple de nota de entrega / recepción DocumentModelSirocco=Modelo simple de nota de entrega / recepción
DocumentModelTyphon=Modelo completo de nota de entrega / recepción (logo...) DocumentModelTyphon=Modelo completo de nota de entrega / recepción (logo...)
Error_EXPEDITION_ADDON_NUMBER_NotDefined=Constante EXPEDITION_ADDON_NUMBER no definida Error_EXPEDITION_ADDON_NUMBER_NotDefined=Constante EXPEDITION_ADDON_NUMBER no definida
SumOfProductVolumes=Suma del volumen de los productos SumOfProductVolumes=Suma del volumen de los productos
SumOfProductWeights=Suma del peso de los productos SumOfProductWeights=Suma del peso de los productos

View File

@ -1,41 +1,41 @@
# Dolibarr language file - Source file is en_US - suppliers = undefined # Dolibarr language file - Source file is en_US - suppliers
CHARSET = UTF-8 CHARSET=UTF-8
Suppliers = Proveedores Suppliers=Proveedores
Supplier = Proveedor Supplier=Proveedor
AddSupplier = Añadir proveedor AddSupplier=Añadir proveedor
SupplierRemoved = Proveedor eliminado SupplierRemoved=Proveedor eliminado
SuppliersInvoice = Factura proveedor SuppliersInvoice=Factura proveedor
NewSupplier = Nuevo proveedor NewSupplier=Nuevo proveedor
History = Histórico History=Histórico
ListOfSuppliers = Listado de proveedores ListOfSuppliers=Listado de proveedores
ShowSupplier = Mostrar proveedor ShowSupplier=Mostrar proveedor
OrderDate = Fecha de pedido OrderDate=Fecha de pedido
BuyingPrice = Precio de compra BuyingPrice=Precio de compra
BuyingPriceMin = Precio mínimo de compra BuyingPriceMin=Precio mínimo de compra
BuyingPriceMinShort = Precio mín. compra BuyingPriceMinShort=Precio mín. compra
AddSupplierPrice = Añadir precio de proveedor AddSupplierPrice=Añadir precio de proveedor
ChangeSupplierPrice = Modificar precio de proveedor ChangeSupplierPrice=Modificar precio de proveedor
ErrorQtyTooLowForThisSupplier = Cantidad insuficiente para este proveedor ErrorQtyTooLowForThisSupplier=Cantidad insuficiente para este proveedor
ErrorSupplierCountryIsNotDefined = El país de este proveedor no está definido, corrígalo en su ficha ErrorSupplierCountryIsNotDefined=El país de este proveedor no está definido, corrígalo en su ficha
ProductHasAlreadyReferenceInThisSupplier = Este producto ya tiene una referencia en este proveedor ProductHasAlreadyReferenceInThisSupplier=Este producto ya tiene una referencia en este proveedor
ReferenceSupplierIsAlreadyAssociatedWithAProduct = Esta referencia de proveedor ya está asociada a la referencia: %s ReferenceSupplierIsAlreadyAssociatedWithAProduct=Esta referencia de proveedor ya está asociada a la referencia: %s
NoRecordedSuppliers = Sin proveedores registrados NoRecordedSuppliers=Sin proveedores registrados
SupplierPayment = Pago a proveedor SupplierPayment=Pago a proveedor
SuppliersArea = Área proveedores SuppliersArea=Área proveedores
RefSupplierShort = Ref. proveedor RefSupplierShort=Ref. proveedor
Availability = Disponibilidad Availability=Disponibilidad
ExportDataset_fournisseur_1 = Facturas de proveedores y líneas de factura ExportDataset_fournisseur_1=Facturas de proveedores y líneas de factura
ExportDataset_fournisseur_2 = Facturas proveedores y pagos ExportDataset_fournisseur_2=Facturas proveedores y pagos
ExportDataset_fournisseur_3 = Pedidos de proveedores y líneas de pedido ExportDataset_fournisseur_3=Pedidos de proveedores y líneas de pedido
ApproveThisOrder = Aprobar este pedido ApproveThisOrder=Aprobar este pedido
ConfirmApproveThisOrder = ¿Está seguro de querer aprobar el pedido a proveedor <b>%s</b>? ConfirmApproveThisOrder=¿Está seguro de querer aprobar el pedido a proveedor <b>%s</b>?
DenyingThisOrder = Denegar este pedido DenyingThisOrder=Denegar este pedido
ConfirmDenyingThisOrder = ¿Está seguro de querer denegar el pedido a proveedor <b>%s</b>? ConfirmDenyingThisOrder=¿Está seguro de querer denegar el pedido a proveedor <b>%s</b>?
ConfirmCancelThisOrder = ¿Está seguro de querer cancelar el pedido a proveedor <b>%s</b>? ConfirmCancelThisOrder=¿Está seguro de querer cancelar el pedido a proveedor <b>%s</b>?
AddCustomerOrder = Crear pedido de cliente AddCustomerOrder=Crear pedido de cliente
AddCustomerInvoice = Crear factura a cliente AddCustomerInvoice=Crear factura a cliente
AddSupplierOrder = Crear pedido a proveedor AddSupplierOrder=Crear pedido a proveedor
AddSupplierInvoice = Crear factura de proveedor AddSupplierInvoice=Crear factura de proveedor
ListOfSupplierProductForSupplier = Listado de productos y precios del proveedor <b>%s</b> ListOfSupplierProductForSupplier=Listado de productos y precios del proveedor <b>%s</b>
NoneOrBatchFileNeverRan = Ninguno o lote <b>%s</b> no se ha ejecutado recientemente NoneOrBatchFileNeverRan=Ninguno o lote <b>%s</b> no se ha ejecutado recientemente
SentToSuppliers = Enviado a proveedores SentToSuppliers=Enviado a proveedores

View File

@ -1,18 +1,18 @@
# Dolibarr language file - Source file is en_US - admin # Dolibarr language file - Source file is en_US - admin
CHARSET=UTF-8 CHARSET=UTF-8
# Foundation=Foundation Foundation=Sihtasutus
Version=Versioon Version=Versioon
VersionProgram=Version programm VersionProgram=Programmi versioon
VersionLastInstall=Version esialgne install VersionLastInstall=Praeguse paigalduse versioon
VersionLastUpgrade=Version viimane upgrade VersionLastUpgrade=Viimase uuenduse versioon
VersionExperimental=Eksperimentaalne VersionExperimental=Eksperimentaalne
VersionDevelopment=Areng VersionDevelopment=Arendusversioon
VersionUnknown=Tundmatu VersionUnknown=Tundmatu
VersionRecommanded=Soovitatav VersionRecommanded=Soovitatav
SessionId=Session ID SessionId=Sessioni ID
SessionSaveHandler=Handler päästa istungid SessionSaveHandler=Sessioonide haldus
SessionSavePath=Storage istungil lokaliseerimine SessionSavePath=Salvestuse sesiooni lokaliseerimine
PurgeSessions=Purge istungid PurgeSessions=Tühjenda sesioonid
# ConfirmPurgeSessions=Do you really want to purge all sessions ? This will disconnect every user (except yourself). # ConfirmPurgeSessions=Do you really want to purge all sessions ? This will disconnect every user (except yourself).
NoSessionListWithThisHandler=Salvesta sessiooni handler konfigureeritud PHP ei võimalda loetleda kõik töötab istungid. NoSessionListWithThisHandler=Salvesta sessiooni handler konfigureeritud PHP ei võimalda loetleda kõik töötab istungid.
LockNewSessions=Lukustada uusi ühendusi LockNewSessions=Lukustada uusi ühendusi

View File

@ -5,17 +5,17 @@ AddThisPageToBookmarks=Lisage see leht järjehoidjad
Bookmark=Järjehoidja Bookmark=Järjehoidja
Bookmarks=Järjehoidjad Bookmarks=Järjehoidjad
NewBookmark=Uus järjehoidja NewBookmark=Uus järjehoidja
ShowBookmark=Näita järjehoidja ShowBookmark=Näita järjehoidjat
OpenANewWindow=Ava uues aknas OpenANewWindow=Ava uues aknas
ReplaceWindow=Asendada aktiivse akna ReplaceWindow=Ava praeguses aknas
BookmarkTargetNewWindowShort=Uues aknas BookmarkTargetNewWindowShort=Uues aknas
BookmarkTargetReplaceWindowShort=Aktiivse akna BookmarkTargetReplaceWindowShort=Aktiivses aknas
BookmarkTitle=Järjehoidja tiitel BookmarkTitle=Järjehoidja pealkiri
UrlOrLink=URL UrlOrLink=URL
BehaviourOnClick=Käitumine kui URL on klõpsatud BehaviourOnClick=Käitumine kui URL on klikitud
CreateBookmark=Loo järjehoidja CreateBookmark=Loo järjehoidja
SetHereATitleForLink=Set pealkiri järjehoidja SetHereATitleForLink=Sea pealkiri järjehoidjale
UseAnExternalHttpLinkOrRelativeDolibarrLink=Välise http URL ega sugulane Dolibarr URL UseAnExternalHttpLinkOrRelativeDolibarrLink=Kasutage välise lehe URL-i või siis Dolibarri sisest linki
ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Vali kui leht avada link peab olema praeguse või uues aknas ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Valige, kas leht avaneb uues või olemasolevas aknas
BookmarksManagement=Järjehoidjad juhtimine BookmarksManagement=Järjehoidjate haldus
ListOfBookmarks=Järjehoidjad ListOfBookmarks=Järjehoidjad

View File

@ -75,6 +75,7 @@ NoRecordedProducts=Pas de produit/service enregistré
NoRecordedProspects=Pas de prospect enregistré NoRecordedProspects=Pas de prospect enregistré
NoContractedProducts=Pas de produit/service contracté NoContractedProducts=Pas de produit/service contracté
NoRecordedContracts=Pas de contrat enregistré NoRecordedContracts=Pas de contrat enregistré
NoRecordedInterventions=Pas fiche d'intervention enregistrée
BoxLatestSupplierOrders=Dernières commandes fournisseur BoxLatestSupplierOrders=Dernières commandes fournisseur
BoxTitleLatestSupplierOrders=Les %s dernières commandes fournisseur enregistrées BoxTitleLatestSupplierOrders=Les %s dernières commandes fournisseur enregistrées
NoSupplierOrder=Pas de commande fournisseur enregistrée NoSupplierOrder=Pas de commande fournisseur enregistrée

View File

@ -157,4 +157,9 @@ ByProductsAndServices=Par produits et services
RefExt=Référence externe RefExt=Référence externe
ToCreateAPredefinedInvoice=Pour créer une facture prédéfinie, créer une facture standard puis sans la valider, cliquer sur le bouton "Convertir en facture prédéfine". ToCreateAPredefinedInvoice=Pour créer une facture prédéfinie, créer une facture standard puis sans la valider, cliquer sur le bouton "Convertir en facture prédéfine".
LinkedOrder=Lier à une commande LinkedOrder=Lier à une commande
ReCalculate=Recalculer
Mode1=Mode 1
Mode2=Mode 2
CalculationRuleDesc=Pour calculer le total de TVA, il existe 2 modes:<br>Le mode 1 consiste à arrondir la tva de chaque ligne et à sommer cet arrondi.<br>Le mode 2 consiste à sommer la tva de chaque ligne puis à l'arrondir.<br>Les résultats peuvent différer de quelques centimes. Le mode par défaut est le mode <b>%s</b>.
CalculationRuleDescSupplier=Selon le mode utilisé par le fournisseur, choisissez le mode adéquant afin d'appliquer la même règle et obtenir un résultat identique au mode appliqué par votre fournisseur.

View File

@ -199,3 +199,9 @@ CostPmpHT=Cout à l'achat HT
ProductUsedForBuild=Consommé automatiquement par la fabrication ProductUsedForBuild=Consommé automatiquement par la fabrication
ProductBuilded=Fabrication terminée ProductBuilded=Fabrication terminée
ProductsMultiPrice=Produits multi-prix ProductsMultiPrice=Produits multi-prix
ProductSellByQuarterHT=Chiffre d'affaire trimestrielle HT des produits
ServiceSellByQuarterHT=Chiffre d'affaire trimestrielle HT des services
Quarter1=1er. Trimestre
Quarter2=2ème. Trimestre
Quarter3=3ème. Trimestre
Quarter4=4ème. Trimestre

View File

@ -395,6 +395,8 @@ class MailmanSpip
if ($listes=='' && ! empty($conf->global->ADHERENT_MAILMAN_LISTS)) $lists=explode(',',$conf->global->ADHERENT_MAILMAN_LISTS); if ($listes=='' && ! empty($conf->global->ADHERENT_MAILMAN_LISTS)) $lists=explode(',',$conf->global->ADHERENT_MAILMAN_LISTS);
else $lists=explode(',',$listes); else $lists=explode(',',$listes);
$categstatic=new Categorie($this->db);
foreach ($lists as $list) foreach ($lists as $list)
{ {
// Filter on type something (ADHERENT_MAILMAN_LISTS = "mailinglist0,TYPE:typevalue:mailinglist1,CATEG:categvalue:mailinglist2") // Filter on type something (ADHERENT_MAILMAN_LISTS = "mailinglist0,TYPE:typevalue:mailinglist1,CATEG:categvalue:mailinglist2")

View File

@ -25,6 +25,7 @@
require '../main.inc.php'; require '../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
$type=isset($_GET["type"])?$_GET["type"]:(isset($_POST["type"])?$_POST["type"]:''); $type=isset($_GET["type"])?$_GET["type"]:(isset($_POST["type"])?$_POST["type"]:'');
if ($type =='' && !$user->rights->produit->lire) $type='1'; // Force global page on service page only if ($type =='' && !$user->rights->produit->lire) $type='1'; // Force global page on service page only
@ -258,10 +259,121 @@ else
dol_print_error($db); dol_print_error($db);
} }
// ici le récap des ventes par trimestre de service et de produit
if (! empty($conf->product->enabled))
activitytrim(0);
if (! empty($conf->service->enabled))
activitytrim(1);
//print '</td></tr></table>'; //print '</td></tr></table>';
print '</div></div></div>'; print '</div></div></div>';
llxFooter(); llxFooter();
$db->close(); $db->close();
function activitytrim($product_type)
{
global $conf,$langs,$db;
// on affiche les 3 dernières années
$yearofbegindate=date('Y',dol_time_plus_duree(time(), -3, "y"));
// ventilation par trimestre
$sql = "SELECT DATE_FORMAT(p.datep,'%Y') as annee, DATE_FORMAT(p.datep,'%m') as mois, sum(fd.total_ht) as Mnttot";
$sql.= " FROM ".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture as f, ".MAIN_DB_PREFIX."facturedet as fd";
$sql.= " , ".MAIN_DB_PREFIX."paiement as p,".MAIN_DB_PREFIX."paiement_facture as pf";
$sql.= " WHERE f.fk_soc = s.rowid";
$sql.= " AND f.rowid = fd.fk_facture";
$sql.= " AND pf.fk_facture = f.rowid";
$sql.= " AND pf.fk_paiement= p.rowid";
$sql.= " AND fd.product_type=".$product_type;
$sql.= " AND s.entity = ".$conf->entity;
$sql.= " AND p.datep >= '".$db->idate(dol_get_first_day($yearofbegindate),1)."'";
$sql.= " GROUP BY annee, mois ";
$sql.= " ORDER BY annee, mois ";
$result = $db->query($sql);
if ($result)
{
$tmpyear=$beginyear;
$trim1=0;
$trim2=0;
$trim3=0;
$trim4=0;
$lgn = 0;
$num = $db->num_rows($result);
if ($num > 0 )
{
print '<br>';
print '<table class="noborder" width="75%">';
if ($product_type==0)
print '<tr class="liste_titre"><td align=left>'.$langs->trans("ProductSellByQuarterHT").'</td>';
else
print '<tr class="liste_titre"><td align=left>'.$langs->trans("ServiceSellByQuarterHT").'</td>';
print '<td align=right>'.$langs->trans("Quarter1").'</td>';
print '<td align=right>'.$langs->trans("Quarter2").'</td>';
print '<td align=right>'.$langs->trans("Quarter3").'</td>';
print '<td align=right>'.$langs->trans("Quarter4").'</td>';
print '<td align=right>'.$langs->trans("Total").'</td>';
print '</tr>';
}
$i = 0;
while ($i < $num)
{
$objp = $db->fetch_object($result);
if ($tmpyear != $objp->annee)
{
if ($trim1+$trim2+$trim3+$trim4 > 0)
{
print '<tr ><td align=left>'.$tmpyear.'</td>';
print '<td align=right>'.price($trim1).'</td>';
print '<td align=right>'.price($trim2).'</td>';
print '<td align=right>'.price($trim3).'</td>';
print '<td align=right>'.price($trim4).'</td>';
print '<td align=right>'.price($trim1+$trim2+$trim3+$trim4).'</td>';
print '</tr>';
$lgn++;
}
// on passe à l'année suivante
$tmpyear = $objp->annee;
$trim1=0;
$trim2=0;
$trim3=0;
$trim4=0;
}
if ($objp->mois == "01" || $objp->mois == "02" || $objp->mois == "03")
$trim1 += $objp->Mnttot;
if ($objp->mois == "04" || $objp->mois == "05" || $objp->mois == "06")
$trim2 += $objp->Mnttot;
if ($objp->mois == "07" || $objp->mois == "08" || $objp->mois == "09")
$trim3 += $objp->Mnttot;
if ($objp->mois == "10" || $objp->mois == "11" || $objp->mois == "12")
$trim4 += $objp->Mnttot;
$i++;
}
if ($trim1+$trim2+$trim3+$trim4 > 0)
{
print '<tr ><td align=left>'.$tmpyear.'</td>';
print '<td align=right>'.price($trim1).'</td>';
print '<td align=right>'.price($trim2).'</td>';
print '<td align=right>'.price($trim3).'</td>';
print '<td align=right>'.price($trim4).'</td>';
print '<td align=right>'.price($trim1+$trim2+$trim3+$trim4).'</td>';
print '</tr>';
}
if ($num > 0 )
print '</table>';
}
}
?> ?>

View File

@ -1581,18 +1581,18 @@ class Societe extends CommonObject
} }
/** /**
* Return list of contacts emails or mobile existing for third party * Return list of contacts emails or mobile existing for third party
* *
* @param string $mode 'email' or 'mobile' * @param string $mode 'email' or 'mobile'
* @return array Array of contacts emails or mobile * @param int $hidedisabled 1=Hide contact if disabled
* @return array Array of contacts emails or mobile
*/ */
function contact_property_array($mode='email') function contact_property_array($mode='email', $hidedisabled=0)
{ {
$contact_property = array(); $contact_property = array();
$sql = "SELECT rowid, email, statut, phone_mobile, lastname, poste, firstname";
$sql = "SELECT rowid, email, statut, phone_mobile, lastname, firstname";
$sql.= " FROM ".MAIN_DB_PREFIX."socpeople"; $sql.= " FROM ".MAIN_DB_PREFIX."socpeople";
$sql.= " WHERE fk_soc = '".$this->id."'"; $sql.= " WHERE fk_soc = '".$this->id."'";
@ -1609,12 +1609,18 @@ class Societe extends CommonObject
if ($mode == 'email') $property=$obj->email; if ($mode == 'email') $property=$obj->email;
else if ($mode == 'mobile') $property=$obj->phone_mobile; else if ($mode == 'mobile') $property=$obj->phone_mobile;
// Show all contact. If hidedisabled is 1, showonly contacts with status = 1
if ($obj->statut == 1) if ($obj->statut == 1 || empty($hidedisabled))
{ {
$contact_property[$obj->rowid] = trim(dolGetFirstLastname($obj->firstname,$obj->lastname))." &lt;".$property."&gt;"; if (!empty($obj->poste))
{
} $contact_property[$obj->rowid] = trim(dolGetFirstLastname($obj->firstname,$obj->lastname))."(".$obj->poste.")"." &lt;".$property."&gt;";
}
else
{
$contact_property[$obj->rowid] = trim(dolGetFirstLastname($obj->firstname,$obj->lastname))." &lt;".$property."&gt;";
}
}
$i++; $i++;
} }
} }

View File

@ -1880,12 +1880,6 @@ div.tabBar .noborder {
border: 1px solid #AAA; border: 1px solid #AAA;
text-align: center; text-align: center;
border-radius: 5px; border-radius: 5px;
background-image: linear-gradient(bottom, rgba(255,255,255,.3) 0%, rgba(164,164,164,.3) 100%);
background-image: -o-linear-gradient(bottom, rgba(255,255,255,.3) 0%, rgba(164,164,164,.3) 100%);
background-image: -moz-linear-gradient(bottom, rgba(255,255,255,.3) 0%, rgba(164,164,164,.3) 100%);
background-image: -webkit-linear-gradient(bottom, rgba(255,255,255,.3) 0%, rgba(164,164,164,.3) 100%);
background-image: -ms-linear-gradient(bottom, rgba(255,255,255,.3) 0%, rgba(164,164,164,.3) 100%);
background-image: -webkit-gradient( linear, left bottom, left top, color-stop(0, rgba(255,255,255,.3)), color-stop(1, rgba(164,164,164,.3)) );
} }
.boxtable { .boxtable {