2
0
forked from Wavyzz/dolibarr

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
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: Mailing module : if an email is already in destinaires list all other email from selector was not inserted
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.* *****
For users:

View File

@@ -11,7 +11,7 @@
if [ "x$1" = "x" ]
then
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 "Usage: txpull.sh (all|xx_XX) [-r dolibarr.file] [-f]"
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,
'%DAY%'=>$day,
'%DOL_MAIN_URL_ROOT%'=>DOL_MAIN_URL_ROOT,
'%SERVER%'=>"http://".$_SERVER["SERVER_NAME"]."/",
'%SOCIETE%'=>$objp->company
'%SERVER%'=>"http://".$_SERVER["SERVER_NAME"]."/"
);
complete_substitutions_array($substitutionarray, $langs);
@@ -204,7 +203,7 @@ if ((! empty($foruserid) || ! empty($foruserlogin) || ! empty($mode)) && ! $mesg
dol_print_error($db);
}
if (! $mesg)
if (! $mesg)
{
$db->close();
exit;

View File

@@ -35,6 +35,8 @@ if (!$user->admin) accessforbidden();
$action = GETPOST('action','alpha');
$value = GETPOST('value','alpha');
$scandir = GETPOST('scandir','alpha');
$type='contrat';
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
{
$modele= GETPOST('module','alpha');
@@ -155,10 +152,10 @@ else if ($action == 'setmod')
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');
$res = dolibarr_set_const($db, "CONTRAT_FREE_TEXT",$freetext,'chaine',0,'',$conf->entity);
$freetext= GETPOST('CONTRACT_FREE_TEXT','alpha');
$res = dolibarr_set_const($db, "CONTRACT_FREE_TEXT",$freetext,'chaine',0,'',$conf->entity);
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++;
@@ -492,10 +489,10 @@ $var=true;
$var=! $var;
print '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
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 $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 '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
print "</td></tr>\n";
@@ -505,10 +502,10 @@ print '</form>';
$var=!$var;
print "<form method=\"post\" action=\"".$_SERVER["PHP_SELF"]."\">";
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 $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 '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
print "</td></tr>\n";

View File

@@ -5,6 +5,8 @@
* Copyright (C) 2006-2012 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2006-2012 Laurent Destailleur <eldy@users.sourceforge.net>
* 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
* 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.= " FROM ".MAIN_DB_PREFIX."categorie";
$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);
$resql = $this->db->query($sql);
if ($resql)

View File

@@ -1,5 +1,6 @@
<?php
/* 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
* 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"',
'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"',
'text' => ($objp->ref?$objp->ref:$objp->rowid), // Some contracts have no ref
'url' => DOL_URL_ROOT."/contrat/fiche.php?id=".$objp->rowid);
'text' => ($objp->ref?$objp->ref:$objp->rowid), // Some interventions have no ref
'url' => DOL_URL_ROOT."/fichinter/fiche.php?id=".$objp->rowid);
$this->info_box_contents[$i][2] = array('td' => 'align="left" width="16"',
'logo' => 'company',
@@ -120,9 +121,10 @@ class box_ficheinter extends ModeleBoxes
$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);
}
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.'/comm/propal/class/propal.class.php';
include_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php';
$facturestatic=new Facture($db);
$text = $langs->trans("BoxProductDistribution",$max);
$this->info_box_head = array(
@@ -90,15 +89,18 @@ class box_graph_product_distribution extends ModeleBoxes
$showinvoicenb=GETPOST($param_showinvoicenb,'alpha',4);
$showpropalnb=GETPOST($param_showpropalnb,'alpha',4);
$showordernb=GETPOST($param_showordernb,'alpha',4);
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);
$year=(GETPOST($param_year,'',4)?GETPOST($param_year,'int',4):$nowarray['year']);
$nbofgraph=0;
if ($showinvoicenb) $nbofgraph++;
if ($showpropalnb) $nbofgraph++;
if ($showordernb) $nbofgraph++;
$nbofgraph=0;
if ($showinvoicenb) $nbofgraph++;
if ($showpropalnb) $nbofgraph++;
if ($showordernb) $nbofgraph++;
$paramtitle=$langs->trans("Products").'/'.$langs->trans("Services");
if (empty($conf->produit->enabled)) $paramtitle=$langs->trans("Services");
@@ -107,7 +109,7 @@ class box_graph_product_distribution extends ModeleBoxes
$socid=empty($user->societe_id)?0:$user->societe_id;
$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';
@@ -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),...)
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),...)
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.='<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="checkbox" name="'.$param_showinvoicenb.'"'.($showinvoicenb?' checked="true"':'').'> '.$langs->trans("ForCustomersInvoices");
$stringtoshow.=' &nbsp; ';
$stringtoshow.='<input type="checkbox" name="'.$param_showpropalnb.'"'.($showpropalnb?' checked="true"':'').'> '.$langs->trans("ForProposals");
$stringtoshow.='&nbsp;';
$stringtoshow.='<input type="checkbox" name="'.$param_showordernb.'"'.($showordernb?' checked="true"':'').'> '.$langs->trans("ForCustomersOrders");
if (! empty($conf->facture->enabled) || ! empty($user->rights->facture->lire))
{
$stringtoshow.='<input type="checkbox" name="'.$param_showinvoicenb.'"'.($showinvoicenb?' checked="true"':'').'> '.$langs->trans("ForCustomersInvoices");
$stringtoshow.=' &nbsp; ';
}
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.=$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).'">';
@@ -322,18 +333,18 @@ class box_graph_product_distribution extends ModeleBoxes
$stringtoshow.='<div class="fichecenter"><div class="containercenter"><div class="fichehalfleft">';
if ($showinvoicenb) $stringtoshow.=$px1->show();
else if ($showpropalnb) $stringtoshow.=$px2->show();
$stringtoshow.='</div><div class="fichehalfright">';
$stringtoshow.='</div><div class="fichehalfright">';
if ($showordernb) $stringtoshow.=$px3->show();
else if ($showpropalnb) $stringtoshow.=$px2->show();
$stringtoshow.='</div></div></div>';
$stringtoshow.='</div></div></div>';
}
if ($nbofgraph == 3)
if ($nbofgraph == 3)
{
$stringtoshow.='<div class="fichecenter"><div class="containercenter"><div class="fichehalfleft">';
$stringtoshow.=$px1->show();
$stringtoshow.='</div><div class="fichehalfright">';
$stringtoshow.=$px2->show();
$stringtoshow.='</div></div></div>';
$stringtoshow.='<div class="fichecenter"><div class="containercenter"><div class="fichehalfleft">';
$stringtoshow.=$px1->show();
$stringtoshow.='</div><div class="fichehalfright">';
$stringtoshow.=$px2->show();
$stringtoshow.='</div></div></div>';
$stringtoshow.='<div class="fichecenter"><div class="containercenter">';
$stringtoshow.=$px3->show();
$stringtoshow.='</div></div>';

View File

@@ -71,7 +71,7 @@ class DolGraph
var $showlegend=1;
var $showpointvalue=1;
var $showpercent=0;
var $graph; // Objet Graph (Artichow, Phplot...)
var $error;
@@ -244,17 +244,17 @@ class DolGraph
$this->data = $data;
}
/**
* Set data
*
* @param array $datacolor Data color array(array(R,G,B),array(R,G,B)...)
* @return void
*/
function SetDataColor($datacolor)
{
$this->datacolor = $datacolor;
/**
* Set data
*
* @param array $datacolor Data color array(array(R,G,B),array(R,G,B)...)
* @return void
*/
function SetDataColor($datacolor)
{
$this->datacolor = $datacolor;
}
/**
* Set type
*
@@ -395,7 +395,7 @@ class DolGraph
/**
* Show legend or not
*
*
* @param int $showlegend 1=Show legend (default), 0=Hide legend
* @return void
*/
@@ -406,7 +406,7 @@ class DolGraph
/**
* Show pointvalue or not
*
*
* @param int $showpointvalue 1=Show value for each point, as tooltip or inline (default), 0=Hide value
* @return void
*/
@@ -414,10 +414,10 @@ class DolGraph
{
$this->showpointvalue=$showpointvalue;
}
/**
* Show percent or not
*
*
* @param int $showpercent 1=Show percent for each point, as tooltip or inline, 0=Hide percent (default)
* @return void
*/
@@ -425,9 +425,9 @@ class DolGraph
{
$this->showpercent=$showpercent;
}
/**
* Define background color of complete image
*
@@ -590,12 +590,18 @@ class DolGraph
/**
* 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
* @return void
*/
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)
{
$this->error="Call to draw method was made but SetData was not called or called with an empty dataset for parameters";
@@ -796,8 +802,8 @@ class DolGraph
* $this->mode = 'depth' ???
* $this->bgcolorgrid
* $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
* @return void
*/
@@ -807,6 +813,12 @@ class DolGraph
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();
$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');
@@ -823,7 +835,7 @@ class DolGraph
// Fill array $values
$x=0;
foreach($this->data as $valarray) // Loop on each x
foreach($this->data as $valarray) // Loop on each x
{
$legends[$x] = $valarray[0];
$values[$x] = (is_numeric($valarray[$i+1]) ? $valarray[$i+1] : null);
@@ -839,12 +851,12 @@ class DolGraph
{
foreach($values as $x => $y) { if (isset($y)) $serie[$i].='d'.$i.'.push(['.$x.', '.$y.']);'."\n"; }
}
unset($values);
$i++;
}
$tag=dol_escape_htmltag(dol_string_unaccent(dol_string_nospecial(basename($file),'_',array('-','.'))));
$this->_stringtoshow ='<!-- Build using '.$this->_library.' -->'."\n";
if (! empty($this->title)) $this->_stringtoshow.='<div align="center" class="dolgraphtitle'.(empty($this->cssprefix)?'':' dolgraphtitle'.$this->cssprefix).'">'.$this->title.'</div>';
$this->_stringtoshow.='<div id="placeholder_'.$tag.'" style="width:'.$this->width.'px;height:'.$this->height.'px;" class="dolgraph'.(empty($this->cssprefix)?'':' dolgraph'.$this->cssprefix).'"></div>'."\n";
@@ -868,7 +880,7 @@ class DolGraph
$showlegend=$this->showlegend;
$showpointvalue=$this->showpointvalue;
$showpercent=$this->showpercent;
$this->_stringtoshow.= '
function plotWithOptions_'.$tag.'() {
$.plot($("#placeholder_'.$tag.'"), d0,
@@ -933,16 +945,16 @@ class DolGraph
opacity: 0.80
}).appendTo("body").fadeIn(20);
}
var previousPoint = null;
$("#placeholder_'.$tag.'").bind("plothover", function (event, pos, item) {
$("#x").text(pos.x.toFixed(2));
$("#y").text(pos.y.toFixed(2));
if (item) {
if (previousPoint != item.dataIndex) {
previousPoint = item.dataIndex;
$("#tooltip").remove();
/* console.log(item); */
var x = item.datapoint[0].toFixed(2);
@@ -962,9 +974,9 @@ class DolGraph
}
});
';
$this->_stringtoshow.='var stack = null, steps = false;'."\n";
$this->_stringtoshow.='function plotWithOptions_'.$tag.'() {'."\n";
$this->_stringtoshow.='$.plot($("#placeholder_'.$tag.'"), [ '."\n";
$i=$firstlot;
@@ -979,7 +991,7 @@ class DolGraph
$i++;
}
$this->_stringtoshow.="\n".' ], { series: { stack: stack, lines: { fill: false, steps: steps }, bars: { barWidth: 0.6 } }'."\n";
// Xaxis
$this->_stringtoshow.=', xaxis: { ticks: ['."\n";
$x=0;
@@ -990,10 +1002,10 @@ class DolGraph
$x++;
}
$this->_stringtoshow.='] }'."\n";
// Yaxis
$this->_stringtoshow.=', yaxis: { min: '.$this->MinValue.', max: '.($this->MaxValue).' }'."\n";
// Background color
$color1=sprintf("%02x%02x%02x",$this->bgcolorgrid[0],$this->bgcolorgrid[0],$this->bgcolorgrid[2]);
$color2=sprintf("%02x%02x%02x",$this->bgcolorgrid[0],$this->bgcolorgrid[1],$this->bgcolorgrid[2]);
@@ -1001,7 +1013,7 @@ class DolGraph
//$this->_stringtoshow.=', shadowSize: 20'."\n"; TODO Uncommet this
$this->_stringtoshow.='});'."\n";
$this->_stringtoshow.='}'."\n";
}
$this->_stringtoshow.='plotWithOptions_'.$tag.'();'."\n";

