Merge branch 'develop' into develop_pdf
This commit is contained in:
commit
ca71f02d41
@ -1 +1 @@
|
|||||||
Help wanted...
|
"Help wanted..."
|
||||||
@ -2063,9 +2063,10 @@ class Adherent extends CommonObject
|
|||||||
* @param string $mode ''=Show firstname+lastname as label (using default order), 'firstname'=Show only firstname, 'login'=Show login, 'ref'=Show ref
|
* @param string $mode ''=Show firstname+lastname as label (using default order), 'firstname'=Show only firstname, 'login'=Show login, 'ref'=Show ref
|
||||||
* @param string $morecss Add more css on link
|
* @param string $morecss Add more css on link
|
||||||
* @param int $save_lastsearch_value -1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking
|
* @param int $save_lastsearch_value -1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking
|
||||||
|
* @param int $notooltip 1=Disable tooltip
|
||||||
* @return string Chaine avec URL
|
* @return string Chaine avec URL
|
||||||
*/
|
*/
|
||||||
public function getNomUrl($withpictoimg = 0, $maxlen = 0, $option = 'card', $mode = '', $morecss = '', $save_lastsearch_value = -1)
|
public function getNomUrl($withpictoimg = 0, $maxlen = 0, $option = 'card', $mode = '', $morecss = '', $save_lastsearch_value = -1, $notooltip = 0)
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
|
|
||||||
|
|||||||
@ -438,7 +438,6 @@ foreach ($dirmodels as $reldir)
|
|||||||
|
|
||||||
if ($modulequalified)
|
if ($modulequalified)
|
||||||
{
|
{
|
||||||
$var = !$var;
|
|
||||||
print '<tr class="oddeven"><td width="100">';
|
print '<tr class="oddeven"><td width="100">';
|
||||||
print (empty($module->name)?$name:$module->name);
|
print (empty($module->name)?$name:$module->name);
|
||||||
print "</td><td>\n";
|
print "</td><td>\n";
|
||||||
|
|||||||
@ -88,7 +88,7 @@ $hookmanager->initHooks(array('admin'));
|
|||||||
// Put here declaration of dictionaries properties
|
// Put here declaration of dictionaries properties
|
||||||
|
|
||||||
// Sort order to show dictionary (0 is space). All other dictionaries (added by modules) will be at end of this.
|
// Sort order to show dictionary (0 is space). All other dictionaries (added by modules) will be at end of this.
|
||||||
$taborder=array(9,0,4,3,2,0,1,8,19,16,27,0,5,11,0,33,34,0,6,0,29,0,7,24,28,17,35,36,0,10,23,12,13,0,14,0,22,20,18,21,0,15,30,0,37,0,25,0);
|
$taborder=array(9,0,4,3,2,0,1,8,19,16,27,0,5,11,0,32,33,34,0,6,0,29,0,7,24,28,17,35,36,0,10,23,12,13,0,14,0,22,20,18,21,0,15,30,0,37,0,25,0);
|
||||||
|
|
||||||
// Name of SQL tables of dictionaries
|
// Name of SQL tables of dictionaries
|
||||||
$tabname=array();
|
$tabname=array();
|
||||||
@ -123,9 +123,10 @@ $tabname[28]= MAIN_DB_PREFIX."c_holiday_types";
|
|||||||
$tabname[29]= MAIN_DB_PREFIX."c_lead_status";
|
$tabname[29]= MAIN_DB_PREFIX."c_lead_status";
|
||||||
$tabname[30]= MAIN_DB_PREFIX."c_format_cards";
|
$tabname[30]= MAIN_DB_PREFIX."c_format_cards";
|
||||||
//$tabname[31]= MAIN_DB_PREFIX."accounting_system";
|
//$tabname[31]= MAIN_DB_PREFIX."accounting_system";
|
||||||
//$tabname[32]= MAIN_DB_PREFIX."c_accounting_category";
|
$tabname[32]= MAIN_DB_PREFIX."c_hrm_public_holiday";
|
||||||
$tabname[33]= MAIN_DB_PREFIX."c_hrm_department";
|
$tabname[33]= MAIN_DB_PREFIX."c_hrm_department";
|
||||||
$tabname[34]= MAIN_DB_PREFIX."c_hrm_function";
|
$tabname[34]= MAIN_DB_PREFIX."c_hrm_function";
|
||||||
|
|
||||||
$tabname[35]= MAIN_DB_PREFIX."c_exp_tax_cat";
|
$tabname[35]= MAIN_DB_PREFIX."c_exp_tax_cat";
|
||||||
$tabname[36]= MAIN_DB_PREFIX."c_exp_tax_range";
|
$tabname[36]= MAIN_DB_PREFIX."c_exp_tax_range";
|
||||||
$tabname[37]= MAIN_DB_PREFIX."c_units";
|
$tabname[37]= MAIN_DB_PREFIX."c_units";
|
||||||
@ -163,7 +164,7 @@ $tablib[28]= "DictionaryHolidayTypes";
|
|||||||
$tablib[29]= "DictionaryOpportunityStatus";
|
$tablib[29]= "DictionaryOpportunityStatus";
|
||||||
$tablib[30]= "DictionaryFormatCards";
|
$tablib[30]= "DictionaryFormatCards";
|
||||||
//$tablib[31]= "DictionaryAccountancysystem";
|
//$tablib[31]= "DictionaryAccountancysystem";
|
||||||
//$tablib[32]= "DictionaryAccountancyCategory";
|
$tablib[32]= "DictionaryPublicHolidays";
|
||||||
$tablib[33]= "DictionaryDepartment";
|
$tablib[33]= "DictionaryDepartment";
|
||||||
$tablib[34]= "DictionaryFunction";
|
$tablib[34]= "DictionaryFunction";
|
||||||
$tablib[35]= "DictionaryExpenseTaxCat";
|
$tablib[35]= "DictionaryExpenseTaxCat";
|
||||||
@ -203,7 +204,7 @@ $tabsql[28]= "SELECT h.rowid as rowid, h.code, h.label, h.affect, h.delay, h.new
|
|||||||
$tabsql[29]= "SELECT rowid as rowid, code, label, percent, position, active FROM ".MAIN_DB_PREFIX."c_lead_status";
|
$tabsql[29]= "SELECT rowid as rowid, code, label, percent, position, active FROM ".MAIN_DB_PREFIX."c_lead_status";
|
||||||
$tabsql[30]= "SELECT rowid, code, name, paper_size, orientation, metric, leftmargin, topmargin, nx, ny, spacex, spacey, width, height, font_size, custom_x, custom_y, active FROM ".MAIN_DB_PREFIX."c_format_cards";
|
$tabsql[30]= "SELECT rowid, code, name, paper_size, orientation, metric, leftmargin, topmargin, nx, ny, spacex, spacey, width, height, font_size, custom_x, custom_y, active FROM ".MAIN_DB_PREFIX."c_format_cards";
|
||||||
//$tabsql[31]= "SELECT s.rowid as rowid, pcg_version, s.label, s.active FROM ".MAIN_DB_PREFIX."accounting_system as s";
|
//$tabsql[31]= "SELECT s.rowid as rowid, pcg_version, s.label, s.active FROM ".MAIN_DB_PREFIX."accounting_system as s";
|
||||||
//$tabsql[32]= "SELECT a.rowid as rowid, a.code as code, a.label, a.range_account, a.sens, a.category_type, a.formula, a.position as position, a.fk_country as country_id, c.code as country_code, c.label as country, a.active FROM ".MAIN_DB_PREFIX."c_accounting_category as a, ".MAIN_DB_PREFIX."c_country as c WHERE a.fk_country=c.rowid and c.active=1";
|
$tabsql[32]= "SELECT a.id as rowid, a.entity, a.code, a.fk_country as country_id, c.code as country_code, c.label as country, a.day, a.month, a.year, a.active FROM ".MAIN_DB_PREFIX."c_hrm_public_holiday as a LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON a.fk_country=c.rowid AND c.active=1";
|
||||||
$tabsql[33]= "SELECT rowid, pos, code, label, active FROM ".MAIN_DB_PREFIX."c_hrm_department";
|
$tabsql[33]= "SELECT rowid, pos, code, label, active FROM ".MAIN_DB_PREFIX."c_hrm_department";
|
||||||
$tabsql[34]= "SELECT rowid, pos, code, label, c_level, active FROM ".MAIN_DB_PREFIX."c_hrm_function";
|
$tabsql[34]= "SELECT rowid, pos, code, label, c_level, active FROM ".MAIN_DB_PREFIX."c_hrm_function";
|
||||||
$tabsql[35]= "SELECT c.rowid, c.label, c.active, c.entity FROM ".MAIN_DB_PREFIX."c_exp_tax_cat c";
|
$tabsql[35]= "SELECT c.rowid, c.label, c.active, c.entity FROM ".MAIN_DB_PREFIX."c_exp_tax_cat c";
|
||||||
@ -243,7 +244,7 @@ $tabsqlsort[28]="country ASC, code ASC";
|
|||||||
$tabsqlsort[29]="position ASC";
|
$tabsqlsort[29]="position ASC";
|
||||||
$tabsqlsort[30]="code ASC";
|
$tabsqlsort[30]="code ASC";
|
||||||
//$tabsqlsort[31]="pcg_version ASC";
|
//$tabsqlsort[31]="pcg_version ASC";
|
||||||
//$tabsqlsort[32]="position ASC";
|
$tabsqlsort[32]="year ASC, month ASC, day ASC";
|
||||||
$tabsqlsort[33]="code ASC";
|
$tabsqlsort[33]="code ASC";
|
||||||
$tabsqlsort[34]="code ASC";
|
$tabsqlsort[34]="code ASC";
|
||||||
$tabsqlsort[35]="c.label ASC";
|
$tabsqlsort[35]="c.label ASC";
|
||||||
@ -283,7 +284,7 @@ $tabfield[28]= "code,label,affect,delay,newbymonth,country_id,country";
|
|||||||
$tabfield[29]= "code,label,percent,position";
|
$tabfield[29]= "code,label,percent,position";
|
||||||
$tabfield[30]= "code,name,paper_size,orientation,metric,leftmargin,topmargin,nx,ny,spacex,spacey,width,height,font_size,custom_x,custom_y";
|
$tabfield[30]= "code,name,paper_size,orientation,metric,leftmargin,topmargin,nx,ny,spacex,spacey,width,height,font_size,custom_x,custom_y";
|
||||||
//$tabfield[31]= "pcg_version,label";
|
//$tabfield[31]= "pcg_version,label";
|
||||||
//$tabfield[32]= "code,label,range_account,sens,category_type,formula,position,country_id,country";
|
$tabfield[32]= "code,year,month,day,country_id,country";
|
||||||
$tabfield[33]= "code,label";
|
$tabfield[33]= "code,label";
|
||||||
$tabfield[34]= "code,label";
|
$tabfield[34]= "code,label";
|
||||||
$tabfield[35]= "label";
|
$tabfield[35]= "label";
|
||||||
@ -323,7 +324,7 @@ $tabfieldvalue[28]= "code,label,affect,delay,newbymonth,country";
|
|||||||
$tabfieldvalue[29]= "code,label,percent,position";
|
$tabfieldvalue[29]= "code,label,percent,position";
|
||||||
$tabfieldvalue[30]= "code,name,paper_size,orientation,metric,leftmargin,topmargin,nx,ny,spacex,spacey,width,height,font_size,custom_x,custom_y";
|
$tabfieldvalue[30]= "code,name,paper_size,orientation,metric,leftmargin,topmargin,nx,ny,spacex,spacey,width,height,font_size,custom_x,custom_y";
|
||||||
//$tabfieldvalue[31]= "pcg_version,label";
|
//$tabfieldvalue[31]= "pcg_version,label";
|
||||||
//$tabfieldvalue[32]= "code,label,range_account,sens,category_type,formula,position,country";
|
$tabfieldvalue[32]= "code,day,month,year,country";
|
||||||
$tabfieldvalue[33]= "code,label";
|
$tabfieldvalue[33]= "code,label";
|
||||||
$tabfieldvalue[34]= "code,label";
|
$tabfieldvalue[34]= "code,label";
|
||||||
$tabfieldvalue[35]= "label";
|
$tabfieldvalue[35]= "label";
|
||||||
@ -364,15 +365,16 @@ $tabfieldinsert[29]= "code,label,percent,position";
|
|||||||
$tabfieldinsert[30]= "code,name,paper_size,orientation,metric,leftmargin,topmargin,nx,ny,spacex,spacey,width,height,font_size,custom_x,custom_y";
|
$tabfieldinsert[30]= "code,name,paper_size,orientation,metric,leftmargin,topmargin,nx,ny,spacex,spacey,width,height,font_size,custom_x,custom_y";
|
||||||
//$tabfieldinsert[31]= "pcg_version,label";
|
//$tabfieldinsert[31]= "pcg_version,label";
|
||||||
//$tabfieldinsert[32]= "code,label,range_account,sens,category_type,formula,position,fk_country";
|
//$tabfieldinsert[32]= "code,label,range_account,sens,category_type,formula,position,fk_country";
|
||||||
|
$tabfieldinsert[32]= "code,day,month,year,fk_country";
|
||||||
$tabfieldinsert[33]= "code,label";
|
$tabfieldinsert[33]= "code,label";
|
||||||
$tabfieldinsert[34]= "code,label";
|
$tabfieldinsert[34]= "code,label";
|
||||||
$tabfieldinsert[35]= "label";
|
$tabfieldinsert[35]= "label";
|
||||||
$tabfieldinsert[36]= "range_ik,fk_c_exp_tax_cat";
|
$tabfieldinsert[36]= "range_ik,fk_c_exp_tax_cat";
|
||||||
$tabfieldinsert[37]= "code,label,short_label,unit_type,scale";
|
$tabfieldinsert[37]= "code,label,short_label,unit_type,scale";
|
||||||
|
|
||||||
// Rowid name if the field is not autoincrement type
|
// Rowid name of field depending if field is autoincrement on or off..
|
||||||
// Example: "" if id field is "rowid" and has autoincrement on
|
// Use "" if id field is "rowid" and has autoincrement on
|
||||||
// "nameoffield" if id field is not "rowid" or has not autoincrement on
|
// Use "nameoffield" if id field is not "rowid" or has not autoincrement on
|
||||||
$tabrowid=array();
|
$tabrowid=array();
|
||||||
$tabrowid[1] = "";
|
$tabrowid[1] = "";
|
||||||
$tabrowid[2] = "";
|
$tabrowid[2] = "";
|
||||||
@ -405,7 +407,7 @@ $tabrowid[28]= "";
|
|||||||
$tabrowid[29]= "";
|
$tabrowid[29]= "";
|
||||||
$tabrowid[30]= "";
|
$tabrowid[30]= "";
|
||||||
//$tabrowid[31]= "";
|
//$tabrowid[31]= "";
|
||||||
//$tabrowid[32]= "";
|
$tabrowid[32]= "id";
|
||||||
$tabrowid[33]= "rowid";
|
$tabrowid[33]= "rowid";
|
||||||
$tabrowid[34]= "rowid";
|
$tabrowid[34]= "rowid";
|
||||||
$tabrowid[35]= "";
|
$tabrowid[35]= "";
|
||||||
@ -445,7 +447,7 @@ $tabcond[28]= ! empty($conf->holiday->enabled);
|
|||||||
$tabcond[29]= ! empty($conf->projet->enabled);
|
$tabcond[29]= ! empty($conf->projet->enabled);
|
||||||
$tabcond[30]= ! empty($conf->label->enabled);
|
$tabcond[30]= ! empty($conf->label->enabled);
|
||||||
//$tabcond[31]= ! empty($conf->accounting->enabled);
|
//$tabcond[31]= ! empty($conf->accounting->enabled);
|
||||||
//$tabcond[32]= ! empty($conf->accounting->enabled);
|
$tabcond[32]= (! empty($conf->holiday->enabled) || ! empty($conf->hrm->enabled));
|
||||||
$tabcond[33]= ! empty($conf->hrm->enabled);
|
$tabcond[33]= ! empty($conf->hrm->enabled);
|
||||||
$tabcond[34]= ! empty($conf->hrm->enabled);
|
$tabcond[34]= ! empty($conf->hrm->enabled);
|
||||||
$tabcond[35]= ! empty($conf->expensereport->enabled);
|
$tabcond[35]= ! empty($conf->expensereport->enabled);
|
||||||
@ -485,12 +487,12 @@ $tabhelp[28] = array('affect'=>$langs->trans("FollowedByACounter"),'delay'=>$lan
|
|||||||
$tabhelp[29] = array('code'=>$langs->trans("EnterAnyCode"), 'percent'=>$langs->trans("OpportunityPercent"), 'position'=>$langs->trans("PositionIntoComboList"));
|
$tabhelp[29] = array('code'=>$langs->trans("EnterAnyCode"), 'percent'=>$langs->trans("OpportunityPercent"), 'position'=>$langs->trans("PositionIntoComboList"));
|
||||||
$tabhelp[30] = array('code'=>$langs->trans("EnterAnyCode"), 'name'=>$langs->trans("LabelName"), 'paper_size'=>$langs->trans("LabelPaperSize"));
|
$tabhelp[30] = array('code'=>$langs->trans("EnterAnyCode"), 'name'=>$langs->trans("LabelName"), 'paper_size'=>$langs->trans("LabelPaperSize"));
|
||||||
//$tabhelp[31] = array('pcg_version'=>$langs->trans("EnterAnyCode"));
|
//$tabhelp[31] = array('pcg_version'=>$langs->trans("EnterAnyCode"));
|
||||||
//$tabhelp[32] = array('code'=>$langs->trans("EnterAnyCode"));
|
$tabhelp[32] = array('code'=>$langs->trans("EnterAnyCode"), 'daterule'=>"Use 'date'", 'country'=>$langs->trans("EnterACountryOnlyIfSpecificToOneCountry"), 'year'=>$langs->trans("ZeroMeansEveryYear"));
|
||||||
$tabhelp[33] = array('code'=>$langs->trans("EnterAnyCode"));
|
$tabhelp[33] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||||
$tabhelp[34] = array('code'=>$langs->trans("EnterAnyCode"));
|
$tabhelp[34] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||||
$tabhelp[35]= array();
|
$tabhelp[35] = array();
|
||||||
$tabhelp[36]= array('range_ik'=>$langs->trans('PrevRangeToThisRange'));
|
$tabhelp[36] = array('range_ik'=>$langs->trans('PrevRangeToThisRange'));
|
||||||
$tabhelp[37]= array('code'=>$langs->trans("EnterAnyCode"));
|
$tabhelp[37] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||||
|
|
||||||
// List of check for fields (NOT USED YET)
|
// List of check for fields (NOT USED YET)
|
||||||
$tabfieldcheck=array();
|
$tabfieldcheck=array();
|
||||||
@ -525,12 +527,12 @@ $tabfieldcheck[28] = array();
|
|||||||
$tabfieldcheck[29] = array();
|
$tabfieldcheck[29] = array();
|
||||||
$tabfieldcheck[30] = array();
|
$tabfieldcheck[30] = array();
|
||||||
//$tabfieldcheck[31] = array();
|
//$tabfieldcheck[31] = array();
|
||||||
//$tabfieldcheck[32] = array();
|
$tabfieldcheck[32] = array();
|
||||||
$tabfieldcheck[33] = array();
|
$tabfieldcheck[33] = array();
|
||||||
$tabfieldcheck[34] = array();
|
$tabfieldcheck[34] = array();
|
||||||
$tabfieldcheck[35]= array();
|
$tabfieldcheck[35] = array();
|
||||||
$tabfieldcheck[36]= array();
|
$tabfieldcheck[36] = array();
|
||||||
$tabfieldcheck[37]= array();
|
$tabfieldcheck[37] = array();
|
||||||
|
|
||||||
// Complete all arrays with entries found into modules
|
// Complete all arrays with entries found into modules
|
||||||
complete_dictionary_with_modules($taborder, $tabname, $tablib, $tabsql, $tabsqlsort, $tabfield, $tabfieldvalue, $tabfieldinsert, $tabrowid, $tabcond, $tabhelp, $tabfieldcheck);
|
complete_dictionary_with_modules($taborder, $tabname, $tablib, $tabsql, $tabsqlsort, $tabfield, $tabfieldvalue, $tabfieldinsert, $tabrowid, $tabcond, $tabhelp, $tabfieldcheck);
|
||||||
@ -621,9 +623,11 @@ if (GETPOST('actionadd') || GETPOST('actionmodify'))
|
|||||||
$ok=1;
|
$ok=1;
|
||||||
foreach ($listfield as $f => $value)
|
foreach ($listfield as $f => $value)
|
||||||
{
|
{
|
||||||
if ($value == 'country_id' && in_array($tablib[$id], array('DictionaryVAT','DictionaryRegion','DictionaryCompanyType','DictionaryHolidayTypes','DictionaryRevenueStamp','DictionaryAccountancysystem','DictionaryAccountancyCategory'))) continue; // For some pages, country is not mandatory
|
// Discard check of mandatory fields for country for some tables
|
||||||
if ($value == 'country' && in_array($tablib[$id], array('DictionaryCanton','DictionaryCompanyType','DictionaryRevenueStamp'))) continue; // For some pages, country is not mandatory
|
if ($value == 'country_id' && in_array($tablib[$id], array('DictionaryPublicHolidays','DictionaryVAT','DictionaryRegion','DictionaryCompanyType','DictionaryHolidayTypes','DictionaryRevenueStamp','DictionaryAccountancysystem','DictionaryAccountancyCategory'))) continue; // For some pages, country is not mandatory
|
||||||
if ($value == 'localtax1' && empty($_POST['localtax1_type'])) continue;
|
if ($value == 'country' && in_array($tablib[$id], array('DictionaryPublicHolidays','DictionaryCanton','DictionaryCompanyType','DictionaryRevenueStamp'))) continue; // For some pages, country is not mandatory
|
||||||
|
// Discard check of mandatory fiedls for other fields
|
||||||
|
if ($value == 'localtax1' && empty($_POST['localtax1_type'])) continue;
|
||||||
if ($value == 'localtax2' && empty($_POST['localtax2_type'])) continue;
|
if ($value == 'localtax2' && empty($_POST['localtax2_type'])) continue;
|
||||||
if ($value == 'color' && empty($_POST['color'])) continue;
|
if ($value == 'color' && empty($_POST['color'])) continue;
|
||||||
if ($value == 'formula' && empty($_POST['formula'])) continue;
|
if ($value == 'formula' && empty($_POST['formula'])) continue;
|
||||||
@ -992,8 +996,10 @@ if ($id)
|
|||||||
|
|
||||||
if (! preg_match('/ WHERE /', $sql)) $sql.= " WHERE 1 = 1";
|
if (! preg_match('/ WHERE /', $sql)) $sql.= " WHERE 1 = 1";
|
||||||
if ($search_country_id > 0) $sql.= " AND c.rowid = ".$search_country_id;
|
if ($search_country_id > 0) $sql.= " AND c.rowid = ".$search_country_id;
|
||||||
if ($search_code != '' && $id != 9) $sql.= natural_search("code", $search_code);
|
|
||||||
if ($search_code != '' && $id == 9) $sql.= natural_search("code_iso", $search_code);
|
if ($search_code != '' && $id == 9) $sql.= natural_search("code_iso", $search_code);
|
||||||
|
elseif ($search_code != '' && $id == 28) $sql.= natural_search("h.code", $search_code);
|
||||||
|
elseif ($search_code != '' && $id == 32) $sql.= natural_search("a.code", $search_code);
|
||||||
|
elseif ($search_code != '' && $id != 9) $sql.= natural_search("code", $search_code);
|
||||||
|
|
||||||
if ($sortfield)
|
if ($sortfield)
|
||||||
{
|
{
|
||||||
@ -1053,7 +1059,7 @@ if ($id)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Define field friedly name from its technical name
|
// Define field friendly name from its technical name
|
||||||
$valuetoshow=ucfirst($fieldlist[$field]); // Par defaut
|
$valuetoshow=ucfirst($fieldlist[$field]); // Par defaut
|
||||||
$valuetoshow=$langs->trans($valuetoshow); // try to translate
|
$valuetoshow=$langs->trans($valuetoshow); // try to translate
|
||||||
$class='';
|
$class='';
|
||||||
@ -1156,7 +1162,8 @@ if ($id)
|
|||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
// Line to enter new values
|
// Line to enter new values
|
||||||
print '<!-- line to add new entry --><tr class="oddeven nodrag nodrop nohover">';
|
print '<!-- line to add new entry -->';
|
||||||
|
print '<tr class="oddeven nodrag nodrop nohover">';
|
||||||
|
|
||||||
$obj = new stdClass();
|
$obj = new stdClass();
|
||||||
// If data was already input, we define them in obj to populate input fields.
|
// If data was already input, we define them in obj to populate input fields.
|
||||||
@ -1632,10 +1639,10 @@ if ($id)
|
|||||||
if ($obj->code == 'RECEP') $canbemodified=1;
|
if ($obj->code == 'RECEP') $canbemodified=1;
|
||||||
if ($tabname[$id] == MAIN_DB_PREFIX."c_actioncomm") $canbemodified=1;
|
if ($tabname[$id] == MAIN_DB_PREFIX."c_actioncomm") $canbemodified=1;
|
||||||
|
|
||||||
// Url
|
// Build Url. The table is id=, the id of line is rowid=
|
||||||
$rowidcol=$tabrowid[$id];
|
$rowidcol=$tabrowid[$id];
|
||||||
// If rowidcol not defined
|
// If rowidcol not defined
|
||||||
if (empty($rowidcol) || in_array($id, array(6,7,8,13,17,19,27))) $rowidcol='rowid';
|
if (empty($rowidcol) || in_array($id, array(6,7,8,13,17,19,27,32))) $rowidcol='rowid';
|
||||||
$url = $_SERVER["PHP_SELF"].'?'.($page?'page='.$page.'&':'').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.((! empty($obj->{$rowidcol}) || $obj->{$rowidcol} == '0')?$obj->{$rowidcol}:(! empty($obj->code)?urlencode($obj->code):'')).'&code='.(! empty($obj->code)?urlencode($obj->code):'');
|
$url = $_SERVER["PHP_SELF"].'?'.($page?'page='.$page.'&':'').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.((! empty($obj->{$rowidcol}) || $obj->{$rowidcol} == '0')?$obj->{$rowidcol}:(! empty($obj->code)?urlencode($obj->code):'')).'&code='.(! empty($obj->code)?urlencode($obj->code):'');
|
||||||
if (! empty($param)) $url .= '&'.$param;
|
if (! empty($param)) $url .= '&'.$param;
|
||||||
if (! is_null($withentity)) $url .= '&entity='.$withentity;
|
if (! is_null($withentity)) $url .= '&entity='.$withentity;
|
||||||
@ -1971,7 +1978,6 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '')
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
$fieldValue = isset($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:'';
|
$fieldValue = isset($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:'';
|
||||||
|
|
||||||
if ($fieldlist[$field]=='sortorder')
|
if ($fieldlist[$field]=='sortorder')
|
||||||
@ -1981,11 +1987,11 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '')
|
|||||||
|
|
||||||
$classtd=''; $class='';
|
$classtd=''; $class='';
|
||||||
if ($fieldlist[$field]=='code') $class='maxwidth100';
|
if ($fieldlist[$field]=='code') $class='maxwidth100';
|
||||||
if (in_array($fieldlist[$field], array('pos', 'use_default', 'affect', 'delay', 'position', 'sortorder', 'sens', 'category_type'))) $class='maxwidth50';
|
if (in_array($fieldlist[$field], array('dayrule', 'day', 'month', 'year', 'pos', 'use_default', 'affect', 'delay', 'position', 'sortorder', 'sens', 'category_type'))) $class='maxwidth50';
|
||||||
if (in_array($fieldlist[$field], array('libelle', 'label', 'tracking'))) $class='quatrevingtpercent';
|
if (in_array($fieldlist[$field], array('libelle', 'label', 'tracking'))) $class='quatrevingtpercent';
|
||||||
print '<td class="'.$classtd.'">';
|
print '<td class="'.$classtd.'">';
|
||||||
$transfound=0;
|
$transfound=0;
|
||||||
if (in_array($fieldlist[$field], array('label','libelle')))
|
if (in_array($fieldlist[$field], array('label','libelle'))) // For label
|
||||||
{
|
{
|
||||||
$transkey='';
|
$transkey='';
|
||||||
// Special case for labels
|
// Special case for labels
|
||||||
|
|||||||
@ -158,8 +158,10 @@ $head = mailmanspip_admin_prepare_head();
|
|||||||
if (! empty($conf->global->ADHERENT_USE_MAILMAN))
|
if (! empty($conf->global->ADHERENT_USE_MAILMAN))
|
||||||
{
|
{
|
||||||
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
|
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
|
||||||
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
print '<input type="hidden" name="action" value="update">';
|
||||||
|
|
||||||
dol_fiche_head($head, 'mailman', $langs->trans("Setup"), 0, 'user');
|
dol_fiche_head($head, 'mailman', $langs->trans("Setup"), -1, 'user');
|
||||||
|
|
||||||
//$link=img_picto($langs->trans("Active"),'tick').' ';
|
//$link=img_picto($langs->trans("Active"),'tick').' ';
|
||||||
$link='<a class="reposition" href="'.$_SERVER["PHP_SELF"].'?action=unset&value=0&name=ADHERENT_USE_MAILMAN">';
|
$link='<a class="reposition" href="'.$_SERVER["PHP_SELF"].'?action=unset&value=0&name=ADHERENT_USE_MAILMAN">';
|
||||||
@ -227,14 +229,21 @@ else
|
|||||||
if (! empty($conf->global->ADHERENT_USE_MAILMAN))
|
if (! empty($conf->global->ADHERENT_USE_MAILMAN))
|
||||||
{
|
{
|
||||||
print '<form action="'.$_SERVER["PHP_SELF"].'">';
|
print '<form action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
print '<input type="hidden" name="action" value="testsubscribe">';
|
print '<input type="hidden" name="action" value="testsubscribe">';
|
||||||
|
|
||||||
print $langs->trans("TestSubscribe").'<br>';
|
print $langs->trans("TestSubscribe").'<br>';
|
||||||
print $langs->trans("EMail").' <input type="email" class="flat" name="testsubscribeemail" value="'.GETPOST('testsubscribeemail').'"> <input class="button" type="submit" value="'.$langs->trans("Test").'"><br>';
|
print $langs->trans("EMail").' <input type="email" class="flat" name="testsubscribeemail" value="'.GETPOST('testsubscribeemail').'"> <input class="button" type="submit" value="'.$langs->trans("Test").'"><br>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|
||||||
print '<form action="'.$_SERVER["PHP_SELF"].'">';
|
print '<form action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
print '<input type="hidden" name="action" value="testunsubscribe">';
|
print '<input type="hidden" name="action" value="testunsubscribe">';
|
||||||
|
|
||||||
print $langs->trans("TestUnSubscribe").'<br>';
|
print $langs->trans("TestUnSubscribe").'<br>';
|
||||||
print $langs->trans("EMail").' <input type="email" class="flat" name="testunsubscribeemail" value="'.GETPOST('testunsubscribeemail').'"> <input class="button" type="submit" value="'.$langs->trans("Test").'"><br>';
|
print $langs->trans("EMail").' <input type="email" class="flat" name="testunsubscribeemail" value="'.GETPOST('testunsubscribeemail').'"> <input class="button" type="submit" value="'.$langs->trans("Test").'"><br>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -123,8 +123,10 @@ $head = mailmanspip_admin_prepare_head();
|
|||||||
if (! empty($conf->global->ADHERENT_USE_SPIP))
|
if (! empty($conf->global->ADHERENT_USE_SPIP))
|
||||||
{
|
{
|
||||||
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
|
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
|
||||||
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
print '<input type="hidden" name="action" value="update">';
|
||||||
|
|
||||||
dol_fiche_head($head, 'spip', $langs->trans("Setup"), 0, 'user');
|
dol_fiche_head($head, 'spip', $langs->trans("Setup"), -1, 'user');
|
||||||
|
|
||||||
//$link=img_picto($langs->trans("Active"),'tick').' ';
|
//$link=img_picto($langs->trans("Active"),'tick').' ';
|
||||||
$link='<a href="'.$_SERVER["PHP_SELF"].'?action=unset&value=0&name=ADHERENT_USE_SPIP">';
|
$link='<a href="'.$_SERVER["PHP_SELF"].'?action=unset&value=0&name=ADHERENT_USE_SPIP">';
|
||||||
|
|||||||
@ -103,14 +103,14 @@ print '<br>';
|
|||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print "<td>".$langs->trans("RuleForStockManagementDecrease")."</td>\n";
|
print "<td>".$langs->trans("RuleForStockManagementDecrease")."</td>\n";
|
||||||
print '<td align="center">'.$langs->trans("Status").'</td>'."\n";
|
print '<td class="right">'.$langs->trans("Status").'</td>'."\n";
|
||||||
print '</tr>'."\n";
|
print '</tr>'."\n";
|
||||||
|
|
||||||
$found=0;
|
$found=0;
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.$langs->trans("DeStockOnBill").'</td>';
|
print '<td>'.$langs->trans("DeStockOnBill").'</td>';
|
||||||
print '<td align="center">';
|
print '<td class="right">';
|
||||||
if (! empty($conf->facture->enabled))
|
if (! empty($conf->facture->enabled))
|
||||||
{
|
{
|
||||||
if ($conf->use_javascript_ajax) {
|
if ($conf->use_javascript_ajax) {
|
||||||
@ -130,7 +130,7 @@ $found++;
|
|||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.$langs->trans("DeStockOnValidateOrder").'</td>';
|
print '<td>'.$langs->trans("DeStockOnValidateOrder").'</td>';
|
||||||
print '<td align="center">';
|
print '<td class="right">';
|
||||||
if (! empty($conf->commande->enabled))
|
if (! empty($conf->commande->enabled))
|
||||||
{
|
{
|
||||||
if ($conf->use_javascript_ajax) {
|
if ($conf->use_javascript_ajax) {
|
||||||
@ -152,7 +152,7 @@ $found++;
|
|||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.$langs->trans("DeStockOnShipment").'</td>';
|
print '<td>'.$langs->trans("DeStockOnShipment").'</td>';
|
||||||
print '<td align="center">';
|
print '<td class="right">';
|
||||||
if (! empty($conf->expedition->enabled))
|
if (! empty($conf->expedition->enabled))
|
||||||
{
|
{
|
||||||
if ($conf->use_javascript_ajax) {
|
if ($conf->use_javascript_ajax) {
|
||||||
@ -172,7 +172,7 @@ $found++;
|
|||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.$langs->trans("DeStockOnShipmentOnClosing").'</td>';
|
print '<td>'.$langs->trans("DeStockOnShipmentOnClosing").'</td>';
|
||||||
print '<td align="center">';
|
print '<td class="right">';
|
||||||
if (! empty($conf->expedition->enabled))
|
if (! empty($conf->expedition->enabled))
|
||||||
{
|
{
|
||||||
if ($conf->use_javascript_ajax) {
|
if ($conf->use_javascript_ajax) {
|
||||||
@ -205,14 +205,14 @@ print '<br>';
|
|||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print "<td>".$langs->trans("RuleForStockManagementIncrease")."</td>\n";
|
print "<td>".$langs->trans("RuleForStockManagementIncrease")."</td>\n";
|
||||||
print '<td align="center">'.$langs->trans("Status").'</td>'."\n";
|
print '<td class="right">'.$langs->trans("Status").'</td>'."\n";
|
||||||
print '</tr>'."\n";
|
print '</tr>'."\n";
|
||||||
|
|
||||||
$found=0;
|
$found=0;
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.$langs->trans("ReStockOnBill").'</td>';
|
print '<td>'.$langs->trans("ReStockOnBill").'</td>';
|
||||||
print '<td align="center">';
|
print '<td class="right">';
|
||||||
if (! empty($conf->fournisseur->enabled))
|
if (! empty($conf->fournisseur->enabled))
|
||||||
{
|
{
|
||||||
if ($conf->use_javascript_ajax) {
|
if ($conf->use_javascript_ajax) {
|
||||||
@ -233,7 +233,7 @@ $found++;
|
|||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.$langs->trans("ReStockOnValidateOrder").'</td>';
|
print '<td>'.$langs->trans("ReStockOnValidateOrder").'</td>';
|
||||||
print '<td align="center">';
|
print '<td class="right">';
|
||||||
if (! empty($conf->fournisseur->enabled))
|
if (! empty($conf->fournisseur->enabled))
|
||||||
{
|
{
|
||||||
if ($conf->use_javascript_ajax) {
|
if ($conf->use_javascript_ajax) {
|
||||||
@ -253,8 +253,8 @@ $found++;
|
|||||||
if (!empty($conf->reception->enabled))
|
if (!empty($conf->reception->enabled))
|
||||||
{
|
{
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td width="60%">'.$langs->trans("StockOnReception").'</td>';
|
print '<td>'.$langs->trans("StockOnReception").'</td>';
|
||||||
print '<td align="center">';
|
print '<td class="right">';
|
||||||
|
|
||||||
if ($conf->use_javascript_ajax) {
|
if ($conf->use_javascript_ajax) {
|
||||||
print ajax_constantonoff('STOCK_CALCULATE_ON_RECEPTION');
|
print ajax_constantonoff('STOCK_CALCULATE_ON_RECEPTION');
|
||||||
@ -268,8 +268,8 @@ if ($conf->use_javascript_ajax) {
|
|||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td width="60%">'.$langs->trans("StockOnReceptionOnClosing").'</td>';
|
print '<td>'.$langs->trans("StockOnReceptionOnClosing").'</td>';
|
||||||
print '<td align="center">';
|
print '<td class="right">';
|
||||||
|
|
||||||
if ($conf->use_javascript_ajax) {
|
if ($conf->use_javascript_ajax) {
|
||||||
print ajax_constantonoff('STOCK_CALCULATE_ON_RECEPTION_CLOSE');
|
print ajax_constantonoff('STOCK_CALCULATE_ON_RECEPTION_CLOSE');
|
||||||
@ -284,7 +284,7 @@ else
|
|||||||
{
|
{
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.$langs->trans("ReStockOnDispatchOrder").'</td>';
|
print '<td>'.$langs->trans("ReStockOnDispatchOrder").'</td>';
|
||||||
print '<td align="center">';
|
print '<td class="right">';
|
||||||
if (! empty($conf->fournisseur->enabled))
|
if (! empty($conf->fournisseur->enabled))
|
||||||
{
|
{
|
||||||
if ($conf->use_javascript_ajax) {
|
if ($conf->use_javascript_ajax) {
|
||||||
@ -313,16 +313,17 @@ if ($conf->use_javascript_ajax) {
|
|||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print "<td>".$langs->trans("RuleForStockAvailability")."</td>\n";
|
print "<td>".$langs->trans("RuleForStockAvailability")."</td>\n";
|
||||||
print '<td align="center">'.$langs->trans("Status").'</td>'."\n";
|
print '<td class="right">'.$langs->trans("Status").'</td>'."\n";
|
||||||
print '</tr>'."\n";
|
print '</tr>'."\n";
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.$langs->trans("WarehouseAllowNegativeTransfer").'</td>';
|
print '<td>'.$langs->trans("WarehouseAllowNegativeTransfer").'</td>';
|
||||||
print '<td align="center">';
|
print '<td class="right">';
|
||||||
if ($conf->use_javascript_ajax) {
|
if ($conf->use_javascript_ajax) {
|
||||||
print ajax_constantonoff('STOCK_ALLOW_NEGATIVE_TRANSFER');
|
print ajax_constantonoff('STOCK_ALLOW_NEGATIVE_TRANSFER');
|
||||||
} else {
|
} else {
|
||||||
@ -337,7 +338,7 @@ if($conf->invoice->enabled)
|
|||||||
{
|
{
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.$langs->trans("StockMustBeEnoughForInvoice").'</td>';
|
print '<td>'.$langs->trans("StockMustBeEnoughForInvoice").'</td>';
|
||||||
print '<td align="center">';
|
print '<td class="right">';
|
||||||
if ($conf->use_javascript_ajax) {
|
if ($conf->use_javascript_ajax) {
|
||||||
print ajax_constantonoff('STOCK_MUST_BE_ENOUGH_FOR_INVOICE');
|
print ajax_constantonoff('STOCK_MUST_BE_ENOUGH_FOR_INVOICE');
|
||||||
} else {
|
} else {
|
||||||
@ -352,7 +353,7 @@ if($conf->order->enabled)
|
|||||||
{
|
{
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.$langs->trans("StockMustBeEnoughForOrder").'</td>';
|
print '<td>'.$langs->trans("StockMustBeEnoughForOrder").'</td>';
|
||||||
print '<td align="center">';
|
print '<td class="right">';
|
||||||
if ($conf->use_javascript_ajax) {
|
if ($conf->use_javascript_ajax) {
|
||||||
print ajax_constantonoff('STOCK_MUST_BE_ENOUGH_FOR_ORDER');
|
print ajax_constantonoff('STOCK_MUST_BE_ENOUGH_FOR_ORDER');
|
||||||
} else {
|
} else {
|
||||||
@ -367,7 +368,7 @@ if($conf->expedition->enabled)
|
|||||||
{
|
{
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.$langs->trans("StockMustBeEnoughForShipment").'</td>';
|
print '<td>'.$langs->trans("StockMustBeEnoughForShipment").'</td>';
|
||||||
print '<td align="center">';
|
print '<td class="right">';
|
||||||
if ($conf->use_javascript_ajax) {
|
if ($conf->use_javascript_ajax) {
|
||||||
print ajax_constantonoff('STOCK_MUST_BE_ENOUGH_FOR_SHIPMENT');
|
print ajax_constantonoff('STOCK_MUST_BE_ENOUGH_FOR_SHIPMENT');
|
||||||
} else {
|
} else {
|
||||||
@ -391,12 +392,12 @@ if ($virtualdiffersfromphysical)
|
|||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print "<td>".$langs->trans("RuleForStockReplenishment")." ".img_help('help', $langs->trans("VirtualDiffersFromPhysical"))."</td>\n";
|
print "<td>".$langs->trans("RuleForStockReplenishment")." ".img_help('help', $langs->trans("VirtualDiffersFromPhysical"))."</td>\n";
|
||||||
print '<td align="center">'.$langs->trans("Status").'</td>'."\n";
|
print '<td class="right">'.$langs->trans("Status").'</td>'."\n";
|
||||||
print '</tr>'."\n";
|
print '</tr>'."\n";
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.$langs->trans("UseVirtualStockByDefault").'</td>';
|
print '<td>'.$langs->trans("UseVirtualStockByDefault").'</td>';
|
||||||
print '<td align="center">';
|
print '<td class="right">';
|
||||||
if ($conf->use_javascript_ajax) {
|
if ($conf->use_javascript_ajax) {
|
||||||
print ajax_constantonoff('STOCK_USE_VIRTUAL_STOCK');
|
print ajax_constantonoff('STOCK_USE_VIRTUAL_STOCK');
|
||||||
} else {
|
} else {
|
||||||
@ -414,12 +415,12 @@ print '<table class="noborder" width="100%">';
|
|||||||
|
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print "<td>".$langs->trans("Other")."</td>\n";
|
print "<td>".$langs->trans("Other")."</td>\n";
|
||||||
print '<td class="center">'.$langs->trans("Status").'</td>'."\n";
|
print '<td class="right">'.$langs->trans("Status").'</td>'."\n";
|
||||||
print '</tr>'."\n";
|
print '</tr>'."\n";
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.$langs->trans("UserWarehouseAutoCreate").'</td>';
|
print '<td>'.$langs->trans("UserWarehouseAutoCreate").'</td>';
|
||||||
print '<td class="center">';
|
print '<td class="right">';
|
||||||
if ($conf->use_javascript_ajax) {
|
if ($conf->use_javascript_ajax) {
|
||||||
print ajax_constantonoff('STOCK_USERSTOCK_AUTOCREATE');
|
print ajax_constantonoff('STOCK_USERSTOCK_AUTOCREATE');
|
||||||
} else {
|
} else {
|
||||||
@ -433,7 +434,7 @@ print '<tr class="oddeven">';
|
|||||||
print '<td>';
|
print '<td>';
|
||||||
print $form->textwithpicto($langs->trans("StockSupportServices"), $langs->trans("StockSupportServicesDesc"));
|
print $form->textwithpicto($langs->trans("StockSupportServices"), $langs->trans("StockSupportServicesDesc"));
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td class="center">';
|
print '<td class="right">';
|
||||||
if ($conf->use_javascript_ajax) {
|
if ($conf->use_javascript_ajax) {
|
||||||
print ajax_constantonoff('STOCK_SUPPORTS_SERVICES');
|
print ajax_constantonoff('STOCK_SUPPORTS_SERVICES');
|
||||||
} else {
|
} else {
|
||||||
@ -445,7 +446,7 @@ print "</tr>\n";
|
|||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.$langs->trans("AllowAddLimitStockByWarehouse").'</td>';
|
print '<td>'.$langs->trans("AllowAddLimitStockByWarehouse").'</td>';
|
||||||
print '<td class="center">';
|
print '<td class="right">';
|
||||||
if ($conf->use_javascript_ajax) {
|
if ($conf->use_javascript_ajax) {
|
||||||
print ajax_constantonoff('STOCK_ALLOW_ADD_LIMIT_STOCK_BY_WAREHOUSE');
|
print ajax_constantonoff('STOCK_ALLOW_ADD_LIMIT_STOCK_BY_WAREHOUSE');
|
||||||
} else {
|
} else {
|
||||||
@ -455,19 +456,6 @@ if ($conf->use_javascript_ajax) {
|
|||||||
print "</td>\n";
|
print "</td>\n";
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
if (! empty($conf->fournisseur->enabled) && !empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER)) {
|
|
||||||
print '<tr class="oddeven">';
|
|
||||||
print '<td>'.$langs->trans("UseDispatchStatus").'</td>';
|
|
||||||
print '<td class="center">';
|
|
||||||
if ($conf->use_javascript_ajax) {
|
|
||||||
print ajax_constantonoff('SUPPLIER_ORDER_USE_DISPATCH_STATUS');
|
|
||||||
} else {
|
|
||||||
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
|
||||||
print $form->selectarray("SUPPLIER_ORDER_USE_DISPATCH_STATUS", $arrval, $conf->global->SUPPLIER_ORDER_USE_DISPATCH_STATUS);
|
|
||||||
}
|
|
||||||
print "</td>\n</tr>\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
@ -476,43 +464,45 @@ if ($conf->global->MAIN_FEATURES_LEVEL >= 2)
|
|||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td>'.$langs->trans("Inventory").'</td>'."\n";
|
print '<td>'.$langs->trans("Inventory").'</td>'."\n";
|
||||||
print '<td align="center">'.$langs->trans("Status").'</td>'."\n";
|
print '<td class="right">'.$langs->trans("Status").'</td>'."\n";
|
||||||
print '</tr>'."\n";
|
print '</tr>'."\n";
|
||||||
|
|
||||||
// Example with a yes / no select
|
// Example with a yes / no select
|
||||||
print '<tr class="oddeven">';
|
/*print '<tr class="oddeven">';
|
||||||
print '<td>'.$langs->trans("INVENTORY_DISABLE_VIRTUAL").'</td>';
|
print '<td>'.$langs->trans("INVENTORY_DISABLE_VIRTUAL").'</td>';
|
||||||
print '<td align="center">';
|
print '<td align="center">';
|
||||||
if ($conf->use_javascript_ajax) {
|
if ($conf->use_javascript_ajax) {
|
||||||
print ajax_constantonoff('INVENTORY_DISABLE_VIRTUAL');
|
print ajax_constantonoff('INVENTORY_DISABLE_VIRTUAL');
|
||||||
} else {
|
} else {
|
||||||
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||||
print $form->selectarray("INVENTORY_DISABLE_VIRTUAL", $arrval, $conf->global->INVENTORY_DISABLE_VIRTUAL);
|
print $form->selectarray("INVENTORY_DISABLE_VIRTUAL", $arrval, $conf->global->INVENTORY_DISABLE_VIRTUAL);
|
||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
*/
|
||||||
|
|
||||||
// Example with a yes / no select
|
// Example with a yes / no select
|
||||||
print '<tr class="oddeven">';
|
/*print '<tr class="oddeven">';
|
||||||
print '<td>'.$langs->trans("INVENTORY_USE_MIN_PA_IF_NO_LAST_PA").'</td>';
|
print '<td>'.$langs->trans("INVENTORY_USE_MIN_PA_IF_NO_LAST_PA").'</td>';
|
||||||
print '<td align="center">';
|
print '<td align="center">';
|
||||||
if ($conf->use_javascript_ajax) {
|
if ($conf->use_javascript_ajax) {
|
||||||
print ajax_constantonoff('INVENTORY_USE_MIN_PA_IF_NO_LAST_PA');
|
print ajax_constantonoff('INVENTORY_USE_MIN_PA_IF_NO_LAST_PA');
|
||||||
} else {
|
} else {
|
||||||
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||||
print $form->selectarray("INVENTORY_USE_MIN_PA_IF_NO_LAST_PA", $arrval, $conf->global->INVENTORY_USE_MIN_PA_IF_NO_LAST_PA);
|
print $form->selectarray("INVENTORY_USE_MIN_PA_IF_NO_LAST_PA", $arrval, $conf->global->INVENTORY_USE_MIN_PA_IF_NO_LAST_PA);
|
||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
*/
|
||||||
|
|
||||||
// Example with a yes / no select
|
// Example with a yes / no select
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.$langs->trans("INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT").'</td>';
|
print '<td>'.$langs->trans("INVENTORY_USE_INVENTORY_DATE_FOR_DATE_OF_MVT").'</td>';
|
||||||
print '<td align="center">';
|
print '<td class="right">';
|
||||||
if ($conf->use_javascript_ajax) {
|
if ($conf->use_javascript_ajax) {
|
||||||
print ajax_constantonoff('INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT');
|
print ajax_constantonoff('INVENTORY_USE_INVENTORY_DATE_FOR_DATE_OF_MVT');
|
||||||
} else {
|
} else {
|
||||||
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||||
print $form->selectarray("INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT", $arrval, $conf->global->INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT);
|
print $form->selectarray("INVENTORY_USE_INVENTORY_DATE_FOR_DATE_OF_MVT", $arrval, $conf->global->INVENTORY_USE_INVENTORY_DATE_FOR_DATE_OF_MVT);
|
||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|||||||
@ -35,7 +35,7 @@ require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php';
|
||||||
|
|
||||||
// Load translation files required by the page
|
// Load translation files required by the page
|
||||||
$langs->loadLangs(array("admin", "other", "orders"));
|
$langs->loadLangs(array("admin", "other", "orders", "stocks"));
|
||||||
|
|
||||||
if (!$user->admin)
|
if (!$user->admin)
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
@ -494,20 +494,16 @@ print '<td>'.$langs->trans("Parameter").'</td>';
|
|||||||
print '<td align="center" width="60">'.$langs->trans("Value").'</td>';
|
print '<td align="center" width="60">'.$langs->trans("Value").'</td>';
|
||||||
print '<td width="80"> </td>';
|
print '<td width="80"> </td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
$var=false;
|
|
||||||
|
|
||||||
//if ($conf->global->MAIN_FEATURES_LEVEL > 0)
|
print '<tr class="oddeven"><td>';
|
||||||
//{
|
print $form->textwithpicto($langs->trans("UseDoubleApproval"), $langs->trans("Use3StepsApproval"), 1, 'help').'<br>';
|
||||||
print '<tr class="oddeven"><td>';
|
print $langs->trans("IfSetToYesDontForgetPermission");
|
||||||
print $form->textwithpicto($langs->trans("UseDoubleApproval"), $langs->trans("Use3StepsApproval"), 1, 'help').'<br>';
|
print '</td><td>';
|
||||||
print $langs->trans("IfSetToYesDontForgetPermission");
|
print '<input type="text" size="6" name="SUPPLIER_ORDER_3_STEPS_TO_BE_APPROVED" value="'.$conf->global->SUPPLIER_ORDER_3_STEPS_TO_BE_APPROVED.'">';
|
||||||
print '</td><td>';
|
print '</td><td class="right">';
|
||||||
print '<input type="text" size="6" name="SUPPLIER_ORDER_3_STEPS_TO_BE_APPROVED" value="'.$conf->global->SUPPLIER_ORDER_3_STEPS_TO_BE_APPROVED.'">';
|
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
|
||||||
print '</td><td class="right">';
|
print "</td></tr>\n";
|
||||||
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
|
|
||||||
print "</td></tr>\n";
|
|
||||||
|
|
||||||
//}
|
|
||||||
|
|
||||||
// Ask for payment bank during supplier order
|
// Ask for payment bank during supplier order
|
||||||
/* Kept as hidden for the moment
|
/* Kept as hidden for the moment
|
||||||
@ -564,12 +560,32 @@ print '</td><td class="right">';
|
|||||||
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
|
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
|
||||||
print "</td></tr>\n";
|
print "</td></tr>\n";
|
||||||
|
|
||||||
|
// Option to add a quality/validation step, on products, after reception.
|
||||||
|
print '<tr class="oddeven">';
|
||||||
|
print '<td>'.$langs->trans("UseDispatchStatus").'</td>';
|
||||||
|
print '<td></td>';
|
||||||
|
print '<td class="center">';
|
||||||
|
if ($conf->reception->enabled)
|
||||||
|
{
|
||||||
|
print '<span class="opacitymedium">'.$langs->trans("FeatureNotAvailableWithReceptionModule").'</span>';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ($conf->use_javascript_ajax) {
|
||||||
|
print ajax_constantonoff('SUPPLIER_ORDER_USE_DISPATCH_STATUS');
|
||||||
|
} else {
|
||||||
|
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||||
|
print $form->selectarray("SUPPLIER_ORDER_USE_DISPATCH_STATUS", $arrval, $conf->global->SUPPLIER_ORDER_USE_DISPATCH_STATUS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print "</td>\n";
|
||||||
|
print "</tr>\n";
|
||||||
|
|
||||||
print '</table><br>';
|
print '</table><br>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Notifications
|
* Notifications
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -44,15 +44,18 @@ $object->fetch($id);
|
|||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* View
|
* View
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
$form = new Form($db);
|
||||||
|
|
||||||
$title = $langs->trans('Asset') . " - " . $langs->trans('Info');
|
$title = $langs->trans('Asset') . " - " . $langs->trans('Info');
|
||||||
$helpurl = "";
|
$helpurl = "";
|
||||||
llxHeader('', $title, $helpurl);
|
llxHeader('', $title, $helpurl);
|
||||||
|
|
||||||
$form = new Form($db);
|
|
||||||
|
|
||||||
$object->info($id);
|
$object->info($id);
|
||||||
|
|
||||||
$head = asset_prepare_head($object);
|
$head = asset_prepare_head($object);
|
||||||
|
|||||||
@ -101,7 +101,7 @@ class Boms extends DolibarrApi
|
|||||||
$obj_ret = array();
|
$obj_ret = array();
|
||||||
$tmpobject = new BOM($db);
|
$tmpobject = new BOM($db);
|
||||||
|
|
||||||
$socid = DolibarrApiAccess::$user->societe_id ? DolibarrApiAccess::$user->societe_id : '';
|
$socid = DolibarrApiAccess::$user->socid ? DolibarrApiAccess::$user->socid : '';
|
||||||
|
|
||||||
$restrictonsocid = 0; // Set to 1 if there is a field socid in table of object
|
$restrictonsocid = 0; // Set to 1 if there is a field socid in table of object
|
||||||
|
|
||||||
|
|||||||
@ -147,7 +147,7 @@ if ($action == 'classin' && ($user->rights->agenda->allactions->create ||
|
|||||||
(($object->authorid == $user->id || $object->userownerid == $user->id) && $user->rights->agenda->myactions->create)))
|
(($object->authorid == $user->id || $object->userownerid == $user->id) && $user->rights->agenda->myactions->create)))
|
||||||
{
|
{
|
||||||
$object->fetch($id);
|
$object->fetch($id);
|
||||||
$object->setProject(GETPOST('projectid'));
|
$object->setProject(GETPOST('projectid', 'int'));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Action clone object
|
// Action clone object
|
||||||
@ -165,7 +165,7 @@ if ($action == 'confirm_clone' && $confirm == 'yes')
|
|||||||
reset($object->socpeopleassigned);
|
reset($object->socpeopleassigned);
|
||||||
$object->contactid = key($object->socpeopleassigned);
|
$object->contactid = key($object->socpeopleassigned);
|
||||||
}
|
}
|
||||||
$result = $object->createFromClone($user, GETPOST('fk_userowner'), GETPOST('socid'));
|
$result = $object->createFromClone($user, GETPOST('socid', 'int'));
|
||||||
if ($result > 0) {
|
if ($result > 0) {
|
||||||
header("Location: " . $_SERVER['PHP_SELF'] . '?id=' . $result);
|
header("Location: " . $_SERVER['PHP_SELF'] . '?id=' . $result);
|
||||||
exit();
|
exit();
|
||||||
|
|||||||
@ -103,7 +103,7 @@ class Proposals extends DolibarrApi
|
|||||||
$obj_ret = array();
|
$obj_ret = array();
|
||||||
|
|
||||||
// case of external user, $thirdparty_ids param is ignored and replaced by user's socid
|
// case of external user, $thirdparty_ids param is ignored and replaced by user's socid
|
||||||
$socids = DolibarrApiAccess::$user->societe_id ? DolibarrApiAccess::$user->societe_id : $thirdparty_ids;
|
$socids = DolibarrApiAccess::$user->socid ? DolibarrApiAccess::$user->socid : $thirdparty_ids;
|
||||||
|
|
||||||
// If the internal user must only see his customers, force searching by him
|
// If the internal user must only see his customers, force searching by him
|
||||||
$search_sale = 0;
|
$search_sale = 0;
|
||||||
|
|||||||
@ -107,7 +107,7 @@ class Orders extends DolibarrApi
|
|||||||
$obj_ret = array();
|
$obj_ret = array();
|
||||||
|
|
||||||
// case of external user, $thirdparty_ids param is ignored and replaced by user's socid
|
// case of external user, $thirdparty_ids param is ignored and replaced by user's socid
|
||||||
$socids = DolibarrApiAccess::$user->societe_id ? DolibarrApiAccess::$user->societe_id : $thirdparty_ids;
|
$socids = DolibarrApiAccess::$user->socid ? DolibarrApiAccess::$user->socid : $thirdparty_ids;
|
||||||
|
|
||||||
// If the internal user must only see his customers, force searching by him
|
// If the internal user must only see his customers, force searching by him
|
||||||
$search_sale = 0;
|
$search_sale = 0;
|
||||||
|
|||||||
@ -81,8 +81,8 @@ if (count($linkedObjectBlock) > 1)
|
|||||||
<tr class="liste_total <?php echo (empty($noMoreLinkedObjectBlockAfter)?'liste_sub_total':''); ?>">
|
<tr class="liste_total <?php echo (empty($noMoreLinkedObjectBlockAfter)?'liste_sub_total':''); ?>">
|
||||||
<td><?php echo $langs->trans("Total"); ?></td>
|
<td><?php echo $langs->trans("Total"); ?></td>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td align="center"></td>
|
<td class="center"></td>
|
||||||
<td align="center"></td>
|
<td class="center"></td>
|
||||||
<td class="right"><?php echo price($total); ?></td>
|
<td class="right"><?php echo price($total); ?></td>
|
||||||
<td class="right"></td>
|
<td class="right"></td>
|
||||||
<td class="right"></td>
|
<td class="right"></td>
|
||||||
|
|||||||
@ -112,7 +112,7 @@ class Invoices extends DolibarrApi
|
|||||||
$obj_ret = array();
|
$obj_ret = array();
|
||||||
|
|
||||||
// case of external user, $thirdparty_ids param is ignored and replaced by user's socid
|
// case of external user, $thirdparty_ids param is ignored and replaced by user's socid
|
||||||
$socids = DolibarrApiAccess::$user->societe_id ? DolibarrApiAccess::$user->societe_id : $thirdparty_ids;
|
$socids = DolibarrApiAccess::$user->socid ? DolibarrApiAccess::$user->socid : $thirdparty_ids;
|
||||||
|
|
||||||
// If the internal user must only see his customers, force searching by him
|
// If the internal user must only see his customers, force searching by him
|
||||||
$search_sale = 0;
|
$search_sale = 0;
|
||||||
|
|||||||
@ -170,7 +170,7 @@ $amountcust=$langs->trans("AmountHT");
|
|||||||
$vatcust=$langs->trans("VATReceived");
|
$vatcust=$langs->trans("VATReceived");
|
||||||
$namecust=$langs->trans("Name");
|
$namecust=$langs->trans("Name");
|
||||||
if ($mysoc->tva_assuj) {
|
if ($mysoc->tva_assuj) {
|
||||||
$vatcust.=' ('.$langs->trans("ToPay").')';
|
$vatcust.=' ('.$langs->trans("StatusToPay").')';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Suppliers invoices
|
// Suppliers invoices
|
||||||
|
|||||||
@ -239,6 +239,23 @@ if ($id > 0 || $ref)
|
|||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
|
||||||
|
|
||||||
|
$formconfirm = '';
|
||||||
|
|
||||||
|
// Confirmation to delete
|
||||||
|
if ($action == 'delete')
|
||||||
|
{
|
||||||
|
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('Delete'), $langs->trans('ConfirmDeleteObject'), 'confirm_delete', '', 0, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Call Hook formConfirm
|
||||||
|
/*$parameters = array();
|
||||||
|
$reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
|
||||||
|
if (empty($reshook)) $formconfirm.=$hookmanager->resPrint;
|
||||||
|
elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint;*/
|
||||||
|
|
||||||
|
// Print form confirm
|
||||||
|
print $formconfirm;
|
||||||
|
|
||||||
|
|
||||||
if (empty($object->date_trans) && $user->rights->prelevement->bons->send && $action=='settransmitted')
|
if (empty($object->date_trans) && $user->rights->prelevement->bons->send && $action=='settransmitted')
|
||||||
{
|
{
|
||||||
@ -298,7 +315,7 @@ if ($id > 0 || $ref)
|
|||||||
print "<a class=\"butAction\" href=\"card.php?action=setcredited&id=".$object->id."\">".$langs->trans("ClassCredited")."</a>";
|
print "<a class=\"butAction\" href=\"card.php?action=setcredited&id=".$object->id."\">".$langs->trans("ClassCredited")."</a>";
|
||||||
}
|
}
|
||||||
|
|
||||||
print "<a class=\"butActionDelete\" href=\"card.php?action=confirm_delete&id=".$object->id."\">".$langs->trans("Delete")."</a>";
|
print "<a class=\"butActionDelete\" href=\"card.php?action=delete&id=".$object->id."\">".$langs->trans("Delete")."</a>";
|
||||||
|
|
||||||
print "</div>";
|
print "</div>";
|
||||||
}
|
}
|
||||||
@ -356,8 +373,6 @@ if ($id > 0 || $ref)
|
|||||||
print_liste_field_titre('');
|
print_liste_field_titre('');
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
$var=false;
|
|
||||||
|
|
||||||
$total = 0;
|
$total = 0;
|
||||||
|
|
||||||
while ($i < min($num, $conf->liste_limit))
|
while ($i < min($num, $conf->liste_limit))
|
||||||
@ -406,7 +421,10 @@ if ($id > 0 || $ref)
|
|||||||
print '<td>'.$langs->trans("Total").'</td>';
|
print '<td>'.$langs->trans("Total").'</td>';
|
||||||
print '<td> </td>';
|
print '<td> </td>';
|
||||||
print '<td class="right">';
|
print '<td class="right">';
|
||||||
if ($total != $object->amount) print img_warning("AmountOfFileDiffersFromSumOfInvoices");
|
if (empty($offset) && $num <= $limit) // If we have all record on same page, then the following test/warning can be done
|
||||||
|
{
|
||||||
|
if ($total != $object->amount) print img_warning("TotalAmountOfdirectDebitOrderDiffersFromSumOfLines");
|
||||||
|
}
|
||||||
print price($total);
|
print price($total);
|
||||||
print "</td>\n";
|
print "</td>\n";
|
||||||
print '<td> </td>';
|
print '<td> </td>';
|
||||||
|
|||||||
@ -739,14 +739,13 @@ class BonPrelevement extends CommonObject
|
|||||||
$sql = "SELECT count(f.rowid) as nb";
|
$sql = "SELECT count(f.rowid) as nb";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."facture as f";
|
$sql.= " FROM ".MAIN_DB_PREFIX."facture as f";
|
||||||
$sql.= ", ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
|
$sql.= ", ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
|
||||||
$sql.= " WHERE f.fk_statut = 1";
|
$sql.= " WHERE f.fk_statut = ".Facture::STATUS_VALIDATED;
|
||||||
$sql.= " AND f.entity IN (".getEntity('invoice').")";
|
$sql.= " AND f.entity IN (".getEntity('invoice').")";
|
||||||
$sql.= " AND f.rowid = pfd.fk_facture";
|
$sql.= " AND f.rowid = pfd.fk_facture";
|
||||||
$sql.= " AND f.paye = 0";
|
|
||||||
$sql.= " AND pfd.traite = 0";
|
$sql.= " AND pfd.traite = 0";
|
||||||
$sql.= " AND f.total_ttc > 0";
|
$sql.= " AND f.total_ttc > 0";
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::SommeAPrelever");
|
dol_syslog(get_class($this)."::NbFactureAPrelever");
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
|
|
||||||
if ( $resql )
|
if ( $resql )
|
||||||
@ -759,7 +758,7 @@ class BonPrelevement extends CommonObject
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$this->error=get_class($this)."::SommeAPrelever Erreur -1 sql=".$this->db->error();
|
$this->error=get_class($this)."::NbFactureAPrelever Erreur -1 sql=".$this->db->error();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -798,8 +797,6 @@ class BonPrelevement extends CommonObject
|
|||||||
$month = strftime("%m", $datetimeprev);
|
$month = strftime("%m", $datetimeprev);
|
||||||
$year = strftime("%Y", $datetimeprev);
|
$year = strftime("%Y", $datetimeprev);
|
||||||
|
|
||||||
$puser = new User($this->db, $conf->global->PRELEVEMENT_USER);
|
|
||||||
|
|
||||||
$this->invoice_in_error = array();
|
$this->invoice_in_error = array();
|
||||||
$this->thirdparty_in_error = array();
|
$this->thirdparty_in_error = array();
|
||||||
|
|
||||||
@ -1631,8 +1628,8 @@ class BonPrelevement extends CommonObject
|
|||||||
public static function buildRumNumber($row_code_client, $row_datec, $row_drum)
|
public static function buildRumNumber($row_code_client, $row_datec, $row_drum)
|
||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
$pre = $langs->trans('RUM').'-';
|
$pre = substr(dol_string_nospecial(dol_string_unaccent($langs->transnoentitiesnoconv('RUM'))), 0, 3); // Must always be on 3 char ('RUM' or 'UMR'. This is a protection against bad translation)
|
||||||
return $pre.$row_code_client.'-'.$row_drum.'-'.date('U', $row_datec);
|
return $pre.'-'.$row_code_client.'-'.$row_drum.'-'.date('U', $row_datec);
|
||||||
}
|
}
|
||||||
|
|
||||||
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||||
|
|||||||
@ -37,7 +37,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/prelevement.lib.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
|
||||||
|
|
||||||
// Load translation files required by the page
|
// Load translation files required by the page
|
||||||
$langs->loadLangs(array('banks', 'categories', 'widthdrawals', 'companies', 'bills'));
|
$langs->loadLangs(array('banks', 'categories', 'withdrawals', 'companies', 'bills'));
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if ($user->societe_id) $socid=$user->societe_id;
|
if ($user->societe_id) $socid=$user->societe_id;
|
||||||
@ -105,6 +105,7 @@ if (empty($reshook))
|
|||||||
/*
|
/*
|
||||||
* View
|
* View
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$form = new Form($db);
|
$form = new Form($db);
|
||||||
|
|
||||||
$thirdpartystatic=new Societe($db);
|
$thirdpartystatic=new Societe($db);
|
||||||
@ -207,9 +208,11 @@ $sql.= " ".MAIN_DB_PREFIX."societe as s,";
|
|||||||
$sql.= " ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
|
$sql.= " ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
|
||||||
$sql.= " WHERE s.rowid = f.fk_soc";
|
$sql.= " WHERE s.rowid = f.fk_soc";
|
||||||
$sql.= " AND f.entity IN (".getEntity('invoice').")";
|
$sql.= " AND f.entity IN (".getEntity('invoice').")";
|
||||||
|
$sql.= " AND f.fk_statut = ".Facture::STATUS_VALIDATED;
|
||||||
|
$sql.= " AND f.total_ttc > 0";
|
||||||
$sql.= " AND pfd.traite = 0";
|
$sql.= " AND pfd.traite = 0";
|
||||||
$sql.= " AND pfd.fk_facture = f.rowid";
|
$sql.= " AND pfd.fk_facture = f.rowid";
|
||||||
if ($socid) $sql.= " AND f.fk_soc = ".$socid;
|
if ($socid > 0) $sql.= " AND f.fk_soc = ".$socid;
|
||||||
|
|
||||||
$nbtotalofrecords = '';
|
$nbtotalofrecords = '';
|
||||||
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
||||||
@ -293,7 +296,7 @@ if ($resql)
|
|||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else print '<tr '.$bc[0].'><td colspan="5" class="opacitymedium">'.$langs->trans("None").'</td></tr>';
|
else print '<tr class="oddeven"><td colspan="5" class="opacitymedium">'.$langs->trans("None").'</td></tr>';
|
||||||
print "</table>";
|
print "</table>";
|
||||||
print "</form>";
|
print "</form>";
|
||||||
print "<br>\n";
|
print "<br>\n";
|
||||||
|
|||||||
@ -35,31 +35,43 @@ $langs->loadLangs(array('banks', 'categories', 'withdrawals', 'companies'));
|
|||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
$socid = GETPOST('socid', 'int');
|
$socid = GETPOST('socid', 'int');
|
||||||
|
$status = GETPOST('status', 'int');
|
||||||
if ($user->societe_id) $socid=$user->societe_id;
|
if ($user->societe_id) $socid=$user->societe_id;
|
||||||
$result = restrictedArea($user, 'prelevement', '', '', 'bons');
|
$result = restrictedArea($user, 'prelevement', '', '', 'bons');
|
||||||
|
|
||||||
// Get supervariables
|
$contextpage= GETPOST('contextpage', 'aZ')?GETPOST('contextpage', 'aZ'):'myobjectlist'; // To manage different context of search
|
||||||
$page = GETPOST('page', 'int');
|
$backtopage = GETPOST('backtopage', 'alpha'); // Go back to a dedicated page
|
||||||
$sortorder = GETPOST('sortorder', 'alpha');
|
$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print')
|
||||||
$sortfield = GETPOST('sortfield', 'alpha');
|
|
||||||
|
|
||||||
|
// Load variable for pagination
|
||||||
$limit = GETPOST('limit', 'int')?GETPOST('limit', 'int'):$conf->liste_limit;
|
$limit = GETPOST('limit', 'int')?GETPOST('limit', 'int'):$conf->liste_limit;
|
||||||
$sortfield = GETPOST("sortfield", 'alpha');
|
$sortfield = GETPOST("sortfield", 'alpha');
|
||||||
$sortorder = GETPOST("sortorder", 'alpha');
|
$sortorder = GETPOST("sortorder", 'alpha');
|
||||||
$page = GETPOST("page", 'int');
|
$page = GETPOST("page", 'int');
|
||||||
if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1
|
if (empty($page) || $page == -1 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha') || (empty($toselect) && $massaction === '0')) { $page = 0; } // If $page is not defined, or '' or -1 or if we click on clear filters or if we select empty mass action
|
||||||
$offset = $limit * $page;
|
$offset = $limit * $page;
|
||||||
$pageprev = $page - 1;
|
$pageprev = $page - 1;
|
||||||
$pagenext = $page + 1;
|
$pagenext = $page + 1;
|
||||||
if (! $sortorder) $sortorder="DESC";
|
if (! $sortorder) $sortorder="DESC";
|
||||||
if (! $sortfield) $sortfield="f.ref";
|
if (! $sortfield) $sortfield="f.ref";
|
||||||
|
|
||||||
|
$massactionbutton = '';
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* View
|
* View
|
||||||
*/
|
*/
|
||||||
|
|
||||||
llxHeader();
|
if (!$status)
|
||||||
|
{
|
||||||
|
$title = $langs->trans("RequestStandingOrderToTreat");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$title = $langs->trans("RequestStandingOrderTreated");
|
||||||
|
}
|
||||||
|
|
||||||
|
llxHeader('', $title);
|
||||||
|
|
||||||
$thirdpartystatic=new Societe($db);
|
$thirdpartystatic=new Societe($db);
|
||||||
$invoicestatic=new Facture($db);
|
$invoicestatic=new Facture($db);
|
||||||
@ -78,95 +90,126 @@ $sql.= " WHERE s.rowid = f.fk_soc";
|
|||||||
$sql.= " AND f.entity IN (".getEntity('invoice').")";
|
$sql.= " AND f.entity IN (".getEntity('invoice').")";
|
||||||
if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
|
if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
|
||||||
if ($socid) $sql.= " AND f.fk_soc = ".$socid;
|
if ($socid) $sql.= " AND f.fk_soc = ".$socid;
|
||||||
if (!$statut) $sql.= " AND pfd.traite = 0";
|
if (!$status) $sql.= " AND pfd.traite = 0";
|
||||||
if ($statut) $sql.= " AND pfd.traite = ".$statut;
|
if ($status) $sql.= " AND pfd.traite = ".$status;
|
||||||
|
$sql.= " AND f.total_ttc > 0";
|
||||||
|
$sql.= " AND f.fk_statut = ".Facture::STATUS_VALIDATED;
|
||||||
$sql.= " AND pfd.fk_facture = f.rowid";
|
$sql.= " AND pfd.fk_facture = f.rowid";
|
||||||
if (dol_strlen(trim(GETPOST('search_societe', 'alpha'))))
|
if (dol_strlen(trim(GETPOST('search_societe', 'alpha'))))
|
||||||
{
|
{
|
||||||
$sql.= natural_search("s.nom", 'search_societe');
|
$sql.= natural_search("s.nom", 'search_societe');
|
||||||
}
|
}
|
||||||
$sql.= " ORDER BY $sortfield $sortorder ";
|
$sql.=$db->order($sortfield, $sortorder);
|
||||||
$sql.= $db->plimit($limit+1, $offset);
|
|
||||||
|
|
||||||
$resql=$db->query($sql);
|
|
||||||
if ($resql)
|
// Count total nb of records
|
||||||
|
$nbtotalofrecords = '';
|
||||||
|
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
||||||
{
|
{
|
||||||
$num = $db->num_rows($resql);
|
$resql = $db->query($sql);
|
||||||
$i = 0;
|
$nbtotalofrecords = $db->num_rows($resql);
|
||||||
|
if (($page * $limit) > $nbtotalofrecords) // if total of record found is smaller than page * limit, goto and load page 0
|
||||||
if (!$statut)
|
|
||||||
{
|
{
|
||||||
print_barre_liste($langs->trans("RequestStandingOrderToTreat"), $page, "demandes.php", $urladd, $sortfield, $sortorder, '', $num);
|
$page = 0;
|
||||||
|
$offset = 0;
|
||||||
}
|
}
|
||||||
else
|
}
|
||||||
{
|
// if total of record found is smaller than limit, no need to do paging and to restart another select with limits set.
|
||||||
print_barre_liste($langs->trans("RequestStandingOrderTreated"), $page, "demandes.php", $urladd, $sortfield, $sortorder, '', $num);
|
if (is_numeric($nbtotalofrecords) && $limit > $nbtotalofrecords)
|
||||||
}
|
{
|
||||||
|
$num = $nbtotalofrecords;
|
||||||
print '<form action="'.$_SERVER["PHP_SELF"].'" method="GET">';
|
|
||||||
|
|
||||||
print '<table class="liste" width="100%">';
|
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
|
||||||
print_liste_field_titre("Bill", $_SERVER["PHP_SELF"]);
|
|
||||||
print_liste_field_titre("Company", $_SERVER["PHP_SELF"]);
|
|
||||||
print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "", "", $param, 'class="right"');
|
|
||||||
print_liste_field_titre("DateRequest", $_SERVER["PHP_SELF"], "", "", $param, 'class="center"');
|
|
||||||
print_liste_field_titre('');
|
|
||||||
print '</tr>';
|
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
|
||||||
print '<td class="liste_titre"><input type="text" class="flat" name="search_facture" size="12" value="'.dol_escape_htmltag(GETPOST('search_facture', 'alpha')).'"></td>';
|
|
||||||
print '<td class="liste_titre"><input type="text" class="flat" name="search_societe" size="18" value="'.dol_escape_htmltag(GETPOST('search_societe', 'alpha')).'"></td>';
|
|
||||||
print '<td class="liste_titre"></td>';
|
|
||||||
print '<td class="liste_titre"></td>';
|
|
||||||
// Action column
|
|
||||||
print '<td class="liste_titre" class="middle">';
|
|
||||||
$searchpicto=$form->showFilterAndCheckAddButtons($massactionbutton?1:0, 'checkforselect', 1);
|
|
||||||
print $searchpicto;
|
|
||||||
print '</td>';
|
|
||||||
print '</tr>';
|
|
||||||
|
|
||||||
$users = array();
|
|
||||||
|
|
||||||
while ($i < min($num, $limit))
|
|
||||||
{
|
|
||||||
$obj = $db->fetch_object($resql);
|
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
|
||||||
|
|
||||||
// Ref facture
|
|
||||||
print '<td>';
|
|
||||||
$invoicestatic->id=$obj->rowid;
|
|
||||||
$invoicestatic->ref=$obj->ref;
|
|
||||||
print $invoicestatic->getNomUrl(1, 'withdraw');
|
|
||||||
print '</td>';
|
|
||||||
|
|
||||||
print '<td>';
|
|
||||||
$thirdpartystatic->id=$obj->socid;
|
|
||||||
$thirdpartystatic->name=$obj->name;
|
|
||||||
print $thirdpartystatic->getNomUrl(1, 'customer');
|
|
||||||
print '</td>';
|
|
||||||
|
|
||||||
print '<td class="right">'.price($obj->total_ttc).'</td>';
|
|
||||||
|
|
||||||
print '<td class="center">'.dol_print_date($db->jdate($obj->date_demande), 'day').'</td>';
|
|
||||||
|
|
||||||
print '<td class="right"></td>';
|
|
||||||
|
|
||||||
print '</tr>';
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
|
|
||||||
print "</table><br>";
|
|
||||||
|
|
||||||
print '</form>';
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
dol_print_error($db);
|
$sql.= $db->plimit($limit+1, $offset);
|
||||||
|
|
||||||
|
$resql=$db->query($sql);
|
||||||
|
if (! $resql)
|
||||||
|
{
|
||||||
|
dol_print_error($db);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$num = $db->num_rows($resql);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$newcardbutton = '<a href="'.DOL_URL_ROOT.'/compta/prelevement/index.php">'.$langs->trans("Back").'</a>';
|
||||||
|
|
||||||
|
print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_generic', 0, $newcardbutton, '', $limit);
|
||||||
|
|
||||||
|
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
|
||||||
|
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
||||||
|
print '<input type="hidden" name="action" value="list">';
|
||||||
|
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
||||||
|
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
||||||
|
print '<input type="hidden" name="page" value="'.$page.'">';
|
||||||
|
print '<input type="hidden" name="contextpage" value="'.$contextpage.'">';
|
||||||
|
|
||||||
|
|
||||||
|
print '<table class="liste" width="100%">';
|
||||||
|
|
||||||
|
print '<tr class="liste_titre">';
|
||||||
|
print_liste_field_titre("Bill", $_SERVER["PHP_SELF"]);
|
||||||
|
print_liste_field_titre("Company", $_SERVER["PHP_SELF"]);
|
||||||
|
print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "", "", $param, 'class="right"');
|
||||||
|
print_liste_field_titre("DateRequest", $_SERVER["PHP_SELF"], "", "", $param, 'class="center"');
|
||||||
|
print_liste_field_titre('');
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
print '<tr class="liste_titre">';
|
||||||
|
print '<td class="liste_titre"><input type="text" class="flat" name="search_facture" size="12" value="'.dol_escape_htmltag(GETPOST('search_facture', 'alpha')).'"></td>';
|
||||||
|
print '<td class="liste_titre"><input type="text" class="flat" name="search_societe" size="18" value="'.dol_escape_htmltag(GETPOST('search_societe', 'alpha')).'"></td>';
|
||||||
|
print '<td class="liste_titre"></td>';
|
||||||
|
print '<td class="liste_titre"></td>';
|
||||||
|
// Action column
|
||||||
|
print '<td class="liste_titre" class="middle">';
|
||||||
|
$searchpicto=$form->showFilterAndCheckAddButtons($massactionbutton?1:0, 'checkforselect', 1);
|
||||||
|
print $searchpicto;
|
||||||
|
print '</td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
$users = array();
|
||||||
|
|
||||||
|
$i = 0;
|
||||||
|
while ($i < min($num, $limit))
|
||||||
|
{
|
||||||
|
$obj = $db->fetch_object($resql);
|
||||||
|
if (empty($obj)) break; // Should not happen
|
||||||
|
|
||||||
|
print '<tr class="oddeven">';
|
||||||
|
|
||||||
|
// Ref facture
|
||||||
|
print '<td>';
|
||||||
|
$invoicestatic->id=$obj->rowid;
|
||||||
|
$invoicestatic->ref=$obj->ref;
|
||||||
|
print $invoicestatic->getNomUrl(1, 'withdraw');
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
|
print '<td>';
|
||||||
|
$thirdpartystatic->id=$obj->socid;
|
||||||
|
$thirdpartystatic->name=$obj->name;
|
||||||
|
print $thirdpartystatic->getNomUrl(1, 'customer');
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
|
print '<td class="right">'.price($obj->total_ttc).'</td>';
|
||||||
|
|
||||||
|
print '<td class="center">'.dol_print_date($db->jdate($obj->date_demande), 'day').'</td>';
|
||||||
|
|
||||||
|
print '<td class="right"></td>';
|
||||||
|
|
||||||
|
print '</tr>';
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
print "</table><br>";
|
||||||
|
|
||||||
|
print '</form>';
|
||||||
|
|
||||||
|
|
||||||
// End of page
|
// End of page
|
||||||
llxFooter();
|
llxFooter();
|
||||||
$db->close();
|
$db->close();
|
||||||
|
|||||||
@ -71,6 +71,7 @@ $thirdpartystatic=new Societe($db);
|
|||||||
$invoicestatic=new Facture($db);
|
$invoicestatic=new Facture($db);
|
||||||
$bprev = new BonPrelevement($db);
|
$bprev = new BonPrelevement($db);
|
||||||
|
|
||||||
|
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre"><th colspan="2">'.$langs->trans("Statistics").'</th></tr>';
|
print '<tr class="liste_titre"><th colspan="2">'.$langs->trans("Statistics").'</th></tr>';
|
||||||
|
|
||||||
@ -100,6 +101,8 @@ if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX
|
|||||||
$sql.= " , ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
|
$sql.= " , ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
|
||||||
$sql.= " WHERE s.rowid = f.fk_soc";
|
$sql.= " WHERE s.rowid = f.fk_soc";
|
||||||
$sql.= " AND f.entity IN (".getEntity('invoice').")";
|
$sql.= " AND f.entity IN (".getEntity('invoice').")";
|
||||||
|
$sql.= " AND f.total_ttc > 0";
|
||||||
|
$sql.= " AND f.fk_statut = ".Facture::STATUS_VALIDATED;
|
||||||
$sql.= " AND pfd.traite = 0 AND pfd.fk_facture = f.rowid";
|
$sql.= " AND pfd.traite = 0 AND pfd.fk_facture = f.rowid";
|
||||||
if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
|
if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
|
||||||
if ($socid) $sql.= " AND f.fk_soc = ".$socid;
|
if ($socid) $sql.= " AND f.fk_soc = ".$socid;
|
||||||
|
|||||||
@ -184,7 +184,7 @@ class PaymentSocialContribution extends CommonObject
|
|||||||
$remaintopay=price2num($contrib->amount - $paiement - $creditnotes - $deposits, 'MT');
|
$remaintopay=price2num($contrib->amount - $paiement - $creditnotes - $deposits, 'MT');
|
||||||
if ($remaintopay == 0)
|
if ($remaintopay == 0)
|
||||||
{
|
{
|
||||||
$result=$contrib->set_paid($user, '', '');
|
$result=$contrib->set_paid($user);
|
||||||
}
|
}
|
||||||
else dol_syslog("Remain to pay for conrib ".$contribid." not null. We do nothing.");
|
else dol_syslog("Remain to pay for conrib ".$contribid." not null. We do nothing.");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -185,7 +185,7 @@ $productcust=$langs->trans("Description");
|
|||||||
$namerate=$langs->trans("VATRate");
|
$namerate=$langs->trans("VATRate");
|
||||||
$amountcust=$langs->trans("AmountHT");
|
$amountcust=$langs->trans("AmountHT");
|
||||||
if ($mysoc->tva_assuj) {
|
if ($mysoc->tva_assuj) {
|
||||||
$vatcust.=' ('.$langs->trans("ToPay").')';
|
$vatcust.=' ('.$langs->trans("StatusToPay").')';
|
||||||
}
|
}
|
||||||
$elementsup=$langs->trans("SuppliersInvoices");
|
$elementsup=$langs->trans("SuppliersInvoices");
|
||||||
$productsup=$langs->trans("Description");
|
$productsup=$langs->trans("Description");
|
||||||
|
|||||||
@ -173,7 +173,7 @@ $amountcust=$langs->trans("AmountHT");
|
|||||||
$vatcust=$langs->trans("VATReceived");
|
$vatcust=$langs->trans("VATReceived");
|
||||||
$namecust=$langs->trans("Name");
|
$namecust=$langs->trans("Name");
|
||||||
if ($mysoc->tva_assuj) {
|
if ($mysoc->tva_assuj) {
|
||||||
$vatcust.=' ('.$langs->trans("ToPay").')';
|
$vatcust.=' ('.$langs->trans("VATToPay").')';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Suppliers invoices
|
// Suppliers invoices
|
||||||
|
|||||||
@ -82,26 +82,11 @@ class Contact extends CommonObject
|
|||||||
|
|
||||||
public $civility_id; // In fact we store civility_code
|
public $civility_id; // In fact we store civility_code
|
||||||
public $civility_code;
|
public $civility_code;
|
||||||
public $civility;
|
public $civility;
|
||||||
public $address;
|
public $address;
|
||||||
public $zip;
|
public $zip;
|
||||||
public $town;
|
public $town;
|
||||||
|
|
||||||
/**
|
|
||||||
* @deprecated
|
|
||||||
* @see $state_id
|
|
||||||
*/
|
|
||||||
public $fk_departement;
|
|
||||||
/**
|
|
||||||
* @deprecated
|
|
||||||
* @see $state_code
|
|
||||||
*/
|
|
||||||
public $departement_code;
|
|
||||||
/**
|
|
||||||
* @deprecated
|
|
||||||
* @see $state
|
|
||||||
*/
|
|
||||||
public $departement;
|
|
||||||
public $state_id; // Id of department
|
public $state_id; // Id of department
|
||||||
public $state_code; // Code of department
|
public $state_code; // Code of department
|
||||||
public $state; // Label of department
|
public $state; // Label of department
|
||||||
@ -1023,7 +1008,7 @@ class Contact extends CommonObject
|
|||||||
// Removed extrafields
|
// Removed extrafields
|
||||||
if ((! $error) && (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED))) {
|
if ((! $error) && (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED))) {
|
||||||
// For avoid conflicts if trigger used
|
// For avoid conflicts if trigger used
|
||||||
$result=$this->deleteExtraFields($this);
|
$result=$this->deleteExtraFields();
|
||||||
if ($result < 0) $error++;
|
if ($result < 0) $error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -108,7 +108,7 @@ class Contracts extends DolibarrApi
|
|||||||
$obj_ret = array();
|
$obj_ret = array();
|
||||||
|
|
||||||
// case of external user, $thirdparty_ids param is ignored and replaced by user's socid
|
// case of external user, $thirdparty_ids param is ignored and replaced by user's socid
|
||||||
$socids = DolibarrApiAccess::$user->societe_id ? DolibarrApiAccess::$user->societe_id : $thirdparty_ids;
|
$socids = DolibarrApiAccess::$user->socid ? DolibarrApiAccess::$user->socid : $thirdparty_ids;
|
||||||
|
|
||||||
// If the internal user must only see his customers, force searching by him
|
// If the internal user must only see his customers, force searching by him
|
||||||
$search_sale = 0;
|
$search_sale = 0;
|
||||||
|
|||||||
@ -705,7 +705,7 @@ while ($i < min($num, $limit))
|
|||||||
print '<td class="right">';
|
print '<td class="right">';
|
||||||
if ($obj->cstatut == 0) // If contract is draft, we say line is also draft
|
if ($obj->cstatut == 0) // If contract is draft, we say line is also draft
|
||||||
{
|
{
|
||||||
print $contractstatic->LibStatut(0, 5, ($obj->date_fin_validite && $db->jdate($obj->date_fin_validite) < $now));
|
print $contractstatic->LibStatut(0, 5);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -156,7 +156,7 @@ class box_factures extends ModeleBoxes
|
|||||||
);
|
);
|
||||||
|
|
||||||
$this->info_box_contents[$line][] = array(
|
$this->info_box_contents[$line][] = array(
|
||||||
'td' => '',
|
'td' => 'class="tdoverflowmax200"',
|
||||||
'text' => $societestatic->getNomUrl(1, '', 40),
|
'text' => $societestatic->getNomUrl(1, '', 40),
|
||||||
'asis' => 1,
|
'asis' => 1,
|
||||||
);
|
);
|
||||||
|
|||||||
@ -428,7 +428,7 @@ class CMailFile
|
|||||||
foreach ($this->images_encoded as $img)
|
foreach ($this->images_encoded as $img)
|
||||||
{
|
{
|
||||||
//$img['fullpath'],$img['image_encoded'],$img['name'],$img['content_type'],$img['cid']
|
//$img['fullpath'],$img['image_encoded'],$img['name'],$img['content_type'],$img['cid']
|
||||||
$attachment = Swift_Image::fromPath($img['fullpath'], $img['content_type']);
|
$attachment = Swift_Image::fromPath($img['fullpath']);
|
||||||
// embed image
|
// embed image
|
||||||
$imgcid = $this->message->embed($attachment);
|
$imgcid = $this->message->embed($attachment);
|
||||||
// replace cid by the one created by swiftmail in html message
|
// replace cid by the one created by swiftmail in html message
|
||||||
|
|||||||
@ -6532,9 +6532,12 @@ abstract class CommonObject
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$csstyle='';
|
|
||||||
$class=(!empty($extrafields->attributes[$this->table_element]['hidden'][$key]) ? 'hideobject ' : '');
|
$class=(!empty($extrafields->attributes[$this->table_element]['hidden'][$key]) ? 'hideobject ' : '');
|
||||||
|
$csstyle='';
|
||||||
if (is_array($params) && count($params)>0) {
|
if (is_array($params) && count($params)>0) {
|
||||||
|
if (array_key_exists('class', $params)) {
|
||||||
|
$class.=$params['class'].' ';
|
||||||
|
}
|
||||||
if (array_key_exists('style', $params)) {
|
if (array_key_exists('style', $params)) {
|
||||||
$csstyle=$params['style'];
|
$csstyle=$params['style'];
|
||||||
}
|
}
|
||||||
@ -6571,16 +6574,19 @@ abstract class CommonObject
|
|||||||
|
|
||||||
$labeltoshow = $langs->trans($label);
|
$labeltoshow = $langs->trans($label);
|
||||||
|
|
||||||
$out .= '<td class="titlefield';
|
$out .= '<td class="';
|
||||||
if (GETPOST('action', 'none') == 'create') $out.='create';
|
//$out .= "titlefield";
|
||||||
|
//if (GETPOST('action', 'none') == 'create') $out.='create';
|
||||||
if ($mode != 'view' && ! empty($extrafields->attributes[$this->table_element]['required'][$key])) $out .= ' fieldrequired';
|
if ($mode != 'view' && ! empty($extrafields->attributes[$this->table_element]['required'][$key])) $out .= ' fieldrequired';
|
||||||
$out .= '">';
|
$out .= '">';
|
||||||
if (! empty($extrafields->attributes[$object->table_element]['help'][$key])) $out .= $form->textwithpicto($labeltoshow, $extrafields->attributes[$object->table_element]['help'][$key]);
|
if (! empty($extrafields->attributes[$this->table_element]['help'][$key])) $out .= $form->textwithpicto($labeltoshow, $extrafields->attributes[$this->table_element]['help'][$key]);
|
||||||
else $out .= $labeltoshow;
|
else $out .= $labeltoshow;
|
||||||
$out .= '</td>';
|
$out .= '</td>';
|
||||||
|
|
||||||
$html_id = !empty($this->id) ? $this->element.'_extras_'.$key.'_'.$this->id : '';
|
$html_id = !empty($this->id) ? $this->element.'_extras_'.$key.'_'.$this->id : '';
|
||||||
|
|
||||||
$out .='<td id="'.$html_id.'" class="'.$this->element.'_extras_'.$key.'" '.($colspan?' colspan="'.$colspan.'"':'').'>';
|
$out .='<td id="'.$html_id.'" class="'.$this->element.'_extras_'.$key.'" '.($colspan?' colspan="'.$colspan.'"':'').'>';
|
||||||
|
//$out .='<td id="'.$html_id.'" class="'.$this->element.'_extras_'.$key.'">';
|
||||||
|
|
||||||
switch($mode) {
|
switch($mode) {
|
||||||
case "view":
|
case "view":
|
||||||
@ -6593,6 +6599,11 @@ abstract class CommonObject
|
|||||||
|
|
||||||
$out .= '</td>';
|
$out .= '</td>';
|
||||||
|
|
||||||
|
/*for($ii = 0; $ii < ($colspan - 1); $ii++)
|
||||||
|
{
|
||||||
|
$out .='<td class="'.$this->element.'_extras_'.$key.'"></td>';
|
||||||
|
}*/
|
||||||
|
|
||||||
if (! empty($conf->global->MAIN_EXTRAFIELDS_USE_TWO_COLUMS) && (($e % 2) == 1)) $out .= '</tr>';
|
if (! empty($conf->global->MAIN_EXTRAFIELDS_USE_TWO_COLUMS) && (($e % 2) == 1)) $out .= '</tr>';
|
||||||
else $out .= '</tr>';
|
else $out .= '</tr>';
|
||||||
$e++;
|
$e++;
|
||||||
|
|||||||
@ -274,9 +274,10 @@ class ExtraFields
|
|||||||
* @param string $perms Permission
|
* @param string $perms Permission
|
||||||
* @param string $list Into list view by default
|
* @param string $list Into list view by default
|
||||||
* @param string $computed Computed value
|
* @param string $computed Computed value
|
||||||
|
* @param string $help Help on tooltip
|
||||||
* @return int <=0 if KO, >0 if OK
|
* @return int <=0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
private function create($attrname, $type = 'varchar', $length = 255, $elementtype = 'member', $unique = 0, $required = 0, $default_value = '', $param = '', $perms = '', $list = '0', $computed = '')
|
private function create($attrname, $type = 'varchar', $length = 255, $elementtype = 'member', $unique = 0, $required = 0, $default_value = '', $param = '', $perms = '', $list = '0', $computed = '', $help = '')
|
||||||
{
|
{
|
||||||
if ($elementtype == 'thirdparty') $elementtype='societe';
|
if ($elementtype == 'thirdparty') $elementtype='societe';
|
||||||
if ($elementtype == 'contact') $elementtype='socpeople';
|
if ($elementtype == 'contact') $elementtype='socpeople';
|
||||||
|
|||||||
@ -5216,7 +5216,7 @@ class Form
|
|||||||
* @param datetime $adddateof Add a link "Date of invoice" using the following date.
|
* @param datetime $adddateof Add a link "Date of invoice" using the following date.
|
||||||
* @return string|void Nothing or string if nooutput is 1
|
* @return string|void Nothing or string if nooutput is 1
|
||||||
* @deprecated
|
* @deprecated
|
||||||
* @see form_date(), select_month(), select_year(), select_dayofweek()
|
* @see selectDate(), form_date(), select_month(), select_year(), select_dayofweek()
|
||||||
*/
|
*/
|
||||||
public function select_date($set_time = '', $prefix = 're', $h = 0, $m = 0, $empty = 0, $form_name = "", $d = 1, $addnowlink = 0, $nooutput = 0, $disabled = 0, $fullday = '', $addplusone = '', $adddateof = '')
|
public function select_date($set_time = '', $prefix = 're', $h = 0, $m = 0, $empty = 0, $form_name = "", $d = 1, $addnowlink = 0, $nooutput = 0, $disabled = 0, $fullday = '', $addplusone = '', $adddateof = '')
|
||||||
{
|
{
|
||||||
|
|||||||
@ -3058,7 +3058,7 @@ class lessc_parser {
|
|||||||
$content[] = $m[1];
|
$content[] = $m[1];
|
||||||
if ($m[2] == "@{") {
|
if ($m[2] == "@{") {
|
||||||
$this->count -= strlen($m[2]);
|
$this->count -= strlen($m[2]);
|
||||||
if ($this->interpolation($inter, false)) {
|
if ($this->interpolation($inter)) {
|
||||||
$content[] = $inter;
|
$content[] = $inter;
|
||||||
} else {
|
} else {
|
||||||
$this->count += strlen($m[2]);
|
$this->count += strlen($m[2]);
|
||||||
@ -3310,7 +3310,7 @@ class lessc_parser {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->interpolation($inter, false)) {
|
if ($this->interpolation($inter)) {
|
||||||
$attrParts[] = $inter;
|
$attrParts[] = $inter;
|
||||||
$hasInterpolation = true;
|
$hasInterpolation = true;
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
@ -355,22 +355,27 @@ class Link extends CommonObject
|
|||||||
/**
|
/**
|
||||||
* Delete a link from database
|
* Delete a link from database
|
||||||
*
|
*
|
||||||
* @return int <0 if KO, 0 if nothing done, >0 if OK
|
* @param User $user Object suer
|
||||||
|
* @return int <0 if KO, 0 if nothing done, >0 if OK
|
||||||
*/
|
*/
|
||||||
public function delete()
|
public function delete($user)
|
||||||
{
|
{
|
||||||
global $user, $langs, $conf;
|
global $langs, $conf;
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::delete", LOG_DEBUG);
|
dol_syslog(get_class($this)."::delete", LOG_DEBUG);
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
|
$this->db->begin();
|
||||||
|
|
||||||
// Call trigger
|
// Call trigger
|
||||||
$result=$this->call_trigger('LINK_DELETE', $user);
|
$result=$this->call_trigger('LINK_DELETE', $user);
|
||||||
if ($result < 0) return -1;
|
if ($result < 0)
|
||||||
|
{
|
||||||
|
$this->db->rollback();
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
// End call triggers
|
// End call triggers
|
||||||
|
|
||||||
$this->db->begin();
|
|
||||||
|
|
||||||
// Remove link
|
// Remove link
|
||||||
$sql = "DELETE FROM " . MAIN_DB_PREFIX . "links";
|
$sql = "DELETE FROM " . MAIN_DB_PREFIX . "links";
|
||||||
$sql.= " WHERE rowid = " . $this->id;
|
$sql.= " WHERE rowid = " . $this->id;
|
||||||
|
|||||||
@ -1094,6 +1094,8 @@ function complete_dictionary_with_modules(&$taborder, &$tabname, &$tablib, &$tab
|
|||||||
{
|
{
|
||||||
global $db, $modules, $conf, $langs;
|
global $db, $modules, $conf, $langs;
|
||||||
|
|
||||||
|
dol_syslog("complete_dictionary_with_modules Search external modules to complete the list of dictionnary tables", LOG_DEBUG, 1);
|
||||||
|
|
||||||
// Search modules
|
// Search modules
|
||||||
$modulesdir = dolGetModulesDirs();
|
$modulesdir = dolGetModulesDirs();
|
||||||
$i = 0; // is a sequencer of modules found
|
$i = 0; // is a sequencer of modules found
|
||||||
@ -1191,6 +1193,8 @@ function complete_dictionary_with_modules(&$taborder, &$tabname, &$tablib, &$tab
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dol_syslog("", LOG_DEBUG, -1);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1259,7 +1263,7 @@ function activateModulesRequiredByCountry($country_code)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add external modules to list of contact element
|
* Search external modules to complete the list of contact element
|
||||||
*
|
*
|
||||||
* @param array $elementList elementList
|
* @param array $elementList elementList
|
||||||
* @return int 1
|
* @return int 1
|
||||||
@ -1278,6 +1282,8 @@ function complete_elementList_with_modules(&$elementList)
|
|||||||
$i = 0; // is a sequencer of modules found
|
$i = 0; // is a sequencer of modules found
|
||||||
$j = 0; // j is module number. Automatically affected if module number not defined.
|
$j = 0; // j is module number. Automatically affected if module number not defined.
|
||||||
|
|
||||||
|
dol_syslog("complete_elementList_with_modules Search external modules to complete the list of contact element", LOG_DEBUG, 1);
|
||||||
|
|
||||||
$modulesdir = dolGetModulesDirs();
|
$modulesdir = dolGetModulesDirs();
|
||||||
|
|
||||||
foreach ($modulesdir as $dir)
|
foreach ($modulesdir as $dir)
|
||||||
@ -1355,6 +1361,8 @@ function complete_elementList_with_modules(&$elementList)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dol_syslog("", LOG_DEBUG, -1);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -549,15 +549,13 @@ function calendars_prepare_head($param)
|
|||||||
$h++;
|
$h++;
|
||||||
|
|
||||||
|
|
||||||
$object=new stdClass();
|
|
||||||
|
|
||||||
// Show more tabs from modules
|
// Show more tabs from modules
|
||||||
// Entries must be declared in modules descriptor with line
|
// Entries must be declared in modules descriptor with line
|
||||||
// $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab
|
// $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab
|
||||||
// $this->tabs = array('entity:-tabname); to remove a tab
|
// $this->tabs = array('entity:-tabname); to remove a tab
|
||||||
complete_head_from_modules($conf, $langs, $object, $head, $h, 'agenda');
|
complete_head_from_modules($conf, $langs, null, $head, $h, 'agenda');
|
||||||
|
|
||||||
complete_head_from_modules($conf, $langs, $object, $head, $h, 'agenda', 'remove');
|
complete_head_from_modules($conf, $langs, null, $head, $h, 'agenda', 'remove');
|
||||||
|
|
||||||
return $head;
|
return $head;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -48,7 +48,7 @@ function asset_admin_prepare_head()
|
|||||||
//$this->tabs = array(
|
//$this->tabs = array(
|
||||||
// 'entity:-tabname:Title:@assets:/asset/mypage.php?id=__ID__'
|
// 'entity:-tabname:Title:@assets:/asset/mypage.php?id=__ID__'
|
||||||
//); // to remove a tab
|
//); // to remove a tab
|
||||||
complete_head_from_modules($conf, $langs, $object, $head, $h, 'assets_admin');
|
complete_head_from_modules($conf, $langs, null, $head, $h, 'assets_admin');
|
||||||
|
|
||||||
$head[$h][0] = DOL_URL_ROOT . '/asset/admin/assets_extrafields.php';
|
$head[$h][0] = DOL_URL_ROOT . '/asset/admin/assets_extrafields.php';
|
||||||
$head[$h][1] = $langs->trans("ExtraFields");
|
$head[$h][1] = $langs->trans("ExtraFields");
|
||||||
@ -60,7 +60,7 @@ function asset_admin_prepare_head()
|
|||||||
$head[$h][2] = 'attributes_type';
|
$head[$h][2] = 'attributes_type';
|
||||||
$h++;
|
$h++;
|
||||||
|
|
||||||
complete_head_from_modules($conf, $langs, $object, $head, $h, 'assets_admin', 'remove');
|
complete_head_from_modules($conf, $langs, null, $head, $h, 'assets_admin', 'remove');
|
||||||
|
|
||||||
return $head;
|
return $head;
|
||||||
}
|
}
|
||||||
@ -68,11 +68,12 @@ function asset_admin_prepare_head()
|
|||||||
/**
|
/**
|
||||||
* Prepare admin pages header
|
* Prepare admin pages header
|
||||||
*
|
*
|
||||||
|
* @param Contrat $object Object related to tabs
|
||||||
* @return array head array with tabs
|
* @return array head array with tabs
|
||||||
*/
|
*/
|
||||||
function asset_prepare_head()
|
function asset_prepare_head(Asset $object)
|
||||||
{
|
{
|
||||||
global $langs, $conf;
|
global $db, $langs, $conf;
|
||||||
|
|
||||||
$langs->load("assets");
|
$langs->load("assets");
|
||||||
|
|
||||||
@ -96,7 +97,7 @@ function asset_prepare_head()
|
|||||||
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php';
|
||||||
$upload_dir = $conf->assets->dir_output . '/' . get_exdir($filename, 2, 0, 1, $object, 'assets'). '/'. dol_sanitizeFileName($object->ref);
|
$upload_dir = $conf->assets->dir_output . '/' . dol_sanitizeFileName($object->ref);
|
||||||
$nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$'));
|
$nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$'));
|
||||||
$nbLinks=Link::count($db, $object->element, $object->id);
|
$nbLinks=Link::count($db, $object->element, $object->id);
|
||||||
$head[$h][0] = DOL_URL_ROOT.'/asset/document.php?id='.$object->id;
|
$head[$h][0] = DOL_URL_ROOT.'/asset/document.php?id='.$object->id;
|
||||||
|
|||||||
@ -163,7 +163,6 @@ function bank_admin_prepare_head($object)
|
|||||||
*/
|
*/
|
||||||
function various_payment_prepare_head($object)
|
function various_payment_prepare_head($object)
|
||||||
{
|
{
|
||||||
|
|
||||||
global $db, $langs, $conf;
|
global $db, $langs, $conf;
|
||||||
|
|
||||||
$h = 0;
|
$h = 0;
|
||||||
|
|||||||
@ -101,7 +101,7 @@ function contract_prepare_head(Contrat $object)
|
|||||||
*/
|
*/
|
||||||
function contract_admin_prepare_head()
|
function contract_admin_prepare_head()
|
||||||
{
|
{
|
||||||
global $langs, $conf, $user;
|
global $langs, $conf;
|
||||||
|
|
||||||
$h = 0;
|
$h = 0;
|
||||||
$head = array();
|
$head = array();
|
||||||
@ -127,9 +127,7 @@ function contract_admin_prepare_head()
|
|||||||
$head[$h][2] = 'attributeslines';
|
$head[$h][2] = 'attributeslines';
|
||||||
$h++;
|
$h++;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
complete_head_from_modules($conf, $langs, null, $head, $h, 'contract_admin', 'remove');
|
complete_head_from_modules($conf, $langs, null, $head, $h, 'contract_admin', 'remove');
|
||||||
|
|
||||||
return $head;
|
return $head;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -80,7 +80,7 @@ function donation_prepare_head($object)
|
|||||||
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php';
|
||||||
$upload_dir = $conf->don->dir_output . '/' . get_exdir($filename, 2, 0, 1, $object, 'donation'). '/'. dol_sanitizeFileName($object->ref);
|
$upload_dir = $conf->don->dir_output . '/' . dol_sanitizeFileName($object->ref);
|
||||||
$nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$'));
|
$nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$'));
|
||||||
$nbLinks=Link::count($db, $object->element, $object->id);
|
$nbLinks=Link::count($db, $object->element, $object->id);
|
||||||
$head[$h][0] = DOL_URL_ROOT.'/don/document.php?id='.$object->id;
|
$head[$h][0] = DOL_URL_ROOT.'/don/document.php?id='.$object->id;
|
||||||
|
|||||||
@ -1023,22 +1023,16 @@ function dol_move_uploaded_file($src_file, $dest_file, $allowoverwrite, $disable
|
|||||||
{
|
{
|
||||||
case UPLOAD_ERR_INI_SIZE: // 1
|
case UPLOAD_ERR_INI_SIZE: // 1
|
||||||
return 'ErrorFileSizeTooLarge';
|
return 'ErrorFileSizeTooLarge';
|
||||||
break;
|
|
||||||
case UPLOAD_ERR_FORM_SIZE: // 2
|
case UPLOAD_ERR_FORM_SIZE: // 2
|
||||||
return 'ErrorFileSizeTooLarge';
|
return 'ErrorFileSizeTooLarge';
|
||||||
break;
|
|
||||||
case UPLOAD_ERR_PARTIAL: // 3
|
case UPLOAD_ERR_PARTIAL: // 3
|
||||||
return 'ErrorPartialFile';
|
return 'ErrorPartialFile';
|
||||||
break;
|
|
||||||
case UPLOAD_ERR_NO_TMP_DIR: //
|
case UPLOAD_ERR_NO_TMP_DIR: //
|
||||||
return 'ErrorNoTmpDir';
|
return 'ErrorNoTmpDir';
|
||||||
break;
|
|
||||||
case UPLOAD_ERR_CANT_WRITE:
|
case UPLOAD_ERR_CANT_WRITE:
|
||||||
return 'ErrorFailedToWriteInDir';
|
return 'ErrorFailedToWriteInDir';
|
||||||
break;
|
|
||||||
case UPLOAD_ERR_EXTENSION:
|
case UPLOAD_ERR_EXTENSION:
|
||||||
return 'ErrorUploadBlockedByAddon';
|
return 'ErrorUploadBlockedByAddon';
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -2089,7 +2083,7 @@ function dol_compress_dir($inputdir, $outputfile, $mode = "zip", $excludefiles =
|
|||||||
{
|
{
|
||||||
$foundhandler=0;
|
$foundhandler=0;
|
||||||
|
|
||||||
dol_syslog("Try to zip dir ".$inputdir." into ".$outputdir." mode=".$mode);
|
dol_syslog("Try to zip dir ".$inputdir." into ".$outputfile." mode=".$mode);
|
||||||
|
|
||||||
if (! dol_is_dir(dirname($outputfile)) || ! is_writable(dirname($outputfile)))
|
if (! dol_is_dir(dirname($outputfile)) || ! is_writable(dirname($outputfile)))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -40,7 +40,7 @@ function multicurrencyAdminPrepareHead()
|
|||||||
$head[$h][2] = 'settings';
|
$head[$h][2] = 'settings';
|
||||||
$h++;
|
$h++;
|
||||||
|
|
||||||
complete_head_from_modules($conf, $langs, $object, $head, $h, 'multicurrency');
|
complete_head_from_modules($conf, $langs, null, $head, $h, 'multicurrency');
|
||||||
|
|
||||||
return $head;
|
return $head;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -59,7 +59,7 @@ function ticketAdminPrepareHead()
|
|||||||
//$this->tabs = array(
|
//$this->tabs = array(
|
||||||
// 'entity:-tabname:Title:@ticket:/ticket/mypage.php?id=__ID__'
|
// 'entity:-tabname:Title:@ticket:/ticket/mypage.php?id=__ID__'
|
||||||
//); // to remove a tab
|
//); // to remove a tab
|
||||||
complete_head_from_modules($conf, $langs, $object, $head, $h, 'ticketadmin');
|
complete_head_from_modules($conf, $langs, null, $head, $h, 'ticketadmin');
|
||||||
|
|
||||||
return $head;
|
return $head;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -51,12 +51,15 @@ class MenuManager
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load this->tabMenu
|
* Load this->tabMenu
|
||||||
*
|
*
|
||||||
* @return void
|
* @param string $forcemainmenu To force mainmenu to load
|
||||||
|
* @param string $forceleftmenu To force leftmenu to load
|
||||||
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function loadMenu()
|
public function loadMenu($forcemainmenu = '', $forceleftmenu = '')
|
||||||
{
|
{
|
||||||
|
// Do nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -761,7 +761,7 @@ class ImportCsv extends ModeleImports
|
|||||||
$lastinsertid = $res->rowid;
|
$lastinsertid = $res->rowid;
|
||||||
$last_insert_id_array[$tablename] = $lastinsertid;
|
$last_insert_id_array[$tablename] = $lastinsertid;
|
||||||
} elseif($resql->num_rows > 1) {
|
} elseif($resql->num_rows > 1) {
|
||||||
$this->errors[$error]['lib']=$langs->trans('MultipleRecordFoundWithTheseFilters', implode($filters, ', '));
|
$this->errors[$error]['lib']=$langs->trans('MultipleRecordFoundWithTheseFilters', implode(', ', $filters));
|
||||||
$this->errors[$error]['type']='SQL';
|
$this->errors[$error]['type']='SQL';
|
||||||
$error++;
|
$error++;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -782,7 +782,7 @@ class ImportXlsx extends ModeleImports
|
|||||||
$lastinsertid = $res->rowid;
|
$lastinsertid = $res->rowid;
|
||||||
$last_insert_id_array[$tablename] = $lastinsertid;
|
$last_insert_id_array[$tablename] = $lastinsertid;
|
||||||
} elseif($resql->num_rows > 1) {
|
} elseif($resql->num_rows > 1) {
|
||||||
$this->errors[$error]['lib']=$langs->trans('MultipleRecordFoundWithTheseFilters', implode($filters, ', '));
|
$this->errors[$error]['lib']=$langs->trans('MultipleRecordFoundWithTheseFilters', implode(', ', $filters));
|
||||||
$this->errors[$error]['type']='SQL';
|
$this->errors[$error]['type']='SQL';
|
||||||
$error++;
|
$error++;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -187,8 +187,7 @@ class modDataPolicy extends DolibarrModules {
|
|||||||
// Cronjobs (List of cron jobs entries to add when module is enabled)
|
// Cronjobs (List of cron jobs entries to add when module is enabled)
|
||||||
// unit_frequency must be 60 for minute, 3600 for hour, 86400 for day, 604800 for week
|
// unit_frequency must be 60 for minute, 3600 for hour, 86400 for day, 604800 for week
|
||||||
$this->cronjobs = array(
|
$this->cronjobs = array(
|
||||||
0 => array('label' => 'DATAPOLICY Cron', 'jobtype' => 'method', 'class' => '/datapolicy/class/datapolicyCron.class.php', 'objectname' => 'DataPolicyCron', 'method' => 'exec', 'parameters' => '', 'comment' => 'Clean data', 'frequency' => 1, 'unitfrequency' => 86400, 'status' => 1, 'test' => '$conf->datapolicy->enabled'),
|
0 => array('label' => 'DATAPOLICYJob', 'jobtype' => 'method', 'class' => 'datapolicy/class/datapolicycron.class.php', 'objectname' => 'DataPolicyCron', 'method' => 'cleanDataForDataPolicy', 'parameters' => '', 'comment' => 'Clean data', 'frequency' => 1, 'unitfrequency' => 86400, 'status' => 1, 'test' => '$conf->datapolicy->enabled'),
|
||||||
//1 => array('label' => 'DATAPOLICY Mailing', 'jobtype' => 'method', 'class' => '/datapolicy/class/datapolicyCron.class.php', 'objectname' => 'RgpdCron', 'method' => 'sendMailing', 'parameters' => '', 'comment' => 'Comment', 'frequency' => 1, 'unitfrequency' => 86400, 'status' => 0, 'test' => true)
|
|
||||||
);
|
);
|
||||||
// Example: $this->cronjobs=array(0=>array('label'=>'My label', 'jobtype'=>'method', 'class'=>'/dir/class/file.class.php', 'objectname'=>'MyClass', 'method'=>'myMethod', 'parameters'=>'param1, param2', 'comment'=>'Comment', 'frequency'=>2, 'unitfrequency'=>3600, 'status'=>0, 'test'=>true),
|
// Example: $this->cronjobs=array(0=>array('label'=>'My label', 'jobtype'=>'method', 'class'=>'/dir/class/file.class.php', 'objectname'=>'MyClass', 'method'=>'myMethod', 'parameters'=>'param1, param2', 'comment'=>'Comment', 'frequency'=>2, 'unitfrequency'=>3600, 'status'=>0, 'test'=>true),
|
||||||
// 1=>array('label'=>'My label', 'jobtype'=>'command', 'command'=>'', 'parameters'=>'param1, param2', 'comment'=>'Comment', 'frequency'=>1, 'unitfrequency'=>3600*24, 'status'=>0, 'test'=>true)
|
// 1=>array('label'=>'My label', 'jobtype'=>'command', 'command'=>'', 'parameters'=>'param1, param2', 'comment'=>'Comment', 'frequency'=>1, 'unitfrequency'=>3600*24, 'status'=>0, 'test'=>true)
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \defgroup debugbar Debug bar
|
* \defgroup debugbar Module Debug bar
|
||||||
* \brief debugbar module descriptor.
|
* \brief debugbar module descriptor.
|
||||||
*
|
*
|
||||||
* \file htdocs/core/modules/modDebugBar.class.php
|
* \file htdocs/core/modules/modDebugBar.class.php
|
||||||
|
|||||||
@ -58,7 +58,7 @@ class modReception extends DolibarrModules
|
|||||||
// Data directories to create when module is enabled
|
// Data directories to create when module is enabled
|
||||||
$this->dirs = array("/reception/receipt",
|
$this->dirs = array("/reception/receipt",
|
||||||
"/reception/receipt/temp",
|
"/reception/receipt/temp",
|
||||||
"/doctemplates/reception"
|
"/doctemplates/receptions"
|
||||||
);
|
);
|
||||||
|
|
||||||
// Config pages
|
// Config pages
|
||||||
|
|||||||
@ -121,15 +121,7 @@ class pdf_squille extends ModelePdfReception
|
|||||||
// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
|
// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
|
||||||
if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
|
if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
|
||||||
|
|
||||||
$outputlangs->load("main");
|
$outputlangs->loadLangs(array("main","dict","companies","bills","products","propal","deliveries","receptions","productbatch","sendings"));
|
||||||
$outputlangs->load("dict");
|
|
||||||
$outputlangs->load("companies");
|
|
||||||
$outputlangs->load("bills");
|
|
||||||
$outputlangs->load("products");
|
|
||||||
$outputlangs->load("propal");
|
|
||||||
$outputlangs->load("deliveries");
|
|
||||||
$outputlangs->load("receptions");
|
|
||||||
$outputlangs->load("productbatch");
|
|
||||||
|
|
||||||
$nblines = count($object->lines);
|
$nblines = count($object->lines);
|
||||||
|
|
||||||
|
|||||||
@ -375,7 +375,7 @@ if ($nolinesbefore) {
|
|||||||
{
|
{
|
||||||
$coldisplay++;
|
$coldisplay++;
|
||||||
?>
|
?>
|
||||||
<td class="nobottom linecolresupplier"><input id="fourn_ref" name="fourn_ref" class="flat maxwidth75" value="<?php echo (isset($_POST["fourn_ref"])?GETPOST("fourn_ref", 'alpha', 2):''); ?>"></td>
|
<td class="nobottom linecolresupplier"><input id="fourn_ref" name="fourn_ref" class="flat minwidth50 maxwidth150" value="<?php echo (isset($_POST["fourn_ref"])?GETPOST("fourn_ref", 'alpha', 2):''); ?>"></td>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
|
|
||||||
<td class="nobottom linecolvat right"><?php
|
<td class="nobottom linecolvat right"><?php
|
||||||
|
|||||||
@ -140,7 +140,7 @@ $coldisplay=0;
|
|||||||
{
|
{
|
||||||
$coldisplay++;
|
$coldisplay++;
|
||||||
?>
|
?>
|
||||||
<td class="right"><input id="fourn_ref" name="fourn_ref" class="flat minwidth75" value="<?php echo ($line->ref_supplier ? $line->ref_supplier : $line->ref_fourn); ?>"></td>
|
<td class="right"><input id="fourn_ref" name="fourn_ref" class="flat minwidth50 maxwidth150" value="<?php echo ($line->ref_supplier ? $line->ref_supplier : $line->ref_fourn); ?>"></td>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -261,7 +261,7 @@ $coldisplay=0;
|
|||||||
//Line extrafield
|
//Line extrafield
|
||||||
if (!empty($extrafieldsline))
|
if (!empty($extrafieldsline))
|
||||||
{
|
{
|
||||||
print $line->showOptionals($extrafieldsline, 'edit', array('style'=>$bc[$var],'colspan'=>$coldisplay), '', '', empty($conf->global->MAIN_EXTRAFIELDS_IN_ONE_TD)?0:1);
|
print $line->showOptionals($extrafieldsline, 'edit', array('class'=>'tredited', 'colspan'=>$coldisplay), '', '', empty($conf->global->MAIN_EXTRAFIELDS_IN_ONE_TD)?0:1);
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
|||||||
@ -894,14 +894,15 @@ class Cronjob extends CommonObject
|
|||||||
/**
|
/**
|
||||||
* Load object information
|
* Load object information
|
||||||
*
|
*
|
||||||
* @return int
|
* @param int $id ID
|
||||||
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
public function info()
|
public function info($id)
|
||||||
{
|
{
|
||||||
$sql = "SELECT";
|
$sql = "SELECT";
|
||||||
$sql.= " f.rowid, f.datec, f.tms, f.fk_user_mod, f.fk_user_author";
|
$sql.= " f.rowid, f.datec, f.tms, f.fk_user_mod, f.fk_user_author";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."cronjob as f";
|
$sql.= " FROM ".MAIN_DB_PREFIX."cronjob as f";
|
||||||
$sql.= " WHERE f.rowid = ".$this->id;
|
$sql.= " WHERE f.rowid = ".$id;
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
|
dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
|
||||||
$resql=$this->db->query($sql);
|
$resql=$this->db->query($sql);
|
||||||
|
|||||||
@ -30,6 +30,16 @@ include_once DOL_DOCUMENT_ROOT . '/adherents/class/adherent.class.php';
|
|||||||
*/
|
*/
|
||||||
class DataPolicy
|
class DataPolicy
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*
|
||||||
|
* @param DoliDB $db Database handler
|
||||||
|
*/
|
||||||
|
public function __construct($db)
|
||||||
|
{
|
||||||
|
$this->db = $db;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* getAllContactNotInformed
|
* getAllContactNotInformed
|
||||||
*
|
*
|
||||||
@ -200,7 +210,6 @@ class DataPolicy
|
|||||||
} else {
|
} else {
|
||||||
$result4 = $mailfile->sendfile();
|
$result4 = $mailfile->sendfile();
|
||||||
if (!$error) {
|
if (!$error) {
|
||||||
|
|
||||||
$resultmasssend .= $langs->trans("MailSent") . ': ' . $sendto . "<br>";
|
$resultmasssend .= $langs->trans("MailSent") . ': ' . $sendto . "<br>";
|
||||||
$contact->array_options['options_datapolicy_send'] = date('Y-m-d', time());
|
$contact->array_options['options_datapolicy_send'] = date('Y-m-d', time());
|
||||||
$contact->update($contact->id);
|
$contact->update($contact->id);
|
||||||
@ -301,6 +310,10 @@ class DataPolicy
|
|||||||
|
|
||||||
$sendto = $adherent->email;
|
$sendto = $adherent->email;
|
||||||
|
|
||||||
|
// TODO Use a dolibarr email template
|
||||||
|
$s = 'TXTLINKDATAPOLICIESSUBJECT_' . $l;
|
||||||
|
$ma = 'TXTLINKDATAPOLICIESMESSAGE_' . $l;
|
||||||
|
|
||||||
$code= md5($adherent->email);
|
$code= md5($adherent->email);
|
||||||
if (!empty($adherent->default_lang)) {
|
if (!empty($adherent->default_lang)) {
|
||||||
$l = $adherent->default_lang;
|
$l = $adherent->default_lang;
|
||||||
|
|||||||
@ -19,7 +19,7 @@
|
|||||||
/**
|
/**
|
||||||
* \file htdocs/datapolicy/class/datapolicycron.class.php
|
* \file htdocs/datapolicy/class/datapolicycron.class.php
|
||||||
* \ingroup datapolicy
|
* \ingroup datapolicy
|
||||||
* \brief Example hook overload.
|
* \brief File for cron task of module DataPolicy
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -27,17 +27,33 @@
|
|||||||
*/
|
*/
|
||||||
class DataPolicyCron
|
class DataPolicyCron
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*
|
||||||
|
* @param DoliDB $db Database handler
|
||||||
|
*/
|
||||||
|
public function __construct($db)
|
||||||
|
{
|
||||||
|
$this->db = $db;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function exec
|
* Function exec
|
||||||
|
* CAN BE A CRON TASK
|
||||||
*
|
*
|
||||||
* @return boolean
|
* @return int 0 if OK, <>0 if KO (this function is used also by cron so only 0 is OK)
|
||||||
*/
|
*/
|
||||||
public function exec()
|
public function cleanDataForDataPolicy()
|
||||||
{
|
{
|
||||||
global $conf, $db, $langs, $user;
|
global $conf, $langs, $user;
|
||||||
|
|
||||||
$langs->load('datapolicy@datapolicy');
|
$langs->load('datapolicy@datapolicy');
|
||||||
|
|
||||||
|
$error = 0;
|
||||||
|
$errormsg = '';
|
||||||
|
$nbupdated = $nbdeleted = 0;
|
||||||
|
|
||||||
// FIXME Removed hardcoded values of id
|
// FIXME Removed hardcoded values of id
|
||||||
$arrayofparameters=array(
|
$arrayofparameters=array(
|
||||||
'DATAPOLICIES_TIERS_CLIENT' => array(
|
'DATAPOLICIES_TIERS_CLIENT' => array(
|
||||||
@ -446,14 +462,18 @@ class DataPolicyCron
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
foreach ($arrayofparameters as $key => $params) {
|
$this->db->begin();
|
||||||
if ($conf->global->$key != '' && is_numeric($conf->global->$key) && (int) $conf->global->$key > 0) {
|
|
||||||
|
|
||||||
|
foreach ($arrayofparameters as $key => $params)
|
||||||
|
{
|
||||||
|
if ($conf->global->$key != '' && is_numeric($conf->global->$key) && (int) $conf->global->$key > 0)
|
||||||
|
{
|
||||||
$sql = sprintf($params['sql'], (int) $conf->entity, (int) $conf->global->$key, (int) $conf->global->$key);
|
$sql = sprintf($params['sql'], (int) $conf->entity, (int) $conf->global->$key, (int) $conf->global->$key);
|
||||||
|
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
|
|
||||||
if ($resql && $db->num_rows($resql) > 0) {
|
if ($resql && $db->num_rows($resql) > 0)
|
||||||
|
{
|
||||||
|
|
||||||
$num = $db->num_rows($resql);
|
$num = $db->num_rows($resql);
|
||||||
$i = 0;
|
$i = 0;
|
||||||
@ -461,33 +481,51 @@ class DataPolicyCron
|
|||||||
require_once $params['file'];
|
require_once $params['file'];
|
||||||
$object = new $params['class']($db);
|
$object = new $params['class']($db);
|
||||||
|
|
||||||
while ($i < $num)
|
while ($i < $num && ! $error)
|
||||||
{
|
{
|
||||||
$obj = $db->fetch_object($resql);
|
$obj = $db->fetch_object($resql);
|
||||||
|
|
||||||
$object->fetch($obj->rowid);
|
$object->fetch($obj->rowid);
|
||||||
$object->id = $obj->rowid;
|
$object->id = $obj->rowid;
|
||||||
|
|
||||||
if ($object->isObjectUsed($obj->rowid) > 0) {
|
if ($object->isObjectUsed($obj->rowid) > 0) // If object to clean is used
|
||||||
|
{
|
||||||
foreach ($params['fields_anonym'] as $fields => $val) {
|
foreach ($params['fields_anonym'] as $fields => $val) {
|
||||||
$object->$fields = $val;
|
$object->$fields = $val;
|
||||||
}
|
}
|
||||||
$object->update($obj->rowid, $user);
|
$result = $object->update($obj->rowid, $user);
|
||||||
if ($params['class'] == 'Societe') {
|
if ($result > 0)
|
||||||
// On supprime les contacts associé
|
{
|
||||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."socpeople WHERE fk_soc = " . $obj->rowid;
|
if ($params['class'] == 'Societe') {
|
||||||
$db->query($sql);
|
// We delete contacts of thirdparty
|
||||||
|
$sql = "DELETE FROM ".MAIN_DB_PREFIX."socpeople WHERE fk_soc = " . $obj->rowid;
|
||||||
|
$result = $this->db->query($sql);
|
||||||
|
if ($result < 0)
|
||||||
|
{
|
||||||
|
$errormsg = $this->db->lasterror();
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
else
|
||||||
if (DOL_VERSION < 8) {
|
{
|
||||||
$ret = $object->delete($obj->rowid, $user);
|
$errormsg = $object->error;
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
$nbupdated++;
|
||||||
|
} else { // If object to clean is not used
|
||||||
|
if ($object->element == 'adherent') {
|
||||||
|
$result = $object->delete($obj->rowid, $user);
|
||||||
} else {
|
} else {
|
||||||
if ($object->element == 'adherent') {
|
$result = $object->delete($user);
|
||||||
$ret = $object->delete($obj->rowid);
|
|
||||||
} else {
|
|
||||||
$ret = $object->delete();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
if ($result < 0)
|
||||||
|
{
|
||||||
|
$errormsg = $object->error;
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
|
||||||
|
$nbdeleted++;
|
||||||
}
|
}
|
||||||
|
|
||||||
$i++;
|
$i++;
|
||||||
@ -495,27 +533,18 @@ class DataPolicyCron
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
$this->db->commit();
|
||||||
|
|
||||||
/**
|
if (! $error)
|
||||||
* sendMailing
|
{
|
||||||
*
|
$this->output = $nbupdated.' record updated, '.$nbdeleted.' record deleted';
|
||||||
* @return boolean
|
}
|
||||||
*/
|
else
|
||||||
public function sendMailing()
|
{
|
||||||
{
|
$this->error = $errormsg;
|
||||||
global $conf, $db, $langs, $user;
|
}
|
||||||
|
|
||||||
$langs->load('datapolicy@datapolicy');
|
return 0;
|
||||||
|
|
||||||
require_once DOL_DOCUMENT_ROOT . '/datapolicy/class/datapolicy.class.php';
|
|
||||||
|
|
||||||
$contacts = new DataPolicy($db);
|
|
||||||
$contacts->getAllContactNotInformed();
|
|
||||||
$contacts->getAllCompaniesNotInformed();
|
|
||||||
$contacts->getAllAdherentsNotInformed();
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -48,7 +48,9 @@ function datapolicyAdminPrepareHead()
|
|||||||
$h++;
|
$h++;
|
||||||
}
|
}
|
||||||
|
|
||||||
complete_head_from_modules($conf, $langs, $object, $head, $h, 'datapolicy');
|
complete_head_from_modules($conf, $langs, null, $head, $h, 'datapolicy');
|
||||||
|
|
||||||
|
complete_head_from_modules($conf, $langs, null, $head, $h, 'datapolicy', 'remove');
|
||||||
|
|
||||||
return $head;
|
return $head;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -63,9 +63,9 @@ function dav_admin_prepare_head()
|
|||||||
// Entries must be declared in modules descriptor with line
|
// Entries must be declared in modules descriptor with line
|
||||||
// $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab
|
// $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab
|
||||||
// $this->tabs = array('entity:-tabname); to remove a tab
|
// $this->tabs = array('entity:-tabname); to remove a tab
|
||||||
complete_head_from_modules($conf, $langs, $object, $head, $h, 'admindav');
|
complete_head_from_modules($conf, $langs, null, $head, $h, 'admindav');
|
||||||
|
|
||||||
complete_head_from_modules($conf, $langs, $object, $head, $h, 'admindav', 'remove');
|
complete_head_from_modules($conf, $langs, null, $head, $h, 'admindav', 'remove');
|
||||||
|
|
||||||
return $head;
|
return $head;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -106,7 +106,7 @@ class Donations extends DolibarrApi
|
|||||||
$obj_ret = array();
|
$obj_ret = array();
|
||||||
|
|
||||||
// case of external user, $thirdparty_ids param is ignored and replaced by user's socid
|
// case of external user, $thirdparty_ids param is ignored and replaced by user's socid
|
||||||
$socids = DolibarrApiAccess::$user->societe_id ? DolibarrApiAccess::$user->societe_id : $thirdparty_ids;
|
$socids = DolibarrApiAccess::$user->socid ? DolibarrApiAccess::$user->socid : $thirdparty_ids;
|
||||||
|
|
||||||
$sql = "SELECT t.rowid";
|
$sql = "SELECT t.rowid";
|
||||||
if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) ) $sql .= ", sc.fk_soc, sc.fk_user"; // We need these fields in order to filter by sale (including the case where the user can only see his prospects)
|
if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) ) $sql .= ", sc.fk_soc, sc.fk_user"; // We need these fields in order to filter by sale (including the case where the user can only see his prospects)
|
||||||
|
|||||||
@ -81,5 +81,7 @@ function emailcollectorPrepareHead($object)
|
|||||||
//); // to remove a tab
|
//); // to remove a tab
|
||||||
complete_head_from_modules($conf, $langs, $object, $head, $h, 'emailcollector');
|
complete_head_from_modules($conf, $langs, $object, $head, $h, 'emailcollector');
|
||||||
|
|
||||||
|
complete_head_from_modules($conf, $langs, $object, $head, $h, 'emailcollector', 'remove');
|
||||||
|
|
||||||
return $head;
|
return $head;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -106,7 +106,7 @@ class Shipments extends DolibarrApi
|
|||||||
$obj_ret = array();
|
$obj_ret = array();
|
||||||
|
|
||||||
// case of external user, $thirdparty_ids param is ignored and replaced by user's socid
|
// case of external user, $thirdparty_ids param is ignored and replaced by user's socid
|
||||||
$socids = DolibarrApiAccess::$user->societe_id ? DolibarrApiAccess::$user->societe_id : $thirdparty_ids;
|
$socids = DolibarrApiAccess::$user->socid ? DolibarrApiAccess::$user->socid : $thirdparty_ids;
|
||||||
|
|
||||||
// If the internal user must only see his customers, force searching by him
|
// If the internal user must only see his customers, force searching by him
|
||||||
$search_sale = 0;
|
$search_sale = 0;
|
||||||
|
|||||||
@ -101,7 +101,7 @@ class ExpenseReports extends DolibarrApi
|
|||||||
$obj_ret = array();
|
$obj_ret = array();
|
||||||
|
|
||||||
// case of external user, $societe param is ignored and replaced by user's socid
|
// case of external user, $societe param is ignored and replaced by user's socid
|
||||||
//$socid = DolibarrApiAccess::$user->societe_id ? DolibarrApiAccess::$user->societe_id : $societe;
|
//$socid = DolibarrApiAccess::$user->socid ? DolibarrApiAccess::$user->socid : $societe;
|
||||||
|
|
||||||
$sql = "SELECT t.rowid";
|
$sql = "SELECT t.rowid";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."expensereport as t";
|
$sql.= " FROM ".MAIN_DB_PREFIX."expensereport as t";
|
||||||
|
|||||||
@ -2340,7 +2340,7 @@ class ExpenseReport extends CommonObject
|
|||||||
{
|
{
|
||||||
$response->warning_delay=$conf->expensereport->payment->warning_delay/60/60/24;
|
$response->warning_delay=$conf->expensereport->payment->warning_delay/60/60/24;
|
||||||
$response->label=$langs->trans("ExpenseReportsToPay");
|
$response->label=$langs->trans("ExpenseReportsToPay");
|
||||||
$response->labelShort=$langs->trans("ToPay");
|
$response->labelShort=$langs->trans("StatusToPay");
|
||||||
$response->url=DOL_URL_ROOT.'/expensereport/list.php?mainmenu=hrm&statut=5';
|
$response->url=DOL_URL_ROOT.'/expensereport/list.php?mainmenu=hrm&statut=5';
|
||||||
}
|
}
|
||||||
$response->img=img_object('', "trip");
|
$response->img=img_object('', "trip");
|
||||||
|
|||||||
@ -49,6 +49,7 @@ if (empty($keyforcontent) && empty($conf->global->EXTERNALSITE_URL))
|
|||||||
llxHeader();
|
llxHeader();
|
||||||
print '<div class="error">'.$langs->trans('ExternalSiteModuleNotComplete').'</div>';
|
print '<div class="error">'.$langs->trans('ExternalSiteModuleNotComplete').'</div>';
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! empty($keyforcontent))
|
if (! empty($keyforcontent))
|
||||||
|
|||||||
@ -113,7 +113,7 @@ class Interventions extends DolibarrApi
|
|||||||
$obj_ret = array();
|
$obj_ret = array();
|
||||||
|
|
||||||
// case of external user, $thirdparty_ids param is ignored and replaced by user's socid
|
// case of external user, $thirdparty_ids param is ignored and replaced by user's socid
|
||||||
$socids = DolibarrApiAccess::$user->societe_id ? DolibarrApiAccess::$user->societe_id : $thirdparty_ids;
|
$socids = DolibarrApiAccess::$user->socid ? DolibarrApiAccess::$user->socid : $thirdparty_ids;
|
||||||
|
|
||||||
// If the internal user must only see his customers, force searching by him
|
// If the internal user must only see his customers, force searching by him
|
||||||
$search_sale = 0;
|
$search_sale = 0;
|
||||||
|
|||||||
@ -103,7 +103,7 @@ class SupplierOrders extends DolibarrApi
|
|||||||
$obj_ret = array();
|
$obj_ret = array();
|
||||||
|
|
||||||
// case of external user, $thirdparty_ids param is ignored and replaced by user's socid
|
// case of external user, $thirdparty_ids param is ignored and replaced by user's socid
|
||||||
$socids = DolibarrApiAccess::$user->societe_id ? DolibarrApiAccess::$user->societe_id : $thirdparty_ids;
|
$socids = DolibarrApiAccess::$user->socid ? DolibarrApiAccess::$user->socid : $thirdparty_ids;
|
||||||
|
|
||||||
// If the internal user must only see his customers, force searching by him
|
// If the internal user must only see his customers, force searching by him
|
||||||
$search_sale = 0;
|
$search_sale = 0;
|
||||||
|
|||||||
@ -1822,10 +1822,9 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Si module stock gere et que incrementation faite depuis un dispatching en stock
|
// If module stock is enabled and the stock increase is done on purchase order dispatching
|
||||||
if (! $error && $entrepot > 0 && ! empty($conf->stock->enabled) && ! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER))
|
if (! $error && $entrepot > 0 && ! empty($conf->stock->enabled) && ! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER))
|
||||||
{
|
{
|
||||||
|
|
||||||
$mouv = new MouvementStock($this->db);
|
$mouv = new MouvementStock($this->db);
|
||||||
if ($product > 0)
|
if ($product > 0)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -2203,7 +2203,7 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
$response = new WorkboardResponse();
|
$response = new WorkboardResponse();
|
||||||
$response->warning_delay=$conf->facture->fournisseur->warning_delay/60/60/24;
|
$response->warning_delay=$conf->facture->fournisseur->warning_delay/60/60/24;
|
||||||
$response->label=$langs->trans("SupplierBillsToPay");
|
$response->label=$langs->trans("SupplierBillsToPay");
|
||||||
$response->labelShort=$langs->trans("ToPay");
|
$response->labelShort=$langs->trans("StatusToPay");
|
||||||
|
|
||||||
$response->url=DOL_URL_ROOT.'/fourn/facture/list.php?search_status=1&mainmenu=billing&leftmenu=suppliers_bills';
|
$response->url=DOL_URL_ROOT.'/fourn/facture/list.php?search_status=1&mainmenu=billing&leftmenu=suppliers_bills';
|
||||||
$response->img=img_object($langs->trans("Bills"), "bill");
|
$response->img=img_object($langs->trans("Bills"), "bill");
|
||||||
|
|||||||
@ -2346,7 +2346,7 @@ elseif (! empty($object->id))
|
|||||||
}*/
|
}*/
|
||||||
|
|
||||||
// Modify
|
// Modify
|
||||||
if ($object->statut == 1)
|
if ($object->statut == CommandeFournisseur::STATUS_VALIDATED)
|
||||||
{
|
{
|
||||||
if ($user->rights->fournisseur->commande->commander)
|
if ($user->rights->fournisseur->commande->commander)
|
||||||
{
|
{
|
||||||
@ -2355,7 +2355,7 @@ elseif (! empty($object->id))
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Approve
|
// Approve
|
||||||
if ($object->statut == 1)
|
if ($object->statut == CommandeFournisseur::STATUS_VALIDATED)
|
||||||
{
|
{
|
||||||
if ($user->rights->fournisseur->commande->approuver)
|
if ($user->rights->fournisseur->commande->approuver)
|
||||||
{
|
{
|
||||||
@ -2377,7 +2377,7 @@ elseif (! empty($object->id))
|
|||||||
// Second approval (if option SUPPLIER_ORDER_3_STEPS_TO_BE_APPROVED is set)
|
// Second approval (if option SUPPLIER_ORDER_3_STEPS_TO_BE_APPROVED is set)
|
||||||
if (! empty($conf->global->SUPPLIER_ORDER_3_STEPS_TO_BE_APPROVED) && $conf->global->MAIN_FEATURES_LEVEL > 0 && $object->total_ht >= $conf->global->SUPPLIER_ORDER_3_STEPS_TO_BE_APPROVED)
|
if (! empty($conf->global->SUPPLIER_ORDER_3_STEPS_TO_BE_APPROVED) && $conf->global->MAIN_FEATURES_LEVEL > 0 && $object->total_ht >= $conf->global->SUPPLIER_ORDER_3_STEPS_TO_BE_APPROVED)
|
||||||
{
|
{
|
||||||
if ($object->statut == 1)
|
if ($object->statut == CommandeFournisseur::STATUS_VALIDATED)
|
||||||
{
|
{
|
||||||
if ($user->rights->fournisseur->commande->approve2)
|
if ($user->rights->fournisseur->commande->approve2)
|
||||||
{
|
{
|
||||||
@ -2398,7 +2398,7 @@ elseif (! empty($object->id))
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Refuse
|
// Refuse
|
||||||
if ($object->statut == 1)
|
if ($object->statut == CommandeFournisseur::STATUS_VALIDATED)
|
||||||
{
|
{
|
||||||
if ($user->rights->fournisseur->commande->approuver || $user->rights->fournisseur->commande->approve2)
|
if ($user->rights->fournisseur->commande->approuver || $user->rights->fournisseur->commande->approve2)
|
||||||
{
|
{
|
||||||
@ -2411,7 +2411,7 @@ elseif (! empty($object->id))
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Send
|
// Send
|
||||||
if (in_array($object->statut, array(2, 3, 4, 5)))
|
if (in_array($object->statut, array(CommandeFournisseur::STATUS_ACCEPTED, 3, 4, 5)))
|
||||||
{
|
{
|
||||||
if ($user->rights->fournisseur->commande->commander)
|
if ($user->rights->fournisseur->commande->commander)
|
||||||
{
|
{
|
||||||
@ -2420,7 +2420,7 @@ elseif (! empty($object->id))
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Reopen
|
// Reopen
|
||||||
if (in_array($object->statut, array(2)))
|
if (in_array($object->statut, array(CommandeFournisseur::STATUS_ACCEPTED)))
|
||||||
{
|
{
|
||||||
$buttonshown=0;
|
$buttonshown=0;
|
||||||
if (! $buttonshown && $user->rights->fournisseur->commande->approuver)
|
if (! $buttonshown && $user->rights->fournisseur->commande->approuver)
|
||||||
@ -2462,7 +2462,7 @@ elseif (! empty($object->id))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($object->statut == 2)
|
if ($object->statut == CommandeFournisseur::STATUS_ACCEPTED)
|
||||||
{
|
{
|
||||||
if ($user->rights->fournisseur->commande->commander)
|
if ($user->rights->fournisseur->commande->commander)
|
||||||
{
|
{
|
||||||
@ -2474,6 +2474,15 @@ elseif (! empty($object->id))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Classify received (this does not record reception)
|
||||||
|
if ($object->statut == CommandeFournisseur::STATUS_ORDERSENT || $object->statut == CommandeFournisseur::STATUS_RECEIVED_PARTIALLY)
|
||||||
|
{
|
||||||
|
if ($user->rights->fournisseur->commande->receptionner)
|
||||||
|
{
|
||||||
|
print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=classifyreception#classifyreception">'.$langs->trans("ClassifyReception").'</a></div>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Create bill
|
// Create bill
|
||||||
//if (! empty($conf->facture->enabled))
|
//if (! empty($conf->facture->enabled))
|
||||||
//{
|
//{
|
||||||
@ -2590,38 +2599,41 @@ elseif (! empty($object->id))
|
|||||||
|
|
||||||
print '</div><div class="fichehalfright"><div class="ficheaddleft">';
|
print '</div><div class="fichehalfright"><div class="ficheaddleft">';
|
||||||
|
|
||||||
if ($user->rights->fournisseur->commande->receptionner && ($object->statut == CommandeFournisseur::STATUS_ORDERSENT || $object->statut == CommandeFournisseur::STATUS_RECEIVED_PARTIALLY))
|
if ($action == 'classifyreception')
|
||||||
{
|
{
|
||||||
// Set status to received (action=livraison)
|
if ($user->rights->fournisseur->commande->receptionner && ($object->statut == CommandeFournisseur::STATUS_ORDERSENT || $object->statut == CommandeFournisseur::STATUS_RECEIVED_PARTIALLY))
|
||||||
print '<!-- form to record purchase order received -->'."\n";
|
{
|
||||||
print '<form action="card.php?id='.$object->id.'" method="post">';
|
// Set status to received (action=livraison)
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<!-- form to record purchase order received -->'."\n";
|
||||||
print '<input type="hidden" name="action" value="livraison">';
|
print '<form id="classifyreception" action="card.php?id='.$object->id.'" method="post">';
|
||||||
print load_fiche_titre($langs->trans("Receive"), '', '');
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
print '<input type="hidden" name="action" value="livraison">';
|
||||||
|
print load_fiche_titre($langs->trans("Receive"), '', '');
|
||||||
|
|
||||||
print '<table class="noborder centpercent">';
|
print '<table class="noborder centpercent">';
|
||||||
//print '<tr class="liste_titre"><td colspan="2">'.$langs->trans("Receive").'</td></tr>';
|
//print '<tr class="liste_titre"><td colspan="2">'.$langs->trans("Receive").'</td></tr>';
|
||||||
print '<tr><td>'.$langs->trans("DeliveryDate").'</td><td>';
|
print '<tr><td>'.$langs->trans("DeliveryDate").'</td><td>';
|
||||||
$datepreselected = dol_now();
|
$datepreselected = dol_now();
|
||||||
print $form->selectDate($datepreselected, '', 1, 1, '', "commande", 1, 1);
|
print $form->selectDate($datepreselected, '', 1, 1, '', "commande", 1, 1);
|
||||||
print "</td></tr>\n";
|
print "</td></tr>\n";
|
||||||
|
|
||||||
print '<tr><td class="fieldrequired">'.$langs->trans("Delivery")."</td><td>\n";
|
print '<tr><td class="fieldrequired">'.$langs->trans("Delivery")."</td><td>\n";
|
||||||
$liv = array();
|
$liv = array();
|
||||||
$liv[''] = ' ';
|
$liv[''] = ' ';
|
||||||
$liv['tot'] = $langs->trans("CompleteOrNoMoreReceptionExpected");
|
$liv['tot'] = $langs->trans("CompleteOrNoMoreReceptionExpected");
|
||||||
$liv['par'] = $langs->trans("PartialWoman");
|
$liv['par'] = $langs->trans("PartialWoman");
|
||||||
$liv['nev'] = $langs->trans("NeverReceived");
|
$liv['nev'] = $langs->trans("NeverReceived");
|
||||||
$liv['can'] = $langs->trans("Canceled");
|
$liv['can'] = $langs->trans("Canceled");
|
||||||
|
|
||||||
print $form->selectarray("type", $liv);
|
print $form->selectarray("type", $liv);
|
||||||
|
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
print '<tr><td>'.$langs->trans("Comment").'</td><td><input size="40" type="text" name="comment"></td></tr>';
|
print '<tr><td>'.$langs->trans("Comment").'</td><td><input size="40" type="text" name="comment"></td></tr>';
|
||||||
print '<tr><td class="center" colspan="2"><input type="submit" class="button" value="'.$langs->trans("Receive").'"></td></tr>';
|
print '<tr><td class="center" colspan="2"><input type="submit" class="button" value="'.$langs->trans("Receive").'"></td></tr>';
|
||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
print "</form>\n";
|
print "</form>\n";
|
||||||
print "<br>";
|
print "<br>";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// List of actions on element
|
// List of actions on element
|
||||||
|
|||||||
@ -939,8 +939,16 @@ if ($id > 0 || ! empty($ref)) {
|
|||||||
print '<td></td>';
|
print '<td></td>';
|
||||||
print '<td>' . $langs->trans("Warehouse") . '</td>';
|
print '<td>' . $langs->trans("Warehouse") . '</td>';
|
||||||
print '<td>' . $langs->trans("Comment") . '</td>';
|
print '<td>' . $langs->trans("Comment") . '</td>';
|
||||||
if (! empty($conf->global->SUPPLIER_ORDER_USE_DISPATCH_STATUS) || !empty($conf->reception->enabled))
|
|
||||||
|
// Status
|
||||||
|
if (! empty($conf->global->SUPPLIER_ORDER_USE_DISPATCH_STATUS) && empty($reception->rowid)) {
|
||||||
print '<td class="center" colspan="2">' . $langs->trans("Status") . '</td>';
|
print '<td class="center" colspan="2">' . $langs->trans("Status") . '</td>';
|
||||||
|
}
|
||||||
|
elseif(!empty($conf->reception->enabled)) {
|
||||||
|
print '<td class="center"></td>';
|
||||||
|
}
|
||||||
|
|
||||||
|
print '<td class="center"></td>';
|
||||||
|
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
@ -1025,17 +1033,15 @@ if ($id > 0 || ! empty($ref)) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}elseif(!empty($conf->reception->enabled)){
|
} elseif(!empty($conf->reception->enabled)) {
|
||||||
print '<td class="right">';
|
print '<td class="right">';
|
||||||
if(!empty($reception->id)){
|
if(!empty($reception->id)){
|
||||||
print $reception->getLibStatut(5);
|
print $reception->getLibStatut(5);
|
||||||
}
|
}
|
||||||
|
print '</td>';
|
||||||
}
|
}
|
||||||
print '</td>';
|
|
||||||
print '<td class="center">';
|
|
||||||
print '</td>';
|
|
||||||
|
|
||||||
|
|
||||||
|
print '<td class="center"></td>';
|
||||||
|
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
|
|||||||
@ -55,13 +55,6 @@ $langs->load("holiday");
|
|||||||
|
|
||||||
$childids = $user->getAllChildIds(1);
|
$childids = $user->getAllChildIds(1);
|
||||||
|
|
||||||
$cancreate = 0;
|
|
||||||
if (! empty($user->rights->holiday->write_all)) $cancreate=1;
|
|
||||||
if (! empty($user->rights->holiday->write) && in_array($fuserid, $childids)) $cancreate=1;
|
|
||||||
|
|
||||||
$candelete = 0;
|
|
||||||
if (! empty($user->rights->holiday->delete)) $candelete=1;
|
|
||||||
|
|
||||||
$morefilter = 'AND employee = 1';
|
$morefilter = 'AND employee = 1';
|
||||||
if (! empty($conf->global->HOLIDAY_FOR_NON_SALARIES_TOO)) $morefilter = '';
|
if (! empty($conf->global->HOLIDAY_FOR_NON_SALARIES_TOO)) $morefilter = '';
|
||||||
|
|
||||||
@ -82,6 +75,13 @@ if ($id > 0)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$cancreate = 0;
|
||||||
|
if (! empty($user->rights->holiday->write_all)) $cancreate=1;
|
||||||
|
if (! empty($user->rights->holiday->write) && in_array($fuserid, $childids)) $cancreate=1;
|
||||||
|
|
||||||
|
$candelete = 0;
|
||||||
|
if (! empty($user->rights->holiday->delete)) $candelete=1;
|
||||||
|
if ($object->statut == Holiday::STATUS_DRAFT && $user->rights->holiday->write && in_array($object->fk_user, $childids)) $candelete=1;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
@ -122,7 +122,7 @@ if ($action == 'create')
|
|||||||
elseif ($starthalfday == 'afternoon') $halfday=-1;
|
elseif ($starthalfday == 'afternoon') $halfday=-1;
|
||||||
elseif ($endhalfday == 'morning') $halfday=1;
|
elseif ($endhalfday == 'morning') $halfday=1;
|
||||||
|
|
||||||
$valideur = GETPOST('valideur');
|
$valideur = GETPOST('valideur', 'int');
|
||||||
$description = trim(GETPOST('description'));
|
$description = trim(GETPOST('description'));
|
||||||
|
|
||||||
// If no type
|
// If no type
|
||||||
@ -270,8 +270,8 @@ if ($action == 'update' && ! GETPOSTISSET('savevalidator'))
|
|||||||
// If this is the requestor or has read/write rights
|
// If this is the requestor or has read/write rights
|
||||||
if ($cancreate)
|
if ($cancreate)
|
||||||
{
|
{
|
||||||
$valideur = $_POST['valideur'];
|
$valideur = GETPOST('valideur', 'int');
|
||||||
$description = trim($_POST['description']);
|
$description = trim(GETPOST('description', 'none'));
|
||||||
|
|
||||||
// If no start date
|
// If no start date
|
||||||
if (empty($_POST['date_debut_'])) {
|
if (empty($_POST['date_debut_'])) {
|
||||||
@ -1297,7 +1297,8 @@ else
|
|||||||
if (empty($include_users)) print img_warning().' '.$langs->trans("NobodyHasPermissionToValidateHolidays");
|
if (empty($include_users)) print img_warning().' '.$langs->trans("NobodyHasPermissionToValidateHolidays");
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$s=$form->select_dolusers($object->fk_validator, "valideur", (($action == 'editvalidator') ? 0 : 1), ($user->admin ? '' : array($user->id)), 0, $include_users);
|
$arrayofvalidatorstoexclude = (($user->admin || ($user->id != $userRequest->id))? '' : array($user->id)); // Nobody if we are admin or if we are not the user of the leave.
|
||||||
|
$s=$form->select_dolusers($object->fk_validator, "valideur", (($action == 'editvalidator') ? 0 : 1), $arrayofvalidatorstoexclude, 0, $include_users);
|
||||||
print $form->textwithpicto($s, $langs->trans("AnyOtherInThisListCanValidate"));
|
print $form->textwithpicto($s, $langs->trans("AnyOtherInThisListCanValidate"));
|
||||||
}
|
}
|
||||||
if ($action == 'editvalidator')
|
if ($action == 'editvalidator')
|
||||||
@ -1434,7 +1435,7 @@ else
|
|||||||
{
|
{
|
||||||
print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=backtodraft" class="butAction">'.$langs->trans("SetToDraft").'</a>';
|
print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=backtodraft" class="butAction">'.$langs->trans("SetToDraft").'</a>';
|
||||||
}
|
}
|
||||||
if ($user->rights->holiday->delete && ($object->statut == Holiday::STATUS_DRAFT || $object->statut == Holiday::STATUS_CANCELED || $object->statut == Holiday::STATUS_REFUSED)) // If draft or canceled or refused
|
if ($candelete && ($object->statut == Holiday::STATUS_DRAFT || $object->statut == Holiday::STATUS_CANCELED || $object->statut == Holiday::STATUS_REFUSED)) // If draft or canceled or refused
|
||||||
{
|
{
|
||||||
print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete" class="butActionDelete">'.$langs->trans("DeleteCP").'</a>';
|
print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete" class="butActionDelete">'.$langs->trans("DeleteCP").'</a>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -376,7 +376,6 @@ class Holiday extends CommonObject
|
|||||||
$obj = $this->db->fetch_object($resql);
|
$obj = $this->db->fetch_object($resql);
|
||||||
|
|
||||||
$this->id = $obj->rowid;
|
$this->id = $obj->rowid;
|
||||||
$this->rowid = $obj->rowid; // deprecated
|
|
||||||
$this->ref = ($obj->ref?$obj->ref:$obj->rowid);
|
$this->ref = ($obj->ref?$obj->ref:$obj->rowid);
|
||||||
$this->fk_user = $obj->fk_user;
|
$this->fk_user = $obj->fk_user;
|
||||||
$this->date_create = $this->db->jdate($obj->date_create);
|
$this->date_create = $this->db->jdate($obj->date_create);
|
||||||
|
|||||||
43
htdocs/install/mysql/data/llx_c_hrm_public_holiday.sql
Normal file
43
htdocs/install/mysql/data/llx_c_hrm_public_holiday.sql
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
-- Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
|
-- Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
|
||||||
|
-- Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
|
-- Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
||||||
|
-- Copyright (C) 2004 Guillaume Delecourt <guillaume.delecourt@opensides.be>
|
||||||
|
-- Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
|
||||||
|
-- Copyright (C) 2007 Patrick Raguin <patrick.raguin@gmail.com>
|
||||||
|
-- Copyright (C) 2019 Markus Welters <markus@welters.de>
|
||||||
|
--
|
||||||
|
-- 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
|
||||||
|
-- the Free Software Foundation; either version 3 of the License, or
|
||||||
|
-- (at your option) any later version.
|
||||||
|
--
|
||||||
|
-- This program is distributed in the hope that it will be useful,
|
||||||
|
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
-- GNU General Public License for more details.
|
||||||
|
--
|
||||||
|
-- You should have received a copy of the GNU General Public License
|
||||||
|
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Ne pas placer de commentaire en fin de ligne, ce fichier est parsé lors
|
||||||
|
-- de l'install et tous les sigles '--' sont supprimés.
|
||||||
|
--
|
||||||
|
|
||||||
|
|
||||||
|
-- LIST ON https://fr.wikipedia.org/wiki/Jour_férié
|
||||||
|
|
||||||
|
|
||||||
|
-- A lot of countries
|
||||||
|
INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, year, month, day, active) VALUES('NEWYEARDAY1', 0, 0, 0, 1, 1, 1);
|
||||||
|
INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, year, month, day, active) VALUES('LABORDAY1', 0, 0, 0, 5, 1, 1);
|
||||||
|
INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, year, month, day, active) VALUES('CHRISTMASDAY1', 0, 0, 0, 12, 25, 1);
|
||||||
|
|
||||||
|
-- France only
|
||||||
|
INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, year, month, day, active) VALUES('FRVICTORYDAY', 0, 1, 0, 5, 8, 1);
|
||||||
|
INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, year, month, day, active) VALUES('FRNATIONALDAY', 0, 1, 0, 7, 14, 1);
|
||||||
|
INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, year, month, day, active) VALUES('FRASSOMPTION', 0, 1, 0, 8, 15, 1);
|
||||||
|
INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, year, month, day, active) VALUES('FRTOUSSAINT', 0, 1, 0, 11, 1, 1);
|
||||||
|
INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, year, month, day, active) VALUES('FRARMISTICE', 0, 1, 0, 11, 11, 1);
|
||||||
@ -91,3 +91,22 @@ UPDATE llx_projet set usage_opportunity = 1 WHERE fk_opp_status > 0;
|
|||||||
|
|
||||||
ALTER TABLE llx_accounting_account MODIFY COLUMN rowid bigint AUTO_INCREMENT;
|
ALTER TABLE llx_accounting_account MODIFY COLUMN rowid bigint AUTO_INCREMENT;
|
||||||
|
|
||||||
|
|
||||||
|
create table llx_c_hrm_public_holiday
|
||||||
|
(
|
||||||
|
id integer AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
entity integer DEFAULT 0 NOT NULL, -- multi company id, 0 = all
|
||||||
|
fk_country integer,
|
||||||
|
code varchar(62),
|
||||||
|
dayrule varchar(255) DEFAULT 'date', -- 'date', 'xxx', ...
|
||||||
|
day integer,
|
||||||
|
month integer,
|
||||||
|
year integer, -- 0 for all years
|
||||||
|
active integer DEFAULT 1,
|
||||||
|
import_key varchar(14)
|
||||||
|
)ENGINE=innodb;
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE llx_supplier_proposaldet ADD COLUMN date_start datetime DEFAULT NULL;
|
||||||
|
ALTER TABLE llx_supplier_proposaldet ADD COLUMN date_end datetime DEFAULT NULL;
|
||||||
|
|
||||||
|
|||||||
@ -36,5 +36,4 @@ create table llx_c_field_list
|
|||||||
visible tinyint DEFAULT 1 NOT NULL, -- visibility of field. 0=Never visible, 1=Visible on list and forms, 2=Visible on list only
|
visible tinyint DEFAULT 1 NOT NULL, -- visibility of field. 0=Never visible, 1=Visible on list and forms, 2=Visible on list only
|
||||||
enabled varchar(255) DEFAULT 1, -- Condition to show or hide
|
enabled varchar(255) DEFAULT 1, -- Condition to show or hide
|
||||||
rang integer DEFAULT 0
|
rang integer DEFAULT 0
|
||||||
|
|
||||||
)ENGINE=innodb;
|
)ENGINE=innodb;
|
||||||
|
|||||||
21
htdocs/install/mysql/tables/llx_c_hrm_public_holiday.key.sql
Normal file
21
htdocs/install/mysql/tables/llx_c_hrm_public_holiday.key.sql
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
-- ========================================================================
|
||||||
|
-- Copyright (C) 2019 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
|
--
|
||||||
|
-- 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
|
||||||
|
-- the Free Software Foundation; either version 3 of the License, or
|
||||||
|
-- (at your option) any later version.
|
||||||
|
--
|
||||||
|
-- This program is distributed in the hope that it will be useful,
|
||||||
|
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
-- GNU General Public License for more details.
|
||||||
|
--
|
||||||
|
-- You should have received a copy of the GNU General Public License
|
||||||
|
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
--
|
||||||
|
-- ========================================================================
|
||||||
|
|
||||||
|
ALTER TABLE llx_c_hrm_public_holiday ADD UNIQUE INDEX uk_c_hrm_public_holiday(entity, code);
|
||||||
|
ALTER TABLE llx_c_hrm_public_holiday ADD UNIQUE INDEX uk_c_hrm_public_holiday2(entity, day, month, year);
|
||||||
|
|
||||||
31
htdocs/install/mysql/tables/llx_c_hrm_public_holiday.sql
Normal file
31
htdocs/install/mysql/tables/llx_c_hrm_public_holiday.sql
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
-- ========================================================================
|
||||||
|
-- Copyright (C) 2019 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
|
--
|
||||||
|
-- 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
|
||||||
|
-- the Free Software Foundation; either version 3 of the License, or
|
||||||
|
-- (at your option) any later version.
|
||||||
|
--
|
||||||
|
-- This program is distributed in the hope that it will be useful,
|
||||||
|
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
-- GNU General Public License for more details.
|
||||||
|
--
|
||||||
|
-- You should have received a copy of the GNU General Public License
|
||||||
|
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
--
|
||||||
|
-- ========================================================================
|
||||||
|
|
||||||
|
create table llx_c_hrm_public_holiday
|
||||||
|
(
|
||||||
|
id integer AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
entity integer DEFAULT 0 NOT NULL, -- multi company id, 0 = all
|
||||||
|
fk_country integer,
|
||||||
|
code varchar(62),
|
||||||
|
dayrule varchar(255) DEFAULT 'date', -- 'date', 'xxx', ...
|
||||||
|
day integer,
|
||||||
|
month integer,
|
||||||
|
year integer, -- 0 for all years
|
||||||
|
active integer DEFAULT 1,
|
||||||
|
import_key varchar(14)
|
||||||
|
)ENGINE=innodb;
|
||||||
@ -40,6 +40,8 @@ CREATE TABLE llx_supplier_proposaldet (
|
|||||||
total_localtax2 double(24,8) DEFAULT 0,
|
total_localtax2 double(24,8) DEFAULT 0,
|
||||||
total_ttc double(24,8) DEFAULT 0,
|
total_ttc double(24,8) DEFAULT 0,
|
||||||
product_type integer DEFAULT 0,
|
product_type integer DEFAULT 0,
|
||||||
|
date_start datetime DEFAULT NULL, -- date debut si service
|
||||||
|
date_end datetime DEFAULT NULL, -- date fin si service
|
||||||
info_bits integer DEFAULT 0,
|
info_bits integer DEFAULT 0,
|
||||||
buy_price_ht double(24,8) DEFAULT 0,
|
buy_price_ht double(24,8) DEFAULT 0,
|
||||||
fk_product_fournisseur_price integer DEFAULT NULL,
|
fk_product_fournisseur_price integer DEFAULT NULL,
|
||||||
|
|||||||
@ -1,11 +1,7 @@
|
|||||||
# Dolibarr language file - Source file is en_US - admin
|
# Dolibarr language file - Source file is en_US - admin
|
||||||
OldVATRates=Old GST rate
|
OldVATRates=Old GST rate
|
||||||
NewVATRates=New GST rate
|
NewVATRates=New GST rate
|
||||||
Module600Name=Notifications on business event
|
|
||||||
DictionaryVAT=GST Rates or Sales Tax Rates
|
DictionaryVAT=GST Rates or Sales Tax Rates
|
||||||
OptionVatMode=GST due
|
OptionVatMode=GST due
|
||||||
ListOfNotificationsPerUser=List of automatic notifications per user*
|
|
||||||
ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact**
|
|
||||||
ListOfFixedNotifications=List of automatic fixed notifications
|
|
||||||
LinkColor=Colour of links
|
LinkColor=Colour of links
|
||||||
OperationParamDesc=Define values to use for action, or how to extract values. For example:<br>objproperty1=SET:abc<br>objproperty1=SET:a value with replacement of __objproperty1__<br>objproperty3=SETIFEMPTY:abc<br>objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)<br>options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)<br>object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)<br><br>Use a ; char as separator to extract or set several properties.
|
OperationParamDesc=Define values to use for action, or how to extract values. For example:<br>objproperty1=SET:abc<br>objproperty1=SET:a value with replacement of __objproperty1__<br>objproperty3=SETIFEMPTY:abc<br>objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)<br>options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)<br>object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)<br><br>Use a ; char as separator to extract or set several properties.
|
||||||
|
|||||||
@ -1,2 +0,0 @@
|
|||||||
# Dolibarr language file - Source file is en_US - withdrawals
|
|
||||||
RUM=Unique Mandate Reference (UMR)
|
|
||||||
@ -1,10 +1,6 @@
|
|||||||
# Dolibarr language file - Source file is en_US - admin
|
# Dolibarr language file - Source file is en_US - admin
|
||||||
Module600Name=Notifications on business event
|
|
||||||
LocalTax1Management=PST Management
|
LocalTax1Management=PST Management
|
||||||
CompanyZip=Postal code
|
CompanyZip=Postal code
|
||||||
LDAPFieldZip=Postal code
|
LDAPFieldZip=Postal code
|
||||||
ListOfNotificationsPerUser=List of automatic notifications per user*
|
|
||||||
ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact**
|
|
||||||
ListOfFixedNotifications=List of automatic fixed notifications
|
|
||||||
FormatZip=Postal code
|
FormatZip=Postal code
|
||||||
OperationParamDesc=Define values to use for action, or how to extract values. For example:<br>objproperty1=SET:abc<br>objproperty1=SET:a value with replacement of __objproperty1__<br>objproperty3=SETIFEMPTY:abc<br>objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)<br>options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)<br>object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)<br><br>Use a ; char as separator to extract or set several properties.
|
OperationParamDesc=Define values to use for action, or how to extract values. For example:<br>objproperty1=SET:abc<br>objproperty1=SET:a value with replacement of __objproperty1__<br>objproperty3=SETIFEMPTY:abc<br>objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)<br>options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)<br>object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)<br><br>Use a ; char as separator to extract or set several properties.
|
||||||
|
|||||||
@ -41,14 +41,10 @@ UMaskExplanation=This parameter allows you to define permissions set by default
|
|||||||
ListOfDirectories=List of OpenDocument template directories
|
ListOfDirectories=List of OpenDocument template directories
|
||||||
ListOfDirectoriesForModelGenODT=List of directories containing template files in OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between each directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
|
ListOfDirectoriesForModelGenODT=List of directories containing template files in OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between each directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
|
||||||
FollowingSubstitutionKeysCanBeUsed=<br>To learn how to create your .odt document templates, before storing them in those directories, read wiki documentation:
|
FollowingSubstitutionKeysCanBeUsed=<br>To learn how to create your .odt document templates, before storing them in those directories, read wiki documentation:
|
||||||
Module600Name=Notifications on business event
|
|
||||||
Module50200Name=PayPal
|
Module50200Name=PayPal
|
||||||
DictionaryAccountancyJournal=Finance journals
|
DictionaryAccountancyJournal=Finance journals
|
||||||
CompanyZip=Postcode
|
CompanyZip=Postcode
|
||||||
LDAPFieldZip=Postcode
|
LDAPFieldZip=Postcode
|
||||||
GenbarcodeLocation=Barcode generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".<br>For example: /usr/local/bin/genbarcode
|
GenbarcodeLocation=Barcode generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".<br>For example: /usr/local/bin/genbarcode
|
||||||
ListOfNotificationsPerUser=List of automatic notifications per user*
|
|
||||||
ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact**
|
|
||||||
ListOfFixedNotifications=List of automatic fixed notifications
|
|
||||||
FormatZip=Postcode
|
FormatZip=Postcode
|
||||||
OperationParamDesc=Define values to use for action, or how to extract values. For example:<br>objproperty1=SET:abc<br>objproperty1=SET:a value with replacement of __objproperty1__<br>objproperty3=SETIFEMPTY:abc<br>objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)<br>options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)<br>object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)<br><br>Use a ; char as separator to extract or set several properties.
|
OperationParamDesc=Define values to use for action, or how to extract values. For example:<br>objproperty1=SET:abc<br>objproperty1=SET:a value with replacement of __objproperty1__<br>objproperty3=SETIFEMPTY:abc<br>objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)<br>options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)<br>object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)<br><br>Use a ; char as separator to extract or set several properties.
|
||||||
|
|||||||
@ -15,7 +15,6 @@ NotifyCredit=Payment Credit
|
|||||||
WithdrawalFileNotCapable=Unable to generate Payment receipt file for your country %s (Your country is not supported)
|
WithdrawalFileNotCapable=Unable to generate Payment receipt file for your country %s (Your country is not supported)
|
||||||
DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, go into menu Bank->Direct Debit orders to manage the direct debit payment order. When the payment order is closed, payment on the invoice will be automatically recorded, and the invoice closed if the outstanding balance is null.
|
DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, go into menu Bank->Direct Debit orders to manage the direct debit payment order. When the payment order is closed, payment on the invoice will be automatically recorded, and the invoice closed if the outstanding balance is null.
|
||||||
WithdrawalFile=Payment file
|
WithdrawalFile=Payment file
|
||||||
RUM=Unique Mandate Reference (UMR)
|
|
||||||
WithdrawRequestAmount=The amount of Direct Debit request:
|
WithdrawRequestAmount=The amount of Direct Debit request:
|
||||||
WithdrawRequestErrorNilAmount=Unable to create a Direct Debit request for an empty amount.
|
WithdrawRequestErrorNilAmount=Unable to create a Direct Debit request for an empty amount.
|
||||||
SEPALegalText=By signing this mandate form, you authorise (A) %s to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank.
|
SEPALegalText=By signing this mandate form, you authorise (A) %s to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank.
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
# Dolibarr language file - Source file is en_US - admin
|
# Dolibarr language file - Source file is en_US - admin
|
||||||
Module20Name=Quotations
|
Module20Name=Quotations
|
||||||
Module20Desc=Management of quotations
|
Module20Desc=Management of quotations
|
||||||
Module600Name=Notifications on business event
|
|
||||||
Permission21=Read quotations
|
Permission21=Read quotations
|
||||||
Permission22=Create/modify quotations
|
Permission22=Create/modify quotations
|
||||||
Permission24=Validate quotations
|
Permission24=Validate quotations
|
||||||
@ -14,8 +13,5 @@ ProposalsNumberingModules=Quotation numbering models
|
|||||||
ProposalsPDFModules=Quotation documents models
|
ProposalsPDFModules=Quotation documents models
|
||||||
FreeLegalTextOnProposal=Free text on quotations
|
FreeLegalTextOnProposal=Free text on quotations
|
||||||
WatermarkOnDraftProposal=Watermark on draft quotations (none if empty)
|
WatermarkOnDraftProposal=Watermark on draft quotations (none if empty)
|
||||||
ListOfNotificationsPerUser=List of automatic notifications per user*
|
|
||||||
ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact**
|
|
||||||
ListOfFixedNotifications=List of automatic fixed notifications
|
|
||||||
MailToSendProposal=Customer quotations
|
MailToSendProposal=Customer quotations
|
||||||
OperationParamDesc=Define values to use for action, or how to extract values. For example:<br>objproperty1=SET:abc<br>objproperty1=SET:a value with replacement of __objproperty1__<br>objproperty3=SETIFEMPTY:abc<br>objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)<br>options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)<br>object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)<br><br>Use a ; char as separator to extract or set several properties.
|
OperationParamDesc=Define values to use for action, or how to extract values. For example:<br>objproperty1=SET:abc<br>objproperty1=SET:a value with replacement of __objproperty1__<br>objproperty3=SETIFEMPTY:abc<br>objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)<br>options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)<br>object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)<br><br>Use a ; char as separator to extract or set several properties.
|
||||||
|
|||||||
@ -1695,7 +1695,7 @@ SuppliersSetup=Vendor module setup
|
|||||||
SuppliersCommandModel=Complete template of purchase order (logo...)
|
SuppliersCommandModel=Complete template of purchase order (logo...)
|
||||||
SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
|
SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
|
||||||
SuppliersInvoiceNumberingModel=Vendor invoices numbering models
|
SuppliersInvoiceNumberingModel=Vendor invoices numbering models
|
||||||
IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
|
IfSetToYesDontForgetPermission=If set to a non null value, don't forget to provide permissions to groups or users allowed for the second approval
|
||||||
##### GeoIPMaxmind #####
|
##### GeoIPMaxmind #####
|
||||||
GeoIPMaxmindSetup=GeoIP Maxmind module setup
|
GeoIPMaxmindSetup=GeoIP Maxmind module setup
|
||||||
PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.<br>Examples:<br>/usr/local/share/GeoIP/GeoIP.dat<br>/usr/share/GeoIP/GeoIP.dat<br>/usr/share/GeoIP/GeoLite2-Country.mmdb
|
PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.<br>Examples:<br>/usr/local/share/GeoIP/GeoIP.dat<br>/usr/share/GeoIP/GeoIP.dat<br>/usr/share/GeoIP/GeoLite2-Country.mmdb
|
||||||
@ -1851,7 +1851,7 @@ SeveralLangugeVariatFound=Several language variants found
|
|||||||
RemoveSpecialChars=Remove special characters
|
RemoveSpecialChars=Remove special characters
|
||||||
COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
|
COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
|
||||||
COMPANY_DIGITARIA_CLEAN_REGEX=Regex filter to clean value (COMPANY_DIGITARIA_CLEAN_REGEX)
|
COMPANY_DIGITARIA_CLEAN_REGEX=Regex filter to clean value (COMPANY_DIGITARIA_CLEAN_REGEX)
|
||||||
COMPANY_DIGITARIA_UNIQUE_CODE=Unauthorized double
|
COMPANY_DIGITARIA_UNIQUE_CODE=Duplicate not allowed
|
||||||
GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
|
GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
|
||||||
GDPRContactDesc=If you store data about European companies/citizens, you can name the contact who is responsible for the General Data Protection Regulation here
|
GDPRContactDesc=If you store data about European companies/citizens, you can name the contact who is responsible for the General Data Protection Regulation here
|
||||||
HelpOnTooltip=Help text to show on tooltip
|
HelpOnTooltip=Help text to show on tooltip
|
||||||
@ -1941,3 +1941,4 @@ RESTRICT_ON_IP=Allow access to some host IP only (wildcard not allowed, use spac
|
|||||||
BaseOnSabeDavVersion=Based on the library SabreDAV version
|
BaseOnSabeDavVersion=Based on the library SabreDAV version
|
||||||
NotAPublicIp=Not a public IP
|
NotAPublicIp=Not a public IP
|
||||||
MakeAnonymousPing=Make an anonymous Ping '+1' to the Dolibarr foundation server (done 1 time only after installation) to allow the foundation to count the number of Dolibarr installation.
|
MakeAnonymousPing=Make an anonymous Ping '+1' to the Dolibarr foundation server (done 1 time only after installation) to allow the foundation to count the number of Dolibarr installation.
|
||||||
|
FeatureNotAvailableWithReceptionModule=Feature not available when module Reception is enabled
|
||||||
|
|||||||
@ -63,7 +63,7 @@ LT2SupplierES=IRPF purchases
|
|||||||
LT2CustomerIN=SGST sales
|
LT2CustomerIN=SGST sales
|
||||||
LT2SupplierIN=SGST purchases
|
LT2SupplierIN=SGST purchases
|
||||||
VATCollected=VAT collected
|
VATCollected=VAT collected
|
||||||
ToPay=To pay
|
StatusToPay=To pay
|
||||||
SpecialExpensesArea=Area for all special payments
|
SpecialExpensesArea=Area for all special payments
|
||||||
SocialContribution=Social or fiscal tax
|
SocialContribution=Social or fiscal tax
|
||||||
SocialContributions=Social or fiscal taxes
|
SocialContributions=Social or fiscal taxes
|
||||||
|
|||||||
@ -81,3 +81,4 @@ JobDisabled=Job disabled
|
|||||||
MakeLocalDatabaseDumpShort=Local database backup
|
MakeLocalDatabaseDumpShort=Local database backup
|
||||||
MakeLocalDatabaseDump=Create a local database dump. Parameters are: compression ('gz' or 'bz' or 'none'), backup type ('mysql', 'pgsql', 'auto'), 1, 'auto' or filename to build, number of backup files to keep
|
MakeLocalDatabaseDump=Create a local database dump. Parameters are: compression ('gz' or 'bz' or 'none'), backup type ('mysql', 'pgsql', 'auto'), 1, 'auto' or filename to build, number of backup files to keep
|
||||||
WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run.
|
WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run.
|
||||||
|
DATAPOLICYJob=Data cleaner and anonymizer
|
||||||
|
|||||||
@ -9,6 +9,7 @@ ConfirmDeleteEstablishment=Are you sure you wish to delete this establishment?
|
|||||||
OpenEtablishment=Open establishment
|
OpenEtablishment=Open establishment
|
||||||
CloseEtablishment=Close establishment
|
CloseEtablishment=Close establishment
|
||||||
# Dictionary
|
# Dictionary
|
||||||
|
DictionaryPublicHolidays=HRM - Public holidays
|
||||||
DictionaryDepartment=HRM - Department list
|
DictionaryDepartment=HRM - Department list
|
||||||
DictionaryFunction=HRM - Function list
|
DictionaryFunction=HRM - Function list
|
||||||
# Module
|
# Module
|
||||||
|
|||||||
@ -412,6 +412,7 @@ DefaultTaxRate=Default tax rate
|
|||||||
Average=Average
|
Average=Average
|
||||||
Sum=Sum
|
Sum=Sum
|
||||||
Delta=Delta
|
Delta=Delta
|
||||||
|
StatusToPay=To pay
|
||||||
RemainToPay=Remain to pay
|
RemainToPay=Remain to pay
|
||||||
Module=Module/Application
|
Module=Module/Application
|
||||||
Modules=Modules/Applications
|
Modules=Modules/Applications
|
||||||
@ -824,6 +825,7 @@ Mandatory=Mandatory
|
|||||||
Hello=Hello
|
Hello=Hello
|
||||||
GoodBye=GoodBye
|
GoodBye=GoodBye
|
||||||
Sincerely=Sincerely
|
Sincerely=Sincerely
|
||||||
|
ConfirmDeleteObject=Are you sure you want to delete this object?
|
||||||
DeleteLine=Delete line
|
DeleteLine=Delete line
|
||||||
ConfirmDeleteLine=Are you sure you want to delete this line?
|
ConfirmDeleteLine=Are you sure you want to delete this line?
|
||||||
NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
|
NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
|
||||||
|
|||||||
@ -154,5 +154,5 @@ CreateOrders=Create orders
|
|||||||
ToBillSeveralOrderSelectCustomer=To create an invoice for several orders, click first onto customer, then choose "%s".
|
ToBillSeveralOrderSelectCustomer=To create an invoice for several orders, click first onto customer, then choose "%s".
|
||||||
OptionToSetOrderBilledNotEnabled=Option (from module Workflow) to set order to 'Billed' automatically when invoice is validated is off, so you will have to set status of order to 'Billed' manually.
|
OptionToSetOrderBilledNotEnabled=Option (from module Workflow) to set order to 'Billed' automatically when invoice is validated is off, so you will have to set status of order to 'Billed' manually.
|
||||||
IfValidateInvoiceIsNoOrderStayUnbilled=If invoice validation is 'No', the order will remain to status 'Unbilled' until the invoice is validated.
|
IfValidateInvoiceIsNoOrderStayUnbilled=If invoice validation is 'No', the order will remain to status 'Unbilled' until the invoice is validated.
|
||||||
CloseReceivedSupplierOrdersAutomatically=Close order to "%s" automatically if all products are received.
|
CloseReceivedSupplierOrdersAutomatically=Close order to status "%s" automatically if all products are received.
|
||||||
SetShippingMode=Set shipping mode
|
SetShippingMode=Set shipping mode
|
||||||
|
|||||||
@ -11,7 +11,6 @@ YourEMail=Email to receive payment confirmation
|
|||||||
Creditor=Creditor
|
Creditor=Creditor
|
||||||
PaymentCode=Payment code
|
PaymentCode=Payment code
|
||||||
PayBoxDoPayment=Pay with Paybox
|
PayBoxDoPayment=Pay with Paybox
|
||||||
ToPay=Do payment
|
|
||||||
YouWillBeRedirectedOnPayBox=You will be redirected on secured Paybox page to input you credit card information
|
YouWillBeRedirectedOnPayBox=You will be redirected on secured Paybox page to input you credit card information
|
||||||
Continue=Next
|
Continue=Next
|
||||||
ToOfferALinkForOnlinePayment=URL for %s payment
|
ToOfferALinkForOnlinePayment=URL for %s payment
|
||||||
|
|||||||
@ -21,6 +21,7 @@ QtyShipped=Qty shipped
|
|||||||
QtyShippedShort=Qty ship.
|
QtyShippedShort=Qty ship.
|
||||||
QtyPreparedOrShipped=Qty prepared or shipped
|
QtyPreparedOrShipped=Qty prepared or shipped
|
||||||
QtyToShip=Qty to ship
|
QtyToShip=Qty to ship
|
||||||
|
QtyToReceive=Qty to receive
|
||||||
QtyReceived=Qty received
|
QtyReceived=Qty received
|
||||||
QtyInOtherShipments=Qty in other shipments
|
QtyInOtherShipments=Qty in other shipments
|
||||||
KeepToShip=Remain to ship
|
KeepToShip=Remain to ship
|
||||||
@ -46,6 +47,7 @@ DateDeliveryPlanned=Planned date of delivery
|
|||||||
RefDeliveryReceipt=Ref delivery receipt
|
RefDeliveryReceipt=Ref delivery receipt
|
||||||
StatusReceipt=Status delivery receipt
|
StatusReceipt=Status delivery receipt
|
||||||
DateReceived=Date delivery received
|
DateReceived=Date delivery received
|
||||||
|
ClassifyReception=Classify reception
|
||||||
SendShippingByEMail=Send shipment by email
|
SendShippingByEMail=Send shipment by email
|
||||||
SendShippingRef=Submission of shipment %s
|
SendShippingRef=Submission of shipment %s
|
||||||
ActionsOnShipping=Events on shipment
|
ActionsOnShipping=Events on shipment
|
||||||
|
|||||||
@ -55,7 +55,7 @@ PMPValue=Weighted average price
|
|||||||
PMPValueShort=WAP
|
PMPValueShort=WAP
|
||||||
EnhancedValueOfWarehouses=Warehouses value
|
EnhancedValueOfWarehouses=Warehouses value
|
||||||
UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user
|
UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user
|
||||||
AllowAddLimitStockByWarehouse=Manage also values for minimum and desired stock per pairing (product-warehouse) in addition to values per product
|
AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product
|
||||||
IndependantSubProductStock=Product stock and subproduct stock are independent
|
IndependantSubProductStock=Product stock and subproduct stock are independent
|
||||||
QtyDispatched=Quantity dispatched
|
QtyDispatched=Quantity dispatched
|
||||||
QtyDispatchedShort=Qty dispatched
|
QtyDispatchedShort=Qty dispatched
|
||||||
@ -184,7 +184,7 @@ SelectFournisseur=Vendor filter
|
|||||||
inventoryOnDate=Inventory
|
inventoryOnDate=Inventory
|
||||||
INVENTORY_DISABLE_VIRTUAL=Virtual product (kit): do not decrement stock of a child product
|
INVENTORY_DISABLE_VIRTUAL=Virtual product (kit): do not decrement stock of a child product
|
||||||
INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found
|
INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found
|
||||||
INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock movement has date of inventory
|
INVENTORY_USE_INVENTORY_DATE_FOR_DATE_OF_MVT=Stock movements will have the date of inventory (instead of the date of inventory validation)
|
||||||
inventoryChangePMPPermission=Allow to change PMP value for a product
|
inventoryChangePMPPermission=Allow to change PMP value for a product
|
||||||
ColumnNewPMP=New unit PMP
|
ColumnNewPMP=New unit PMP
|
||||||
OnlyProdsInStock=Do not add product without stock
|
OnlyProdsInStock=Do not add product without stock
|
||||||
|
|||||||
@ -76,7 +76,7 @@ WithdrawalFile=Withdrawal file
|
|||||||
SetToStatusSent=Set to status "File Sent"
|
SetToStatusSent=Set to status "File Sent"
|
||||||
ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null
|
ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null
|
||||||
StatisticsByLineStatus=Statistics by status of lines
|
StatisticsByLineStatus=Statistics by status of lines
|
||||||
RUM=Unique Mandate Reference (UMR)
|
RUM=UMR
|
||||||
DateRUM=Mandate signature date
|
DateRUM=Mandate signature date
|
||||||
RUMLong=Unique Mandate Reference
|
RUMLong=Unique Mandate Reference
|
||||||
RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved.
|
RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved.
|
||||||
|
|||||||
@ -54,7 +54,6 @@ LT2CustomerES=Ventas de IRPF
|
|||||||
LT2SupplierES=Compras de IRPF
|
LT2SupplierES=Compras de IRPF
|
||||||
LT2CustomerIN=Ventas de SGST
|
LT2CustomerIN=Ventas de SGST
|
||||||
VATCollected=IVA recaudado
|
VATCollected=IVA recaudado
|
||||||
ToPay=Pagar
|
|
||||||
SpecialExpensesArea=Área para todos los pagos especiales
|
SpecialExpensesArea=Área para todos los pagos especiales
|
||||||
SocialContribution=Impuesto social o fiscal
|
SocialContribution=Impuesto social o fiscal
|
||||||
LabelContrib=Contribución de etiqueta
|
LabelContrib=Contribución de etiqueta
|
||||||
|
|||||||
@ -50,7 +50,6 @@ LT2Supplier=Impuestos 3 compras
|
|||||||
LT2CustomerES=Ventas de IRPF
|
LT2CustomerES=Ventas de IRPF
|
||||||
LT2SupplierES=Compras IRPF
|
LT2SupplierES=Compras IRPF
|
||||||
VATCollected=IVA recaudado
|
VATCollected=IVA recaudado
|
||||||
ToPay=Pagar
|
|
||||||
SpecialExpensesArea=Área para todos los pagos especiales.
|
SpecialExpensesArea=Área para todos los pagos especiales.
|
||||||
SocialContribution=Impuesto social o fiscal
|
SocialContribution=Impuesto social o fiscal
|
||||||
SocialContributions=Impuestos sociales o fiscales.
|
SocialContributions=Impuestos sociales o fiscales.
|
||||||
|
|||||||
@ -16,9 +16,5 @@ FormToTestFileUploadForm=Formulaire pour tester l'upload de fichiers (selon la c
|
|||||||
IfModuleEnabled=Note: oui ne fonctionne que si le module <b>%s</b> est activé
|
IfModuleEnabled=Note: oui ne fonctionne que si le module <b>%s</b> est activé
|
||||||
Module20Name=Propales
|
Module20Name=Propales
|
||||||
Module30Name=Factures
|
Module30Name=Factures
|
||||||
Module600Name=Notifications on business event
|
|
||||||
Target=Objectif
|
Target=Objectif
|
||||||
ListOfNotificationsPerUser=List of automatic notifications per user*
|
|
||||||
ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact**
|
|
||||||
ListOfFixedNotifications=List of automatic fixed notifications
|
|
||||||
OperationParamDesc=Define values to use for action, or how to extract values. For example:<br>objproperty1=SET:abc<br>objproperty1=SET:a value with replacement of __objproperty1__<br>objproperty3=SETIFEMPTY:abc<br>objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)<br>options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)<br>object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)<br><br>Use a ; char as separator to extract or set several properties.
|
OperationParamDesc=Define values to use for action, or how to extract values. For example:<br>objproperty1=SET:abc<br>objproperty1=SET:a value with replacement of __objproperty1__<br>objproperty3=SETIFEMPTY:abc<br>objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)<br>options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)<br>object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)<br><br>Use a ; char as separator to extract or set several properties.
|
||||||
|
|||||||
@ -1,3 +1,2 @@
|
|||||||
# Dolibarr language file - Source file is en_US - withdrawals
|
# Dolibarr language file - Source file is en_US - withdrawals
|
||||||
StatusTrans=Envoyé
|
StatusTrans=Envoyé
|
||||||
RUM=Unique Mandate Reference (UMR)
|
|
||||||
|
|||||||
@ -89,7 +89,6 @@ WatermarkOnDraftExpenseReports=Filigrane sur les projets de rapports de dépense
|
|||||||
Module0Desc=Gestion des utilisateurs / employés et des groupes
|
Module0Desc=Gestion des utilisateurs / employés et des groupes
|
||||||
Module42Desc=Installations de journalisation (fichier, syslog, ...). Ces journaux sont à des fins techniques / de débogage.
|
Module42Desc=Installations de journalisation (fichier, syslog, ...). Ces journaux sont à des fins techniques / de débogage.
|
||||||
Module75Name=Notes de frais et déplacements
|
Module75Name=Notes de frais et déplacements
|
||||||
Module600Name=Notifications on business event
|
|
||||||
Module2400Name=Evénements / Agenda
|
Module2400Name=Evénements / Agenda
|
||||||
Module2600Name=services API / Web ( serveur SOAP )
|
Module2600Name=services API / Web ( serveur SOAP )
|
||||||
Module2600Desc=Active le serveur de Web Services de Dolibarr
|
Module2600Desc=Active le serveur de Web Services de Dolibarr
|
||||||
@ -199,9 +198,6 @@ DeleteFiscalYear=Supprimer la période comptable
|
|||||||
ConfirmDeleteFiscalYear=Êtes-vous sûr de supprimer cette période comptable?
|
ConfirmDeleteFiscalYear=Êtes-vous sûr de supprimer cette période comptable?
|
||||||
ShowFiscalYear=Afficher la période comptable
|
ShowFiscalYear=Afficher la période comptable
|
||||||
SalariesSetup=Configuration du module salariés
|
SalariesSetup=Configuration du module salariés
|
||||||
ListOfNotificationsPerUser=List of automatic notifications per user*
|
|
||||||
ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact**
|
|
||||||
ListOfFixedNotifications=List of automatic fixed notifications
|
|
||||||
ConfFileMustContainCustom=L'installation ou la construction d'un module externe à partir de l'application doit sauvegarder les fichiers du module dans le répertoire <strong>%s</strong>. Pour que ce répertoire soit traité par Dolibarr, vous devez configurer votre <strong> conf / conf.php </strong> pour ajouter les 2 lignes de directive: <br><strong> $ dolibarr_main_url_root_alt = '/ custom'; </strong><br><strong> $ dolibarr_main_document_root_alt = '%s / custom'; </strong>
|
ConfFileMustContainCustom=L'installation ou la construction d'un module externe à partir de l'application doit sauvegarder les fichiers du module dans le répertoire <strong>%s</strong>. Pour que ce répertoire soit traité par Dolibarr, vous devez configurer votre <strong> conf / conf.php </strong> pour ajouter les 2 lignes de directive: <br><strong> $ dolibarr_main_url_root_alt = '/ custom'; </strong><br><strong> $ dolibarr_main_document_root_alt = '%s / custom'; </strong>
|
||||||
HighlightLinesOnMouseHover=Mettez en surbrillance les lignes de table lorsque déplacement de la souris passe au-dessus
|
HighlightLinesOnMouseHover=Mettez en surbrillance les lignes de table lorsque déplacement de la souris passe au-dessus
|
||||||
PressF5AfterChangingThis=Appuyez sur CTRL + F5 sur le clavier ou effacez votre cache de navigateur après avoir changé cette valeur pour l'avoir efficace
|
PressF5AfterChangingThis=Appuyez sur CTRL + F5 sur le clavier ou effacez votre cache de navigateur après avoir changé cette valeur pour l'avoir efficace
|
||||||
|
|||||||
@ -53,7 +53,6 @@ DoStandingOrdersBeforePayments=Cet onglet vous permet de demander une commande d
|
|||||||
WithdrawalFile=Fichier de retrait
|
WithdrawalFile=Fichier de retrait
|
||||||
SetToStatusSent=Définir le statut "Fichier envoyé"
|
SetToStatusSent=Définir le statut "Fichier envoyé"
|
||||||
StatisticsByLineStatus=Statistiques par état des lignes
|
StatisticsByLineStatus=Statistiques par état des lignes
|
||||||
RUM=Unique Mandate Reference (UMR)
|
|
||||||
RUMLong=Référence de mandat unique
|
RUMLong=Référence de mandat unique
|
||||||
WithdrawMode=Mode de débit direct (FRST ou RECUR)
|
WithdrawMode=Mode de débit direct (FRST ou RECUR)
|
||||||
WithdrawRequestAmount=Montant de la demande de débit direct:
|
WithdrawRequestAmount=Montant de la demande de débit direct:
|
||||||
|
|||||||
@ -462,7 +462,9 @@ EnableAndSetupModuleCron=Si vous voulez avoir cette facture récurrente génér
|
|||||||
ModuleCompanyCodeCustomerAquarium=%s suivi d'un code client tiers pour un code comptable client
|
ModuleCompanyCodeCustomerAquarium=%s suivi d'un code client tiers pour un code comptable client
|
||||||
ModuleCompanyCodeSupplierAquarium=%s suivi du code fournisseur tiers pour le code comptable fournisseur
|
ModuleCompanyCodeSupplierAquarium=%s suivi du code fournisseur tiers pour le code comptable fournisseur
|
||||||
ModuleCompanyCodePanicum=Retourne un code comptable vide
|
ModuleCompanyCodePanicum=Retourne un code comptable vide
|
||||||
ModuleCompanyCodeDigitaria=Renvoie un code comptable composé suivant le code tiers. Le code est composé du caractère 'C' en première position suivi des 5 premiers caractères du code tiers.
|
ModuleCompanyCodeDigitaria=Renvoie un code de comptabilisation composé en fonction du nom du tiers. Le code consiste en un préfixe pouvant être défini dans la première position, suivi d'un nombre de caractères défini dans le code tiers.
|
||||||
|
ModuleCompanyCodeCustomerDigitaria=%s suivi du nom de client tronqué du nombre de caractères: %s pour le code comptable client.
|
||||||
|
ModuleCompanyCodeSupplierDigitaria=%s suivi du nom du fournisseur tronqué du nombre de caractères: %s pour le code comptable fournisseur.
|
||||||
Use3StepsApproval=Par défaut, les commandes fournisseurs nécessitent d'être créées et approuvées par 2 utilisateurs différents (une étape/utilisateur pour créer et une étape/utilisateur pour approuver. Notez que si un utilisateur à les deux permissions, ces deux actions sont effectuées en une seule fois). Cette option ajoute la nécessité d'une approbation par une troisième étape/utilisateur, si le montant de la commande est supérieur au montant d'une valeur définie (soit 3 étapes nécessaire: 1 =Validation, 2=Première approbation et 3=seconde approbation si le montant l'exige).<br>Laissez le champ vide si une seule approbation (2 étapes) est suffisante, placez une valeur très faible (0.1) si une deuxième approbation (3 étapes) est toujours exigée.
|
Use3StepsApproval=Par défaut, les commandes fournisseurs nécessitent d'être créées et approuvées par 2 utilisateurs différents (une étape/utilisateur pour créer et une étape/utilisateur pour approuver. Notez que si un utilisateur à les deux permissions, ces deux actions sont effectuées en une seule fois). Cette option ajoute la nécessité d'une approbation par une troisième étape/utilisateur, si le montant de la commande est supérieur au montant d'une valeur définie (soit 3 étapes nécessaire: 1 =Validation, 2=Première approbation et 3=seconde approbation si le montant l'exige).<br>Laissez le champ vide si une seule approbation (2 étapes) est suffisante, placez une valeur très faible (0.1) si une deuxième approbation (3 étapes) est toujours exigée.
|
||||||
UseDoubleApproval=Activer l'approbation en trois étapes si le montant HT est supérieur à...
|
UseDoubleApproval=Activer l'approbation en trois étapes si le montant HT est supérieur à...
|
||||||
WarningPHPMail=Attention : Il est préférable de configurer les emails sortant pour utiliser le serveur email de votre fournisseur plutôt que la configuration par défaut. Certains fournisseurs email (comme Yahoo) ne permettent pas l'envoi d'e-mails depuis un autre serveur que le leur si l'adresse d'envoi utilisée est une adresse autre que la leur. Votre configuration actuelle utilise le serveur de l'application pour l'envoi d'e-mails et non le serveur de votre fournisseur de messagerie, aussi certains destinataires (ceux compatibles avec le protocole restrictif DMARC) demanderont au fournisseur d'email si ils peuvent accepter l'email et certains fournisseurs (comme Yahoo) peuvent répondre "non" car le serveur utilisé pour l'envoi n'est pas un serveur appartenant au fournisseur, aussi certains de vos emails envoyés peuvent ne pas etre accepté (faites attention aussi aux quotas de votre fournisseur d'email). <br>SI votre fournisseur d'email (comme Yahoo) impose cette restriction, vous devrez modifier votre configuration et opter pour l'autre méthode d'envoi "SMTP server" et saisir les identifiants SMTP de votre compte fournis par votre fournisseur d'e-mail (à demander à votre fournisseur d'e-mail)
|
WarningPHPMail=Attention : Il est préférable de configurer les emails sortant pour utiliser le serveur email de votre fournisseur plutôt que la configuration par défaut. Certains fournisseurs email (comme Yahoo) ne permettent pas l'envoi d'e-mails depuis un autre serveur que le leur si l'adresse d'envoi utilisée est une adresse autre que la leur. Votre configuration actuelle utilise le serveur de l'application pour l'envoi d'e-mails et non le serveur de votre fournisseur de messagerie, aussi certains destinataires (ceux compatibles avec le protocole restrictif DMARC) demanderont au fournisseur d'email si ils peuvent accepter l'email et certains fournisseurs (comme Yahoo) peuvent répondre "non" car le serveur utilisé pour l'envoi n'est pas un serveur appartenant au fournisseur, aussi certains de vos emails envoyés peuvent ne pas etre accepté (faites attention aussi aux quotas de votre fournisseur d'email). <br>SI votre fournisseur d'email (comme Yahoo) impose cette restriction, vous devrez modifier votre configuration et opter pour l'autre méthode d'envoi "SMTP server" et saisir les identifiants SMTP de votre compte fournis par votre fournisseur d'e-mail (à demander à votre fournisseur d'e-mail)
|
||||||
@ -1846,8 +1848,10 @@ NothingToSetup=Aucune configuration particulière n'est requise pour ce module.
|
|||||||
SetToYesIfGroupIsComputationOfOtherGroups=Réglez ceci sur Oui si ce groupe est un calcul d'autres groupes
|
SetToYesIfGroupIsComputationOfOtherGroups=Réglez ceci sur Oui si ce groupe est un calcul d'autres groupes
|
||||||
EnterCalculationRuleIfPreviousFieldIsYes=Entrez la règle de calcul si le champ précédent a été défini sur Oui (par exemple, 'CODEGRP1 + CODEGRP2')
|
EnterCalculationRuleIfPreviousFieldIsYes=Entrez la règle de calcul si le champ précédent a été défini sur Oui (par exemple, 'CODEGRP1 + CODEGRP2')
|
||||||
SeveralLangugeVariatFound=Plusieurs variantes de langue trouvées
|
SeveralLangugeVariatFound=Plusieurs variantes de langue trouvées
|
||||||
COMPANY_AQUARIUM_REMOVE_SPECIAL=Supprimer les caractères spéciaux
|
RemoveSpecialChars=Supprimer les caractères spéciaux
|
||||||
COMPANY_AQUARIUM_CLEAN_REGEX=Filtre Regex pour nettoyer la valeur (COMPANY_AQUARIUM_CLEAN_REGEX)
|
COMPANY_AQUARIUM_CLEAN_REGEX=Filtre Regex pour nettoyer la valeur (COMPANY_AQUARIUM_CLEAN_REGEX)
|
||||||
|
COMPANY_DIGITARIA_CLEAN_REGEX=Filtre de regex pour nettoyer la valeur (COMPANY_DIGITARIA_CLEAN_REGEX)
|
||||||
|
COMPANY_DIGITARIA_UNIQUE_CODE=Doublons non autorisés
|
||||||
GDPRContact=Responsable de la protection des données (DPO ou contact RGPD)
|
GDPRContact=Responsable de la protection des données (DPO ou contact RGPD)
|
||||||
GDPRContactDesc=Si vous stockez des données sur des entreprises / citoyens européens, vous pouvez stocker ici le contact responsable du RGPD.
|
GDPRContactDesc=Si vous stockez des données sur des entreprises / citoyens européens, vous pouvez stocker ici le contact responsable du RGPD.
|
||||||
HelpOnTooltip=Texte d'aide à afficher dans l'info-bulle
|
HelpOnTooltip=Texte d'aide à afficher dans l'info-bulle
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user