Merge remote-tracking branch 'origin/3.7' into develop
Conflicts: htdocs/core/class/html.form.class.php htdocs/core/lib/ecm.lib.php
This commit is contained in:
commit
2a3bb96c34
7687
dev/initdata/mysqldump_dolibarr_3.7.0.sql
Normal file
7687
dev/initdata/mysqldump_dolibarr_3.7.0.sql
Normal file
File diff suppressed because one or more lines are too long
@ -193,13 +193,15 @@ export list="
|
||||
--ignore-table=$base.llx_cabinetmed_societe
|
||||
--ignore-table=$base.llx_fournisseur_ca
|
||||
--ignore-table=$base.llx_google_maps
|
||||
--ignore-table=$base.llx_notes
|
||||
--ignore-table=$base.llx_pos_paiement_ticket
|
||||
--ignore-table=$base.llx_pos_places
|
||||
--ignore-table=$base.llx_pos_ticket
|
||||
--ignore-table=$base.llx_publi_c_contact_list
|
||||
--ignore-table=$base.llx_publi_c_dnd_list
|
||||
--ignore-table=$base.llx_publi_c_method_list
|
||||
--ignore-table=$base.llx_ultimatepdf
|
||||
--ignore-table=$base.llx_ultimatepdf
|
||||
--ignore-table=$base.llx_ventilation_achat
|
||||
"
|
||||
echo "mysqldump -P$port -u$admin -p***** $list $base > $mydir/$dumpfile"
|
||||
mysqldump -P$port -u$admin $passwd $list $base > $mydir/$dumpfile
|
||||
|
||||
@ -141,7 +141,7 @@ $server->register(
|
||||
* @param array $authentication Array of authentication information
|
||||
* @param int $id Id of object
|
||||
* @param string $ref Ref of object
|
||||
* @param ref_ext $ref_ext Ref external of object
|
||||
* @param string $ref_ext Ref external of object
|
||||
* @return mixed
|
||||
*/
|
||||
function getSkeleton($authentication,$id,$ref='',$ref_ext='')
|
||||
|
||||
@ -1045,7 +1045,7 @@ class Adherent extends CommonObject
|
||||
* @param int $rowid Id of object to load
|
||||
* @param string $ref To load member from its ref
|
||||
* @param int $fk_soc To load member from its link to third party
|
||||
* @param int $ref_ext External reference
|
||||
* @param string $ref_ext External reference
|
||||
* @return int >0 if OK, 0 if not found, <0 if KO
|
||||
*/
|
||||
function fetch($rowid,$ref='',$fk_soc='',$ref_ext='')
|
||||
|
||||
@ -24,6 +24,7 @@ require '../../main.inc.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/memory.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/geturl.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
|
||||
|
||||
$langs->load("admin");
|
||||
$langs->load("install");
|
||||
@ -51,6 +52,13 @@ print_fiche_titre($langs->trans("PerfDolibarr"),'','setup');
|
||||
|
||||
print $langs->trans("YouMayFindPerfAdviceHere",'http://wiki.dolibarr.org/index.php/FAQ_Increase_Performance').' (<a href="'.$_SERVER["PHP_SELF"].'">'.$langs->trans("Reload").'</a>)<br>';
|
||||
|
||||
// Recupere la version de PHP
|
||||
$phpversion=version_php();
|
||||
print "<br>PHP - ".$langs->trans("Version").": ".$phpversion."<br>\n";
|
||||
|
||||
// Recupere la version du serveur web
|
||||
print "<br>Web server - ".$langs->trans("Version").": ".$_SERVER["SERVER_SOFTWARE"]."<br>\n";
|
||||
|
||||
// XDebug
|
||||
print '<br>';
|
||||
print '<strong>'.$langs->trans("XDebug").'</strong>: ';
|
||||
|
||||
@ -54,7 +54,7 @@ print "\n";
|
||||
|
||||
$var=false;
|
||||
|
||||
// Recupere la version de l'OS
|
||||
// Recupere la version de PHP
|
||||
$phpversion=version_php();
|
||||
print "<tr ".$bc[$var].'><td width="220px">'.$langs->trans("Version")."</td><td>".$phpversion."</td></tr>\n";
|
||||
|
||||
|
||||
@ -30,9 +30,7 @@
|
||||
|
||||
|
||||
/**
|
||||
* \class BankCateg
|
||||
* \brief Class to manage bank categories
|
||||
* \remarks Initialy built by build_class_from_table on 2009-01-02 15:26
|
||||
* Class to manage bank categories
|
||||
*/
|
||||
class BankCateg // extends CommonObject
|
||||
{
|
||||
@ -300,7 +298,7 @@ class BankCateg // extends CommonObject
|
||||
|
||||
$error=0;
|
||||
|
||||
$object=new Bank_categ($this->db);
|
||||
$object=new BankCateg($this->db);
|
||||
|
||||
$this->db->begin();
|
||||
|
||||
|
||||
@ -2479,7 +2479,7 @@ class Facture extends CommonInvoice
|
||||
* Return next reference of customer invoice not already used (or last reference)
|
||||
* according to numbering module defined into constant FACTURE_ADDON
|
||||
*
|
||||
* @param Society $soc object company
|
||||
* @param Societe $soc object company
|
||||
* @param string $mode 'next' for next value or 'last' for last value
|
||||
* @return string free ref or last ref
|
||||
*/
|
||||
@ -2838,7 +2838,7 @@ class Facture extends CommonInvoice
|
||||
function demande_prelevement($user)
|
||||
{
|
||||
$error=0;
|
||||
|
||||
|
||||
dol_syslog(get_class($this)."::demande_prelevement", LOG_DEBUG);
|
||||
|
||||
if ($this->statut > 0 && $this->paye == 0)
|
||||
@ -2896,12 +2896,12 @@ class Facture extends CommonInvoice
|
||||
{
|
||||
// Force payment mode of invoice to withdraw
|
||||
$payment_mode_id = dol_getIdFromCode($this->db, 'PRE', 'c_paiement');
|
||||
if ($payment_mode_id > 0)
|
||||
if ($payment_mode_id > 0)
|
||||
{
|
||||
$result=$this->setPaymentMethods($payment_mode_id);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if ($error) return -1;
|
||||
return 1;
|
||||
}
|
||||
@ -3519,7 +3519,7 @@ class FactureLigne extends CommonInvoiceLine
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// POS or by external module, take lowest buying price
|
||||
if (!empty($this->fk_product) && empty($this->fk_fournprice) && empty($this->pa_ht)) {
|
||||
include_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.product.class.php';
|
||||
|
||||
@ -58,7 +58,7 @@ class BonPrelevement extends CommonObject
|
||||
|
||||
var $invoice_in_error=array();
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
@ -1634,7 +1634,7 @@ class BonPrelevement extends CommonObject
|
||||
* @param int $nombre 0 or 1
|
||||
* @param float $total Total
|
||||
* @param string $CrLf End of line character
|
||||
* @return SEPA
|
||||
* @return string String with SEAP Sender
|
||||
*/
|
||||
function EnregEmetteurSEPA($configuration, $ladate, $nombre, $total, $CrLf='\n')
|
||||
{ // SEPA INITIALISATION
|
||||
|
||||
@ -209,6 +209,8 @@ $maxyear=substr($maxyearmonth,0,4);
|
||||
$nowyear=strftime("%Y",dol_now());
|
||||
$nowyearmonth=strftime("%Y-%m",dol_now());
|
||||
$maxyearmonth=max($maxyearmonth,$nowyearmonth);
|
||||
$now=dol_now();
|
||||
$casenow = dol_print_date($now,"%Y-%m");
|
||||
|
||||
// Loop on each month
|
||||
$nb_mois_decalage = $conf->global->SOCIETE_FISCAL_MONTH_START?($conf->global->SOCIETE_FISCAL_MONTH_START-1):0;
|
||||
@ -220,22 +222,37 @@ for ($mois = 1+$nb_mois_decalage ; $mois <= 12+$nb_mois_decalage ; $mois++)
|
||||
print "<tr ".$bc[$var].">";
|
||||
|
||||
print "<td>".dol_print_date(dol_mktime(12,0,0,$mois_modulo,1,2000),"%B")."</td>";
|
||||
for ($annee = $year_start ; $annee <= $year_end ; $annee++)
|
||||
for ($annee = $year_start -1 ; $annee <= $year_end ; $annee++) // We start one year before to have data to be able to make delta
|
||||
{
|
||||
$now=dol_now();
|
||||
$annee_decalage=$annee;
|
||||
if ($mois>12) {$annee_decalage=$annee+1;}
|
||||
$casenow = dol_print_date($now,"%Y-%m");
|
||||
$case = dol_print_date(dol_mktime(1,1,1,$mois_modulo,1,$annee_decalage),"%Y-%m");
|
||||
$caseprev = dol_print_date(dol_mktime(1,1,1,$mois_modulo,1,$annee_decalage-1),"%Y-%m");
|
||||
|
||||
if ($modecompta == 'CREANCES-DETTES') {
|
||||
// Valeur CA du mois w/o VAT
|
||||
if ($annee >= $year_start)
|
||||
{
|
||||
if ($modecompta == 'CREANCES-DETTES') {
|
||||
// Valeur CA du mois w/o VAT
|
||||
print '<td align="right">';
|
||||
if ($cum_ht[$case])
|
||||
{
|
||||
$now_show_delta=1; // On a trouve le premier mois de la premiere annee generant du chiffre.
|
||||
print '<a href="casoc.php?year='.$annee_decalage.'&month='.$mois_modulo.($modecompta?'&modecompta='.$modecompta:'').'">'.price($cum_ht[$case],1).'</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($minyearmonth < $case && $case <= max($maxyearmonth,$nowyearmonth)) { print '0'; }
|
||||
else { print ' '; }
|
||||
}
|
||||
print "</td>";
|
||||
}
|
||||
|
||||
// Valeur CA du mois
|
||||
print '<td align="right">';
|
||||
if ($cum_ht[$case])
|
||||
if ($cum[$case])
|
||||
{
|
||||
$now_show_delta=1; // On a trouve le premier mois de la premiere annee generant du chiffre.
|
||||
print '<a href="casoc.php?year='.$annee_decalage.'&month='.$mois_modulo.($modecompta?'&modecompta='.$modecompta:'').'">'.price($cum_ht[$case],1).'</a>';
|
||||
print '<a href="casoc.php?year='.$annee_decalage.'&month='.$mois_modulo.($modecompta?'&modecompta='.$modecompta:'').'">'.price($cum[$case],1).'</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -243,60 +260,46 @@ for ($mois = 1+$nb_mois_decalage ; $mois <= 12+$nb_mois_decalage ; $mois++)
|
||||
else { print ' '; }
|
||||
}
|
||||
print "</td>";
|
||||
}
|
||||
|
||||
// Valeur CA du mois
|
||||
print '<td align="right">';
|
||||
if ($cum[$case])
|
||||
{
|
||||
$now_show_delta=1; // On a trouve le premier mois de la premiere annee generant du chiffre.
|
||||
print '<a href="casoc.php?year='.$annee_decalage.'&month='.$mois_modulo.($modecompta?'&modecompta='.$modecompta:'').'">'.price($cum[$case],1).'</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($minyearmonth < $case && $case <= max($maxyearmonth,$nowyearmonth)) { print '0'; }
|
||||
else { print ' '; }
|
||||
}
|
||||
print "</td>";
|
||||
|
||||
// Pourcentage du mois
|
||||
if ($annee_decalage > $minyear && $case <= $casenow)
|
||||
{
|
||||
if ($cum[$caseprev] && $cum[$case])
|
||||
// Pourcentage du mois
|
||||
if ($annee_decalage > $minyear && $case <= $casenow)
|
||||
{
|
||||
$percent=(round(($cum[$case]-$cum[$caseprev])/$cum[$caseprev],4)*100);
|
||||
//print "X $cum[$case] - $cum[$caseprev] - $cum[$caseprev] - $percent X";
|
||||
print '<td align="right" class="borderrightlight">'.($percent>=0?"+$percent":"$percent").'%</td>';
|
||||
if ($cum[$caseprev] && $cum[$case])
|
||||
{
|
||||
$percent=(round(($cum[$case]-$cum[$caseprev])/$cum[$caseprev],4)*100);
|
||||
//print "X $cum[$case] - $cum[$caseprev] - $cum[$caseprev] - $percent X";
|
||||
print '<td align="right" class="borderrightlight">'.($percent>=0?"+$percent":"$percent").'%</td>';
|
||||
}
|
||||
if ($cum[$caseprev] && ! $cum[$case])
|
||||
{
|
||||
print '<td align="right" class="borderrightlight">-100%</td>';
|
||||
}
|
||||
if (! $cum[$caseprev] && $cum[$case])
|
||||
{
|
||||
//print '<td align="right">+Inf%</td>';
|
||||
print '<td align="right" class="borderrightlight">-</td>';
|
||||
}
|
||||
if (isset($cum[$caseprev]) && ! $cum[$caseprev] && ! $cum[$case])
|
||||
{
|
||||
print '<td align="right" class="borderrightlight">+0%</td>';
|
||||
}
|
||||
if (! isset($cum[$caseprev]) && ! $cum[$case])
|
||||
{
|
||||
print '<td align="right" class="borderrightlight">-</td>';
|
||||
}
|
||||
}
|
||||
if ($cum[$caseprev] && ! $cum[$case])
|
||||
else
|
||||
{
|
||||
print '<td align="right" class="borderrightlight">-100%</td>';
|
||||
print '<td align="right" class="borderrightlight">';
|
||||
if ($minyearmonth <= $case && $case <= $maxyearmonth) { print '-'; }
|
||||
else { print ' '; }
|
||||
print '</td>';
|
||||
}
|
||||
if (! $cum[$caseprev] && $cum[$case])
|
||||
{
|
||||
//print '<td align="right">+Inf%</td>';
|
||||
print '<td align="right" class="borderrightlight">-</td>';
|
||||
}
|
||||
if (isset($cum[$caseprev]) && ! $cum[$caseprev] && ! $cum[$case])
|
||||
{
|
||||
print '<td align="right" class="borderrightlight">+0%</td>';
|
||||
}
|
||||
if (! isset($cum[$caseprev]) && ! $cum[$case])
|
||||
{
|
||||
print '<td align="right" class="borderrightlight">-</td>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<td align="right" class="borderrightlight">';
|
||||
if ($minyearmonth <= $case && $case <= $maxyearmonth) { print '-'; }
|
||||
else { print ' '; }
|
||||
print '</td>';
|
||||
if ($annee_decalage != $year_end) print '<td width="15"> </td>';
|
||||
}
|
||||
|
||||
$total_ht[$annee]+=!empty($cum_ht[$case]) ? $cum_ht[$case] : 0;;
|
||||
$total[$annee]+=$cum[$case];
|
||||
if ($annee_decalage != $year_end) print '<td width="15"> </td>';
|
||||
}
|
||||
|
||||
print '</tr>';
|
||||
@ -406,7 +409,7 @@ for ($annee = $year_start ; $annee <= $year_end ; $annee++)
|
||||
}
|
||||
if (! $total[$annee-1] && $total[$annee])
|
||||
{
|
||||
print '<td align="right" class="borderrightlight">+Inf%</td>';
|
||||
print '<td align="right" class="borderrightlight">+zzzz'.$total[$annee-1].$langs->trans('Inf').'%</td>';
|
||||
}
|
||||
if (! $total[$annee-1] && ! $total[$annee])
|
||||
{
|
||||
|
||||
@ -343,7 +343,7 @@ class Tva extends CommonObject
|
||||
}
|
||||
|
||||
/**
|
||||
* Total of the VAT from invoices emitted by the society.
|
||||
* Total of the VAT from invoices emitted by the thirdparty.
|
||||
*
|
||||
* @param int $year Year
|
||||
* @return double Amount
|
||||
|
||||
@ -88,7 +88,7 @@ class Contrat extends CommonObject
|
||||
/**
|
||||
* Return next contract ref
|
||||
*
|
||||
* @param Societe $soc objet society
|
||||
* @param Societe $soc Thirdparty object
|
||||
* @return string free reference for contract
|
||||
*/
|
||||
function getNextNumRef($soc)
|
||||
|
||||
@ -1201,7 +1201,7 @@ class Form
|
||||
if (is_array($exclude) && $excludeUsers) $sql.= " AND u.rowid NOT IN ('".$excludeUsers."')";
|
||||
if (is_array($include) && $includeUsers) $sql.= " AND u.rowid IN ('".$includeUsers."')";
|
||||
if (! empty($conf->global->USER_HIDE_INACTIVE_IN_COMBOBOX)) $sql.= " AND u.statut <> 0";
|
||||
if (! empty($morefilter)) $sql.=$morefilter;
|
||||
if (! empty($morefilter)) $sql.=" ".$morefilter;
|
||||
$sql.= " ORDER BY u.lastname ASC";
|
||||
|
||||
dol_syslog(get_class($this)."::select_dolusers", LOG_DEBUG);
|
||||
@ -1219,7 +1219,7 @@ class Form
|
||||
$out.= ajax_combobox($htmlname);
|
||||
$nodatarole=' data-role="none"';
|
||||
}
|
||||
|
||||
|
||||
$out.= '<select class="flat" id="'.$htmlname.'" name="'.$htmlname.'"'.($disabled?' disabled="disabled"':'').$nodatarole.'>';
|
||||
if ($show_empty) $out.= '<option value="-1"'.((empty($selected) || $selected==-1)?' selected="selected"':'').'> </option>'."\n";
|
||||
|
||||
@ -3773,7 +3773,7 @@ class Form
|
||||
* @param string $prefix Prefix for fields name
|
||||
* @param int $h 1=Show also hours
|
||||
* @param int $m 1=Show also minutes
|
||||
* @param int $empty 0=Fields required, 1=Empty input is allowed
|
||||
* @param int $empty 0=Fields required, 1=Empty inputs are allowed, 2=Empty inputs are allowed for hours only
|
||||
* @param string $form_name Not used
|
||||
* @param int $d 1=Show days, month, years
|
||||
* @param int $addnowbutton Add a button "Now"
|
||||
@ -3792,9 +3792,13 @@ class Form
|
||||
if($prefix=='') $prefix='re';
|
||||
if($h == '') $h=0;
|
||||
if($m == '') $m=0;
|
||||
if($empty == '') $empty=0;
|
||||
$emptydate=0;
|
||||
$emptyhours=0;
|
||||
if ($empty == 1) { $emptydate=1; $emptyhours=1; }
|
||||
if ($empty == 2) { $emptydate=0; $emptyhours=1; }
|
||||
$orig_set_time=$set_time;
|
||||
|
||||
if ($set_time === '' && $empty == 0)
|
||||
if ($set_time === '' && $emptydate == 0)
|
||||
{
|
||||
include_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
||||
$set_time = dol_now('tzuser')-(getServerTimeZoneInt('now')*3600); // set_time must be relative to PHP server timezone
|
||||
@ -3816,8 +3820,11 @@ class Form
|
||||
$syear = dol_print_date($set_time, "%Y");
|
||||
$smonth = dol_print_date($set_time, "%m");
|
||||
$sday = dol_print_date($set_time, "%d");
|
||||
$shour = dol_print_date($set_time, "%H");
|
||||
$smin = dol_print_date($set_time, "%M");
|
||||
if ($orig_set_time != '')
|
||||
{
|
||||
$shour = dol_print_date($set_time, "%H");
|
||||
$smin = dol_print_date($set_time, "%M");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -3879,7 +3886,7 @@ class Form
|
||||
// Day
|
||||
$retstring.='<select'.($disabled?' disabled="disabled"':'').' class="flat" name="'.$prefix.'day">';
|
||||
|
||||
if ($empty || $set_time == -1)
|
||||
if ($emptydate || $set_time == -1)
|
||||
{
|
||||
$retstring.='<option value="0" selected="selected"> </option>';
|
||||
}
|
||||
@ -3892,7 +3899,7 @@ class Form
|
||||
$retstring.="</select>";
|
||||
|
||||
$retstring.='<select'.($disabled?' disabled="disabled"':'').' class="flat" name="'.$prefix.'month">';
|
||||
if ($empty || $set_time == -1)
|
||||
if ($emptydate || $set_time == -1)
|
||||
{
|
||||
$retstring.='<option value="0" selected="selected"> </option>';
|
||||
}
|
||||
@ -3907,7 +3914,7 @@ class Form
|
||||
$retstring.="</select>";
|
||||
|
||||
// Year
|
||||
if ($empty || $set_time == -1)
|
||||
if ($emptydate || $set_time == -1)
|
||||
{
|
||||
$retstring.='<input'.($disabled?' disabled="disabled"':'').' placeholder="'.dol_escape_htmltag($langs->trans("Year")).'" class="flat" type="text" size="3" maxlength="4" name="'.$prefix.'year" value="'.$syear.'">';
|
||||
}
|
||||
@ -3930,7 +3937,7 @@ class Form
|
||||
{
|
||||
// Show hour
|
||||
$retstring.='<select'.($disabled?' disabled="disabled"':'').' class="flat '.($fullday?$fullday.'hour':'').'" name="'.$prefix.'hour">';
|
||||
if ($empty) $retstring.='<option value="-1"> </option>';
|
||||
if ($emptyhours) $retstring.='<option value="-1"> </option>';
|
||||
for ($hour = 0; $hour < 24; $hour++)
|
||||
{
|
||||
if (strlen($hour) < 2) $hour = "0" . $hour;
|
||||
@ -3944,7 +3951,7 @@ class Form
|
||||
{
|
||||
// Show minutes
|
||||
$retstring.='<select'.($disabled?' disabled="disabled"':'').' class="flat '.($fullday?$fullday.'min':'').'" name="'.$prefix.'min">';
|
||||
if ($empty) $retstring.='<option value="-1"> </option>';
|
||||
if ($emptyhours) $retstring.='<option value="-1"> </option>';
|
||||
for ($min = 0; $min < 60 ; $min++)
|
||||
{
|
||||
if (strlen($min) < 2) $min = "0" . $min;
|
||||
@ -4003,18 +4010,22 @@ class Form
|
||||
/**
|
||||
* Function to show a form to select a duration on a page
|
||||
*
|
||||
* @param string $prefix Prefix
|
||||
* @param string $prefix Prefix for input fields
|
||||
* @param int $iSecond Default preselected duration (number of seconds)
|
||||
* @param int $disabled Disable the combo box
|
||||
* @param string $typehour If 'select' then input hour and input min is a combo, if 'text' input hour is in text and input min is a combo
|
||||
* @param string $minunderhours If 1, show minutes selection under the hours
|
||||
* @param int $nooutput Do not output html string but return it
|
||||
* @return void
|
||||
*/
|
||||
function select_duration($prefix, $iSecond='', $disabled=0, $typehour='select', $minunderhours=0)
|
||||
function select_duration($prefix, $iSecond='', $disabled=0, $typehour='select', $minunderhours=0, $nooutput=0)
|
||||
{
|
||||
global $langs;
|
||||
|
||||
$retstring='';
|
||||
|
||||
$hourSelected=0; $minSelected=0;
|
||||
|
||||
if ($iSecond)
|
||||
{
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
||||
@ -4025,36 +4036,51 @@ class Form
|
||||
|
||||
if ($typehour=='select')
|
||||
{
|
||||
print '<select class="flat" name="'.$prefix.'hour"'.($disabled?' disabled="disabled"':'').'>';
|
||||
$retstring.='<select class="flat" name="'.$prefix.'hour"'.($disabled?' disabled="disabled"':'').'>';
|
||||
for ($hour = 0; $hour < 25; $hour++) // For a duration, we allow 24 hours
|
||||
{
|
||||
print '<option value="'.$hour.'"';
|
||||
$retstring.='<option value="'.$hour.'"';
|
||||
if ($hourSelected == $hour)
|
||||
{
|
||||
print " selected=\"true\"";
|
||||
$retstring.=" selected=\"true\"";
|
||||
}
|
||||
print ">".$hour."</option>";
|
||||
$retstring.=">".$hour."</option>";
|
||||
}
|
||||
print "</select>";
|
||||
$retstring.="</select>";
|
||||
}
|
||||
elseif ($typehour=='text')
|
||||
{
|
||||
print '<input type="text" size="3" name="'.$prefix.'hour"'.($disabled?' disabled="disabled"':'').' class="flat" value="'.((int) $hourSelected).'">';
|
||||
$retstring.='<input type="text" size="2" name="'.$prefix.'hour"'.($disabled?' disabled="disabled"':'').' class="flat" value="'.($hourSelected?((int) $hourSelected):'').'">';
|
||||
}
|
||||
print ' '.$langs->trans('HourShort');
|
||||
else return 'BadValueForParameterTypeHour';
|
||||
|
||||
if ($minunderhours) print '<br>';
|
||||
else print " ";
|
||||
$retstring.=' '.$langs->trans('HourShort');
|
||||
|
||||
print '<select class="flat" name="'.$prefix.'min"'.($disabled?' disabled="disabled"':'').'>';
|
||||
for ($min = 0; $min <= 55; $min=$min+5)
|
||||
if ($minunderhours) $retstring.='<br>';
|
||||
else $retstring.=" ";
|
||||
|
||||
if ($typehour=='select')
|
||||
{
|
||||
print '<option value="'.$min.'"';
|
||||
if ($minSelected == $min) print ' selected="selected"';
|
||||
print '>'.$min.'</option>';
|
||||
$retstring.='<select class="flat" name="'.$prefix.'min"'.($disabled?' disabled="disabled"':'').'>';
|
||||
for ($min = 0; $min <= 55; $min=$min+5)
|
||||
{
|
||||
$retstring.='<option value="'.$min.'"';
|
||||
if ($minSelected == $min) $retstring.=' selected="selected"';
|
||||
$retstring.='>'.$min.'</option>';
|
||||
}
|
||||
$retstring.="</select>";
|
||||
}
|
||||
print "</select>";
|
||||
print ' '.$langs->trans('MinuteShort'). " ";
|
||||
elseif ($typehour=='text')
|
||||
{
|
||||
$retstring.='<input type="text" size="2" name="'.$prefix.'min"'.($disabled?' disabled="disabled"':'').' class="flat" value="'.($minSelected?((int) $minSelected):'').'">';
|
||||
}
|
||||
$retstring.=' '.$langs->trans('MinuteShort');
|
||||
$retstring.=" ";
|
||||
|
||||
if (! empty($nooutput)) return $retstring;
|
||||
|
||||
print $retstring;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@ -4524,7 +4550,7 @@ class Form
|
||||
}
|
||||
|
||||
$out.= '<select class="flat" id="'.$htmlname.'" name="'.$htmlname.'"'.($disabled?' disabled="disabled"':'').$nodatarole.'>';
|
||||
|
||||
|
||||
$num = $this->db->num_rows($resql);
|
||||
$i = 0;
|
||||
if ($num)
|
||||
|
||||
@ -668,7 +668,7 @@ class DoliDBPgsql extends DoliDB
|
||||
/**
|
||||
* Renvoie le code erreur generique de l'operation precedente.
|
||||
*
|
||||
* @return error_num (Exemples: DB_ERROR_TABLE_ALREADY_EXISTS, DB_ERROR_RECORD_ALREADY_EXISTS...)
|
||||
* @return string Error code (Exemples: DB_ERROR_TABLE_ALREADY_EXISTS, DB_ERROR_RECORD_ALREADY_EXISTS...)
|
||||
*/
|
||||
function errno()
|
||||
{
|
||||
@ -734,7 +734,7 @@ class DoliDBPgsql extends DoliDB
|
||||
/**
|
||||
* Renvoie le texte de l'erreur pgsql de l'operation precedente
|
||||
*
|
||||
* @return error_text
|
||||
* @return string Error text
|
||||
*/
|
||||
function error()
|
||||
{
|
||||
|
||||
@ -535,7 +535,7 @@ class DoliDBSqlite extends DoliDB
|
||||
/**
|
||||
* Renvoie le code erreur generique de l'operation precedente.
|
||||
*
|
||||
* @return string $error_num (Exemples: DB_ERROR_TABLE_ALREADY_EXISTS, DB_ERROR_RECORD_ALREADY_EXISTS...)
|
||||
* @return string Error code (Exemples: DB_ERROR_TABLE_ALREADY_EXISTS, DB_ERROR_RECORD_ALREADY_EXISTS...)
|
||||
*/
|
||||
function errno()
|
||||
{
|
||||
@ -597,7 +597,7 @@ class DoliDBSqlite extends DoliDB
|
||||
/**
|
||||
* Renvoie le texte de l'erreur mysql de l'operation precedente.
|
||||
*
|
||||
* @return string $error_text
|
||||
* @return string Error text
|
||||
*/
|
||||
function error()
|
||||
{
|
||||
|
||||
@ -32,6 +32,8 @@
|
||||
function ecm_prepare_dasboard_head($object)
|
||||
{
|
||||
global $langs, $conf, $user, $form;
|
||||
global $helptext1, $helptext2;
|
||||
|
||||
$h = 0;
|
||||
$head = array();
|
||||
$helptext =$langs->trans("ECMAreaDesc").'<br>';
|
||||
|
||||
@ -1273,7 +1273,7 @@ function pdf_getlineupexcltax($object,$i,$outputlangs,$hidedetails=0)
|
||||
*
|
||||
* @param Object $object Object
|
||||
* @param int $i Current line number
|
||||
* @param Tranlate $outputlangs Object langs for output
|
||||
* @param Translate $outputlangs Object langs for output
|
||||
* @param int $hidedetails Hide value (0 = no, 1 = yes, 2 = just special lines)
|
||||
* @return void
|
||||
*/
|
||||
|
||||
@ -384,10 +384,13 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t
|
||||
else print '</a>';
|
||||
print '</td>';
|
||||
|
||||
// Progress calculated
|
||||
// Note: ->duration is in fact time spent i think
|
||||
// Progress calculated (Note: ->duration is time spent)
|
||||
print '<td align="right">';
|
||||
if ($lines[$i]->planned_workload) print round(100 * $lines[$i]->duration / $lines[$i]->planned_workload,2).' %';
|
||||
if ($lines[$i]->planned_workload || $lines[$i]->duration)
|
||||
{
|
||||
if ($lines[$i]->planned_workload) print round(100 * $lines[$i]->duration / $lines[$i]->planned_workload,2).' %';
|
||||
else print $langs->trans('WorkloadNotDefined');
|
||||
}
|
||||
print '</td>';
|
||||
|
||||
// Tick to drag and drop
|
||||
@ -430,7 +433,7 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t
|
||||
print convertSecondToTime($total_projectlinesa_spent, 'allhourmin');
|
||||
print '</td>';
|
||||
print '<td align="right" class="nowrap liste_total">';
|
||||
if ($total_projectlinesa_planned) print round(100 * $total_projectlinesa_spent_if_planned / $total_projectlinesa_planned,2).' %';
|
||||
if ($total_projectlinesa_planned) print round(100 * $total_projectlinesa_spent / $total_projectlinesa_planned,2).' %';
|
||||
print '</td>';
|
||||
if ($addordertick) print '<td class="hideonsmartphone"></td>';
|
||||
print '</tr>';
|
||||
@ -562,13 +565,16 @@ function projectLinesb(&$inc, $parent, $lines, &$level, &$projectsrole, &$tasksr
|
||||
$disabledtask=1;
|
||||
}
|
||||
|
||||
print '<td class="nowrap">';
|
||||
$s =$form->select_date('',$lines[$i]->id,'','','',"addtime",1,0,1,$disabledtask);
|
||||
// Form to add new time
|
||||
print '<td class="nowrap" align="right">';
|
||||
$s='';
|
||||
$s.=$form->select_date('',$lines[$i]->id,0,0,2,"addtime",1,0,1,$disabledtask);
|
||||
$s.=' ';
|
||||
$s.=$form->select_duration($lines[$i]->id,'',$disabledtask,'text');
|
||||
$s.=$form->select_duration($lines[$i]->id,'',$disabledtask,'text',0,1);
|
||||
$s.=' <input type="submit" class="button"'.($disabledtask?' disabled="disabled"':'').' value="'.$langs->trans("Add").'">';
|
||||
print $s;
|
||||
print '</td>';
|
||||
|
||||
print '<td align="right">';
|
||||
if ((! $lines[$i]->public) && $disabledproject) print $form->textwithpicto('',$langs->trans("YouAreNotContactOfProject"));
|
||||
else if ($disabledtask) print $form->textwithpicto('',$langs->trans("TaskIsNotAffectedToYou"));
|
||||
|
||||
@ -44,7 +44,7 @@ interface LogHandlerInterface
|
||||
/**
|
||||
* Return if logger active
|
||||
*
|
||||
* @return boolen True if active
|
||||
* @return boolean True if active
|
||||
*/
|
||||
public function isActive();
|
||||
|
||||
|
||||
@ -113,7 +113,7 @@ class Expedition extends CommonObject
|
||||
/**
|
||||
* Return next contract ref
|
||||
*
|
||||
* @param Societe $soc Objet society
|
||||
* @param Societe $soc Thirdparty object
|
||||
* @return string Free reference for contract
|
||||
*/
|
||||
function getNextNumRef($soc)
|
||||
@ -604,9 +604,11 @@ class Expedition extends CommonObject
|
||||
|
||||
if (! empty($conf->productbatch->enabled)) {
|
||||
$details=ExpeditionLigneBatch::FetchAll($this->db,$obj->rowid);
|
||||
foreach ($details as $dbatch) {
|
||||
$result=$mouvS->livraison_batch($dbatch->fk_origin_stock,$dbatch->dluo_qty);
|
||||
if ($result < 0) { $error++; $this->errors[]=$mouvS->$error; break 2; }
|
||||
if (! empty($details)) {
|
||||
foreach ($details as $dbatch) {
|
||||
$result=$mouvS->livraison_batch($dbatch->fk_origin_stock,$dbatch->dluo_qty);
|
||||
if ($result < 0) { $error++; $this->errors[]=$mouvS->$error; break 2; }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -561,7 +561,7 @@ class Fichinter extends CommonObject
|
||||
* Returns the next non used reference of intervention
|
||||
* depending on the module numbering assets within FICHEINTER_ADDON
|
||||
*
|
||||
* @param Societe $soc Object society
|
||||
* @param Societe $soc Thirdparty object
|
||||
* @return string Free reference for intervention
|
||||
*/
|
||||
function getNextNumRef($soc)
|
||||
|
||||
@ -1493,7 +1493,7 @@ class FactureFournisseur extends CommonInvoice
|
||||
* Return next reference of supplier invoice not already used (or last reference)
|
||||
* according to numbering module defined into constant INVOICE_SUPPLIER_ADDON_NUMBER
|
||||
*
|
||||
* @param Society $soc object company
|
||||
* @param Societe $soc Thirdparty object
|
||||
* @param string $mode 'next' for next value or 'last' for last value
|
||||
* @return string free ref or last ref
|
||||
*/
|
||||
|
||||
@ -46,7 +46,7 @@ llxHeader(array(),$langs->trans('CPTitreMenu'));
|
||||
|
||||
print_fiche_titre($langs->trans('MenuConfCP'));
|
||||
|
||||
$congespayes = new Holidays($db);
|
||||
$congespayes = new Holiday($db);
|
||||
$listUsers = $congespayes->fetchUsers(false, true);
|
||||
|
||||
// Si il y a une action de mise à jour
|
||||
|
||||
@ -181,7 +181,7 @@ print '<td align="center">'.$langs->trans("DateEnd").'</td>';
|
||||
print '<td align="right">'.$langs->trans("PlannedWorkload").'</td>';
|
||||
print '<td align="right">'.$langs->trans("ProgressDeclared").'</td>';
|
||||
print '<td align="right">'.$langs->trans("TimeSpent").'</td>';
|
||||
print '<td colspan="2">'.$langs->trans("AddDuration").'</td>';
|
||||
print '<td colspan="2" align="right">'.$langs->trans("NewTimeSpent").'</td>';
|
||||
print "</tr>\n";
|
||||
|
||||
// By default, we can edit only tasks we are assigned to
|
||||
|
||||
@ -215,8 +215,6 @@ if ($id > 0 || ! empty($ref))
|
||||
print '</table>';
|
||||
|
||||
dol_fiche_end();
|
||||
|
||||
print '<br>';
|
||||
}
|
||||
|
||||
// To verify role of users
|
||||
|
||||
@ -179,8 +179,6 @@ if ($object->id > 0)
|
||||
print '</table>';
|
||||
|
||||
dol_fiche_end();
|
||||
|
||||
print '<br>';
|
||||
}
|
||||
|
||||
$head = task_prepare_head($object);
|
||||
|
||||
@ -161,8 +161,6 @@ if ($object->id > 0)
|
||||
print '</table>';
|
||||
|
||||
dol_fiche_end();
|
||||
|
||||
print '<br>';
|
||||
}
|
||||
|
||||
$head = task_prepare_head($object);
|
||||
|
||||
@ -262,8 +262,6 @@ if ($id > 0 || ! empty($ref))
|
||||
print '</table>';
|
||||
|
||||
dol_fiche_end();
|
||||
|
||||
print '<br>';
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@ -259,8 +259,6 @@ if ($id > 0 || ! empty($ref))
|
||||
print '</table>';
|
||||
|
||||
dol_fiche_end();
|
||||
|
||||
print '<br>';
|
||||
}
|
||||
|
||||
$head=task_prepare_head($object);
|
||||
@ -362,8 +360,7 @@ if ($id > 0 || ! empty($ref))
|
||||
print '<td>'.$langs->trans("By").'</td>';
|
||||
print '<td>'.$langs->trans("Note").'</td>';
|
||||
print '<td>'.$langs->trans("ProgressDeclared").'</td>';
|
||||
print '<td align="right">'.$langs->trans("Duration").'</td>';
|
||||
print '<td width="80"> </td>';
|
||||
print '<td align="right" colspan="2">'.$langs->trans("NewTimeSpent").'</td>';
|
||||
print "</tr>\n";
|
||||
|
||||
print '<tr '.$bc[false].'>';
|
||||
@ -396,7 +393,7 @@ if ($id > 0 || ! empty($ref))
|
||||
print $formother->select_percent(GETPOST('progress')?GETPOST('progress'):$object->progress,'progress');
|
||||
print '</td>';
|
||||
|
||||
// Duration
|
||||
// Duration - Time spent
|
||||
print '<td class="nowrap" align="right">';
|
||||
print $form->select_duration('timespent_duration', ($_POST['timespent_duration']?$_POST['timespent_duration']:''), 0, 'text');
|
||||
print '</td>';
|
||||
@ -446,13 +443,13 @@ if ($id > 0 || ! empty($ref))
|
||||
print '<input type="hidden" name="action" value="updateline">';
|
||||
print '<input type="hidden" name="id" value="'.$object->id.'">';
|
||||
print '<input type="hidden" name="withproject" value="'.$withproject.'">';
|
||||
|
||||
|
||||
print '<table class="noborder" width="100%">';
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td width="100">'.$langs->trans("Date").'</td>';
|
||||
print '<td>'.$langs->trans("By").'</td>';
|
||||
print '<td align="left">'.$langs->trans("Note").'</td>';
|
||||
print '<td align="right">'.$langs->trans("Duration").'</td>';
|
||||
print '<td align="right">'.$langs->trans("TimeSpent").'</td>';
|
||||
print '<td> </td>';
|
||||
print "</tr>\n";
|
||||
|
||||
|
||||
@ -2382,7 +2382,7 @@ class Societe extends CommonObject
|
||||
*
|
||||
* @param int $idprof 1,2,3,4 (Example: 1=siren,2=siret,3=naf,4=rcs/rm)
|
||||
* @param string $value Value of profid
|
||||
* @param int $socid Id of society if update
|
||||
* @param int $socid Id of thirdparty if update
|
||||
* @return boolean true if exists, false if not
|
||||
*/
|
||||
function id_prof_exists($idprof,$value,$socid=0)
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 710 B After Width: | Height: | Size: 528 B |
@ -138,7 +138,7 @@ class User extends CommonObject
|
||||
*
|
||||
* @param int $id Si defini, id a utiliser pour recherche
|
||||
* @param string $login Si defini, login a utiliser pour recherche
|
||||
* @param strinf $sid Si defini, sid a utiliser pour recherche
|
||||
* @param string $sid Si defini, sid a utiliser pour recherche
|
||||
* @param int $loadpersonalconf Also load personal conf of user (in $user->conf->xxx)
|
||||
* @return int <0 if KO, 0 not found, >0 if OK
|
||||
*/
|
||||
|
||||
@ -234,7 +234,7 @@ $server->register(
|
||||
* @param array $authentication Array of authentication information
|
||||
* @param int $id Id of object
|
||||
* @param string $ref Ref of object
|
||||
* @param ref_ext $ref_ext Ref external of object
|
||||
* @param string $ref_ext Ref external of object
|
||||
* @return mixed
|
||||
*/
|
||||
function getContact($authentication,$id,$ref='',$ref_ext='')
|
||||
|
||||
@ -327,7 +327,7 @@ $server->register(
|
||||
* @param array $authentication Array of authentication information
|
||||
* @param int $id Id of object
|
||||
* @param string $ref Ref of object
|
||||
* @param ref_ext $ref_ext Ref external of object
|
||||
* @param string $ref_ext Ref external of object
|
||||
* @param string $lang Lang to force
|
||||
* @return mixed
|
||||
*/
|
||||
@ -378,7 +378,7 @@ function getProductOrService($authentication,$id='',$ref='',$ref_ext='',$lang=''
|
||||
if (! empty($product->multilangs[$langs->defaultlang]["label"])) $product->label = $product->multilangs[$langs->defaultlang]["label"];
|
||||
if (! empty($product->multilangs[$langs->defaultlang]["description"])) $product->description = $product->multilangs[$langs->defaultlang]["description"];
|
||||
if (! empty($product->multilangs[$langs->defaultlang]["note"])) $product->note = $product->multilangs[$langs->defaultlang]["note"];
|
||||
|
||||
|
||||
$productorservice_result_fields = array(
|
||||
'id' => $product->id,
|
||||
'ref' => $product->ref,
|
||||
@ -396,7 +396,7 @@ function getProductOrService($authentication,$id='',$ref='',$ref_ext='',$lang=''
|
||||
'country_id' => $product->country_id>0?$product->country_id:'',
|
||||
'country_code' => $product->country_code,
|
||||
'custom_code' => $product->customcode,
|
||||
|
||||
|
||||
'price_net' => $product->price,
|
||||
'price' => $product->price_ttc,
|
||||
'price_min_net' => $product->price_min,
|
||||
@ -408,7 +408,7 @@ function getProductOrService($authentication,$id='',$ref='',$ref_ext='',$lang=''
|
||||
//! Spanish local taxes
|
||||
'localtax1_tx' => $product->localtax1_tx,
|
||||
'localtax2_tx' => $product->localtax2_tx,
|
||||
|
||||
|
||||
'stock_real' => $product->stock_reel,
|
||||
'stock_alert' => $product->seuil_stock_alerte,
|
||||
'pmp' => $product->pmp,
|
||||
@ -416,19 +416,19 @@ function getProductOrService($authentication,$id='',$ref='',$ref_ext='',$lang=''
|
||||
'dir' => $pdir,
|
||||
'images' => $product->liste_photos($dir,$nbmax=10)
|
||||
);
|
||||
|
||||
|
||||
//Retreive all extrafield for thirdsparty
|
||||
// fetch optionals attributes and labels
|
||||
$extrafields=new ExtraFields($db);
|
||||
$extralabels=$extrafields->fetch_name_optionals_label('product',true);
|
||||
//Get extrafield values
|
||||
$product->fetch_optionals($product->id,$extralabels);
|
||||
|
||||
|
||||
foreach($extrafields->attribute_label as $key=>$label)
|
||||
{
|
||||
$productorservice_result_fields=array_merge($productorservice_result_fields,array('options_'.$key => $product->array_options['options_'.$key]));
|
||||
}
|
||||
|
||||
|
||||
// Create
|
||||
$objectresp = array(
|
||||
'result'=>array('result_code'=>'OK', 'result_label'=>''),
|
||||
@ -533,7 +533,7 @@ function createProductOrService($authentication,$product)
|
||||
}*/
|
||||
//var_dump($product['ref_ext']);
|
||||
//var_dump($product['lines'][0]['type']);
|
||||
|
||||
|
||||
$extrafields=new ExtraFields($db);
|
||||
$extralabels=$extrafields->fetch_name_optionals_label('product',true);
|
||||
foreach($extrafields->attribute_label as $key=>$label)
|
||||
@ -652,7 +652,7 @@ function updateProductOrService($authentication,$product)
|
||||
}*/
|
||||
//var_dump($product['ref_ext']);
|
||||
//var_dump($product['lines'][0]['type']);
|
||||
|
||||
|
||||
$extrafields=new ExtraFields($db);
|
||||
$extralabels=$extrafields->fetch_name_optionals_label('product',true);
|
||||
foreach($extrafields->attribute_label as $key=>$label)
|
||||
@ -965,19 +965,19 @@ function getProductsForCategory($authentication,$id,$lang='')
|
||||
'dir' => $pdir,
|
||||
'images' => $obj->liste_photos($dir,$nbmax=10)
|
||||
);
|
||||
|
||||
|
||||
//Retreive all extrafield for thirdsparty
|
||||
// fetch optionals attributes and labels
|
||||
$extrafields=new ExtraFields($db);
|
||||
$extralabels=$extrafields->fetch_name_optionals_label('product',true);
|
||||
//Get extrafield values
|
||||
$product->fetch_optionals($obj->id,$extralabels);
|
||||
|
||||
|
||||
foreach($extrafields->attribute_label as $key=>$label)
|
||||
{
|
||||
$products[$iProduct]=array_merge($products[$iProduct],array('options_'.$key => $product->array_options['options_'.$key]));
|
||||
}
|
||||
|
||||
|
||||
$iProduct++;
|
||||
}
|
||||
|
||||
|
||||
@ -299,7 +299,7 @@ $server->register(
|
||||
* @param array $authentication Array of authentication information
|
||||
* @param int $id Id of object
|
||||
* @param string $ref Ref of object
|
||||
* @param ref_ext $ref_ext Ref external of object
|
||||
* @param string $ref_ext Ref external of object
|
||||
* @return mixed
|
||||
*/
|
||||
function getUser($authentication,$id,$ref='',$ref_ext='')
|
||||
|
||||
Loading…
Reference in New Issue
Block a user