View File

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

View File

@@ -345,9 +345,9 @@ class Form
*
* @param string $text Text to show
* @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 $direction -1=Le picto est avant, 0=pas de picto, 1=le picto est apres
* @param string $img Code img du picto (use img_xxx() function to get it)
* @param int $tooltipon 1=tooltip on text, 2=tooltip on image, 3=tooltip sur les 2
* @param int $direction -1=image is before, 0=no image, 1=image is after
* @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 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

View File

@@ -1031,7 +1031,23 @@ function pdf_getlinedesc($object,$i,$outputlangs,$hideref=0,$hidedesc=0,$issuppl
$libelleproduitservice=$prefix_prodserv.$ref_prodserv.$libelleproduitservice;
}
}
// 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))
{
$format='day';

View File

@@ -433,9 +433,9 @@ class pdf_strato extends ModelePDFContract
pdf_pagehead($pdf,$outputlangs,$this->page_hauteur);
//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
@@ -601,7 +601,7 @@ class pdf_strato extends ModelePDFContract
*/
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
* \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';
@@ -105,7 +105,7 @@ class ModelNumRefContracts
/**
* 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()
{

View File

@@ -122,10 +122,10 @@ class pdf_standard
* @param Translate $outputlangs Output langs
* @param string $textright Text right
* @param int $idmember Id member
* @param string $photomember Photo member
* @param string $photo Photo member
* @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;
@@ -154,9 +154,9 @@ class pdf_standard
// Define photo
$dir=$conf->adherent->dir_output;
$file=get_exdir($idmember,2).'photos/'.$photomember;
$file=get_exdir($idmember,2).'photos/'.$photo;
$photo=$dir.'/'.$file;
if (empty($photomember) || ! is_readable($photo)) $photo='';
if (empty($photo) || ! is_readable($photo)) $photo='';
// Define background image
$backgroundimage='';
@@ -408,12 +408,13 @@ class pdf_standard
/**
* 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 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
*/
function write_file($arrayofmembers,$outputlangs,$srctemplatepath)
function write_file($arrayofrecords,$outputlangs,$srctemplatepath,$mode='member')
{
global $user,$conf,$langs,$mysoc,$_Avery_Labels;
@@ -433,9 +434,20 @@ class pdf_standard
$outputlangs->load("members");
$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);
$filename='tmp_cards.pdf';
$dir = $outputdir;
$filename = 'tmp_cards.pdf';
$file = $dir."/".$filename;
if (! file_exists($dir))
@@ -456,11 +468,11 @@ class pdf_standard
}
$pdf->SetFont(pdf_getPDFFont($outputlangs));
$pdf->SetTitle($outputlangs->transnoentities('MembersCards'));
$pdf->SetSubject($outputlangs->transnoentities("MembersCards"));
$pdf->SetTitle($title);
$pdf->SetSubject($title);
$pdf->SetCreator("Dolibarr ".DOL_VERSION);
$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);
$pdf->SetMargins(0,0);
@@ -482,7 +494,7 @@ class pdf_standard
// Add each record
foreach($arrayofmembers as $val)
foreach($arrayofrecords as $val)
{
// 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']);
@@ -499,7 +511,6 @@ class pdf_standard
@chmod($file, octdec($conf->global->MAIN_UMASK));
// Output to http stream
clearstatcache();

View File

@@ -175,9 +175,9 @@ class modAdherent extends DolibarrModules
$this->export_code[$r]=$this->rights_class.'_'.$r;
$this->export_label[$r]='MembersAndSubscriptions';
$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_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_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_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",'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",'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
$sql="SELECT name, label FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'adherent' AND entity = ".$conf->entity;
$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] .=' 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.'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_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_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_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
$sql="SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'adherent' AND entity = ".$conf->entity;
$resql=$this->db->query($sql);

View File

@@ -320,8 +320,8 @@ class modSociete extends DolibarrModules
$this->export_label[$r]='ExportDataset_company_2';
$this->export_icon[$r]='contact';
$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_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_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.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
if (empty($conf->fournisseur->enabled))
{
@@ -365,6 +365,7 @@ class modSociete extends DolibarrModules
$this->export_sql_start[$r]='SELECT DISTINCT ';
$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.'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.'socpeople_extrafields as extra ON extra.fk_object = c.rowid';
$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_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_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
$sql="SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'societe' AND entity = ".$conf->entity;
$resql=$this->db->query($sql);

View File

@@ -1521,13 +1521,11 @@ else
/*
* List of payments
*/
$nbrows=7; $nbcols=2;
$nbrows=9; $nbcols=2;
if (! empty($conf->projet->enabled)) $nbrows++;
if (! empty($conf->banque->enabled)) $nbcols++;
// 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->localtax1_assuj=="1") $nbrows++;
@@ -1683,8 +1681,21 @@ else
$alreadypaid=$object->getSommePaiement();
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('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('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,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
//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
{
print '<tr><td>'.$langs->transcountry("AmountLT1",$societe->country_code).'</td>';
print '<td align="right">'.price($object->total_localtax1).'</td>';
print '<td>'.$langs->trans("Currency".$conf->currency).'</td></tr>';
print '<td align="right">'.price($object->total_localtax1,1,$langs,0,-1,-1,$conf->currency).'</td>';
print '<td colspan="2">&nbsp;</td></tr>';
}
if ($societe->localtax2_assuj=="1") //Localtax2 IRPF
{
print '<tr><td>'.$langs->transcountry("AmountLT2",$societe->country_code).'</td>';
print '<td align="right">'.price($object->total_localtax2).'</td>';
print '<td>'.$langs->trans("Currency".$conf->currency).'</td></tr>';
print '<td align="right">'.price($object->total_localtax2,1,$langs,0,-1,-1,$conf->currency).'</td>';
print '<td colspan="2">&nbsp;</td></tr>';
}
}
else
@@ -1708,17 +1719,17 @@ else
if ($societe->localtax1_assuj=="1") //Localtax1 RE
{
print '<tr><td>'.$langs->transcountry("AmountLT1",$societe->country_code).'</td>';
print '<td align="right">'.price($object->total_localtax1).'</td>';
print '<td>'.$langs->trans("Currency".$conf->currency).'</td></tr>';
print '<td align="right">'.price($object->total_localtax1,1,$langs,0,-1,-1,$conf->currency).'</td>';
print '<td colspan="2">&nbsp;</td></tr>';
}
if ($societe->localtax2_assuj=="1") //Localtax2 IRPF
{
print '<tr><td>'.$langs->transcountry("AmountLT2",$societe->country_code).'</td>';
print '<td align="right">'.price($object->total_localtax2).'</td>';
print '<td>'.$langs->trans("Currency".$conf->currency).'</td></tr>';
print '<td align="right">'.price($object->total_localtax2,1,$langs,0,-1,-1,$conf->currency).'</td>';
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
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)
{
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)
{
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>';
}
//Validate
// Validate
if ($action != 'edit' && $object->statut == 0)
{
if (count($object->lines))
@@ -2165,13 +2176,13 @@ else
}
}
//Clone
// Clone
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>';
}
//Delete
// Delete
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>';

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
IdAgenda=ID esdeveniment
Actions=Esdeveniments

View File

@@ -75,6 +75,7 @@ NoRecordedProducts=Sense productes/serveis registrats
NoRecordedProspects=Sense clients potencials registrats
NoContractedProducts=Sense productes/serveis contractats
NoRecordedContracts=Sense contractes registrats
NoRecordedInterventions=Sense intervencions registrades
BoxLatestSupplierOrders=Últimes comandes a proveïdors
BoxTitleLatestSupplierOrders=Les %s últimes 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ó
ProductBuilded=Producció completada
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
CurrentTimeZone=Aktuelle Zeitzone des PHP-Servers
Space=Raum
# Table=Table
Table=Tabelle
Fields=Felder
# Index=Index
Mask=Maske
@@ -176,7 +176,7 @@ FullPathToPostgreSQLdumpCommand=Vollständiger Pfad zum pg_dump-Befehl
ExportOptions=Exportoptionen
AddDropDatabase=DROP DATABASE Befehl hinzufügen
AddDropTable=DROP TABLE Befehl hinzufügen
# ExportStructure=Structure
ExportStructure=Struktur
Datas=Daten
NameColumn=Name der Spalten
ExtendedInsert=Erweiterte INSERTS
@@ -271,7 +271,7 @@ ModuleFamilyFinancial=Finanzmodule (Rechnungswesen/Finanzen)
ModuleFamilyECM=Inhaltsverwaltung (ECM)
MenuHandlers=Menü-Handler
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:
StepNb=Schritt %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>
# 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.
# YouCanSubmitFile=Select module:
YouCanSubmitFile=Modul wählen:
CurrentVersion=Aktuelle dolibarr-Version
CallUpdatePage=Zur Aktualisierung der Daten und Datenbankstrukturen gehen Sie zur Seite %s.
LastStableVersion=Letzte stabile Version
@@ -358,7 +358,7 @@ String=Zeichenkette
# Boolean=Boolean (Checkbox)
ExtrafieldPhone = Telefon
ExtrafieldPrice = Preis
# ExtrafieldMail = Email
ExtrafieldMail = E-Mail
# ExtrafieldSelect = Select list
# ExtrafieldSelectList = Select from table
# ExtrafieldSeparator=Separator
@@ -371,7 +371,7 @@ ExtrafieldPrice = Preis
# LibraryToBuildPDF=Library used to build PDF
# WarningUsingFPDF=Warning: Your <b>conf.php</b> contains directive <b>dolibarr_pdf_force_fpdf=1</b>. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.<br>To solve this and have a full support of PDF generation, please download <a href="http://www.tcpdf.org/" target="_blank">TCPDF library</a>, then comment or remove the line <b>$dolibarr_pdf_force_fpdf=1</b>, and add instead <b>$dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir'</b>
# LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:<br>1 : local tax apply on products and services without vat (vat is not applied on local tax)<br>2 : local tax apply on products and services before vat (vat is calculated on amount + localtax)<br>3 : local tax apply on products without vat (vat is not applied on local tax)<br>4 : local tax apply on products before vat (vat is calculated on amount + localtax)<br>5 : local tax apply on services without vat (vat is not applied on local tax)<br>6 : local tax apply on services before vat (vat is calculated on amount + localtax)
# 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>
# RefreshPhoneLink=Refresh link
# LinkToTest=Clickable link generated for user <strong>%s</strong> (click phone number to test)
@@ -487,7 +487,7 @@ Module2900Name= GeoIPMaxmind
Module2900Desc= GeoIP Maxmind Konvertierung
Module5000Name=Mandantenfähigkeit
Module5000Desc=Ermöglicht Ihnen die Verwaltung mehrerer Firmen
# Module20000Name=Holidays
Module20000Name=Ferien
# Module20000Desc=Declare and follow employees holidays
Module50000Name=PayBox
Module50000Desc=Über dieses Modul können Sie online Kreditkartenzahlungen entgegennehmen
@@ -793,7 +793,7 @@ PhpConf=Config
PhpWebLink=PHP Web-Link
Pear=Pear
PearPackages=Pear Packages
# Browser=Browser
Browser=Browser
Server=Server
Database=Datenbank
DatabaseServer=Datenbankserver

View File

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

View File

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

View File

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

View File

@@ -12,11 +12,11 @@ CHARSET=UTF-8
# DescADHERENT_MAILMAN_URL=URL for Mailman subscriptions
# DescADHERENT_MAILMAN_UNSUB_URL=URL for Mailman unsubscriptions
# DescADHERENT_MAILMAN_LISTS=List(s) for automatic inscription of new members (separated by a comma)
# SPIPTitle=SPIP Content Management System
# DescADHERENT_SPIP_SERVEUR=SPIP Server
# DescADHERENT_SPIP_DB=SPIP database name
# DescADHERENT_SPIP_USER=SPIP database login
# DescADHERENT_SPIP_PASS=SPIP database password
SPIPTitle=SPIP Content Management System
DescADHERENT_SPIP_SERVEUR=SPIP-Server
DescADHERENT_SPIP_DB=SPIP-Datenbankname
DescADHERENT_SPIP_USER=SPIP-Datenbankkennung
DescADHERENT_SPIP_PASS=SPIP-Datenbankpasswort
# AddIntoSpip=Add into SPIP
# AddIntoSpipConfirmation=Are you sure you want to add this member into 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)
# stsongstdlight or cid0cs are for simplified chinese
# To read chinese pdf with linux: sudo apt-get install poppler-data
FONTFORPDF=helvetica
FONTSIZEFORPDF=10
# FONTFORPDF=helvetica
# FONTSIZEFORPDF=10
SeparatorDecimal=,
SeparatorThousand=.
FormatDateShort=%d/%m/%Y

View File

@@ -7,11 +7,11 @@ CHARSET=UTF-8
# NoSurveysInDatabase=%s survey(s) into database.
# OpenSurveyArea=Surveys area
# AddACommentForPoll=You can add a comment into survey...
# AddComment=Add comment
AddComment=Kommentar hinzufügen
# CreatePoll=Create poll
# PollTitle=Poll title
# OpenSurveyYourName=Your name
# OpenSurveyYourEMail=Your email address
OpenSurveyYourName=Ihr Name
OpenSurveyYourEMail=Ihre E-Mail-Adresse
# VotersCanModify=Voters can modify vote of others
# ToReceiveEMailForEachVote=To receive an email for each vote
# TypeDate=Type date
@@ -19,7 +19,7 @@ CHARSET=UTF-8
# YouAreInPollCreateArea=You are in the poll creation section
# FieldMandatory=Field mandatory
# 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
# RemoveAllDays=Remove all days
# CopyHoursOfFirstDay=Copy hours of first day
@@ -27,7 +27,7 @@ CHARSET=UTF-8
# SelectedDays=Selected days
# TheBestChoice=The best choice currently is
# 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.
# InitiatorOfPoll=Initiator of the poll
# CommentsOfVoters=Comments of voters

View File

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

View File

@@ -1,6 +1,6 @@
# Dolibarr language file - Source file is en_US - admin
CHARSET=UTF-8
Foundation=Ίδρυμα
Foundation=Οργανισμός
Version=Έκδοση
VersionProgram=Έκδοση Προγράμματος
VersionLastInstall=Έκδοση Τελευταίας Εγκατάστασης
@@ -8,7 +8,7 @@ VersionLastUpgrade=Έκδοση Τελευταίας Ενημέρωσης
VersionExperimental=Πειραματική
VersionDevelopment=Υπό ανάπτυξη
VersionUnknown=Άγνωστη
VersionRecommanded=Προτινώμενη
VersionRecommanded=Προτεινόμενη
SessionId=ID Συνόδου
SessionSaveHandler=Φορέα εξυπηρέτησης για να σώσει συνεδρίες
SessionSavePath=Αποθήκευση τοπικής προσαρμογής συνεδρίας
@@ -18,7 +18,7 @@ NoSessionListWithThisHandler=Save session handler configured in your PHP does no
LockNewSessions=Κλειδώσετε τις νέες συνδέσεις
ConfirmLockNewSessions=Είστε σίγουροι ότι θέλετε να περιορίσει κάθε νέα σύνδεση Dolibarr για τον εαυτό σας. Μόνο ο χρήστης <b>%s</b> θα είναι σε θέση να συνδεθεί μετά από αυτό.
UnlockNewSessions=Κατάργηση κλειδώματος σύνδεσης
YourSession=Η σύνοδός σας
YourSession=Η σύνοδος σας
Sessions=Σύνοδοι χρηστών
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).

View File

@@ -75,6 +75,7 @@ NoRecordedProducts=No recorded products/services
NoRecordedProspects=No recorded prospects
NoContractedProducts=No products/services contracted
NoRecordedContracts=No recorded contracts
NoRecordedInterventions=No recorded interventions
BoxLatestSupplierOrders=Latest supplier orders
BoxTitleLatestSupplierOrders=%s latest supplier orders
NoSupplierOrder=No recorded supplier order
@@ -88,4 +89,4 @@ BoxProductDistribution=Products/Services distribution
BoxProductDistributionFor=Distribution of %s for %s
ForCustomersInvoices=Customers invoices
ForCustomersOrders=Customers orders
ForProposals=Proposals
ForProposals=Proposals

View File

@@ -157,4 +157,9 @@ ByProductsAndServices=By products and services
RefExt=External ref
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
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
ProductBuilded=Production completed
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
IdAgenda=ID evento
Actions=Eventos

View File

@@ -75,6 +75,7 @@ NoRecordedProducts=Sin productos/servicios registrados
NoRecordedProspects=Sin clientes potenciales registrados
NoContractedProducts=Sin productos/servicios contratados
NoRecordedContracts=Sin contratos registrados
NoRecordedInterventions=Sin intervenciones registradas
BoxLatestSupplierOrders=Últimos pedidos a proveedores
BoxTitleLatestSupplierOrders=Los %s últimos 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
Category=Categoría
Categories=Categorías
@@ -102,4 +102,7 @@ CatSupLinks=Proveedores
CatCusLinks=Clientes/Clientes potenciales
CatProdLinks=Productos
CatMemberLinks=Miembros
CatProdLinks=Productos
CatCusLinks=Clientes/Clientes potenciales
CatSupLinks=Proveedores
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
ContractsArea=Área contratos
ListOfContracts=Listado de contratos
@@ -54,6 +54,7 @@ ListOfRunningContractsLines=Listado de líneas de contratos en servicio
ListOfRunningServices=Listado de servicios activos
NotActivatedServices=Servicios no activados (con los contratos validados)
BoardNotActivatedServices=Servicios a activar con los contratos validados
LastContracts=Los % últimos contratos
LastActivatedServices=Los %s últimos servicios activados
LastModifiedServices=Los %s últimos servicios modificados
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
ListOfServicesToExpire=Listado de servicios activos a expirar
NoteListOfYourExpiredServices=Este listado contiene solamente los servicios de contratos de terceros de los que usted es comercial
##### Types de contacts #####
TypeContact_contrat_internal_SALESREPSIGN=Comercial firmante 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
# No errors
NoErrorCommitIsDone=Sin errores, es válido
# Errors
Error=Error
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
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.
ErrorPHPNeedModule=Error, su PHP debe tener instalado el módulo<b>%s</b> para utilizar esta característica.
# Warnings
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>.

View File

@@ -80,6 +80,7 @@ MailtoEMail=mailto email (hyperlink)
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
EMailSentToNRecipients=E-Mail enviado a %s destinatarios.
# Libelle des modules de liste de destinataires mailing
MailingModuleDescContactCompanies=Contactos de terceros (clientes potenciales, clientes, proveedores...)
MailingModuleDescDolibarrUsers=Usuarios de Dolibarr
@@ -92,6 +93,8 @@ MailingModuleDescContactsByCompanyCategory=Contactos de terceros (por categoría
MailingModuleDescContactsByCategory=Contactos/direcciones de terceros por categoría
MailingModuleDescMembersCategories=Miembros (por categoría)
MailingModuleDescContactsByFunction=Contactos de terceros (por puesto/función)
LineInFile=Línea %s en archivo
RecipientSelectionModules=Módulos de selección de los destinatarios
MailSelectedRecipients=Destinatarios seleccionados
@@ -119,6 +122,7 @@ TagCheckMail=Seguimiento de la apertura del email
TagUnsubscribe=Link de desuscripción
TagSignature=Firma del usuario remitente
TagMailtoEmail=Email del destinatario
# Module Notifications
Notifications=Notificaciones
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
ProductBuilded=Producción completada
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
ProjectsAndTasksLines=Proyectos y tareas
ProjectCreatedInDolibarr=Proyecto %s creado
SelectElement=Elementos vinculables al proyecto:
AddElement=Vincular
##### Types de contacts #####
TypeContact_project_internal_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
# Documents models
DocumentModelBaleine=Modelo de informe de proyecto completo (logo...)
PlannedWorkload=Carga de trabajo prevista
WorkloadOccupation=Porcentaje afectado
PlannedWorkload = Carga de trabajo prevista
WorkloadOccupation= Porcentaje afectado
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)
ShipmentLine=Línea de expedición
CarrierList=Listado de transportistas
# Sending methods
SendingMethodCATCH=Recogido por el cliente
SendingMethodTRANS=Transportista
SendingMethodCOLSUI=Colissimo
# ModelDocument
DocumentModelSirocco=Modelo simple de nota de entrega / recepción
DocumentModelTyphon=Modelo completo de nota de entrega / recepción (logo...)
Error_EXPEDITION_ADDON_NUMBER_NotDefined=Constante EXPEDITION_ADDON_NUMBER no definida
SumOfProductVolumes=Suma del volumen 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
CHARSET = UTF-8
Suppliers = Proveedores
Supplier = Proveedor
AddSupplier = Añadir proveedor
SupplierRemoved = Proveedor eliminado
SuppliersInvoice = Factura proveedor
NewSupplier = Nuevo proveedor
History = Histórico
ListOfSuppliers = Listado de proveedores
ShowSupplier = Mostrar proveedor
OrderDate = Fecha de pedido
BuyingPrice = Precio de compra
BuyingPriceMin = Precio mínimo de compra
BuyingPriceMinShort = Precio mín. compra
AddSupplierPrice = Añadir precio de proveedor
ChangeSupplierPrice = Modificar precio de proveedor
ErrorQtyTooLowForThisSupplier = Cantidad insuficiente para este proveedor
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
ReferenceSupplierIsAlreadyAssociatedWithAProduct = Esta referencia de proveedor ya está asociada a la referencia: %s
NoRecordedSuppliers = Sin proveedores registrados
SupplierPayment = Pago a proveedor
SuppliersArea = Área proveedores
RefSupplierShort = Ref. proveedor
Availability = Disponibilidad
ExportDataset_fournisseur_1 = Facturas de proveedores y líneas de factura
ExportDataset_fournisseur_2 = Facturas proveedores y pagos
ExportDataset_fournisseur_3 = Pedidos de proveedores y líneas de pedido
ApproveThisOrder = Aprobar este pedido
ConfirmApproveThisOrder = ¿Está seguro de querer aprobar el pedido a proveedor <b>%s</b>?
DenyingThisOrder = Denegar este pedido
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>?
AddCustomerOrder = Crear pedido de cliente
AddCustomerInvoice = Crear factura a cliente
AddSupplierOrder = Crear pedido a proveedor
AddSupplierInvoice = Crear factura de proveedor
ListOfSupplierProductForSupplier = Listado de productos y precios del proveedor <b>%s</b>
NoneOrBatchFileNeverRan = Ninguno o lote <b>%s</b> no se ha ejecutado recientemente
SentToSuppliers = Enviado a proveedores
# Dolibarr language file - Source file is en_US - suppliers
CHARSET=UTF-8
Suppliers=Proveedores
Supplier=Proveedor
AddSupplier=Añadir proveedor
SupplierRemoved=Proveedor eliminado
SuppliersInvoice=Factura proveedor
NewSupplier=Nuevo proveedor
History=Histórico
ListOfSuppliers=Listado de proveedores
ShowSupplier=Mostrar proveedor
OrderDate=Fecha de pedido
BuyingPrice=Precio de compra
BuyingPriceMin=Precio mínimo de compra
BuyingPriceMinShort=Precio mín. compra
AddSupplierPrice=Añadir precio de proveedor
ChangeSupplierPrice=Modificar precio de proveedor
ErrorQtyTooLowForThisSupplier=Cantidad insuficiente para este proveedor
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
ReferenceSupplierIsAlreadyAssociatedWithAProduct=Esta referencia de proveedor ya está asociada a la referencia: %s
NoRecordedSuppliers=Sin proveedores registrados
SupplierPayment=Pago a proveedor
SuppliersArea=Área proveedores
RefSupplierShort=Ref. proveedor
Availability=Disponibilidad
ExportDataset_fournisseur_1=Facturas de proveedores y líneas de factura
ExportDataset_fournisseur_2=Facturas proveedores y pagos
ExportDataset_fournisseur_3=Pedidos de proveedores y líneas de pedido
ApproveThisOrder=Aprobar este pedido
ConfirmApproveThisOrder=¿Está seguro de querer aprobar el pedido a proveedor <b>%s</b>?
DenyingThisOrder=Denegar este pedido
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>?
AddCustomerOrder=Crear pedido de cliente
AddCustomerInvoice=Crear factura a cliente
AddSupplierOrder=Crear pedido a proveedor
AddSupplierInvoice=Crear factura de proveedor
ListOfSupplierProductForSupplier=Listado de productos y precios del proveedor <b>%s</b>
NoneOrBatchFileNeverRan=Ninguno o lote <b>%s</b> no se ha ejecutado recientemente
SentToSuppliers=Enviado a proveedores

View File

@@ -1,18 +1,18 @@
# Dolibarr language file - Source file is en_US - admin
CHARSET=UTF-8
# Foundation=Foundation
Foundation=Sihtasutus
Version=Versioon
VersionProgram=Version programm
VersionLastInstall=Version esialgne install
VersionLastUpgrade=Version viimane upgrade
VersionProgram=Programmi versioon
VersionLastInstall=Praeguse paigalduse versioon
VersionLastUpgrade=Viimase uuenduse versioon
VersionExperimental=Eksperimentaalne
VersionDevelopment=Areng
VersionDevelopment=Arendusversioon
VersionUnknown=Tundmatu
VersionRecommanded=Soovitatav
SessionId=Session ID
SessionSaveHandler=Handler päästa istungid
SessionSavePath=Storage istungil lokaliseerimine
PurgeSessions=Purge istungid
SessionId=Sessioni ID
SessionSaveHandler=Sessioonide haldus
SessionSavePath=Salvestuse sesiooni lokaliseerimine
PurgeSessions=Tühjenda sesioonid
# 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.
LockNewSessions=Lukustada uusi ühendusi

View File

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

View File

@@ -75,6 +75,7 @@ NoRecordedProducts=Pas de produit/service enregistré
NoRecordedProspects=Pas de prospect enregistré
NoContractedProducts=Pas de produit/service contracté
NoRecordedContracts=Pas de contrat enregistré
NoRecordedInterventions=Pas fiche d'intervention enregistrée
BoxLatestSupplierOrders=Dernières commandes fournisseur
BoxTitleLatestSupplierOrders=Les %s dernières commandes fournisseur enregistrées
NoSupplierOrder=Pas de commande fournisseur enregistrée
@@ -88,4 +89,4 @@ BoxProductDistribution=Répartition des produis/services
BoxProductDistributionFor=Répartition des %s pour les %s
ForCustomersInvoices=Factures clients
ForCustomersOrders=Commandes clients
ForProposals=Propositions
ForProposals=Propositions

View File

@@ -157,4 +157,9 @@ ByProductsAndServices=Par produits et services
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".
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
ProductBuilded=Fabrication terminée
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);
else $lists=explode(',',$listes);
$categstatic=new Categorie($this->db);
foreach ($lists as $list)
{
// 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_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"]:'');
if ($type =='' && !$user->rights->produit->lire) $type='1'; // Force global page on service page only
@@ -258,10 +259,121 @@ else
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 '</div></div></div>';
llxFooter();
$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

@@ -1441,7 +1441,7 @@ class Societe extends CommonObject
$code .= $this->code_fournisseur . ' - ';
}
$name =$code.' '.$name;
}
}
$result='';
$lien=$lienfin='';
@@ -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'
* @return array Array of contacts emails or mobile
* @param string $mode 'email' 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();
$sql = "SELECT rowid, email, statut, phone_mobile, lastname, firstname";
$sql = "SELECT rowid, email, statut, phone_mobile, lastname, poste, firstname";
$sql.= " FROM ".MAIN_DB_PREFIX."socpeople";
$sql.= " WHERE fk_soc = '".$this->id."'";
@@ -1609,12 +1609,18 @@ class Societe extends CommonObject
if ($mode == 'email') $property=$obj->email;
else if ($mode == 'mobile') $property=$obj->phone_mobile;
if ($obj->statut == 1)
// Show all contact. If hidedisabled is 1, showonly contacts with status = 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++;
}
}

View File

@@ -1880,12 +1880,6 @@ div.tabBar .noborder {
border: 1px solid #AAA;
text-align: center;
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 {