commit
6e18057976
Binary file not shown.
|
After Width: | Height: | Size: 172 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 6.9 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 6.2 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 6.4 KiB |
@ -32,12 +32,14 @@ base=$2;
|
|||||||
port=$3;
|
port=$3;
|
||||||
demologin=$4;
|
demologin=$4;
|
||||||
demopass=$5;
|
demopass=$5;
|
||||||
|
demopasshash=$6;
|
||||||
|
|
||||||
# ----------------------------- check params
|
# ----------------------------- check params
|
||||||
if [ "x$confirm" != "xconfirm" ]
|
if [ "x$confirm" != "xconfirm" ]
|
||||||
then
|
then
|
||||||
echo "----- $0 -----"
|
echo "----- $0 -----"
|
||||||
echo "Usage: initdemopassword.sh confirm [base port login pass]"
|
echo "Usage: initdemopassword.sh confirm [base port login pass password_hash_algo]"
|
||||||
|
echo "password_hash_algo can be md5 or password_hash"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -147,8 +149,20 @@ then
|
|||||||
fi
|
fi
|
||||||
#echo "mysql -P$port -u$admin $passwd $base < $mydir/$dumpfile"
|
#echo "mysql -P$port -u$admin $passwd $base < $mydir/$dumpfile"
|
||||||
#mysql -P$port -u$admin $passwd $base < $mydir/$dumpfile
|
#mysql -P$port -u$admin $passwd $base < $mydir/$dumpfile
|
||||||
echo "echo \"UPDATE llx_user SET pass_crypted = MD5('$demopass') WHERE login = '$demologin';\" | mysql -P$port $base"
|
|
||||||
echo "UPDATE llx_user SET pass_crypted = MD5('$demopass') WHERE login = '$demologin';" | mysql -P$port $base
|
if [ "x${demopasshash}" != "xpassword_hash" ]
|
||||||
|
then
|
||||||
|
echo '<?php echo MD5("$demopass"); ?>' > /tmp/tmp.php
|
||||||
|
newpass=`php -f /tmp/tmp.php`
|
||||||
|
rm /tmp/tmp.php
|
||||||
|
else
|
||||||
|
echo '<?php echo password_hash("'$demopass'", PASSWORD_DEFAULT); ?>' > /tmp/tmp.php
|
||||||
|
newpass=`php -f /tmp/tmp.php`
|
||||||
|
rm /tmp/tmp.php
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "echo \"UPDATE llx_user SET pass_crypted = '$newpass' WHERE login = '$demologin';\" | mysql -P$port $base"
|
||||||
|
echo "UPDATE llx_user SET pass_crypted = '$newpass' WHERE login = '$demologin';" | mysql -P$port $base
|
||||||
export res=$?
|
export res=$?
|
||||||
|
|
||||||
if [ $res -ne 0 ]; then
|
if [ $res -ne 0 ]; then
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -259,6 +259,7 @@ export list="
|
|||||||
--ignore-table=$base.llx_dolireport_plot
|
--ignore-table=$base.llx_dolireport_plot
|
||||||
--ignore-table=$base.llx_dolireport_report
|
--ignore-table=$base.llx_dolireport_report
|
||||||
--ignore-table=$base.llx_domain
|
--ignore-table=$base.llx_domain
|
||||||
|
--ignore-table=$base.llx_ecommerce_category
|
||||||
--ignore-table=$base.llx_ecommerce_commande
|
--ignore-table=$base.llx_ecommerce_commande
|
||||||
--ignore-table=$base.llx_ecommerce_facture
|
--ignore-table=$base.llx_ecommerce_facture
|
||||||
--ignore-table=$base.llx_ecommerce_product
|
--ignore-table=$base.llx_ecommerce_product
|
||||||
|
|||||||
@ -1 +0,0 @@
|
|||||||
Options -Indexes
|
|
||||||
@ -54,8 +54,8 @@ $code = GETPOST('code', 'alpha');
|
|||||||
|
|
||||||
$acts[0] = "activate";
|
$acts[0] = "activate";
|
||||||
$acts[1] = "disable";
|
$acts[1] = "disable";
|
||||||
$actl[0] = img_picto($langs->trans("Disabled"), 'switch_off');
|
$actl[0] = img_picto($langs->trans("Disabled"), 'switch_off', 'class="size15x"');
|
||||||
$actl[1] = img_picto($langs->trans("Activated"), 'switch_on');
|
$actl[1] = img_picto($langs->trans("Activated"), 'switch_on', 'class="size15x"');
|
||||||
|
|
||||||
$listoffset = GETPOST('listoffset', 'alpha');
|
$listoffset = GETPOST('listoffset', 'alpha');
|
||||||
$listlimit = GETPOST('listlimit', 'int') > 0 ?GETPOST('listlimit', 'int') : 1000;
|
$listlimit = GETPOST('listlimit', 'int') > 0 ?GETPOST('listlimit', 'int') : 1000;
|
||||||
@ -442,7 +442,7 @@ if ($id) {
|
|||||||
} else {
|
} else {
|
||||||
$sql .= " WHERE ";
|
$sql .= " WHERE ";
|
||||||
}
|
}
|
||||||
$sql .= " c.rowid = ".$search_country_id;
|
$sql .= " c.rowid = ".((int) $search_country_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
// If sort order is "country", we use country_code instead
|
// If sort order is "country", we use country_code instead
|
||||||
|
|||||||
@ -48,8 +48,8 @@ if (empty($user->rights->accounting->chartofaccount)) {
|
|||||||
|
|
||||||
$acts[0] = "activate";
|
$acts[0] = "activate";
|
||||||
$acts[1] = "disable";
|
$acts[1] = "disable";
|
||||||
$actl[0] = img_picto($langs->trans("Disabled"), 'switch_off');
|
$actl[0] = img_picto($langs->trans("Disabled"), 'switch_off', 'class="size15x"');
|
||||||
$actl[1] = img_picto($langs->trans("Activated"), 'switch_on');
|
$actl[1] = img_picto($langs->trans("Activated"), 'switch_on', 'class="size15x"');
|
||||||
|
|
||||||
$listoffset = GETPOST('listoffset', 'alpha');
|
$listoffset = GETPOST('listoffset', 'alpha');
|
||||||
$listlimit = GETPOST('listlimit', 'int') > 0 ?GETPOST('listlimit', 'int') : 1000;
|
$listlimit = GETPOST('listlimit', 'int') > 0 ?GETPOST('listlimit', 'int') : 1000;
|
||||||
|
|||||||
@ -51,8 +51,8 @@ if (empty($user->rights->accounting->chartofaccount)) {
|
|||||||
|
|
||||||
$acts[0] = "activate";
|
$acts[0] = "activate";
|
||||||
$acts[1] = "disable";
|
$acts[1] = "disable";
|
||||||
$actl[0] = img_picto($langs->trans("Disabled"), 'switch_off');
|
$actl[0] = img_picto($langs->trans("Disabled"), 'switch_off', 'class="size15x"');
|
||||||
$actl[1] = img_picto($langs->trans("Activated"), 'switch_on');
|
$actl[1] = img_picto($langs->trans("Activated"), 'switch_on', 'class="size15x"');
|
||||||
|
|
||||||
$listoffset = GETPOST('listoffset', 'alpha');
|
$listoffset = GETPOST('listoffset', 'alpha');
|
||||||
$listlimit = GETPOST('listlimit', 'int') > 0 ?GETPOST('listlimit', 'int') : 1000;
|
$listlimit = GETPOST('listlimit', 'int') > 0 ?GETPOST('listlimit', 'int') : 1000;
|
||||||
|
|||||||
@ -183,7 +183,7 @@ if ($action == 'update') {
|
|||||||
}
|
}
|
||||||
if ($result <= 0) {
|
if ($result <= 0) {
|
||||||
// setEventMessages(null, $accounting->errors, 'errors');
|
// setEventMessages(null, $accounting->errors, 'errors');
|
||||||
$msg .= '<div><span style="color:red">'.$langs->trans("ErrorDB").' : '.$langs->trans("Product").' '.$productid.' '.$langs->trans("NotVentilatedinAccount").' : id='.$accounting_account_id.'<br/> <pre>'.$sql.'</pre></span></div>';
|
$msg .= '<div><span style="color:red">'.$langs->trans("ErrorDB").' : '.$langs->trans("Product").' '.$productid.' '.$langs->trans("NotVentilatedinAccount").' : id='.$accounting_account_id.'<br> <pre>'.$sql.'</pre></span></div>';
|
||||||
$ko++;
|
$ko++;
|
||||||
} else {
|
} else {
|
||||||
$db->begin();
|
$db->begin();
|
||||||
|
|||||||
@ -563,7 +563,7 @@ if ($action == 'create') {
|
|||||||
{
|
{
|
||||||
$sqlmid = 'SELECT rowid as ref';
|
$sqlmid = 'SELECT rowid as ref';
|
||||||
$sqlmid .= " FROM ".MAIN_DB_PREFIX."facture as fac";
|
$sqlmid .= " FROM ".MAIN_DB_PREFIX."facture as fac";
|
||||||
$sqlmid .= " WHERE fac.rowid=" . $object->fk_doc;
|
$sqlmid .= " WHERE fac.rowid=" . ((int) $object->fk_doc);
|
||||||
dol_syslog("accountancy/bookkeeping/card.php::sqlmid=" . $sqlmid, LOG_DEBUG);
|
dol_syslog("accountancy/bookkeeping/card.php::sqlmid=" . $sqlmid, LOG_DEBUG);
|
||||||
$resultmid = $db->query($sqlmid);
|
$resultmid = $db->query($sqlmid);
|
||||||
if ($resultmid) {
|
if ($resultmid) {
|
||||||
|
|||||||
@ -473,7 +473,7 @@ class AccountancyCategory // extends CommonObject
|
|||||||
$sql .= " SELECT DISTINCT aa.account_number";
|
$sql .= " SELECT DISTINCT aa.account_number";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as aa";
|
$sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as aa";
|
||||||
$sql .= " INNER JOIN ".MAIN_DB_PREFIX."accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version";
|
$sql .= " INNER JOIN ".MAIN_DB_PREFIX."accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version";
|
||||||
$sql .= " AND asy.rowid = ".$conf->global->CHARTOFACCOUNTS;
|
$sql .= " AND asy.rowid = ".((int) $conf->global->CHARTOFACCOUNTS);
|
||||||
$sql .= " AND aa.active = 1";
|
$sql .= " AND aa.active = 1";
|
||||||
$sql .= " AND aa.entity = ".$conf->entity.")";
|
$sql .= " AND aa.entity = ".$conf->entity.")";
|
||||||
$sql .= " GROUP BY t.numero_compte, t.label_operation, t.doc_ref";
|
$sql .= " GROUP BY t.numero_compte, t.label_operation, t.doc_ref";
|
||||||
@ -562,7 +562,7 @@ class AccountancyCategory // extends CommonObject
|
|||||||
$sql = "SELECT aa.rowid, aa.account_number";
|
$sql = "SELECT aa.rowid, aa.account_number";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as aa";
|
$sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as aa";
|
||||||
$sql .= " INNER JOIN ".MAIN_DB_PREFIX."accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version";
|
$sql .= " INNER JOIN ".MAIN_DB_PREFIX."accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version";
|
||||||
$sql .= " AND asy.rowid = ".$conf->global->CHARTOFACCOUNTS;
|
$sql .= " AND asy.rowid = ".((int) $conf->global->CHARTOFACCOUNTS);
|
||||||
$sql .= " AND aa.active = 1";
|
$sql .= " AND aa.active = 1";
|
||||||
$sql .= " AND aa.entity = ".$conf->entity;
|
$sql .= " AND aa.entity = ".$conf->entity;
|
||||||
$sql .= " ORDER BY LENGTH(aa.account_number) DESC;"; // LENGTH is ok with mysql and postgresql
|
$sql .= " ORDER BY LENGTH(aa.account_number) DESC;"; // LENGTH is ok with mysql and postgresql
|
||||||
@ -589,8 +589,8 @@ class AccountancyCategory // extends CommonObject
|
|||||||
$accountincptsadded[$account_number_formated] = 1;
|
$accountincptsadded[$account_number_formated] = 1;
|
||||||
// We found an account number that is in list $cpts of account to add
|
// We found an account number that is in list $cpts of account to add
|
||||||
$sql = "UPDATE ".MAIN_DB_PREFIX."accounting_account";
|
$sql = "UPDATE ".MAIN_DB_PREFIX."accounting_account";
|
||||||
$sql .= " SET fk_accounting_category=".$id_cat;
|
$sql .= " SET fk_accounting_category=".((int) $id_cat);
|
||||||
$sql .= " WHERE rowid=".$obj->rowid;
|
$sql .= " WHERE rowid=".((int) $obj->rowid);
|
||||||
dol_syslog(__METHOD__, LOG_DEBUG);
|
dol_syslog(__METHOD__, LOG_DEBUG);
|
||||||
$resqlupdate = $this->db->query($sql);
|
$resqlupdate = $this->db->query($sql);
|
||||||
if (!$resqlupdate) {
|
if (!$resqlupdate) {
|
||||||
@ -629,7 +629,7 @@ class AccountancyCategory // extends CommonObject
|
|||||||
|
|
||||||
$sql = "UPDATE ".MAIN_DB_PREFIX."accounting_account as aa";
|
$sql = "UPDATE ".MAIN_DB_PREFIX."accounting_account as aa";
|
||||||
$sql .= " SET fk_accounting_category= 0";
|
$sql .= " SET fk_accounting_category= 0";
|
||||||
$sql .= " WHERE aa.rowid= ".$cpt_id;
|
$sql .= " WHERE aa.rowid = ".((int) $cpt_id);
|
||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
|
|
||||||
dol_syslog(__METHOD__." sql=".$sql, LOG_DEBUG);
|
dol_syslog(__METHOD__." sql=".$sql, LOG_DEBUG);
|
||||||
|
|||||||
@ -347,10 +347,10 @@ class AccountingAccount extends CommonObject
|
|||||||
$sql .= " , label = ".($this->label ? "'".$this->db->escape($this->label)."'" : "''");
|
$sql .= " , label = ".($this->label ? "'".$this->db->escape($this->label)."'" : "''");
|
||||||
$sql .= " , labelshort = ".($this->labelshort ? "'".$this->db->escape($this->labelshort)."'" : "''");
|
$sql .= " , labelshort = ".($this->labelshort ? "'".$this->db->escape($this->labelshort)."'" : "''");
|
||||||
$sql .= " , fk_accounting_category = ".(empty($this->account_category) ? 0 : (int) $this->account_category);
|
$sql .= " , fk_accounting_category = ".(empty($this->account_category) ? 0 : (int) $this->account_category);
|
||||||
$sql .= " , fk_user_modif = ".$user->id;
|
$sql .= " , fk_user_modif = ".((int) $user->id);
|
||||||
$sql .= " , active = ".(int) $this->active;
|
$sql .= " , active = ".(int) $this->active;
|
||||||
$sql .= " , reconcilable = ".(int) $this->reconcilable;
|
$sql .= " , reconcilable = ".(int) $this->reconcilable;
|
||||||
$sql .= " WHERE rowid = ".$this->id;
|
$sql .= " WHERE rowid = ".((int) $this->id);
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::update sql=".$sql, LOG_DEBUG);
|
dol_syslog(get_class($this)."::update sql=".$sql, LOG_DEBUG);
|
||||||
$result = $this->db->query($sql);
|
$result = $this->db->query($sql);
|
||||||
|
|||||||
@ -371,8 +371,8 @@ class BookKeeping extends CommonObject
|
|||||||
$sql .= ", ".(!isset($this->date_lim_reglement) || dol_strlen($this->date_lim_reglement) == 0 ? 'NULL' : "'".$this->db->idate($this->date_lim_reglement)."'");
|
$sql .= ", ".(!isset($this->date_lim_reglement) || dol_strlen($this->date_lim_reglement) == 0 ? 'NULL' : "'".$this->db->idate($this->date_lim_reglement)."'");
|
||||||
$sql .= ", '".$this->db->escape($this->doc_type)."'";
|
$sql .= ", '".$this->db->escape($this->doc_type)."'";
|
||||||
$sql .= ", '".$this->db->escape($this->doc_ref)."'";
|
$sql .= ", '".$this->db->escape($this->doc_ref)."'";
|
||||||
$sql .= ", ".$this->fk_doc;
|
$sql .= ", ".((int) $this->fk_doc);
|
||||||
$sql .= ", ".$this->fk_docdet;
|
$sql .= ", ".((int) $this->fk_docdet);
|
||||||
$sql .= ", ".(!empty($this->thirdparty_code) ? ("'".$this->db->escape($this->thirdparty_code)."'") : "NULL");
|
$sql .= ", ".(!empty($this->thirdparty_code) ? ("'".$this->db->escape($this->thirdparty_code)."'") : "NULL");
|
||||||
$sql .= ", ".(!empty($this->subledger_account) ? ("'".$this->db->escape($this->subledger_account)."'") : "NULL");
|
$sql .= ", ".(!empty($this->subledger_account) ? ("'".$this->db->escape($this->subledger_account)."'") : "NULL");
|
||||||
$sql .= ", ".(!empty($this->subledger_label) ? ("'".$this->db->escape($this->subledger_label)."'") : "NULL");
|
$sql .= ", ".(!empty($this->subledger_label) ? ("'".$this->db->escape($this->subledger_label)."'") : "NULL");
|
||||||
@ -632,8 +632,8 @@ class BookKeeping extends CommonObject
|
|||||||
$sql .= ' '.(!isset($this->date_lim_reglement) || dol_strlen($this->date_lim_reglement) == 0 ? 'NULL' : "'".$this->db->idate($this->date_lim_reglement)."'").',';
|
$sql .= ' '.(!isset($this->date_lim_reglement) || dol_strlen($this->date_lim_reglement) == 0 ? 'NULL' : "'".$this->db->idate($this->date_lim_reglement)."'").',';
|
||||||
$sql .= ' '.(!isset($this->doc_type) ? 'NULL' : "'".$this->db->escape($this->doc_type)."'").',';
|
$sql .= ' '.(!isset($this->doc_type) ? 'NULL' : "'".$this->db->escape($this->doc_type)."'").',';
|
||||||
$sql .= ' '.(!isset($this->doc_ref) ? 'NULL' : "'".$this->db->escape($this->doc_ref)."'").',';
|
$sql .= ' '.(!isset($this->doc_ref) ? 'NULL' : "'".$this->db->escape($this->doc_ref)."'").',';
|
||||||
$sql .= ' '.(empty($this->fk_doc) ? '0' : $this->fk_doc).',';
|
$sql .= ' '.(empty($this->fk_doc) ? '0' : (int) $this->fk_doc).',';
|
||||||
$sql .= ' '.(empty($this->fk_docdet) ? '0' : $this->fk_docdet).',';
|
$sql .= ' '.(empty($this->fk_docdet) ? '0' : (int) $this->fk_docdet).',';
|
||||||
$sql .= ' '.(!isset($this->thirdparty_code) ? 'NULL' : "'".$this->db->escape($this->thirdparty_code)."'").',';
|
$sql .= ' '.(!isset($this->thirdparty_code) ? 'NULL' : "'".$this->db->escape($this->thirdparty_code)."'").',';
|
||||||
$sql .= ' '.(!isset($this->subledger_account) ? 'NULL' : "'".$this->db->escape($this->subledger_account)."'").',';
|
$sql .= ' '.(!isset($this->subledger_account) ? 'NULL' : "'".$this->db->escape($this->subledger_account)."'").',';
|
||||||
$sql .= ' '.(!isset($this->subledger_label) ? 'NULL' : "'".$this->db->escape($this->subledger_label)."'").',';
|
$sql .= ' '.(!isset($this->subledger_label) ? 'NULL' : "'".$this->db->escape($this->subledger_label)."'").',';
|
||||||
@ -1860,7 +1860,7 @@ class BookKeeping extends CommonObject
|
|||||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON aa.account_number = ab.numero_compte";
|
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON aa.account_number = ab.numero_compte";
|
||||||
$sql .= " AND aa.active = 1";
|
$sql .= " AND aa.active = 1";
|
||||||
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version";
|
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version";
|
||||||
$sql .= " AND asy.rowid = " . $pcgver;
|
$sql .= " AND asy.rowid = " . ((int) $pcgver);
|
||||||
$sql .= " AND ab.entity IN (" . getEntity('accountancy') . ")";
|
$sql .= " AND ab.entity IN (" . getEntity('accountancy') . ")";
|
||||||
$sql .= " ORDER BY account_number ASC";
|
$sql .= " ORDER BY account_number ASC";
|
||||||
*/
|
*/
|
||||||
@ -1893,7 +1893,7 @@ class BookKeeping extends CommonObject
|
|||||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as aa ON aa.account_number = ab.numero_compte";
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as aa ON aa.account_number = ab.numero_compte";
|
||||||
$sql .= " AND aa.active = 1";
|
$sql .= " AND aa.active = 1";
|
||||||
$sql .= " INNER JOIN ".MAIN_DB_PREFIX."accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version";
|
$sql .= " INNER JOIN ".MAIN_DB_PREFIX."accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version";
|
||||||
$sql .= " AND asy.rowid = ".$pcgver;
|
$sql .= " AND asy.rowid = ".((int) $pcgver);
|
||||||
$sql .= " AND ab.entity IN (".getEntity('accountancy').")";
|
$sql .= " AND ab.entity IN (".getEntity('accountancy').")";
|
||||||
$sql .= " ORDER BY account_number ASC";
|
$sql .= " ORDER BY account_number ASC";
|
||||||
|
|
||||||
|
|||||||
@ -110,13 +110,13 @@ if ($action == 'validatehistory') {
|
|||||||
$sql1 = "UPDATE " . MAIN_DB_PREFIX . "facturedet";
|
$sql1 = "UPDATE " . MAIN_DB_PREFIX . "facturedet";
|
||||||
$sql1 .= " SET fk_code_ventilation = accnt.rowid";
|
$sql1 .= " SET fk_code_ventilation = accnt.rowid";
|
||||||
$sql1 .= " FROM " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accounting_account as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst";
|
$sql1 .= " FROM " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accounting_account as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst";
|
||||||
$sql1 .= " WHERE " . MAIN_DB_PREFIX . "facturedet.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . $conf->global->CHARTOFACCOUNTS.' AND accnt.entity = '.$conf->entity;
|
$sql1 .= " WHERE " . MAIN_DB_PREFIX . "facturedet.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . ((int) $conf->global->CHARTOFACCOUNTS).' AND accnt.entity = '.$conf->entity;
|
||||||
$sql1 .= " AND accnt.active = 1 AND p.accountancy_code_sell=accnt.account_number";
|
$sql1 .= " AND accnt.active = 1 AND p.accountancy_code_sell=accnt.account_number";
|
||||||
$sql1 .= " AND " . MAIN_DB_PREFIX . "facturedet.fk_code_ventilation = 0";
|
$sql1 .= " AND " . MAIN_DB_PREFIX . "facturedet.fk_code_ventilation = 0";
|
||||||
} else {
|
} else {
|
||||||
$sql1 = "UPDATE " . MAIN_DB_PREFIX . "facturedet as fd, " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accounting_account as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst";
|
$sql1 = "UPDATE " . MAIN_DB_PREFIX . "facturedet as fd, " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accounting_account as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst";
|
||||||
$sql1 .= " SET fk_code_ventilation = accnt.rowid";
|
$sql1 .= " SET fk_code_ventilation = accnt.rowid";
|
||||||
$sql1 .= " WHERE fd.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . $conf->global->CHARTOFACCOUNTS.' AND accnt.entity = '.$conf->entity;
|
$sql1 .= " WHERE fd.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . ((int) $conf->global->CHARTOFACCOUNTS).' AND accnt.entity = '.$conf->entity;
|
||||||
$sql1 .= " AND accnt.active = 1 AND p.accountancy_code_sell=accnt.account_number";
|
$sql1 .= " AND accnt.active = 1 AND p.accountancy_code_sell=accnt.account_number";
|
||||||
$sql1 .= " AND fd.fk_code_ventilation = 0";
|
$sql1 .= " AND fd.fk_code_ventilation = 0";
|
||||||
}*/
|
}*/
|
||||||
|
|||||||
@ -400,11 +400,11 @@ if ($result) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$arrayofmassactions = array(
|
$arrayofmassactions = array(
|
||||||
'ventil'=>$langs->trans("Ventilate")
|
'ventil'=>img_picto('', 'check', 'class="pictofixedwidth"').$langs->trans("Ventilate")
|
||||||
//'presend'=>$langs->trans("SendByMail"),
|
//'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail"),
|
||||||
//'builddoc'=>$langs->trans("PDFMerge"),
|
//'builddoc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("PDFMerge"),
|
||||||
);
|
);
|
||||||
//if ($user->rights->mymodule->supprimer) $arrayofmassactions['predelete']='<span class="fa fa-trash paddingrightonly"></span>'.$langs->trans("Delete");
|
//if ($user->rights->mymodule->supprimer) $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete");
|
||||||
//if (in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array();
|
//if (in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array();
|
||||||
$massactionbutton = $form->selectMassAction('ventil', $arrayofmassactions, 1);
|
$massactionbutton = $form->selectMassAction('ventil', $arrayofmassactions, 1);
|
||||||
|
|
||||||
|
|||||||
@ -103,13 +103,13 @@ if ($action == 'validatehistory') {
|
|||||||
$sql1 = "UPDATE ".MAIN_DB_PREFIX."expensereport_det";
|
$sql1 = "UPDATE ".MAIN_DB_PREFIX."expensereport_det";
|
||||||
$sql1 .= " SET fk_code_ventilation = accnt.rowid";
|
$sql1 .= " SET fk_code_ventilation = accnt.rowid";
|
||||||
$sql1 .= " FROM ".MAIN_DB_PREFIX."c_type_fees as t, ".MAIN_DB_PREFIX."accounting_account as accnt , ".MAIN_DB_PREFIX."accounting_system as syst";
|
$sql1 .= " FROM ".MAIN_DB_PREFIX."c_type_fees as t, ".MAIN_DB_PREFIX."accounting_account as accnt , ".MAIN_DB_PREFIX."accounting_system as syst";
|
||||||
$sql1 .= " WHERE ".MAIN_DB_PREFIX."expensereport_det.fk_c_type_fees = t.id AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=".$conf->global->CHARTOFACCOUNTS.' AND accnt.entity = '.$conf->entity;
|
$sql1 .= " WHERE ".MAIN_DB_PREFIX."expensereport_det.fk_c_type_fees = t.id AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid = ".((int) $conf->global->CHARTOFACCOUNTS).' AND accnt.entity = '.$conf->entity;
|
||||||
$sql1 .= " AND accnt.active = 1 AND t.accountancy_code = accnt.account_number";
|
$sql1 .= " AND accnt.active = 1 AND t.accountancy_code = accnt.account_number";
|
||||||
$sql1 .= " AND ".MAIN_DB_PREFIX."expensereport_det.fk_code_ventilation = 0";
|
$sql1 .= " AND ".MAIN_DB_PREFIX."expensereport_det.fk_code_ventilation = 0";
|
||||||
} else {
|
} else {
|
||||||
$sql1 = "UPDATE ".MAIN_DB_PREFIX."expensereport_det as erd, ".MAIN_DB_PREFIX."c_type_fees as t, ".MAIN_DB_PREFIX."accounting_account as accnt , ".MAIN_DB_PREFIX."accounting_system as syst";
|
$sql1 = "UPDATE ".MAIN_DB_PREFIX."expensereport_det as erd, ".MAIN_DB_PREFIX."c_type_fees as t, ".MAIN_DB_PREFIX."accounting_account as accnt , ".MAIN_DB_PREFIX."accounting_system as syst";
|
||||||
$sql1 .= " SET erd.fk_code_ventilation = accnt.rowid";
|
$sql1 .= " SET erd.fk_code_ventilation = accnt.rowid";
|
||||||
$sql1 .= " WHERE erd.fk_c_type_fees = t.id AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=".$conf->global->CHARTOFACCOUNTS.' AND accnt.entity = '.$conf->entity;
|
$sql1 .= " WHERE erd.fk_c_type_fees = t.id AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid = ".((int) $conf->global->CHARTOFACCOUNTS).' AND accnt.entity = '.$conf->entity;
|
||||||
$sql1 .= " AND accnt.active = 1 AND t.accountancy_code=accnt.account_number";
|
$sql1 .= " AND accnt.active = 1 AND t.accountancy_code=accnt.account_number";
|
||||||
$sql1 .= " AND erd.fk_code_ventilation = 0";
|
$sql1 .= " AND erd.fk_code_ventilation = 0";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -164,7 +164,7 @@ if ($massaction == 'ventil' && $user->rights->accounting->bind->write) {
|
|||||||
$msg .= '<div><span style="color:green">'.$langs->trans("LineOfExpenseReport").' '.$monId.' - '.$langs->trans("VentilatedinAccount").' : '.length_accountg($accountventilated->account_number).'</span></div>';
|
$msg .= '<div><span style="color:green">'.$langs->trans("LineOfExpenseReport").' '.$monId.' - '.$langs->trans("VentilatedinAccount").' : '.length_accountg($accountventilated->account_number).'</span></div>';
|
||||||
$ok++;
|
$ok++;
|
||||||
} else {
|
} else {
|
||||||
$msg .= '<div><span style="color:red">'.$langs->trans("ErrorDB").' : '.$langs->trans("Lineofinvoice").' '.$monId.' - '.$langs->trans("NotVentilatedinAccount").' : '.length_accountg($accountventilated->account_number).'<br/> <pre>'.$sql.'</pre></span></div>';
|
$msg .= '<div><span style="color:red">'.$langs->trans("ErrorDB").' : '.$langs->trans("Lineofinvoice").' '.$monId.' - '.$langs->trans("NotVentilatedinAccount").' : '.length_accountg($accountventilated->account_number).'<br> <pre>'.$sql.'</pre></span></div>';
|
||||||
$ko++;
|
$ko++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -298,7 +298,7 @@ if ($result) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$arrayofmassactions = array(
|
$arrayofmassactions = array(
|
||||||
'ventil' => $langs->trans("Ventilate")
|
'ventil' => img_picto('', 'check', 'class="pictofixedwidth"').$langs->trans("Ventilate")
|
||||||
);
|
);
|
||||||
$massactionbutton = $form->selectMassAction('ventil', $arrayofmassactions, 1);
|
$massactionbutton = $form->selectMassAction('ventil', $arrayofmassactions, 1);
|
||||||
|
|
||||||
|
|||||||
@ -35,16 +35,23 @@ $langs->loadLangs(array("compta", "bills", "other", "accountancy", "loans", "ban
|
|||||||
$hookmanager->initHooks(array('accountancyindex'));
|
$hookmanager->initHooks(array('accountancyindex'));
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if (empty($conf->accounting->enabled)) {
|
if ($user->socid > 0) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
}
|
}
|
||||||
if ($user->socid > 0) {
|
/*
|
||||||
|
if (empty($conf->accounting->enabled)) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
}
|
}
|
||||||
if (empty($user->rights->accounting->mouvements->lire)) {
|
if (empty($user->rights->accounting->mouvements->lire)) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
if (empty($conf->comptabilite->enabled) && empty($conf->accounting->enabled) && empty($conf->asset->enabled) && empty($conf->intracommreport->enabled)) {
|
||||||
|
accessforbidden();
|
||||||
|
}
|
||||||
|
if (empty($user->rights->compta->resultat->lire) && empty($user->rights->accounting->mouvements->lire) && empty($user->rights->asset->read) && empty($user->rights->intracommreport->read)) {
|
||||||
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@ -1323,42 +1323,42 @@ function getSourceDocRef($val, $typerecord)
|
|||||||
} elseif ($typerecord == 'payment_supplier') {
|
} elseif ($typerecord == 'payment_supplier') {
|
||||||
$sqlmid = 'SELECT payfac.fk_facturefourn as id, f.ref';
|
$sqlmid = 'SELECT payfac.fk_facturefourn as id, f.ref';
|
||||||
$sqlmid .= " FROM ".MAIN_DB_PREFIX."paiementfourn_facturefourn as payfac, ".MAIN_DB_PREFIX."facture_fourn as f";
|
$sqlmid .= " FROM ".MAIN_DB_PREFIX."paiementfourn_facturefourn as payfac, ".MAIN_DB_PREFIX."facture_fourn as f";
|
||||||
$sqlmid .= " WHERE payfac.fk_facturefourn = f.rowid AND payfac.fk_paiementfourn=".$val["paymentsupplierid"];
|
$sqlmid .= " WHERE payfac.fk_facturefourn = f.rowid AND payfac.fk_paiementfourn=".((int) $val["paymentsupplierid"]);
|
||||||
$ref = $langs->transnoentitiesnoconv("SupplierInvoice");
|
$ref = $langs->transnoentitiesnoconv("SupplierInvoice");
|
||||||
} elseif ($typerecord == 'payment_expensereport') {
|
} elseif ($typerecord == 'payment_expensereport') {
|
||||||
$sqlmid = 'SELECT e.rowid as id, e.ref';
|
$sqlmid = 'SELECT e.rowid as id, e.ref';
|
||||||
$sqlmid .= " FROM ".MAIN_DB_PREFIX."payment_expensereport as pe, ".MAIN_DB_PREFIX."expensereport as e";
|
$sqlmid .= " FROM ".MAIN_DB_PREFIX."payment_expensereport as pe, ".MAIN_DB_PREFIX."expensereport as e";
|
||||||
$sqlmid .= " WHERE pe.rowid=".$val["paymentexpensereport"]." AND pe.fk_expensereport = e.rowid";
|
$sqlmid .= " WHERE pe.rowid=".((int) $val["paymentexpensereport"])." AND pe.fk_expensereport = e.rowid";
|
||||||
$ref = $langs->transnoentitiesnoconv("ExpenseReport");
|
$ref = $langs->transnoentitiesnoconv("ExpenseReport");
|
||||||
} elseif ($typerecord == 'payment_salary') {
|
} elseif ($typerecord == 'payment_salary') {
|
||||||
$sqlmid = 'SELECT s.rowid as ref';
|
$sqlmid = 'SELECT s.rowid as ref';
|
||||||
$sqlmid .= " FROM ".MAIN_DB_PREFIX."payment_salary as s";
|
$sqlmid .= " FROM ".MAIN_DB_PREFIX."payment_salary as s";
|
||||||
$sqlmid .= " WHERE s.rowid=".$val["paymentsalid"];
|
$sqlmid .= " WHERE s.rowid=".((int) $val["paymentsalid"]);
|
||||||
$ref = $langs->transnoentitiesnoconv("SalaryPayment");
|
$ref = $langs->transnoentitiesnoconv("SalaryPayment");
|
||||||
} elseif ($typerecord == 'sc') {
|
} elseif ($typerecord == 'sc') {
|
||||||
$sqlmid = 'SELECT sc.rowid as ref';
|
$sqlmid = 'SELECT sc.rowid as ref';
|
||||||
$sqlmid .= " FROM ".MAIN_DB_PREFIX."paiementcharge as sc";
|
$sqlmid .= " FROM ".MAIN_DB_PREFIX."paiementcharge as sc";
|
||||||
$sqlmid .= " WHERE sc.rowid=".$val["paymentscid"];
|
$sqlmid .= " WHERE sc.rowid=".((int) $val["paymentscid"]);
|
||||||
$ref = $langs->transnoentitiesnoconv("SocialContribution");
|
$ref = $langs->transnoentitiesnoconv("SocialContribution");
|
||||||
} elseif ($typerecord == 'payment_vat') {
|
} elseif ($typerecord == 'payment_vat') {
|
||||||
$sqlmid = 'SELECT v.rowid as ref';
|
$sqlmid = 'SELECT v.rowid as ref';
|
||||||
$sqlmid .= " FROM ".MAIN_DB_PREFIX."tva as v";
|
$sqlmid .= " FROM ".MAIN_DB_PREFIX."tva as v";
|
||||||
$sqlmid .= " WHERE v.rowid=".$val["paymentvatid"];
|
$sqlmid .= " WHERE v.rowid=".((int) $val["paymentvatid"]);
|
||||||
$ref = $langs->transnoentitiesnoconv("PaymentVat");
|
$ref = $langs->transnoentitiesnoconv("PaymentVat");
|
||||||
} elseif ($typerecord == 'payment_donation') {
|
} elseif ($typerecord == 'payment_donation') {
|
||||||
$sqlmid = 'SELECT payd.fk_donation as ref';
|
$sqlmid = 'SELECT payd.fk_donation as ref';
|
||||||
$sqlmid .= " FROM ".MAIN_DB_PREFIX."payment_donation as payd";
|
$sqlmid .= " FROM ".MAIN_DB_PREFIX."payment_donation as payd";
|
||||||
$sqlmid .= " WHERE payd.fk_donation=".$val["paymentdonationid"];
|
$sqlmid .= " WHERE payd.fk_donation=".((int) $val["paymentdonationid"]);
|
||||||
$ref = $langs->transnoentitiesnoconv("Donation");
|
$ref = $langs->transnoentitiesnoconv("Donation");
|
||||||
} elseif ($typerecord == 'payment_loan') {
|
} elseif ($typerecord == 'payment_loan') {
|
||||||
$sqlmid = 'SELECT l.rowid as ref';
|
$sqlmid = 'SELECT l.rowid as ref';
|
||||||
$sqlmid .= " FROM ".MAIN_DB_PREFIX."payment_loan as l";
|
$sqlmid .= " FROM ".MAIN_DB_PREFIX."payment_loan as l";
|
||||||
$sqlmid .= " WHERE l.rowid=".$val["paymentloanid"];
|
$sqlmid .= " WHERE l.rowid=".((int) $val["paymentloanid"]);
|
||||||
$ref = $langs->transnoentitiesnoconv("LoanPayment");
|
$ref = $langs->transnoentitiesnoconv("LoanPayment");
|
||||||
} elseif ($typerecord == 'payment_various') {
|
} elseif ($typerecord == 'payment_various') {
|
||||||
$sqlmid = 'SELECT v.rowid as ref';
|
$sqlmid = 'SELECT v.rowid as ref';
|
||||||
$sqlmid .= " FROM ".MAIN_DB_PREFIX."payment_various as v";
|
$sqlmid .= " FROM ".MAIN_DB_PREFIX."payment_various as v";
|
||||||
$sqlmid .= " WHERE v.rowid=".$val["paymentvariousid"];
|
$sqlmid .= " WHERE v.rowid=".((int) $val["paymentvariousid"]);
|
||||||
$ref = $langs->transnoentitiesnoconv("VariousPayment");
|
$ref = $langs->transnoentitiesnoconv("VariousPayment");
|
||||||
}
|
}
|
||||||
// Add warning
|
// Add warning
|
||||||
|
|||||||
@ -118,13 +118,13 @@ if ($action == 'validatehistory') {
|
|||||||
$sql1 = "UPDATE " . MAIN_DB_PREFIX . "facture_fourn_det";
|
$sql1 = "UPDATE " . MAIN_DB_PREFIX . "facture_fourn_det";
|
||||||
$sql1 .= " SET fk_code_ventilation = accnt.rowid";
|
$sql1 .= " SET fk_code_ventilation = accnt.rowid";
|
||||||
$sql1 .= " FROM " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accounting_account as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst";
|
$sql1 .= " FROM " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accounting_account as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst";
|
||||||
$sql1 .= " WHERE " . MAIN_DB_PREFIX . "facture_fourn_det.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . $conf->global->CHARTOFACCOUNTS.' AND accnt.entity = '.$conf->entity;
|
$sql1 .= " WHERE " . MAIN_DB_PREFIX . "facture_fourn_det.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . ((int) $conf->global->CHARTOFACCOUNTS).' AND accnt.entity = '.$conf->entity;
|
||||||
$sql1 .= " AND accnt.active = 1 AND p.accountancy_code_buy=accnt.account_number";
|
$sql1 .= " AND accnt.active = 1 AND p.accountancy_code_buy=accnt.account_number";
|
||||||
$sql1 .= " AND " . MAIN_DB_PREFIX . "facture_fourn_det.fk_code_ventilation = 0";
|
$sql1 .= " AND " . MAIN_DB_PREFIX . "facture_fourn_det.fk_code_ventilation = 0";
|
||||||
} else {
|
} else {
|
||||||
$sql1 = "UPDATE " . MAIN_DB_PREFIX . "facture_fourn_det as fd, " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accounting_account as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst";
|
$sql1 = "UPDATE " . MAIN_DB_PREFIX . "facture_fourn_det as fd, " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accounting_account as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst";
|
||||||
$sql1 .= " SET fk_code_ventilation = accnt.rowid";
|
$sql1 .= " SET fk_code_ventilation = accnt.rowid";
|
||||||
$sql1 .= " WHERE fd.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . $conf->global->CHARTOFACCOUNTS.' AND accnt.entity = '.$conf->entity;
|
$sql1 .= " WHERE fd.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . ((int) $conf->global->CHARTOFACCOUNTS).' AND accnt.entity = '.$conf->entity;
|
||||||
$sql1 .= " AND accnt.active = 1 AND p.accountancy_code_buy=accnt.account_number";
|
$sql1 .= " AND accnt.active = 1 AND p.accountancy_code_buy=accnt.account_number";
|
||||||
$sql1 .= " AND fd.fk_code_ventilation = 0";
|
$sql1 .= " AND fd.fk_code_ventilation = 0";
|
||||||
}*/
|
}*/
|
||||||
|
|||||||
@ -188,7 +188,7 @@ if ($massaction == 'ventil' && $user->rights->accounting->bind->write) {
|
|||||||
$msg .= '<div><span style="color:green">'.$langs->trans("Lineofinvoice").' '.$monId.' - '.$langs->trans("VentilatedinAccount").' : '.length_accountg($accountventilated->account_number).'</span></div>';
|
$msg .= '<div><span style="color:green">'.$langs->trans("Lineofinvoice").' '.$monId.' - '.$langs->trans("VentilatedinAccount").' : '.length_accountg($accountventilated->account_number).'</span></div>';
|
||||||
$ok++;
|
$ok++;
|
||||||
} else {
|
} else {
|
||||||
$msg .= '<div><span style="color:red">'.$langs->trans("ErrorDB").' : '.$langs->trans("Lineofinvoice").' '.$monId.' - '.$langs->trans("NotVentilatedinAccount").' : '.length_accountg($accountventilated->account_number).'<br/> <pre>'.$sql.'</pre></span></div>';
|
$msg .= '<div><span style="color:red">'.$langs->trans("ErrorDB").' : '.$langs->trans("Lineofinvoice").' '.$monId.' - '.$langs->trans("NotVentilatedinAccount").' : '.length_accountg($accountventilated->account_number).'<br> <pre>'.$sql.'</pre></span></div>';
|
||||||
$ko++;
|
$ko++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -407,11 +407,11 @@ if ($result) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$arrayofmassactions = array(
|
$arrayofmassactions = array(
|
||||||
'ventil'=>$langs->trans("Ventilate")
|
'ventil'=>img_picto('', 'check', 'class="pictofixedwidth"').$langs->trans("Ventilate")
|
||||||
//'presend'=>$langs->trans("SendByMail"),
|
//'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail"),
|
||||||
//'builddoc'=>$langs->trans("PDFMerge"),
|
//'builddoc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("PDFMerge"),
|
||||||
);
|
);
|
||||||
//if ($user->rights->mymodule->supprimer) $arrayofmassactions['predelete']='<span class="fa fa-trash paddingrightonly"></span>'.$langs->trans("Delete");
|
//if ($user->rights->mymodule->supprimer) $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete");
|
||||||
//if (in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array();
|
//if (in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array();
|
||||||
$massactionbutton = $form->selectMassAction('ventil', $arrayofmassactions, 1);
|
$massactionbutton = $form->selectMassAction('ventil', $arrayofmassactions, 1);
|
||||||
|
|
||||||
|
|||||||
@ -108,7 +108,6 @@ if ($action == 'set_default') {
|
|||||||
$res2 = dolibarr_set_const($db, 'ADHERENT_MAIL_REQUIRED', GETPOST('ADHERENT_MAIL_REQUIRED', 'alpha'), 'chaine', 0, '', $conf->entity);
|
$res2 = dolibarr_set_const($db, 'ADHERENT_MAIL_REQUIRED', GETPOST('ADHERENT_MAIL_REQUIRED', 'alpha'), 'chaine', 0, '', $conf->entity);
|
||||||
$res3 = dolibarr_set_const($db, 'ADHERENT_DEFAULT_SENDINFOBYMAIL', GETPOST('ADHERENT_DEFAULT_SENDINFOBYMAIL', 'alpha'), 'chaine', 0, '', $conf->entity);
|
$res3 = dolibarr_set_const($db, 'ADHERENT_DEFAULT_SENDINFOBYMAIL', GETPOST('ADHERENT_DEFAULT_SENDINFOBYMAIL', 'alpha'), 'chaine', 0, '', $conf->entity);
|
||||||
$res4 = dolibarr_set_const($db, 'ADHERENT_BANK_USE', GETPOST('ADHERENT_BANK_USE', 'alpha'), 'chaine', 0, '', $conf->entity);
|
$res4 = dolibarr_set_const($db, 'ADHERENT_BANK_USE', GETPOST('ADHERENT_BANK_USE', 'alpha'), 'chaine', 0, '', $conf->entity);
|
||||||
$res7 = dolibarr_set_const($db, "MEMBER_SUBSCRIPTION_AMOUNT_BY_TYPE", json_encode(GETPOST('MEMBER_SUBSCRIPTION_AMOUNT_BY_TYPE')), 'array', 0, '', $conf->entity);
|
|
||||||
// Use vat for invoice creation
|
// Use vat for invoice creation
|
||||||
if ($conf->facture->enabled) {
|
if ($conf->facture->enabled) {
|
||||||
$res4 = dolibarr_set_const($db, 'ADHERENT_VAT_FOR_SUBSCRIPTIONS', GETPOST('ADHERENT_VAT_FOR_SUBSCRIPTIONS', 'alpha'), 'chaine', 0, '', $conf->entity);
|
$res4 = dolibarr_set_const($db, 'ADHERENT_VAT_FOR_SUBSCRIPTIONS', GETPOST('ADHERENT_VAT_FOR_SUBSCRIPTIONS', 'alpha'), 'chaine', 0, '', $conf->entity);
|
||||||
@ -220,18 +219,6 @@ print '<tr class="oddeven"><td>'.$langs->trans("MemberSendInformationByMailByDef
|
|||||||
print $form->selectyesno('ADHERENT_DEFAULT_SENDINFOBYMAIL', (!empty($conf->global->ADHERENT_DEFAULT_SENDINFOBYMAIL) ? $conf->global->ADHERENT_DEFAULT_SENDINFOBYMAIL : 0), 1);
|
print $form->selectyesno('ADHERENT_DEFAULT_SENDINFOBYMAIL', (!empty($conf->global->ADHERENT_DEFAULT_SENDINFOBYMAIL) ? $conf->global->ADHERENT_DEFAULT_SENDINFOBYMAIL : 0), 1);
|
||||||
print "</td></tr>\n";
|
print "</td></tr>\n";
|
||||||
|
|
||||||
|
|
||||||
// Amount by member type
|
|
||||||
$adht = new AdherentType($db);
|
|
||||||
$amountbytype = empty($conf->global->MEMBER_SUBSCRIPTION_AMOUNT_BY_TYPE) ? -1 : json_decode($conf->global->MEMBER_SUBSCRIPTION_AMOUNT_BY_TYPE, true);
|
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("DefineAmountMemberType").'</td><td>';
|
|
||||||
foreach ($adht->liste_array(1) as $typeid => $type) {
|
|
||||||
print $type .' : ';
|
|
||||||
print '<input type="text" id="MEMBER_SUBSCRIPTION_AMOUNT_BY_TYPE['.$typeid.']" name="MEMBER_SUBSCRIPTION_AMOUNT_BY_TYPE['.$typeid.']" " size="5" value="'.(!empty($amountbytype[$typeid]) ? $amountbytype[$typeid] : '').'">';
|
|
||||||
print '<br>';
|
|
||||||
}
|
|
||||||
print "</td></tr>\n";
|
|
||||||
|
|
||||||
// Insert subscription into bank account
|
// Insert subscription into bank account
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("MoreActionsOnSubscription").'</td>';
|
print '<tr class="oddeven"><td>'.$langs->trans("MoreActionsOnSubscription").'</td>';
|
||||||
$arraychoices = array('0'=>$langs->trans("None"));
|
$arraychoices = array('0'=>$langs->trans("None"));
|
||||||
|
|||||||
@ -231,7 +231,7 @@ print '</form>';
|
|||||||
if (!empty($conf->global->MEMBER_ENABLE_PUBLIC)) {
|
if (!empty($conf->global->MEMBER_ENABLE_PUBLIC)) {
|
||||||
print '<br>';
|
print '<br>';
|
||||||
//print $langs->trans('FollowingLinksArePublic').'<br>';
|
//print $langs->trans('FollowingLinksArePublic').'<br>';
|
||||||
print img_picto('', 'globe').' '.$langs->trans('BlankSubscriptionForm').':<br>';
|
print img_picto('', 'globe').' <span class="opacitymedium">'.$langs->trans('BlankSubscriptionForm').'</span><br>';
|
||||||
if (!empty($conf->multicompany->enabled)) {
|
if (!empty($conf->multicompany->enabled)) {
|
||||||
$entity_qr = '?entity='.$conf->entity;
|
$entity_qr = '?entity='.$conf->entity;
|
||||||
} else {
|
} else {
|
||||||
@ -243,7 +243,11 @@ if (!empty($conf->global->MEMBER_ENABLE_PUBLIC)) {
|
|||||||
$urlwithroot = $urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file
|
$urlwithroot = $urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file
|
||||||
//$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current
|
//$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current
|
||||||
|
|
||||||
print '<a target="_blank" href="'.$urlwithroot.'/public/members/new.php'.$entity_qr.'">'.$urlwithroot.'/public/members/new.php'.$entity_qr.'</a>';
|
print '<div class="urllink">';
|
||||||
|
print '<input type="text" id="publicurlmember" class="quatrevingtpercent" value="'.$urlwithroot.'/public/members/new.php'.$entity_qr.'">';
|
||||||
|
print '<a target="_blank" href="'.$urlwithroot.'/public/members/new.php'.$entity_qr.'">'.img_picto('', 'globe', 'class="paddingleft"').'</a>';
|
||||||
|
print '</div>';
|
||||||
|
print ajax_autoselect('publicurlmember');
|
||||||
}
|
}
|
||||||
|
|
||||||
// End of page
|
// End of page
|
||||||
|
|||||||
@ -1597,8 +1597,8 @@ class Adherent extends CommonObject
|
|||||||
$inserturlid = $acct->add_url_line($insertid, $this->id, DOL_URL_ROOT.'/adherents/card.php?rowid=', $this->getFullname($langs), 'member');
|
$inserturlid = $acct->add_url_line($insertid, $this->id, DOL_URL_ROOT.'/adherents/card.php?rowid=', $this->getFullname($langs), 'member');
|
||||||
if ($inserturlid > 0) {
|
if ($inserturlid > 0) {
|
||||||
// Update table subscription
|
// Update table subscription
|
||||||
$sql = "UPDATE ".MAIN_DB_PREFIX."subscription SET fk_bank=".$insertid;
|
$sql = "UPDATE ".MAIN_DB_PREFIX."subscription SET fk_bank=".((int) $insertid);
|
||||||
$sql .= " WHERE rowid=".$subscriptionid;
|
$sql .= " WHERE rowid=".((int) $subscriptionid);
|
||||||
|
|
||||||
dol_syslog("subscription::subscription", LOG_DEBUG);
|
dol_syslog("subscription::subscription", LOG_DEBUG);
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
|
|||||||
@ -365,7 +365,7 @@ class AdherentType extends CommonObject
|
|||||||
$sql .= "note = '".$this->db->escape($this->note)."',";
|
$sql .= "note = '".$this->db->escape($this->note)."',";
|
||||||
$sql .= "vote = ".(integer) $this->db->escape($this->vote).",";
|
$sql .= "vote = ".(integer) $this->db->escape($this->vote).",";
|
||||||
$sql .= "mail_valid = '".$this->db->escape($this->mail_valid)."'";
|
$sql .= "mail_valid = '".$this->db->escape($this->mail_valid)."'";
|
||||||
$sql .= " WHERE rowid =".$this->id;
|
$sql .= " WHERE rowid =".((int) $this->id);
|
||||||
|
|
||||||
$result = $this->db->query($sql);
|
$result = $this->db->query($sql);
|
||||||
if ($result) {
|
if ($result) {
|
||||||
|
|||||||
@ -165,7 +165,7 @@ class Subscription extends CommonObject
|
|||||||
} else {
|
} else {
|
||||||
$type = $this->fk_type;
|
$type = $this->fk_type;
|
||||||
}
|
}
|
||||||
$sql .= " VALUES (".$this->fk_adherent.", '".$this->db->escape($type)."', '".$this->db->idate($now)."',";
|
$sql .= " VALUES (".((int) $this->fk_adherent).", '".$this->db->escape($type)."', '".$this->db->idate($now)."',";
|
||||||
$sql .= " '".$this->db->idate($this->dateh)."',";
|
$sql .= " '".$this->db->idate($this->dateh)."',";
|
||||||
$sql .= " '".$this->db->idate($this->datef)."',";
|
$sql .= " '".$this->db->idate($this->datef)."',";
|
||||||
$sql .= " ".$this->amount.",";
|
$sql .= " ".$this->amount.",";
|
||||||
@ -217,7 +217,7 @@ class Subscription extends CommonObject
|
|||||||
$sql .= " datef,";
|
$sql .= " datef,";
|
||||||
$sql .= " subscription, note, fk_bank";
|
$sql .= " subscription, note, fk_bank";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."subscription";
|
$sql .= " FROM ".MAIN_DB_PREFIX."subscription";
|
||||||
$sql .= " WHERE rowid=".$rowid;
|
$sql .= " WHERE rowid=".((int) $rowid);
|
||||||
|
|
||||||
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);
|
||||||
|
|||||||
@ -318,7 +318,7 @@ if ($sall) {
|
|||||||
$sql .= natural_search(array_keys($fieldstosearchall), $sall);
|
$sql .= natural_search(array_keys($fieldstosearchall), $sall);
|
||||||
}
|
}
|
||||||
if ($search_type > 0) {
|
if ($search_type > 0) {
|
||||||
$sql .= " AND t.rowid=".$db->escape($search_type);
|
$sql .= " AND t.rowid=".((int) $search_type);
|
||||||
}
|
}
|
||||||
if ($search_filter == 'withoutsubscription') {
|
if ($search_filter == 'withoutsubscription') {
|
||||||
$sql .= " AND (datefin IS NULL OR t.subscription = 0)";
|
$sql .= " AND (datefin IS NULL OR t.subscription = 0)";
|
||||||
@ -543,8 +543,8 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
|
|||||||
|
|
||||||
// List of mass actions available
|
// List of mass actions available
|
||||||
$arrayofmassactions = array(
|
$arrayofmassactions = array(
|
||||||
//'presend'=>img_picto('', 'email').$langs->trans("SendByMail"),
|
//'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').' '.$langs->trans("SendByMail"),
|
||||||
//'builddoc'=>img_picto('', 'pdf').$langs->trans("PDFMerge"),
|
//'builddoc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("PDFMerge"),
|
||||||
);
|
);
|
||||||
if ($user->rights->adherent->creer) {
|
if ($user->rights->adherent->creer) {
|
||||||
$arrayofmassactions['close'] = img_picto('', 'close_title', 'class="pictofixedwidth"').$langs->trans("Resiliate");
|
$arrayofmassactions['close'] = img_picto('', 'close_title', 'class="pictofixedwidth"').$langs->trans("Resiliate");
|
||||||
|
|||||||
@ -677,7 +677,7 @@ if ($rowid > 0) {
|
|||||||
$sql .= " FROM ".MAIN_DB_PREFIX."adherent as d, ".MAIN_DB_PREFIX."subscription as c";
|
$sql .= " FROM ".MAIN_DB_PREFIX."adherent as d, ".MAIN_DB_PREFIX."subscription as c";
|
||||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."bank as b ON c.fk_bank = b.rowid";
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."bank as b ON c.fk_bank = b.rowid";
|
||||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."bank_account as ba ON b.fk_account = ba.rowid";
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."bank_account as ba ON b.fk_account = ba.rowid";
|
||||||
$sql .= " WHERE d.rowid = c.fk_adherent AND d.rowid=".$rowid;
|
$sql .= " WHERE d.rowid = c.fk_adherent AND d.rowid=".((int) $rowid);
|
||||||
$sql .= $db->order($sortfield, $sortorder);
|
$sql .= $db->order($sortfield, $sortorder);
|
||||||
|
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
|
|||||||
@ -170,7 +170,7 @@ if (isset($date_select) && $date_select != '') {
|
|||||||
}
|
}
|
||||||
if ($search_ref) {
|
if ($search_ref) {
|
||||||
if (is_numeric($search_ref)) {
|
if (is_numeric($search_ref)) {
|
||||||
$sql .= " AND (c.rowid = ".$db->escape($search_ref).")";
|
$sql .= " AND c.rowid = ".((int) $search_ref);
|
||||||
} else {
|
} else {
|
||||||
$sql .= " AND 1 = 2"; // Always wrong
|
$sql .= " AND 1 = 2"; // Always wrong
|
||||||
}
|
}
|
||||||
@ -287,10 +287,10 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
|
|||||||
|
|
||||||
// List of mass actions available
|
// List of mass actions available
|
||||||
$arrayofmassactions = array(
|
$arrayofmassactions = array(
|
||||||
//'presend'=>$langs->trans("SendByMail"),
|
//'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail"),
|
||||||
//'builddoc'=>$langs->trans("PDFMerge"),
|
//'builddoc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("PDFMerge"),
|
||||||
);
|
);
|
||||||
//if ($user->rights->adherent->supprimer) $arrayofmassactions['predelete']='<span class="fa fa-trash paddingrightonly"></span>'.$langs->trans("Delete");
|
//if ($user->rights->adherent->supprimer) $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete");
|
||||||
if (in_array($massaction, array('presend', 'predelete'))) {
|
if (in_array($massaction, array('presend', 'predelete'))) {
|
||||||
$arrayofmassactions = array();
|
$arrayofmassactions = array();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -500,7 +500,7 @@ if ($rowid > 0) {
|
|||||||
$sql .= " FROM ".MAIN_DB_PREFIX."adherent as d, ".MAIN_DB_PREFIX."adherent_type as t";
|
$sql .= " FROM ".MAIN_DB_PREFIX."adherent as d, ".MAIN_DB_PREFIX."adherent_type as t";
|
||||||
$sql .= " WHERE d.fk_adherent_type = t.rowid ";
|
$sql .= " WHERE d.fk_adherent_type = t.rowid ";
|
||||||
$sql .= " AND d.entity IN (".getEntity('adherent').")";
|
$sql .= " AND d.entity IN (".getEntity('adherent').")";
|
||||||
$sql .= " AND t.rowid = ".$object->id;
|
$sql .= " AND t.rowid = ".((int) $object->id);
|
||||||
if ($sall) {
|
if ($sall) {
|
||||||
$sql .= natural_search(array("f.firstname", "d.lastname", "d.societe", "d.email", "d.login", "d.address", "d.town", "d.note_public", "d.note_private"), $sall);
|
$sql .= natural_search(array("f.firstname", "d.lastname", "d.societe", "d.email", "d.login", "d.address", "d.town", "d.note_public", "d.note_private"), $sall);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* \file htdocs/admin/accountant.php
|
* \file htdocs/admin/accountant.php
|
||||||
* \ingroup accountant
|
* \ingroup core
|
||||||
* \brief Setup page to configure accountant / auditor
|
* \brief Setup page to configure accountant / auditor
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
68
htdocs/admin/accounting.php
Normal file
68
htdocs/admin/accounting.php
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2018 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
||||||
|
*
|
||||||
|
* 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 <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file htdocs/admin/accounting.php
|
||||||
|
* \ingroup accounting
|
||||||
|
* \brief Setup page to configure accountanting module
|
||||||
|
*/
|
||||||
|
|
||||||
|
require '../main.inc.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
|
||||||
|
|
||||||
|
$action = GETPOST('action', 'aZ09');
|
||||||
|
$contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'adminaccoutant'; // To manage different context of search
|
||||||
|
|
||||||
|
// Load translation files required by the page
|
||||||
|
$langs->loadLangs(array('admin', 'companies'));
|
||||||
|
|
||||||
|
if (!$user->admin) {
|
||||||
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
|
$error = 0;
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Actions
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Nothing
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* View
|
||||||
|
*/
|
||||||
|
|
||||||
|
$help_url = '';
|
||||||
|
llxHeader('', $langs->trans("ConfigAccountingExpert"), $help_url);
|
||||||
|
|
||||||
|
$linkback = '<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
|
|
||||||
|
print load_fiche_titre($langs->trans("ConfigAccountingExpert"), $linkback, 'title_setup');
|
||||||
|
|
||||||
|
print "<br>\n";
|
||||||
|
print '<span class="opacitymedium">'.$langs->trans("AccountancySetupDoneFromAccountancyMenu", $langs->transnoentitiesnoconv("Accounting").' - '.$langs->transnoentitiesnoconv("Setup"))."</span><br>\n";
|
||||||
|
print "<br>\n";
|
||||||
|
|
||||||
|
llxFooter();
|
||||||
|
|
||||||
|
$db->close();
|
||||||
@ -112,8 +112,11 @@ if ($action == "save" && empty($cancel)) {
|
|||||||
* View
|
* View
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$wikihelp = 'EN:Module_Agenda_En|FR:Module_Agenda|ES:Módulo_Agenda';
|
// $wikihelp = 'EN:Module_Agenda_En|FR:Module_Agenda|ES:Módulo_Agenda';
|
||||||
llxHeader('', $langs->trans("AgendaSetup"), $wikihelp);
|
|
||||||
|
$help_url = 'EN:Module_Agenda_En|FR:Module_Agenda|ES:Módulo_Agenda';
|
||||||
|
|
||||||
|
llxHeader('', $langs->trans("AgendaSetup"), $help_url);
|
||||||
|
|
||||||
$linkback = '<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback = '<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("AgendaSetup"), $linkback, 'title_setup');
|
print load_fiche_titre($langs->trans("AgendaSetup"), $linkback, 'title_setup');
|
||||||
|
|||||||
@ -160,19 +160,31 @@ $getentity = ($conf->entity > 1 ? "&entity=".$conf->entity : "");
|
|||||||
|
|
||||||
// Show message
|
// Show message
|
||||||
$message = '';
|
$message = '';
|
||||||
|
|
||||||
$urlvcal = '<a href="'.$urlwithroot.'/public/agenda/agendaexport.php?format=vcal'.$getentity.'&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY ?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY) : '...').'" target="_blank">';
|
$urlvcal = '<a href="'.$urlwithroot.'/public/agenda/agendaexport.php?format=vcal'.$getentity.'&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY ?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY) : '...').'" target="_blank">';
|
||||||
$urlvcal .= $urlwithroot.'/public/agenda/agendaexport.php?format=vcal'.$getentity.'&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY ?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY) : 'KEYNOTDEFINED').'</a>';
|
$urlvcal .= $urlwithroot.'/public/agenda/agendaexport.php?format=vcal'.$getentity.'&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY ?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY) : 'KEYNOTDEFINED').'</a>';
|
||||||
$message .= img_picto('', 'globe').' '.$langs->trans("WebCalUrlForVCalExport", 'vcal', $urlvcal);
|
$message .= img_picto('', 'globe').' '.str_replace('{url}', $urlvcal, '<span class="opacitymedium">'.$langs->trans("WebCalUrlForVCalExport", 'vcal', '').'</span>');
|
||||||
|
$message .= '<div class="urllink">';
|
||||||
|
$message .= '<input type="text" id="onlinepaymenturl" class="quatrevingtpercent" value="'.$urlwithroot.'/public/agenda/agendaexport.php?format=vcal'.$getentity.'&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY ?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY) : '...').'">';
|
||||||
|
$message .= '</div>';
|
||||||
$message .= '<br>';
|
$message .= '<br>';
|
||||||
|
|
||||||
$urlical = '<a href="'.$urlwithroot.'/public/agenda/agendaexport.php?format=ical&type=event'.$getentity.'&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY ?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY) : '...').'" target="_blank">';
|
$urlical = '<a href="'.$urlwithroot.'/public/agenda/agendaexport.php?format=ical&type=event'.$getentity.'&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY ?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY) : '...').'" target="_blank">';
|
||||||
$urlical .= $urlwithroot.'/public/agenda/agendaexport.php?format=ical&type=event'.$getentity.'&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY ?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY) : 'KEYNOTDEFINED').'</a>';
|
$urlical .= $urlwithroot.'/public/agenda/agendaexport.php?format=ical&type=event'.$getentity.'&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY ?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY) : 'KEYNOTDEFINED').'</a>';
|
||||||
$message .= img_picto('', 'globe').' '.$langs->trans("WebCalUrlForVCalExport", 'ical/ics', $urlical);
|
$message .= img_picto('', 'globe').' '.str_replace('{url}', $urlical, '<span class="opacitymedium">'.$langs->trans("WebCalUrlForVCalExport", 'ical/ics', '').'</span>');
|
||||||
|
$message .= '<div class="urllink">';
|
||||||
|
$message .= '<input type="text" id="onlinepaymenturl" class="quatrevingtpercent" value="'.$urlwithroot.'/public/agenda/agendaexport.php?format=ical'.$getentity.'&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY ?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY) : '...').'">';
|
||||||
|
$message .= '</div>';
|
||||||
$message .= '<br>';
|
$message .= '<br>';
|
||||||
|
|
||||||
$urlrss = '<a href="'.$urlwithroot.'/public/agenda/agendaexport.php?format=rss'.$getentity.'&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY ?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY) : '...').'" target="_blank">';
|
$urlrss = '<a href="'.$urlwithroot.'/public/agenda/agendaexport.php?format=rss'.$getentity.'&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY ?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY) : '...').'" target="_blank">';
|
||||||
$urlrss .= $urlwithroot.'/public/agenda/agendaexport.php?format=rss'.$getentity.'&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY ?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY) : 'KEYNOTDEFINED').'</a>';
|
$urlrss .= $urlwithroot.'/public/agenda/agendaexport.php?format=rss'.$getentity.'&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY ?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY) : 'KEYNOTDEFINED').'</a>';
|
||||||
$message .= img_picto('', 'globe').' '.$langs->trans("WebCalUrlForVCalExport", 'rss', $urlrss);
|
$message .= img_picto('', 'globe').' '.str_replace('{url}', $urlrss, '<span class="opacitymedium">'.$langs->trans("WebCalUrlForVCalExport", 'rss', '').'</span>');
|
||||||
$message .= '<br>';
|
$message .= '<div class="urllink">';
|
||||||
|
$message .= '<input type="text" id="onlinepaymenturl" class="quatrevingtpercent" value="'.$urlwithroot.'/public/agenda/agendaexport.php?format=rss'.$getentity.'&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY ?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY) : '...').'">';
|
||||||
|
$message .= '</div>';
|
||||||
$message .= '<br>';
|
$message .= '<br>';
|
||||||
|
|
||||||
print $message;
|
print $message;
|
||||||
|
|
||||||
$message = $langs->trans("AgendaUrlOptions1", $user->login, $user->login).'<br>';
|
$message = $langs->trans("AgendaUrlOptions1", $user->login, $user->login).'<br>';
|
||||||
|
|||||||
@ -114,8 +114,8 @@ if ($action == 'add') {
|
|||||||
if (empty($arrayofexistingboxid[$boxid['value']])) {
|
if (empty($arrayofexistingboxid[$boxid['value']])) {
|
||||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."boxes (";
|
$sql = "INSERT INTO ".MAIN_DB_PREFIX."boxes (";
|
||||||
$sql .= "box_id, position, box_order, fk_user, entity";
|
$sql .= "box_id, position, box_order, fk_user, entity";
|
||||||
$sql .= ") values (";
|
$sql .= ") VALUES (";
|
||||||
$sql .= $boxid['value'].", ".$pos.", '".(($nbboxonleft > $nbboxonright) ? 'B01' : 'A01')."', ".$fk_user.", ".$conf->entity;
|
$sql .= $boxid['value'].", ".((int) $pos).", '".(($nbboxonleft > $nbboxonright) ? 'B01' : 'A01')."', ".$fk_user.", ".$conf->entity;
|
||||||
$sql .= ")";
|
$sql .= ")";
|
||||||
|
|
||||||
dol_syslog("boxes.php activate box", LOG_DEBUG);
|
dol_syslog("boxes.php activate box", LOG_DEBUG);
|
||||||
@ -156,7 +156,7 @@ if ($action == 'delete') {
|
|||||||
|
|
||||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."boxes";
|
$sql = "DELETE FROM ".MAIN_DB_PREFIX."boxes";
|
||||||
$sql .= " WHERE entity = ".$conf->entity;
|
$sql .= " WHERE entity = ".$conf->entity;
|
||||||
$sql .= " AND box_id=".$obj->box_id;
|
$sql .= " AND box_id=".((int) $obj->box_id);
|
||||||
|
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
|
|
||||||
@ -255,7 +255,7 @@ if ($resql) {
|
|||||||
// We renumber the order of the boxes if one of them is in ''
|
// We renumber the order of the boxes if one of them is in ''
|
||||||
// This occurs just after an insert.
|
// This occurs just after an insert.
|
||||||
if ($decalage) {
|
if ($decalage) {
|
||||||
$sql = "UPDATE ".MAIN_DB_PREFIX."boxes SET box_order='".$db->escape($decalage)."' WHERE rowid=".$obj->rowid;
|
$sql = "UPDATE ".MAIN_DB_PREFIX."boxes SET box_order='".$db->escape($decalage)."' WHERE rowid=".((int) $obj->rowid);
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -316,9 +316,9 @@ print '<div class="div-table-responsive-no-min">';
|
|||||||
print '<table class="tagtable liste centpercent">'."\n";
|
print '<table class="tagtable liste centpercent">'."\n";
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td width="300">'.$langs->trans("Box").'</td>';
|
print '<td>'.$langs->trans("Box").'</td>';
|
||||||
print '<td>'.$langs->trans("Note").'/'.$langs->trans("Parameters").'</td>';
|
print '<td>'.$langs->trans("Note").'/'.$langs->trans("Parameters").'</td>';
|
||||||
print '<td>'.$langs->trans("SourceFile").'</td>';
|
print '<td></td>';
|
||||||
print '<td width="160" class="center">'.$langs->trans("ActivatableOn").'</td>';
|
print '<td width="160" class="center">'.$langs->trans("ActivatableOn").'</td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
@ -333,7 +333,14 @@ foreach ($boxtoadd as $box) {
|
|||||||
print '<tr class="oddeven">'."\n";
|
print '<tr class="oddeven">'."\n";
|
||||||
print '<td>'.img_object("", $logo, 'height="14px"').' '.$langs->transnoentitiesnoconv($box->boxlabel);
|
print '<td>'.img_object("", $logo, 'height="14px"').' '.$langs->transnoentitiesnoconv($box->boxlabel);
|
||||||
if (!empty($box->class) && preg_match('/graph_/', $box->class)) {
|
if (!empty($box->class) && preg_match('/graph_/', $box->class)) {
|
||||||
print ' ('.$langs->trans("Graph").')';
|
print img_picto('', 'graph', 'class="paddingleft"');
|
||||||
|
}
|
||||||
|
if (!empty($box->version)) {
|
||||||
|
if ($box->version == 'experimental') {
|
||||||
|
print ' <span class="opacitymedium">('.$langs->trans("Experimental").')</span>';
|
||||||
|
} elseif ($box->version == 'development') {
|
||||||
|
print ' <span class="opacitymedium">('.$langs->trans("Development").')</span>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
print '</td>'."\n";
|
print '</td>'."\n";
|
||||||
print '<td>';
|
print '<td>';
|
||||||
@ -344,7 +351,9 @@ foreach ($boxtoadd as $box) {
|
|||||||
print ($box->note ? $box->note : ' ');
|
print ($box->note ? $box->note : ' ');
|
||||||
}
|
}
|
||||||
print '</td>'."\n";
|
print '</td>'."\n";
|
||||||
print '<td>'.$box->sourcefile.'</td>'."\n";
|
print '<td>';
|
||||||
|
print $form->textwithpicto('', $langs->trans("SourceFile").' : '.$box->sourcefile);
|
||||||
|
print '</td>'."\n";
|
||||||
|
|
||||||
// For each possible position, an activation link is displayed if the box is not already active for that position
|
// For each possible position, an activation link is displayed if the box is not already active for that position
|
||||||
print '<td class="center">';
|
print '<td class="center">';
|
||||||
@ -375,7 +384,7 @@ print '<div class="div-table-responsive-no-min">';
|
|||||||
print '<table class="tagtable liste">'."\n";
|
print '<table class="tagtable liste">'."\n";
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td width="300">'.$langs->trans("Box").'</td>';
|
print '<td>'.$langs->trans("Box").'</td>';
|
||||||
print '<td>'.$langs->trans("Note").'/'.$langs->trans("Parameters").'</td>';
|
print '<td>'.$langs->trans("Note").'/'.$langs->trans("Parameters").'</td>';
|
||||||
print '<td class="center" width="160">'.$langs->trans("ActivatableOn").'</td>';
|
print '<td class="center" width="160">'.$langs->trans("ActivatableOn").'</td>';
|
||||||
print '<td class="center" width="60" colspan="2">'.$langs->trans("PositionByDefault").'</td>';
|
print '<td class="center" width="60" colspan="2">'.$langs->trans("PositionByDefault").'</td>';
|
||||||
@ -395,7 +404,14 @@ foreach ($boxactivated as $key => $box) {
|
|||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.img_object("", $logo, 'height="14px"').' '.$langs->transnoentitiesnoconv($box->boxlabel);
|
print '<td>'.img_object("", $logo, 'height="14px"').' '.$langs->transnoentitiesnoconv($box->boxlabel);
|
||||||
if (!empty($box->class) && preg_match('/graph_/', $box->class)) {
|
if (!empty($box->class) && preg_match('/graph_/', $box->class)) {
|
||||||
print ' ('.$langs->trans("Graph").')';
|
print img_picto('', 'graph', 'class="paddingleft"');
|
||||||
|
}
|
||||||
|
if (!empty($box->version)) {
|
||||||
|
if ($box->version == 'experimental') {
|
||||||
|
print ' <span class="opacitymedium">('.$langs->trans("Experimental").')</span>';
|
||||||
|
} elseif ($box->version == 'development') {
|
||||||
|
print ' <span class="opacitymedium">('.$langs->trans("Development").')</span>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
|
|||||||
@ -666,7 +666,7 @@ print '<td class="titlefield">'.$langs->trans("FiscalYearInformation").'</td><td
|
|||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="SOCIETE_FISCAL_MONTH_START">'.$langs->trans("FiscalMonthStart").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="SOCIETE_FISCAL_MONTH_START">'.$langs->trans("FiscalMonthStart").'</label></td><td>';
|
||||||
print $formother->select_month($conf->global->SOCIETE_FISCAL_MONTH_START, 'SOCIETE_FISCAL_MONTH_START', 0, 1, 'maxwidth100').'</td></tr>';
|
print $formother->select_month(!empty($conf->global->SOCIETE_FISCAL_MONTH_START) ? $conf->global->SOCIETE_FISCAL_MONTH_START : '', 'SOCIETE_FISCAL_MONTH_START', 0, 1, 'maxwidth100').'</td></tr>';
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|||||||
@ -169,17 +169,32 @@ $urlwithroot = $urlwithouturlroot.DOL_URL_ROOT; // This is to use external domai
|
|||||||
// Show message
|
// Show message
|
||||||
$message = '';
|
$message = '';
|
||||||
$url = '<a href="'.$urlwithroot.'/dav/fileserver.php" target="_blank">'.$urlwithroot.'/dav/fileserver.php</a>';
|
$url = '<a href="'.$urlwithroot.'/dav/fileserver.php" target="_blank">'.$urlwithroot.'/dav/fileserver.php</a>';
|
||||||
$message .= img_picto('', 'globe').' '.str_replace('{url}', $url, $langs->trans("WebDavServer", 'WebDAV', '{url}'));
|
|
||||||
|
$message .= img_picto('', 'globe').' '.str_replace('{url}', $url, $langs->trans("WebDavServer", 'WebDAV', ''));
|
||||||
|
$message .= '<div class="urllink"><input type="text" id="webdavpublicurl" class="quatrevingtpercent" value="'.$urlwithroot.'/dav/fileserver.php">';
|
||||||
|
$message .= '<a href="'.$urlwithroot.'/dav/fileserver.php" target="_blank">';
|
||||||
|
$message .= ' '.img_picto('', 'globe');
|
||||||
|
$message .= '</a>';
|
||||||
|
$message .= '</div>';
|
||||||
|
$message .= ajax_autoselect('webdavpublicurl');
|
||||||
|
|
||||||
$message .= '<br>';
|
$message .= '<br>';
|
||||||
if (!empty($conf->global->DAV_ALLOW_PUBLIC_DIR)) {
|
if (!empty($conf->global->DAV_ALLOW_PUBLIC_DIR)) {
|
||||||
$urlEntity = (!empty($conf->multicompany->enabled) ? '?entity='.$conf->entity : '');
|
$urlEntity = (!empty($conf->multicompany->enabled) ? '?entity='.$conf->entity : '');
|
||||||
$url = '<a href="'.$urlwithroot.'/dav/fileserver.php/public/'.$urlEntity.'" target="_blank">'.$urlwithroot.'/dav/fileserver.php/public/'.$urlEntity.'</a>';
|
$url = '<a href="'.$urlwithroot.'/dav/fileserver.php/public/'.$urlEntity.'" target="_blank">'.$urlwithroot.'/dav/fileserver.php/public/'.$urlEntity.'</a>';
|
||||||
$message .= img_picto('', 'globe').' '.str_replace('{url}', $url, $langs->trans("WebDavServer", 'WebDAV public', '{url}'));
|
|
||||||
|
$message .= img_picto('', 'globe').' '.str_replace('{url}', $url, $langs->trans("WebDavServer", 'WebDAV public', ''));
|
||||||
|
$message .= '<div class="urllink"><input type="text" id="webdavurl" class="quatrevingtpercent" value="'.$urlwithroot.'/dav/fileserver.php/public/'.$urlEntity.'">';
|
||||||
|
$message .= '<a href="'.$urlwithroot.'/dav/fileserver.php/public/'.$urlEntity.'" target="_blank">';
|
||||||
|
$message .= ' '.img_picto('', 'globe');
|
||||||
|
$message .= '</a>';
|
||||||
|
$message .= '</div>';
|
||||||
|
$message .= ajax_autoselect('webdavurl');
|
||||||
$message .= '<br>';
|
$message .= '<br>';
|
||||||
}
|
}
|
||||||
print $message;
|
print $message;
|
||||||
|
|
||||||
print '<br><br><br>';
|
print '<br>';
|
||||||
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/includes/sabre/autoload.php';
|
require_once DOL_DOCUMENT_ROOT.'/includes/sabre/autoload.php';
|
||||||
$version = Sabre\DAV\Version::VERSION;
|
$version = Sabre\DAV\Version::VERSION;
|
||||||
|
|||||||
@ -289,7 +289,7 @@ if ($action == 'edit') {
|
|||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
|
|
||||||
if ($conf->global->MAIN_DISABLE_METEO != 1) {
|
if (empty($conf->global->MAIN_DISABLE_METEO) || $conf->global->MAIN_DISABLE_METEO != 1) {
|
||||||
// Show logo for weather
|
// Show logo for weather
|
||||||
print '<span class="opacitymedium">'.$langs->trans("DescWeather").'</span> ';
|
print '<span class="opacitymedium">'.$langs->trans("DescWeather").'</span> ';
|
||||||
|
|
||||||
@ -302,7 +302,7 @@ if ($conf->global->MAIN_DISABLE_METEO != 1) {
|
|||||||
$str_mode_enabled = $str_mode_percentage;
|
$str_mode_enabled = $str_mode_percentage;
|
||||||
}
|
}
|
||||||
print '<a href="#" onclick="return false;" id="change_mode">'.$str_mode_enabled.'</a>';
|
print '<a href="#" onclick="return false;" id="change_mode">'.$str_mode_enabled.'</a>';
|
||||||
print '<input type="hidden" id="MAIN_USE_METEO_WITH_PERCENTAGE" name="MAIN_USE_METEO_WITH_PERCENTAGE" value="'.$conf->global->MAIN_USE_METEO_WITH_PERCENTAGE.'" />';
|
print '<input type="hidden" id="MAIN_USE_METEO_WITH_PERCENTAGE" name="MAIN_USE_METEO_WITH_PERCENTAGE" value="'.(!empty($conf->global->MAIN_USE_METEO_WITH_PERCENTAGE) ? $conf->global->MAIN_USE_METEO_WITH_PERCENTAGE : '').'" />';
|
||||||
|
|
||||||
print '<br><br>';
|
print '<br><br>';
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -70,8 +70,8 @@ if (!$allowed) {
|
|||||||
$acts = array(); $actl = array();
|
$acts = array(); $actl = array();
|
||||||
$acts[0] = "activate";
|
$acts[0] = "activate";
|
||||||
$acts[1] = "disable";
|
$acts[1] = "disable";
|
||||||
$actl[0] = img_picto($langs->trans("Disabled"), 'switch_off');
|
$actl[0] = img_picto($langs->trans("Disabled"), 'switch_off', 'class="size15x"');
|
||||||
$actl[1] = img_picto($langs->trans("Activated"), 'switch_on');
|
$actl[1] = img_picto($langs->trans("Activated"), 'switch_on', 'class="size15x"');
|
||||||
|
|
||||||
$listoffset = GETPOST('listoffset');
|
$listoffset = GETPOST('listoffset');
|
||||||
$listlimit = GETPOST('listlimit') > 0 ?GETPOST('listlimit') : 1000; // To avoid too long dictionaries
|
$listlimit = GETPOST('listlimit') > 0 ?GETPOST('listlimit') : 1000; // To avoid too long dictionaries
|
||||||
@ -1151,7 +1151,7 @@ if ($id) {
|
|||||||
$sql .= " WHERE 1 = 1";
|
$sql .= " WHERE 1 = 1";
|
||||||
}
|
}
|
||||||
if ($search_country_id > 0) {
|
if ($search_country_id > 0) {
|
||||||
$sql .= " AND c.rowid = ".$search_country_id;
|
$sql .= " AND c.rowid = ".((int) $search_country_id);
|
||||||
}
|
}
|
||||||
if ($search_code != '' && $id == 9) {
|
if ($search_code != '' && $id == 9) {
|
||||||
$sql .= natural_search("code_iso", $search_code);
|
$sql .= natural_search("code_iso", $search_code);
|
||||||
|
|||||||
@ -322,7 +322,7 @@ class Dolistore
|
|||||||
$html .= '<tr class="app oddeven '.$compatible.'">
|
$html .= '<tr class="app oddeven '.$compatible.'">
|
||||||
<td class="center" width="210"><div class="newAppParent">'.$newapp.$images.'</div></td>
|
<td class="center" width="210"><div class="newAppParent">'.$newapp.$images.'</div></td>
|
||||||
<td class="margeCote"><h2 class="appTitle">'.$product->name->language[$this->lang - 1]
|
<td class="margeCote"><h2 class="appTitle">'.$product->name->language[$this->lang - 1]
|
||||||
.'<br/><small>'.$version.'</small></h2>
|
.'<br><small>'.$version.'</small></h2>
|
||||||
<small> '.dol_print_date(dol_stringtotime($product->date_upd), 'dayhour').' - '.$langs->trans('Ref').': '.$product->reference.' - '.$langs->trans('Id').': '.$product->id.'</small><br><br>'.$product->description_short->language[$this->lang - 1].'</td>';
|
<small> '.dol_print_date(dol_stringtotime($product->date_upd), 'dayhour').' - '.$langs->trans('Ref').': '.$product->reference.' - '.$langs->trans('Id').': '.$product->id.'</small><br><br>'.$product->description_short->language[$this->lang - 1].'</td>';
|
||||||
// do not load if display none
|
// do not load if display none
|
||||||
//$html .= '<td style="display:none;" class="long_description">'.$product->description->language[$this->lang - 1].'</td>';
|
//$html .= '<td style="display:none;" class="long_description">'.$product->description->language[$this->lang - 1].'</td>';
|
||||||
|
|||||||
@ -356,11 +356,11 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
|
|||||||
|
|
||||||
// List of mass actions available
|
// List of mass actions available
|
||||||
$arrayofmassactions = array(
|
$arrayofmassactions = array(
|
||||||
//'presend'=>$langs->trans("SendByMail"),
|
//'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail"),
|
||||||
//'builddoc'=>$langs->trans("PDFMerge"),
|
//'builddoc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("PDFMerge"),
|
||||||
);
|
);
|
||||||
if ($permissiontodelete) {
|
if ($permissiontodelete) {
|
||||||
$arrayofmassactions['predelete'] = '<span class="fa fa-trash paddingrightonly"></span>'.$langs->trans("Delete");
|
$arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete");
|
||||||
}
|
}
|
||||||
if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'predelete'))) {
|
if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'predelete'))) {
|
||||||
$arrayofmassactions = array();
|
$arrayofmassactions = array();
|
||||||
|
|||||||
@ -136,7 +136,7 @@ if (GETPOST("delete")) {
|
|||||||
|
|
||||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."boxes";
|
$sql = "DELETE FROM ".MAIN_DB_PREFIX."boxes";
|
||||||
$sql .= " WHERE entity = ".$conf->entity;
|
$sql .= " WHERE entity = ".$conf->entity;
|
||||||
$sql .= " AND box_id = ".$obj->rowid;
|
$sql .= " AND box_id = ".((int) $obj->rowid);
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
|
|
||||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."boxes_def";
|
$sql = "DELETE FROM ".MAIN_DB_PREFIX."boxes_def";
|
||||||
|
|||||||
@ -211,11 +211,12 @@ if ($action == 'update') {
|
|||||||
dolibarr_set_const($db, "MAIN_DEFAULT_WORKING_DAYS", GETPOST("MAIN_DEFAULT_WORKING_DAYS", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_DEFAULT_WORKING_DAYS", GETPOST("MAIN_DEFAULT_WORKING_DAYS", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_DEFAULT_WORKING_HOURS", GETPOST("MAIN_DEFAULT_WORKING_HOURS", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_DEFAULT_WORKING_HOURS", GETPOST("MAIN_DEFAULT_WORKING_HOURS", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
|
|
||||||
|
dolibarr_set_const($db, "MAIN_BUGTRACK_ENABLELINK", GETPOST("MAIN_BUGTRACK_ENABLELINK", 'alpha'), 'chaine', 0, '', $conf->entity);
|
||||||
|
|
||||||
dolibarr_set_const($db, "MAIN_FIRSTNAME_NAME_POSITION", GETPOST("MAIN_FIRSTNAME_NAME_POSITION", 'aZ09'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_FIRSTNAME_NAME_POSITION", GETPOST("MAIN_FIRSTNAME_NAME_POSITION", 'aZ09'), 'chaine', 0, '', $conf->entity);
|
||||||
|
|
||||||
dolibarr_set_const($db, "MAIN_MOTD", dol_htmlcleanlastbr(GETPOST("main_motd", 'restricthtml')), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_MOTD", dol_htmlcleanlastbr(GETPOST("main_motd", 'restricthtml')), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_HOME", dol_htmlcleanlastbr(GETPOST("main_home", 'restricthtml')), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_HOME", dol_htmlcleanlastbr(GETPOST("main_home", 'restricthtml')), 'chaine', 0, '', $conf->entity);
|
||||||
//dolibarr_set_const($db, "MAIN_BUGTRACK_ENABLELINK", GETPOST('MAIN_BUGTRACK_ENABLELINK', 'aZ09'), 'chaine', 0, '', $conf->entity);
|
|
||||||
//dolibarr_set_const($db, "MAIN_HELP_DISABLELINK", GETPOST("MAIN_HELP_DISABLELINK", 'aZ09'), 'chaine', 0, '', 0); // Param for all entities
|
//dolibarr_set_const($db, "MAIN_HELP_DISABLELINK", GETPOST("MAIN_HELP_DISABLELINK", 'aZ09'), 'chaine', 0, '', 0); // Param for all entities
|
||||||
|
|
||||||
$varforimage = 'imagebackground'; $dirforimage = $conf->mycompany->dir_output.'/logos/';
|
$varforimage = 'imagebackground'; $dirforimage = $conf->mycompany->dir_output.'/logos/';
|
||||||
@ -401,8 +402,7 @@ print '</tr>';
|
|||||||
|
|
||||||
// Show bugtrack link
|
// Show bugtrack link
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("ShowBugTrackLink", $langs->transnoentitiesnoconv("FindBug")).'</td><td>';
|
print '<tr class="oddeven"><td>'.$langs->trans("ShowBugTrackLink", $langs->transnoentitiesnoconv("FindBug")).'</td><td>';
|
||||||
print ajax_constantonoff("MAIN_BUGTRACK_ENABLELINK", array(), $conf->entity, 0, 0, 1, 0);
|
print '<input type="text" name="MAIN_BUGTRACK_ENABLELINK" size="32" value="'.(isset($conf->global->MAIN_BUGTRACK_ENABLELINK) ? $conf->global->MAIN_BUGTRACK_ENABLELINK : '').'">';
|
||||||
//print $form->selectyesno('MAIN_BUGTRACK_ENABLELINK', $conf->global->MAIN_BUGTRACK_ENABLELINK, 1);
|
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td width="20"> </td>';
|
print '<td width="20"> </td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|||||||
@ -48,7 +48,7 @@ $substitutionarrayfortest = array(
|
|||||||
'__DOL_MAIN_URL_ROOT__'=>DOL_MAIN_URL_ROOT,
|
'__DOL_MAIN_URL_ROOT__'=>DOL_MAIN_URL_ROOT,
|
||||||
'__ID__' => 'RecipientIdRecord',
|
'__ID__' => 'RecipientIdRecord',
|
||||||
//'__EMAIL__' => 'RecipientEMail', // Done into actions_sendmails
|
//'__EMAIL__' => 'RecipientEMail', // Done into actions_sendmails
|
||||||
'__CHECK_READ__' => (is_object($object) && is_object($object->thirdparty)) ? '<img src="'.DOL_MAIN_URL_ROOT.'/public/emailing/mailing-read.php?tag='.$object->thirdparty->tag.'&securitykey='.urlencode($conf->global->MAILING_EMAIL_UNSUBSCRIBE_KEY).'" width="1" height="1" style="width:1px;height:1px" border="0"/>' : '',
|
'__CHECK_READ__' => (is_object($object) && !empty($object->thirdparty) && is_object($object->thirdparty)) ? '<img src="'.DOL_MAIN_URL_ROOT.'/public/emailing/mailing-read.php?tag='.$object->thirdparty->tag.'&securitykey='.urlencode($conf->global->MAILING_EMAIL_UNSUBSCRIBE_KEY).'" width="1" height="1" style="width:1px;height:1px" border="0"/>' : '',
|
||||||
'__USER_SIGNATURE__' => (($user->signature && empty($conf->global->MAIN_MAIL_DO_NOT_USE_SIGN)) ? $usersignature : ''), // Done into actions_sendmails
|
'__USER_SIGNATURE__' => (($user->signature && empty($conf->global->MAIN_MAIL_DO_NOT_USE_SIGN)) ? $usersignature : ''), // Done into actions_sendmails
|
||||||
'__LOGIN__' => 'RecipientLogin',
|
'__LOGIN__' => 'RecipientLogin',
|
||||||
'__LASTNAME__' => 'RecipientLastname',
|
'__LASTNAME__' => 'RecipientLastname',
|
||||||
@ -554,7 +554,7 @@ if ($action == 'edit') {
|
|||||||
print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameter").'</td><td>'.$langs->trans("Value").'</td></tr>';
|
print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameter").'</td><td>'.$langs->trans("Value").'</td></tr>';
|
||||||
|
|
||||||
// Disable
|
// Disable
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("MAIN_DISABLE_ALL_MAILS").'</td><td>'.yn($conf->global->MAIN_DISABLE_ALL_MAILS);
|
print '<tr class="oddeven"><td>'.$langs->trans("MAIN_DISABLE_ALL_MAILS").'</td><td>'.yn(!empty($conf->global->MAIN_DISABLE_ALL_MAILS));
|
||||||
if (!empty($conf->global->MAIN_DISABLE_ALL_MAILS)) {
|
if (!empty($conf->global->MAIN_DISABLE_ALL_MAILS)) {
|
||||||
print img_warning($langs->trans("Disabled"));
|
print img_warning($langs->trans("Disabled"));
|
||||||
}
|
}
|
||||||
@ -737,14 +737,14 @@ if ($action == 'edit') {
|
|||||||
|
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans('MAIN_MAIL_DEFAULT_FROMTYPE').'</td>';
|
print '<tr class="oddeven"><td>'.$langs->trans('MAIN_MAIL_DEFAULT_FROMTYPE').'</td>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
if ($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE === 'robot') {
|
if (!empty($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE) && $conf->global->MAIN_MAIL_DEFAULT_FROMTYPE === 'robot') {
|
||||||
print $langs->trans('RobotEmail');
|
print $langs->trans('RobotEmail');
|
||||||
} elseif ($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE === 'user') {
|
} elseif (!empty($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE) && $conf->global->MAIN_MAIL_DEFAULT_FROMTYPE === 'user') {
|
||||||
print $langs->trans('UserEmail');
|
print $langs->trans('UserEmail');
|
||||||
} elseif ($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE === 'company') {
|
} elseif (!empty($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE) && $conf->global->MAIN_MAIL_DEFAULT_FROMTYPE === 'company') {
|
||||||
print $langs->trans('CompanyEmail').' '.dol_escape_htmltag('<'.$mysoc->email.'>');
|
print $langs->trans('CompanyEmail').' '.dol_escape_htmltag('<'.$mysoc->email.'>');
|
||||||
} else {
|
} else {
|
||||||
$id = preg_replace('/senderprofile_/', '', $conf->global->MAIN_MAIL_DEFAULT_FROMTYPE);
|
$id = preg_replace('/senderprofile_/', '', !empty($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE) ? $conf->global->MAIN_MAIL_DEFAULT_FROMTYPE : '');
|
||||||
if ($id > 0) {
|
if ($id > 0) {
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/class/emailsenderprofile.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/class/emailsenderprofile.class.php';
|
||||||
$emailsenderprofile = new EmailSenderProfile($db);
|
$emailsenderprofile = new EmailSenderProfile($db);
|
||||||
@ -756,7 +756,7 @@ if ($action == 'edit') {
|
|||||||
|
|
||||||
// Errors To
|
// Errors To
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("MAIN_MAIL_ERRORS_TO").'</td>';
|
print '<tr class="oddeven"><td>'.$langs->trans("MAIN_MAIL_ERRORS_TO").'</td>';
|
||||||
print '<td>'.$conf->global->MAIN_MAIL_ERRORS_TO;
|
print '<td>'.(!empty($conf->global->MAIN_MAIL_ERRORS_TO) ? $conf->global->MAIN_MAIL_ERRORS_TO : '');
|
||||||
if (!empty($conf->global->MAIN_MAIL_ERRORS_TO) && !isValidEmail($conf->global->MAIN_MAIL_ERRORS_TO)) {
|
if (!empty($conf->global->MAIN_MAIL_ERRORS_TO) && !isValidEmail($conf->global->MAIN_MAIL_ERRORS_TO)) {
|
||||||
print img_warning($langs->trans("ErrorBadEMail"));
|
print img_warning($langs->trans("ErrorBadEMail"));
|
||||||
}
|
}
|
||||||
@ -776,7 +776,7 @@ if ($action == 'edit') {
|
|||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
//Add user to select destinaries list
|
//Add user to select destinaries list
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("MAIN_MAIL_ENABLED_USER_DEST_SELECT").'</td><td>'.yn($conf->global->MAIN_MAIL_ENABLED_USER_DEST_SELECT).'</td></tr>';
|
print '<tr class="oddeven"><td>'.$langs->trans("MAIN_MAIL_ENABLED_USER_DEST_SELECT").'</td><td>'.yn(!empty($conf->global->MAIN_MAIL_ENABLED_USER_DEST_SELECT)).'</td></tr>';
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|||||||
@ -88,7 +88,7 @@ foreach ($object->fields as $key => $val) {
|
|||||||
// List of fields to search into when doing a "search in all"
|
// List of fields to search into when doing a "search in all"
|
||||||
$fieldstosearchall = array();
|
$fieldstosearchall = array();
|
||||||
foreach ($object->fields as $key => $val) {
|
foreach ($object->fields as $key => $val) {
|
||||||
if ($val['searchall']) {
|
if (!empty($val['searchall'])) {
|
||||||
$fieldstosearchall['t.'.$key] = $val['label'];
|
$fieldstosearchall['t.'.$key] = $val['label'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -102,7 +102,7 @@ foreach ($object->fields as $key => $val) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Extra fields
|
// Extra fields
|
||||||
if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label']) > 0) {
|
if (!empty($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label']) > 0) {
|
||||||
foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) {
|
foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) {
|
||||||
if (!empty($extrafields->attributes[$object->table_element]['list'][$key])) {
|
if (!empty($extrafields->attributes[$object->table_element]['list'][$key])) {
|
||||||
$arrayfields["ef.".$key] = array(
|
$arrayfields["ef.".$key] = array(
|
||||||
@ -240,7 +240,7 @@ $reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters, $obje
|
|||||||
$sql .= preg_replace('/^,/', '', $hookmanager->resPrint);
|
$sql .= preg_replace('/^,/', '', $hookmanager->resPrint);
|
||||||
$sql = preg_replace('/,\s*$/', '', $sql);
|
$sql = preg_replace('/,\s*$/', '', $sql);
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX.$object->table_element." as t";
|
$sql .= " FROM ".MAIN_DB_PREFIX.$object->table_element." as t";
|
||||||
if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) {
|
if (!empty($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) {
|
||||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (t.rowid = ef.fk_object)";
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (t.rowid = ef.fk_object)";
|
||||||
}
|
}
|
||||||
if ($object->ismultientitymanaged == 1) {
|
if ($object->ismultientitymanaged == 1) {
|
||||||
@ -354,10 +354,10 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
|
|||||||
|
|
||||||
// List of mass actions available
|
// List of mass actions available
|
||||||
$arrayofmassactions = array(
|
$arrayofmassactions = array(
|
||||||
//'presend'=>$langs->trans("SendByMail"),
|
//'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail"),
|
||||||
//'builddoc'=>$langs->trans("PDFMerge"),
|
//'builddoc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("PDFMerge"),
|
||||||
);
|
);
|
||||||
//if ($permissiontodelete) $arrayofmassactions['predelete'] = '<span class="fa fa-trash paddingrightonly"></span>'.$langs->trans("Delete");
|
//if ($permissiontodelete) $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete");
|
||||||
//if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'predelete'))) $arrayofmassactions = array();
|
//if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'predelete'))) $arrayofmassactions = array();
|
||||||
$massactionbutton = $form->selectMassAction('', $arrayofmassactions);
|
$massactionbutton = $form->selectMassAction('', $arrayofmassactions);
|
||||||
|
|
||||||
@ -497,11 +497,11 @@ foreach ($object->fields as $key => $val) {
|
|||||||
if (!empty($arrayfields['t.'.$key]['checked'])) {
|
if (!empty($arrayfields['t.'.$key]['checked'])) {
|
||||||
print '<td class="liste_titre'.($cssforfield ? ' '.$cssforfield : '').'">';
|
print '<td class="liste_titre'.($cssforfield ? ' '.$cssforfield : '').'">';
|
||||||
if (!empty($val['arrayofkeyval']) && is_array($val['arrayofkeyval'])) {
|
if (!empty($val['arrayofkeyval']) && is_array($val['arrayofkeyval'])) {
|
||||||
print $form->selectarray('search_'.$key, $val['arrayofkeyval'], $search[$key], $val['notnull'], 0, 0, '', 1, 0, 0, '', 'maxwidth100', 1);
|
print $form->selectarray('search_'.$key, $val['arrayofkeyval'], empty($search[$key]) ? '' : $search[$key], $val['notnull'], 0, 0, '', 1, 0, 0, '', 'maxwidth100', 1);
|
||||||
} elseif (strpos($val['type'], 'integer:') === 0) {
|
} elseif (strpos($val['type'], 'integer:') === 0) {
|
||||||
print $object->showInputField($val, $key, $search[$key], '', '', 'search_', 'maxwidth150', 1);
|
print $object->showInputField($val, $key, $search[$key], '', '', 'search_', 'maxwidth150', 1);
|
||||||
} elseif (!preg_match('/^(date|timestamp)/', $val['type'])) {
|
} elseif (!preg_match('/^(date|timestamp)/', $val['type'])) {
|
||||||
print '<input type="text" class="flat maxwidth75" name="search_'.$key.'" value="'.dol_escape_htmltag($search[$key]).'">';
|
print '<input type="text" class="flat maxwidth75" name="search_'.$key.'" value="'.dol_escape_htmltag(empty($search[$key]) ? '' : $search[$key]).'">';
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
@ -552,7 +552,7 @@ print '</tr>'."\n";
|
|||||||
|
|
||||||
// Detect if we need a fetch on each output line
|
// Detect if we need a fetch on each output line
|
||||||
$needToFetchEachLine = 0;
|
$needToFetchEachLine = 0;
|
||||||
if (is_array($extrafields->attributes[$object->table_element]['computed']) && count($extrafields->attributes[$object->table_element]['computed']) > 0) {
|
if (!empty($extrafields->attributes[$object->table_element]['computed']) && is_array($extrafields->attributes[$object->table_element]['computed']) && count($extrafields->attributes[$object->table_element]['computed']) > 0) {
|
||||||
foreach ($extrafields->attributes[$object->table_element]['computed'] as $key => $val) {
|
foreach ($extrafields->attributes[$object->table_element]['computed'] as $key => $val) {
|
||||||
if (preg_match('/\$object/', $val)) {
|
if (preg_match('/\$object/', $val)) {
|
||||||
$needToFetchEachLine++; // There is at least one compute field that use $object
|
$needToFetchEachLine++; // There is at least one compute field that use $object
|
||||||
|
|||||||
@ -45,16 +45,17 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php';
|
|||||||
// Load translation files required by the page
|
// Load translation files required by the page
|
||||||
$langsArray=array("errors", "admin", "mails", "languages");
|
$langsArray=array("errors", "admin", "mails", "languages");
|
||||||
|
|
||||||
if ($conf->adherent->enabled) {
|
if (!empty($conf->adherent->enabled)) {
|
||||||
$langsArray[]='members';
|
$langsArray[]='members';
|
||||||
}
|
}
|
||||||
if ($conf->eventorganization->enabled) {
|
if (!empty($conf->eventorganization->enabled)) {
|
||||||
$langsArray[]='eventorganization';
|
$langsArray[]='eventorganization';
|
||||||
}
|
}
|
||||||
|
|
||||||
$langs->loadLangs($langsArray);
|
$langs->loadLangs($langsArray);
|
||||||
|
|
||||||
$action = GETPOST('action', 'aZ09') ?GETPOST('action', 'aZ09') : 'view';
|
$action = GETPOST('action', 'aZ09') ?GETPOST('action', 'aZ09') : 'view';
|
||||||
|
$massaction = GETPOST('massaction', 'alpha');
|
||||||
$confirm = GETPOST('confirm', 'alpha'); // Result of a confirmation
|
$confirm = GETPOST('confirm', 'alpha'); // Result of a confirmation
|
||||||
|
|
||||||
$id = GETPOST('id', 'int');
|
$id = GETPOST('id', 'int');
|
||||||
@ -73,8 +74,8 @@ $acts = array();
|
|||||||
$actl = array();
|
$actl = array();
|
||||||
$acts[0] = "activate";
|
$acts[0] = "activate";
|
||||||
$acts[1] = "disable";
|
$acts[1] = "disable";
|
||||||
$actl[0] = img_picto($langs->trans("Disabled"), 'switch_off');
|
$actl[0] = img_picto($langs->trans("Disabled"), 'switch_off', 'class="size15x"');
|
||||||
$actl[1] = img_picto($langs->trans("Activated"), 'switch_on');
|
$actl[1] = img_picto($langs->trans("Activated"), 'switch_on', 'class="size15x"');
|
||||||
|
|
||||||
$listoffset = GETPOST('listoffset', 'alpha');
|
$listoffset = GETPOST('listoffset', 'alpha');
|
||||||
$listlimit = GETPOST('listlimit', 'alpha') > 0 ?GETPOST('listlimit', 'alpha') : 1000;
|
$listlimit = GETPOST('listlimit', 'alpha') > 0 ?GETPOST('listlimit', 'alpha') : 1000;
|
||||||
@ -181,55 +182,55 @@ $elementList = array();
|
|||||||
$elementList['all'] = '-- '.dol_escape_htmltag($langs->trans("All")).' --';
|
$elementList['all'] = '-- '.dol_escape_htmltag($langs->trans("All")).' --';
|
||||||
$elementList['none'] = '-- '.dol_escape_htmltag($langs->trans("None")).' --';
|
$elementList['none'] = '-- '.dol_escape_htmltag($langs->trans("None")).' --';
|
||||||
$elementList['user'] = img_picto('', 'user', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToUser'));
|
$elementList['user'] = img_picto('', 'user', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToUser'));
|
||||||
if ($conf->adherent->enabled && $user->rights->adherent->lire) {
|
if (!empty($conf->adherent->enabled) && !empty($user->rights->adherent->lire)) {
|
||||||
$elementList['member'] = img_picto('', 'object_member', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToMember'));
|
$elementList['member'] = img_picto('', 'object_member', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToMember'));
|
||||||
}
|
}
|
||||||
if ($conf->recruitment->enabled && $user->rights->recruitment->recruitmentjobposition->read) {
|
if (!empty($conf->recruitment->enabled) && !empty($user->rights->recruitment->recruitmentjobposition->read)) {
|
||||||
$elementList['recruitmentcandidature_send'] = img_picto('', 'recruitmentcandidature', 'class="paddingright"').dol_escape_htmltag($langs->trans('RecruitmentCandidatures'));
|
$elementList['recruitmentcandidature_send'] = img_picto('', 'recruitmentcandidature', 'class="paddingright"').dol_escape_htmltag($langs->trans('RecruitmentCandidatures'));
|
||||||
}
|
}
|
||||||
if ($conf->societe->enabled && $user->rights->societe->lire) {
|
if (!empty($conf->societe->enabled) && !empty($user->rights->societe->lire)) {
|
||||||
$elementList['thirdparty'] = img_picto('', 'company', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToThirdparty'));
|
$elementList['thirdparty'] = img_picto('', 'company', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToThirdparty'));
|
||||||
}
|
}
|
||||||
if ($conf->projet->enabled) {
|
if (!empty($conf->projet->enabled)) {
|
||||||
$elementList['project'] = img_picto('', 'project', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToProject'));
|
$elementList['project'] = img_picto('', 'project', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToProject'));
|
||||||
}
|
}
|
||||||
if ($conf->propal->enabled && $user->rights->propal->lire) {
|
if (!empty($conf->propal->enabled) && !empty($user->rights->propal->lire)) {
|
||||||
$elementList['propal_send'] = img_picto('', 'propal', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendProposal'));
|
$elementList['propal_send'] = img_picto('', 'propal', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendProposal'));
|
||||||
}
|
}
|
||||||
if ($conf->commande->enabled && $user->rights->commande->lire) {
|
if (!empty($conf->commande->enabled) && !empty($user->rights->commande->lire)) {
|
||||||
$elementList['order_send'] = img_picto('', 'order', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendOrder'));
|
$elementList['order_send'] = img_picto('', 'order', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendOrder'));
|
||||||
}
|
}
|
||||||
if ($conf->facture->enabled && $user->rights->facture->lire) {
|
if (!empty($conf->facture->enabled) && !empty($user->rights->facture->lire)) {
|
||||||
$elementList['facture_send'] = img_picto('', 'bill', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendInvoice'));
|
$elementList['facture_send'] = img_picto('', 'bill', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendInvoice'));
|
||||||
}
|
}
|
||||||
if ($conf->expedition->enabled) {
|
if (!empty($conf->expedition->enabled)) {
|
||||||
$elementList['shipping_send'] = img_picto('', 'dolly', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendShipment'));
|
$elementList['shipping_send'] = img_picto('', 'dolly', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendShipment'));
|
||||||
}
|
}
|
||||||
if ($conf->reception->enabled) {
|
if (!empty($conf->reception->enabled)) {
|
||||||
$elementList['reception_send'] = img_picto('', 'dolly', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendReception'));
|
$elementList['reception_send'] = img_picto('', 'dolly', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendReception'));
|
||||||
}
|
}
|
||||||
if ($conf->ficheinter->enabled) {
|
if (!empty($conf->ficheinter->enabled)) {
|
||||||
$elementList['fichinter_send'] = img_picto('', 'intervention', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendIntervention'));
|
$elementList['fichinter_send'] = img_picto('', 'intervention', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendIntervention'));
|
||||||
}
|
}
|
||||||
if ($conf->supplier_proposal->enabled) {
|
if (!empty($conf->supplier_proposal->enabled)) {
|
||||||
$elementList['supplier_proposal_send'] = img_picto('', 'propal', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendSupplierRequestForQuotation'));
|
$elementList['supplier_proposal_send'] = img_picto('', 'propal', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendSupplierRequestForQuotation'));
|
||||||
}
|
}
|
||||||
if (($conf->fournisseur->enabled && $user->rights->fournisseur->commande->lire && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || ($conf->supplier_order->enabled && $user->rights->supplier_order->lire)) {
|
if ((!empty($conf->fournisseur->enabled) && !empty($user->rights->fournisseur->commande->lire) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (!empty($conf->supplier_order->enabled) && !empty($user->rights->supplier_order->lire))) {
|
||||||
$elementList['order_supplier_send'] = img_picto('', 'order', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendSupplierOrder'));
|
$elementList['order_supplier_send'] = img_picto('', 'order', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendSupplierOrder'));
|
||||||
}
|
}
|
||||||
if (($conf->fournisseur->enabled && $user->rights->fournisseur->facture->lire && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || ($conf->supplier_invoice->enabled && $user->rights->supplier_invoice->lire)) {
|
if ((!empty($conf->fournisseur->enabled) && !empty($user->rights->fournisseur->facture->lire) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (!empty($conf->supplier_invoice->enabled) && !empty($user->rights->supplier_invoice->lire))) {
|
||||||
$elementList['invoice_supplier_send'] = img_picto('', 'bill', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendSupplierInvoice'));
|
$elementList['invoice_supplier_send'] = img_picto('', 'bill', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendSupplierInvoice'));
|
||||||
}
|
}
|
||||||
if ($conf->contrat->enabled && $user->rights->contrat->lire) {
|
if (!empty($conf->contrat->enabled) && !empty($user->rights->contrat->lire)) {
|
||||||
$elementList['contract'] = img_picto('', 'contract', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendContract'));
|
$elementList['contract'] = img_picto('', 'contract', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendContract'));
|
||||||
}
|
}
|
||||||
if ($conf->ticket->enabled && $user->rights->ticket->read) {
|
if (!empty($conf->ticket->enabled) && !empty($user->rights->ticket->read)) {
|
||||||
$elementList['ticket_send'] = img_picto('', 'ticket', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToTicket'));
|
$elementList['ticket_send'] = img_picto('', 'ticket', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToTicket'));
|
||||||
}
|
}
|
||||||
if ($conf->agenda->enabled) {
|
if (!empty($conf->agenda->enabled)) {
|
||||||
$elementList['actioncomm_send'] = img_picto('', 'action', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendEventPush'));
|
$elementList['actioncomm_send'] = img_picto('', 'action', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendEventPush'));
|
||||||
}
|
}
|
||||||
if ($conf->eventorganization->enabled && $user->rights->eventorganization->read) {
|
if (!empty($conf->eventorganization->enabled) && !empty($user->rights->eventorganization->read)) {
|
||||||
$elementList['eventorganization_send'] = img_picto('', 'action', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendEventOrganization'));
|
$elementList['eventorganization_send'] = img_picto('', 'action', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendEventOrganization'));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1002,7 +1003,7 @@ if ($resql) {
|
|||||||
print '<tr class="oddeven" id="rowid-'.$obj->rowid.'">';
|
print '<tr class="oddeven" id="rowid-'.$obj->rowid.'">';
|
||||||
|
|
||||||
$tmpaction = 'view';
|
$tmpaction = 'view';
|
||||||
$parameters = array('var'=>$var, 'fieldlist'=>$fieldlist, 'tabname'=>$tabname[$id]);
|
$parameters = array('fieldlist'=>$fieldlist, 'tabname'=>$tabname[$id]);
|
||||||
$reshook = $hookmanager->executeHooks('viewEmailTemplateFieldlist', $parameters, $obj, $tmpaction); // Note that $action and $object may have been modified by some hooks
|
$reshook = $hookmanager->executeHooks('viewEmailTemplateFieldlist', $parameters, $obj, $tmpaction); // Note that $action and $object may have been modified by some hooks
|
||||||
|
|
||||||
$error = $hookmanager->error; $errors = $hookmanager->errors;
|
$error = $hookmanager->error; $errors = $hookmanager->errors;
|
||||||
@ -1015,6 +1016,7 @@ if ($resql) {
|
|||||||
$showfield = 1;
|
$showfield = 1;
|
||||||
$align = "";
|
$align = "";
|
||||||
$class = "tddict";
|
$class = "tddict";
|
||||||
|
$title = '';
|
||||||
$valuetoshow = $obj->{$fieldlist[$field]};
|
$valuetoshow = $obj->{$fieldlist[$field]};
|
||||||
if ($value == 'label' || $value == 'topic') {
|
if ($value == 'label' || $value == 'topic') {
|
||||||
if ($langs->trans($valuetoshow) != $valuetoshow) {
|
if ($langs->trans($valuetoshow) != $valuetoshow) {
|
||||||
@ -1024,11 +1026,10 @@ if ($resql) {
|
|||||||
}
|
}
|
||||||
if ($value == 'label') {
|
if ($value == 'label') {
|
||||||
$class .= ' tdoverflowmax100';
|
$class .= ' tdoverflowmax100';
|
||||||
$valuetoshow = '<span title="'.$valuetoshow.'">'.$valuetoshow.'</span>';
|
|
||||||
}
|
}
|
||||||
/*if ($value == 'topic') {
|
if ($value == 'topic') {
|
||||||
$class .= ' tdoverflowmax300';
|
$class .= 'tdoverflowmax200 small';
|
||||||
}*/
|
}
|
||||||
if ($value == 'type_template') {
|
if ($value == 'type_template') {
|
||||||
$valuetoshow = isset($elementList[$valuetoshow]) ? $elementList[$valuetoshow] : $valuetoshow;
|
$valuetoshow = isset($elementList[$valuetoshow]) ? $elementList[$valuetoshow] : $valuetoshow;
|
||||||
$align = "center";
|
$align = "center";
|
||||||
@ -1069,7 +1070,13 @@ if ($resql) {
|
|||||||
// Show value for field
|
// Show value for field
|
||||||
if ($showfield) {
|
if ($showfield) {
|
||||||
print '<!-- '.$fieldlist[$field].' -->';
|
print '<!-- '.$fieldlist[$field].' -->';
|
||||||
print '<td class="'.$class.'">'.$valuetoshow.'</td>';
|
print '<td class="'.$class.'"';
|
||||||
|
if ($value == 'topic') {
|
||||||
|
print ' title="'.$valuetoshow.'"';
|
||||||
|
}
|
||||||
|
print '>';
|
||||||
|
print $valuetoshow;
|
||||||
|
print '</td>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1086,12 +1093,11 @@ if ($resql) {
|
|||||||
if ($param) {
|
if ($param) {
|
||||||
$url .= '&'.$param;
|
$url .= '&'.$param;
|
||||||
}
|
}
|
||||||
$url .= '&';
|
|
||||||
|
|
||||||
// Status / Active
|
// Status / Active
|
||||||
print '<td class="center nowrap">';
|
print '<td class="center nowrap">';
|
||||||
if ($canbedisabled) {
|
if ($canbedisabled) {
|
||||||
print '<a href="'.$url.'action='.$acts[$obj->active].'">'.$actl[$obj->active].'</a>';
|
print '<a href="'.$url.'&action='.$acts[$obj->active].'&token='.newToken().'">'.$actl[$obj->active].'</a>';
|
||||||
} else {
|
} else {
|
||||||
print '<span class="opacitymedium">'.$actl[$obj->active].'</span>';
|
print '<span class="opacitymedium">'.$actl[$obj->active].'</span>';
|
||||||
}
|
}
|
||||||
@ -1100,10 +1106,10 @@ if ($resql) {
|
|||||||
// Modify link / Delete link
|
// Modify link / Delete link
|
||||||
print '<td class="center nowraponall" width="64">';
|
print '<td class="center nowraponall" width="64">';
|
||||||
if ($canbemodified) {
|
if ($canbemodified) {
|
||||||
print '<a class="reposition editfielda" href="'.$url.'action=edit&token='.newToken().'">'.img_edit().'</a>';
|
print '<a class="reposition editfielda" href="'.$url.'&action=edit&token='.newToken().'">'.img_edit().'</a>';
|
||||||
}
|
}
|
||||||
if ($iserasable) {
|
if ($iserasable) {
|
||||||
print '<a class="marginleftonly" href="'.$url.'action=delete&token='.newToken().'">'.img_delete().'</a>';
|
print '<a class="marginleftonly" href="'.$url.'&action=delete&token='.newToken().'">'.img_delete().'</a>';
|
||||||
//else print '<a href="#">'.img_delete().'</a>'; // Some dictionary can be edited by other profile than admin
|
//else print '<a href="#">'.img_delete().'</a>'; // Some dictionary can be edited by other profile than admin
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
@ -1178,98 +1184,98 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '')
|
|||||||
$formadmin = new FormAdmin($db);
|
$formadmin = new FormAdmin($db);
|
||||||
|
|
||||||
foreach ($fieldlist as $field => $value) {
|
foreach ($fieldlist as $field => $value) {
|
||||||
if ($fieldlist[$field] == 'fk_user') {
|
if ($value == 'fk_user') {
|
||||||
print '<td>';
|
print '<td>';
|
||||||
if ($user->admin) {
|
if ($user->admin) {
|
||||||
print $form->select_dolusers($obj->{$fieldlist[$field]}, 'fk_user', 1, null, 0, ($user->admin ? '' : 'hierarchyme'), null, 0, 0, 1, '', 0, '', 'maxwidth200');
|
print $form->select_dolusers(empty($obj->{$value}) ? '' : $obj->{$value}, 'fk_user', 1, null, 0, ($user->admin ? '' : 'hierarchyme'), null, 0, 0, 1, '', 0, '', 'maxwidth200');
|
||||||
} else {
|
} else {
|
||||||
if ($context == 'add') { // I am not admin and we show the add form
|
if ($context == 'add') { // I am not admin and we show the add form
|
||||||
print $user->getNomUrl(1); // Me
|
print $user->getNomUrl(1); // Me
|
||||||
$forcedvalue = $user->id;
|
$forcedvalue = $user->id;
|
||||||
} else {
|
} else {
|
||||||
if ($obj && !empty($obj->{$fieldlist[$field]}) && $obj->{$fieldlist[$field]} > 0) {
|
if ($obj && !empty($obj->{$value}) && $obj->{$value} > 0) {
|
||||||
$fuser = new User($db);
|
$fuser = new User($db);
|
||||||
$fuser->fetch($obj->{$fieldlist[$field]});
|
$fuser->fetch($obj->{$value});
|
||||||
print $fuser->getNomUrl(1);
|
print $fuser->getNomUrl(1);
|
||||||
$forcedvalue = $fuser->id;
|
$forcedvalue = $fuser->id;
|
||||||
} else {
|
} else {
|
||||||
$forcedvalue = $obj->{$fieldlist[$field]};
|
$forcedvalue = $obj->{$value};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$keyname = $fieldlist[$field];
|
$keyname = $value;
|
||||||
print '<input type="hidden" value="'.$forcedvalue.'" name="'.$keyname.'">';
|
print '<input type="hidden" value="'.$forcedvalue.'" name="'.$keyname.'">';
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
} elseif ($fieldlist[$field] == 'lang') {
|
} elseif ($value == 'lang') {
|
||||||
print '<td>';
|
print '<td>';
|
||||||
if (!empty($conf->global->MAIN_MULTILANGS)) {
|
if (!empty($conf->global->MAIN_MULTILANGS)) {
|
||||||
$selectedlang = GETPOSTISSET('langcode') ?GETPOST('langcode', 'aZ09') : $langs->defaultlang;
|
$selectedlang = GETPOSTISSET('langcode') ?GETPOST('langcode', 'aZ09') : $langs->defaultlang;
|
||||||
if ($context == 'edit') {
|
if ($context == 'edit') {
|
||||||
$selectedlang = $obj->{$fieldlist[$field]};
|
$selectedlang = $obj->{$value};
|
||||||
}
|
}
|
||||||
print $formadmin->select_language($selectedlang, 'langcode', 0, null, 1, 0, 0, 'maxwidth150');
|
print $formadmin->select_language($selectedlang, 'langcode', 0, null, 1, 0, 0, 'maxwidth150');
|
||||||
} else {
|
} else {
|
||||||
if (!empty($obj->{$fieldlist[$field]})) {
|
if (!empty($obj->{$value})) {
|
||||||
print $obj->{$fieldlist[$field]}.' - '.$langs->trans('Language_'.$obj->{$fieldlist[$field]});
|
print $obj->{$value}.' - '.$langs->trans('Language_'.$obj->{$value});
|
||||||
}
|
}
|
||||||
$keyname = $fieldlist[$field];
|
$keyname = $value;
|
||||||
if ($keyname == 'lang') {
|
if ($keyname == 'lang') {
|
||||||
$keyname = 'langcode'; // Avoid conflict with lang param
|
$keyname = 'langcode'; // Avoid conflict with lang param
|
||||||
}
|
}
|
||||||
print '<input type="hidden" value="'.$obj->{$fieldlist[$field]}.'" name="'.$keyname.'">';
|
print '<input type="hidden" value="'.(empty($obj->{$value}) ? '' : $obj->{$value}).'" name="'.$keyname.'">';
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
} elseif ($fieldlist[$field] == 'type_template') {
|
} elseif ($value == 'type_template') {
|
||||||
// Le type de template
|
// Le type de template
|
||||||
print '<td class="center">';
|
print '<td class="center">';
|
||||||
if ($context == 'edit' && !empty($obj->{$fieldlist[$field]}) && !in_array($obj->{$fieldlist[$field]}, array_keys($elementList))) {
|
if ($context == 'edit' && !empty($obj->{$value}) && !in_array($obj->{$value}, array_keys($elementList))) {
|
||||||
// Current template type is an unknown type, so we must keep it as it is.
|
// Current template type is an unknown type, so we must keep it as it is.
|
||||||
print '<input type="hidden" name="type_template" value="'.$obj->{$fieldlist[$field]}.'">';
|
print '<input type="hidden" name="type_template" value="'.$obj->{$value}.'">';
|
||||||
print $obj->{$fieldlist[$field]};
|
print $obj->{$value};
|
||||||
} else {
|
} else {
|
||||||
print $form->selectarray('type_template', $elementList, (!empty($obj->{$fieldlist[$field]}) ? $obj->{$fieldlist[$field]}:''), 1, 0, 0, '', 0, 0, 0, '', 'maxwidth200', 1, '', 0, 1);
|
print $form->selectarray('type_template', $elementList, (!empty($obj->{$value}) ? $obj->{$value}:''), 1, 0, 0, '', 0, 0, 0, '', 'maxwidth200', 1, '', 0, 1);
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
} elseif ($context == 'add' && in_array($fieldlist[$field], array('topic', 'joinfiles', 'content', 'content_lines'))) {
|
} elseif ($context == 'add' && in_array($value, array('topic', 'joinfiles', 'content', 'content_lines'))) {
|
||||||
continue;
|
continue;
|
||||||
} elseif ($context == 'edit' && in_array($fieldlist[$field], array('topic', 'joinfiles', 'content', 'content_lines'))) {
|
} elseif ($context == 'edit' && in_array($value, array('topic', 'joinfiles', 'content', 'content_lines'))) {
|
||||||
continue;
|
continue;
|
||||||
} elseif ($context == 'hide' && in_array($fieldlist[$field], array('topic', 'joinfiles', 'content', 'content_lines'))) {
|
} elseif ($context == 'hide' && in_array($value, array('topic', 'joinfiles', 'content', 'content_lines'))) {
|
||||||
continue;
|
continue;
|
||||||
} else {
|
} else {
|
||||||
$size = ''; $class = ''; $classtd = '';
|
$size = ''; $class = ''; $classtd = '';
|
||||||
if ($fieldlist[$field] == 'code') {
|
if ($value == 'code') {
|
||||||
$class = 'maxwidth100';
|
$class = 'maxwidth100';
|
||||||
}
|
}
|
||||||
if ($fieldlist[$field] == 'label') {
|
if ($value == 'label') {
|
||||||
$class = 'maxwidth200';
|
$class = 'maxwidth200';
|
||||||
}
|
}
|
||||||
if ($fieldlist[$field] == 'private') {
|
if ($value == 'private') {
|
||||||
$class = 'maxwidth50'; $classtd = 'center';
|
$class = 'maxwidth50'; $classtd = 'center';
|
||||||
}
|
}
|
||||||
if ($fieldlist[$field] == 'position') {
|
if ($value == 'position') {
|
||||||
$class = 'maxwidth50'; $classtd = 'center';
|
$class = 'maxwidth50'; $classtd = 'center';
|
||||||
}
|
}
|
||||||
if ($fieldlist[$field] == 'libelle') {
|
if ($value == 'libelle') {
|
||||||
$class = 'quatrevingtpercent';
|
$class = 'quatrevingtpercent';
|
||||||
}
|
}
|
||||||
if ($fieldlist[$field] == 'topic') {
|
if ($value == 'topic') {
|
||||||
$class = 'quatrevingtpercent';
|
$class = 'quatrevingtpercent';
|
||||||
}
|
}
|
||||||
if ($fieldlist[$field] == 'sortorder' || $fieldlist[$field] == 'sens' || $fieldlist[$field] == 'category_type') {
|
if ($value == 'sortorder' || $value == 'sens' || $value == 'category_type') {
|
||||||
$size = 'size="2" ';
|
$size = 'size="2" ';
|
||||||
}
|
}
|
||||||
|
|
||||||
print '<td'.($classtd ? ' class="'.$classtd.'"' : '').'>';
|
print '<td'.($classtd ? ' class="'.$classtd.'"' : '').'>';
|
||||||
if ($fieldlist[$field] == 'private') {
|
if ($value == 'private') {
|
||||||
if (empty($user->admin)) {
|
if (empty($user->admin)) {
|
||||||
print $form->selectyesno($fieldlist[$field], '1', 1);
|
print $form->selectyesno($value, '1', 1);
|
||||||
} else {
|
} else {
|
||||||
//print '<input type="text" '.$size.'class="flat'.($class?' '.$class:'').'" value="1" name="'.$fieldlist[$field].'">';
|
//print '<input type="text" '.$size.'class="flat'.($class?' '.$class:'').'" value="1" name="'.$fieldlist[$field].'">';
|
||||||
print $form->selectyesno($fieldlist[$field], (isset($obj->{$fieldlist[$field]}) ? $obj->{$fieldlist[$field]}:''), 1);
|
print $form->selectyesno($value, (isset($obj->{$value}) ? $obj->{$value}:''), 1);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
print '<input type="text" '.$size.'class="flat'.($class ? ' '.$class : '').'" value="'.(isset($obj->{$fieldlist[$field]}) ? $obj->{$fieldlist[$field]}:'').'" name="'.$fieldlist[$field].'">';
|
print '<input type="text" '.$size.'class="flat'.($class ? ' '.$class : '').'" value="'.(isset($obj->{$value}) ? $obj->{$value}:'').'" name="'. $value .'">';
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -520,9 +520,11 @@ if ($mode == 'common' || $mode == 'commonkanban') {
|
|||||||
|
|
||||||
$moreforfilter = '<div class="valignmiddle">';
|
$moreforfilter = '<div class="valignmiddle">';
|
||||||
|
|
||||||
$moreforfilter .= '<div class="floatright right pagination"><ul><li>';
|
$moreforfilter .= '<div class="floatright right pagination --module-list"><ul><li>';
|
||||||
$moreforfilter .= dolGetButtonTitle($langs->trans('ViewKanban'), '', 'fa fa-th-list imgforviewmode', $_SERVER["PHP_SELF"].'?mode=commonkanban'.$param, '', 1, array('morecss'=>'reposition'.($mode == 'common' ? '' : ' btnTitleSelected')));
|
$moreforfilter .= dolGetButtonTitle($langs->trans('CheckForModuleUpdate'), $langs->trans('CheckForModuleUpdate').'<br>'.$langs->trans('CheckForModuleUpdateHelp'), 'fa fa-sync', $_SERVER["PHP_SELF"].'?action=checklastversion&token='.newToken().'&mode='.$mode.$param, '', 1, array('morecss'=>'reposition'));
|
||||||
$moreforfilter .= dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-list-alt imgforviewmode', $_SERVER["PHP_SELF"].'?mode=common'.$param, '', 1, array('morecss'=>'reposition'.($mode == 'commonkanban' ? '' : ' btnTitleSelected')));
|
$moreforfilter .= dolGetButtonTitleSeparator();
|
||||||
|
$moreforfilter .= dolGetButtonTitle($langs->trans('ViewKanban'), '', 'fa fa-th-list imgforviewmode', $_SERVER["PHP_SELF"].'?mode=commonkanban'.$param, '', ($mode == 'commonkanban' ? 2 : 1), array('morecss'=>'reposition'));
|
||||||
|
$moreforfilter .= dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-list-alt imgforviewmode', $_SERVER["PHP_SELF"].'?mode=common'.$param, '', ($mode == 'common' ? 2 : 1), array('morecss'=>'reposition'));
|
||||||
$moreforfilter .= '</li></ul></div>';
|
$moreforfilter .= '</li></ul></div>';
|
||||||
|
|
||||||
//$moreforfilter .= '<div class="floatright center marginrightonly hideonsmartphone" style="padding-top: 3px"><span class="paddingright">'.$moreinfo.'</span> '.$moreinfo2.'</div>';
|
//$moreforfilter .= '<div class="floatright center marginrightonly hideonsmartphone" style="padding-top: 3px"><span class="paddingright">'.$moreinfo.'</span> '.$moreinfo2.'</div>';
|
||||||
@ -582,8 +584,8 @@ if ($mode == 'common' || $mode == 'commonkanban') {
|
|||||||
|
|
||||||
// Show list of modules
|
// Show list of modules
|
||||||
$oldfamily = '';
|
$oldfamily = '';
|
||||||
|
$foundoneexternalmodulewithupdate = 0;
|
||||||
$linenum = 0;
|
$linenum = 0;
|
||||||
|
|
||||||
foreach ($orders as $key => $value) {
|
foreach ($orders as $key => $value) {
|
||||||
$linenum++;
|
$linenum++;
|
||||||
$tab = explode('_', $value);
|
$tab = explode('_', $value);
|
||||||
@ -591,6 +593,8 @@ if ($mode == 'common' || $mode == 'commonkanban') {
|
|||||||
$module_position = $tab[2];
|
$module_position = $tab[2];
|
||||||
|
|
||||||
$modName = $filename[$key];
|
$modName = $filename[$key];
|
||||||
|
|
||||||
|
/** @var DolibarrModules $objMod */
|
||||||
$objMod = $modules[$modName];
|
$objMod = $modules[$modName];
|
||||||
|
|
||||||
//print $objMod->name." - ".$key." - ".$objMod->version."<br>";
|
//print $objMod->name." - ".$key." - ".$objMod->version."<br>";
|
||||||
@ -719,6 +723,22 @@ if ($mode == 'common' || $mode == 'commonkanban') {
|
|||||||
$versiontrans .= $objMod->getVersion(1);
|
$versiontrans .= $objMod->getVersion(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($objMod->isCoreOrExternalModule() == 'external'
|
||||||
|
&& (
|
||||||
|
$action == 'checklastversion'
|
||||||
|
// This is a bad practice to activate a synch external access during building of a page. 1 external module can hang the application.
|
||||||
|
// Adding a cron job could be a good idea see DolibarrModules::checkForUpdate()
|
||||||
|
|| !empty($conf->global->CHECKLASTVERSION_EXTERNALMODULE)
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
$checkRes = $objMod->checkForUpdate();
|
||||||
|
if ($checkRes > 0) {
|
||||||
|
setEventMessage($objMod->getName().' : '.$versiontrans.' -> '.$objMod->lastVersion);
|
||||||
|
} elseif ($checkRes < 0) {
|
||||||
|
setEventMessage($objMod->getName().' '.$langs->trans('CheckVersionFail'), 'warnings');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Define imginfo
|
// Define imginfo
|
||||||
$imginfo = "info";
|
$imginfo = "info";
|
||||||
if ($objMod->isCoreOrExternalModule() == 'external') {
|
if ($objMod->isCoreOrExternalModule() == 'external') {
|
||||||
@ -893,17 +913,12 @@ if ($mode == 'common' || $mode == 'commonkanban') {
|
|||||||
|
|
||||||
// Version
|
// Version
|
||||||
print '<td class="center nowrap" width="120px">';
|
print '<td class="center nowrap" width="120px">';
|
||||||
print $versiontrans;
|
if ($objMod->needUpdate) {
|
||||||
if (!empty($conf->global->CHECKLASTVERSION_EXTERNALMODULE)) { // This is a bad practice to activate a synch external access during building of a page. 1 external module can hang the application.
|
$versionTitle = $langs->trans('ModuleUpdateAvailable').' : '.$objMod->lastVersion;
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/geturl.lib.php';
|
print '<span class="badge badge-warning classfortooltip" title="'.dol_escape_htmltag($versionTitle).'">'.$versiontrans.'</span>';
|
||||||
if (!empty($objMod->url_last_version)) {
|
$foundoneexternalmodulewithupdate++;
|
||||||
$newversion = getURLContent($objMod->url_last_version, 'GET', '', 1, array(), array('http', 'https'), 0); // Accept http or https links on external remote server only
|
} else {
|
||||||
if (isset($newversion['content'])) {
|
print $versiontrans;
|
||||||
if (version_compare($newversion['content'], $versiontrans) > 0) {
|
|
||||||
print " <span class='butAction' title='".$langs->trans('LastStableVersion')."'>".$newversion['content']."</span>";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
print "</td>\n";
|
print "</td>\n";
|
||||||
|
|
||||||
@ -921,6 +936,14 @@ if ($mode == 'common' || $mode == 'commonkanban') {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($action == 'checklastversion') {
|
||||||
|
if ($foundoneexternalmodulewithupdate) {
|
||||||
|
setEventMessages($langs->trans("ModuleUpdateAvailable"), null, 'mesgs');
|
||||||
|
} else {
|
||||||
|
setEventMessages($langs->trans("NoExternalModuleWithUpdate"), null, 'mesgs');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($oldfamily) {
|
if ($oldfamily) {
|
||||||
if ($mode == 'commonkanban') {
|
if ($mode == 'commonkanban') {
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|||||||
@ -71,7 +71,7 @@ if ($action == 'activate_encrypt') {
|
|||||||
if (dol_hash($obj->pass)) {
|
if (dol_hash($obj->pass)) {
|
||||||
$sql = "UPDATE ".MAIN_DB_PREFIX."user";
|
$sql = "UPDATE ".MAIN_DB_PREFIX."user";
|
||||||
$sql .= " SET pass_crypted = '".dol_hash($obj->pass)."', pass = NULL";
|
$sql .= " SET pass_crypted = '".dol_hash($obj->pass)."', pass = NULL";
|
||||||
$sql .= " WHERE rowid=".$obj->rowid;
|
$sql .= " WHERE rowid=".((int) $obj->rowid);
|
||||||
//print $sql;
|
//print $sql;
|
||||||
|
|
||||||
$resql2 = $db->query($sql);
|
$resql2 = $db->query($sql);
|
||||||
@ -254,9 +254,13 @@ foreach ($arrayhandler as $key => $module) {
|
|||||||
|
|
||||||
print '<td width="100" align="center">';
|
print '<td width="100" align="center">';
|
||||||
if ($conf->global->USER_PASSWORD_GENERATED == $key) {
|
if ($conf->global->USER_PASSWORD_GENERATED == $key) {
|
||||||
print img_picto('', 'tick');
|
//print img_picto('', 'tick');
|
||||||
|
print img_picto($langs->trans("Enabled"), 'switch_on');
|
||||||
} else {
|
} else {
|
||||||
print '<a href="'.$_SERVER['PHP_SELF'].'?action=setgeneraterule&token='.newToken().'&value='.$key.'">'.$langs->trans("Activate").'</a>';
|
print '<a href="'.$_SERVER['PHP_SELF'].'?action=setgeneraterule&token='.newToken().'&value='.$key.'">';
|
||||||
|
//print $langs->trans("Activate");
|
||||||
|
print img_picto($langs->trans("Disabled"), 'switch_off');
|
||||||
|
print '</a>';
|
||||||
}
|
}
|
||||||
print "</td></tr>\n";
|
print "</td></tr>\n";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -110,7 +110,7 @@ print '<input type="hidden" name="token" value="'.newToken().'">';
|
|||||||
print $langs->trans("MakeIntegrityAnalysisFrom").':<br>';
|
print $langs->trans("MakeIntegrityAnalysisFrom").':<br>';
|
||||||
print '<!-- for a local check target=local&xmlshortfile=... -->'."\n";
|
print '<!-- for a local check target=local&xmlshortfile=... -->'."\n";
|
||||||
if (dol_is_file($xmlfile)) {
|
if (dol_is_file($xmlfile)) {
|
||||||
print '<input type="radio" name="target" value="local"'.((!GETPOST('target') || GETPOST('target') == 'local') ? 'checked="checked"' : '').'"> '.$langs->trans("LocalSignature").' = ';
|
print '<input type="radio" name="target" id="checkboxlocal" value="local"'.((!GETPOST('target') || GETPOST('target') == 'local') ? 'checked="checked"' : '').'"> <label for="checkboxlocal">'.$langs->trans("LocalSignature").'</label> = ';
|
||||||
print '<input name="xmlshortfile" class="flat minwidth400" value="'.dol_escape_htmltag($xmlshortfile).'">';
|
print '<input name="xmlshortfile" class="flat minwidth400" value="'.dol_escape_htmltag($xmlshortfile).'">';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
} else {
|
} else {
|
||||||
@ -121,7 +121,7 @@ if (dol_is_file($xmlfile)) {
|
|||||||
}
|
}
|
||||||
print '<!-- for a remote target=remote&xmlremote=... -->'."\n";
|
print '<!-- for a remote target=remote&xmlremote=... -->'."\n";
|
||||||
if ($enableremotecheck) {
|
if ($enableremotecheck) {
|
||||||
print '<input type="radio" name="target" value="remote"'.(GETPOST('target') == 'remote' ? 'checked="checked"' : '').'> '.$langs->trans("RemoteSignature").' = ';
|
print '<input type="radio" name="target" id="checkboxremote" value="remote"'.(GETPOST('target') == 'remote' ? 'checked="checked"' : '').'> <label for="checkboxremote">'.$langs->trans("RemoteSignature").'</label> = ';
|
||||||
print '<input name="xmlremote" class="flat minwidth400" value="'.dol_escape_htmltag($xmlremote).'"><br>';
|
print '<input name="xmlremote" class="flat minwidth400" value="'.dol_escape_htmltag($xmlremote).'"><br>';
|
||||||
} else {
|
} else {
|
||||||
print '<input type="radio" name="target" value="remote" disabled="disabled"> '.$langs->trans("RemoteSignature").' = '.$xmlremote;
|
print '<input type="radio" name="target" value="remote" disabled="disabled"> '.$langs->trans("RemoteSignature").' = '.$xmlremote;
|
||||||
@ -156,7 +156,7 @@ if (GETPOST('target') == 'local') {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (GETPOST('target') == 'remote') {
|
if (GETPOST('target') == 'remote') {
|
||||||
$xmlarray = getURLContent($xmlremote, 'GET', '', 1, array(), array('http', 'https'), 0); // Accept http or https links on external remote server only
|
$xmlarray = getURLContent($xmlremote, 'GET', '', 1, array(), array('http', 'https'), 0); // Accept http or https links on external remote server only. Same is used into api_setup.class.php.
|
||||||
|
|
||||||
// Return array('content'=>response,'curl_error_no'=>errno,'curl_error_msg'=>errmsg...)
|
// Return array('content'=>response,'curl_error_no'=>errno,'curl_error_msg'=>errmsg...)
|
||||||
if (!$xmlarray['curl_error_no'] && $xmlarray['http_code'] != '400' && $xmlarray['http_code'] != '404') {
|
if (!$xmlarray['curl_error_no'] && $xmlarray['http_code'] != '400' && $xmlarray['http_code'] != '404') {
|
||||||
@ -164,7 +164,7 @@ if (GETPOST('target') == 'remote') {
|
|||||||
//print "xmlfilestart".$xmlfile."xmlfileend";
|
//print "xmlfilestart".$xmlfile."xmlfileend";
|
||||||
$xml = simplexml_load_string($xmlfile);
|
$xml = simplexml_load_string($xmlfile);
|
||||||
} else {
|
} else {
|
||||||
$errormsg = $langs->trans('XmlNotFound').': '.$xmlremote.' - '.$xmlarray['http_code'].' '.$xmlarray['curl_error_no'].' '.$xmlarray['curl_error_msg'];
|
$errormsg = $langs->trans('XmlNotFound').': '.$xmlremote.' - '.$xmlarray['http_code'].(($xmlarray['http_code'] == 400 && $xmlarray['content']) ? ' '.$xmlarray['content'] : '').' '.$xmlarray['curl_error_no'].' '.$xmlarray['curl_error_msg'];
|
||||||
setEventMessages($errormsg, null, 'errors');
|
setEventMessages($errormsg, null, 'errors');
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -104,10 +104,10 @@ print '<strong>'.$langs->trans("ApplicativeCache").'</strong>: ';
|
|||||||
$test = !empty($conf->memcached->enabled);
|
$test = !empty($conf->memcached->enabled);
|
||||||
if ($test) {
|
if ($test) {
|
||||||
if (!empty($conf->global->MEMCACHED_SERVER)) {
|
if (!empty($conf->global->MEMCACHED_SERVER)) {
|
||||||
print img_picto('', 'tick.png').' '.$langs->trans("MemcachedAvailableAndSetup");
|
print $langs->trans("MemcachedAvailableAndSetup");
|
||||||
print ' '.$langs->trans("MoreInformation").' <a href="'.dol_buildpath('/memcached/admin/memcached.php', 1).'">Memcached module admin page</a>';
|
print ' '.$langs->trans("MoreInformation").' <a href="'.dol_buildpath('/memcached/admin/memcached.php', 1).'">Memcached module admin page</a>';
|
||||||
} else {
|
} else {
|
||||||
print img_picto('', 'warning').' '.$langs->trans("MemcachedModuleAvailableButNotSetup");
|
print $langs->trans("MemcachedModuleAvailableButNotSetup");
|
||||||
print ' <a href="'.dol_buildpath('/memcached/admin/memcached.php', 1).'">Memcached module admin page</a>';
|
print ' <a href="'.dol_buildpath('/memcached/admin/memcached.php', 1).'">Memcached module admin page</a>';
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -67,10 +67,10 @@ print "<br>\n";
|
|||||||
print "<br><strong>Web server</strong> - ".$langs->trans("Version").": ".$_SERVER["SERVER_SOFTWARE"]."<br>\n";
|
print "<br><strong>Web server</strong> - ".$langs->trans("Version").": ".$_SERVER["SERVER_SOFTWARE"]."<br>\n";
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
print "<strong>PHP safe_mode</strong> = ".(ini_get('safe_mode') ? ini_get('safe_mode') : yn(0))."<br>\n";
|
print "<strong>PHP safe_mode</strong> = ".(ini_get('safe_mode') ? ini_get('safe_mode') : yn(0)).' <span class="opacitymedium">'.$langs->trans("Deprecated")." (removed in PHP 5.4)</span><br>\n";
|
||||||
print "<strong>PHP open_basedir</strong> = ".(ini_get('open_basedir') ? ini_get('open_basedir') : yn(0))."<br>\n";
|
print "<strong>PHP open_basedir</strong> = ".(ini_get('open_basedir') ? ini_get('open_basedir') : yn(0).' <span class="opacitymedium">('.$langs->trans("RecommendedValueIs", $langs->transnoentitiesnoconv("ARestrictedPath")).')</span>')."<br>\n";
|
||||||
print "<strong>PHP allow_url_fopen</strong> = ".(ini_get('allow_url_fopen') ? img_picto($langs->trans("YouShouldSetThisToOff"), 'warning').' '.ini_get('allow_url_fopen') : yn(0))."<br>\n";
|
print "<strong>PHP allow_url_fopen</strong> = ".(ini_get('allow_url_fopen') ? img_picto($langs->trans("YouShouldSetThisToOff"), 'warning').' '.ini_get('allow_url_fopen') : yn(0)).' <span class="opacitymedium">('.$langs->trans("RecommendedValueIs", $langs->transnoentitiesnoconv("No")).")</span><br>\n";
|
||||||
print "<strong>PHP allow_url_include</strong> = ".(ini_get('allow_url_include') ? img_picto($langs->trans("YouShouldSetThisToOff"), 'warning').' '.ini_get('allow_url_include') : yn(0))."<br>\n";
|
print "<strong>PHP allow_url_include</strong> = ".(ini_get('allow_url_include') ? img_picto($langs->trans("YouShouldSetThisToOff"), 'warning').' '.ini_get('allow_url_include') : yn(0)).' <span class="opacitymedium">('.$langs->trans("RecommendedValueIs", $langs->transnoentitiesnoconv("No")).")</span><br>\n";
|
||||||
print "<strong>PHP disable_functions</strong> = ";
|
print "<strong>PHP disable_functions</strong> = ";
|
||||||
$arrayoffunctionsdisabled = explode(',', ini_get('disable_functions'));
|
$arrayoffunctionsdisabled = explode(',', ini_get('disable_functions'));
|
||||||
$arrayoffunctionstodisable = explode(',', 'pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals');
|
$arrayoffunctionstodisable = explode(',', 'pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals');
|
||||||
@ -156,7 +156,7 @@ print '<br>';
|
|||||||
print load_fiche_titre($langs->trans("PermissionsOnFiles"), '', 'folder');
|
print load_fiche_titre($langs->trans("PermissionsOnFiles"), '', 'folder');
|
||||||
|
|
||||||
print '<strong>'.$langs->trans("PermissionsOnFilesInWebRoot").'</strong>: ';
|
print '<strong>'.$langs->trans("PermissionsOnFilesInWebRoot").'</strong>: ';
|
||||||
$arrayoffilesinroot = dol_dir_list(DOL_DOCUMENT_ROOT, 'all', 1, '', array('custom\/'), 'name', SORT_ASC, 4, 1, '', 1);
|
$arrayoffilesinroot = dol_dir_list(DOL_DOCUMENT_ROOT, 'all', 1, '', array('\/custom'), 'name', SORT_ASC, 4, 1, '', 1);
|
||||||
$fileswithwritepermission = array();
|
$fileswithwritepermission = array();
|
||||||
foreach ($arrayoffilesinroot as $fileinroot) {
|
foreach ($arrayoffilesinroot as $fileinroot) {
|
||||||
// Test permission on file
|
// Test permission on file
|
||||||
@ -243,10 +243,13 @@ print '<br>';
|
|||||||
print load_fiche_titre($langs->trans("Menu").' '.$langs->trans("SecuritySetup"), '', 'folder');
|
print load_fiche_titre($langs->trans("Menu").' '.$langs->trans("SecuritySetup"), '', 'folder');
|
||||||
|
|
||||||
//print '<strong>'.$langs->trans("PasswordEncryption").'</strong>: ';
|
//print '<strong>'.$langs->trans("PasswordEncryption").'</strong>: ';
|
||||||
print '<strong>MAIN_SECURITY_HASH_ALGO</strong> = '.(empty($conf->global->MAIN_SECURITY_HASH_ALGO) ? $langs->trans("Undefined") : '')." ";
|
print '<strong>MAIN_SECURITY_HASH_ALGO</strong> = '.(empty($conf->global->MAIN_SECURITY_HASH_ALGO) ? '<span class="opacitymedium">'.$langs->trans("Undefined").'</span>' : $conf->global->MAIN_SECURITY_HASH_ALGO)." ";
|
||||||
print '<span class="opacitymedium"> If unset: \'md5\'</span><br>';
|
if (empty($conf->global->MAIN_SECURITY_HASH_ALGO)) {
|
||||||
|
print '<span class="opacitymedium"> If unset: \'md5\'</span>';
|
||||||
|
}
|
||||||
|
print '<br>';
|
||||||
if ($conf->global->MAIN_SECURITY_HASH_ALGO != 'password_hash') {
|
if ($conf->global->MAIN_SECURITY_HASH_ALGO != 'password_hash') {
|
||||||
print '<strong>MAIN_SECURITY_SALT</strong> = '.(empty($conf->global->MAIN_SECURITY_SALT) ? $langs->trans("Undefined") : $conf->global->MAIN_SECURITY_SALT).'<br>';
|
print '<strong>MAIN_SECURITY_SALT</strong> = '.(empty($conf->global->MAIN_SECURITY_SALT) ? '<span class="opacitymedium">'.$langs->trans("Undefined").'</span>' : $conf->global->MAIN_SECURITY_SALT).'<br>';
|
||||||
}
|
}
|
||||||
if ($conf->global->MAIN_SECURITY_HASH_ALGO != 'password_hash') {
|
if ($conf->global->MAIN_SECURITY_HASH_ALGO != 'password_hash') {
|
||||||
print '<div class="info">The recommanded value for MAIN_SECURITY_HASH_ALGO is now \'password_hash\' but setting it now will make ALL existing passwords of all users not valid, so update is not possible.<br>';
|
print '<div class="info">The recommanded value for MAIN_SECURITY_HASH_ALGO is now \'password_hash\' but setting it now will make ALL existing passwords of all users not valid, so update is not possible.<br>';
|
||||||
@ -258,6 +261,11 @@ if ($conf->global->MAIN_SECURITY_HASH_ALGO != 'password_hash') {
|
|||||||
}
|
}
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
|
|
||||||
|
print '<strong>MAIN_SECURITY_ANTI_SSRF_SERVER_IP</strong> = '.(empty($conf->global->MAIN_SECURITY_ANTI_SSRF_SERVER_IP) ? '<span class="opacitymedium">'.$langs->trans("Undefined").'</span>' : $conf->global->MAIN_SECURITY_ANTI_SSRF_SERVER_IP)."<br>";
|
||||||
|
print '<br>';
|
||||||
|
|
||||||
|
|
||||||
print '<strong>'.$langs->trans("AntivirusEnabledOnUpload").'</strong>: ';
|
print '<strong>'.$langs->trans("AntivirusEnabledOnUpload").'</strong>: ';
|
||||||
print empty($conf->global->MAIN_ANTIVIRUS_COMMAND) ? '' : img_picto('', 'tick').' ';
|
print empty($conf->global->MAIN_ANTIVIRUS_COMMAND) ? '' : img_picto('', 'tick').' ';
|
||||||
print yn($conf->global->MAIN_ANTIVIRUS_COMMAND ? 1 : 0);
|
print yn($conf->global->MAIN_ANTIVIRUS_COMMAND ? 1 : 0);
|
||||||
@ -292,9 +300,10 @@ if (!empty($eventstolog) && is_array($eventstolog)) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
print img_warning().' '.$langs->trans("NoSecurityEventsAreAduited", $langs->transnoentities("Home").' - '.$langs->transnoentities("Setup").' - '.$langs->transnoentities("Audit"));
|
print img_warning().' '.$langs->trans("NoSecurityEventsAreAduited", $langs->transnoentities("Home").' - '.$langs->transnoentities("Setup").' - '.$langs->transnoentities("Audit")).'<br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
print '<br><br>';
|
||||||
|
|
||||||
// End of page
|
// End of page
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|||||||
@ -260,7 +260,7 @@ print "<br>\n";
|
|||||||
|
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'" name="button">';
|
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'" name="button">';
|
||||||
print '<br/><br/>';
|
print '<br><br>';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|||||||
@ -239,7 +239,7 @@ if (in_array($type, array('mysql', 'mysqli'))) {
|
|||||||
print '<label for="checkbox_use_quick">';
|
print '<label for="checkbox_use_quick">';
|
||||||
print $form->textwithpicto($langs->trans('ExportUseMySQLQuickParameter'), $langs->trans('ExportUseMySQLQuickParameterHelp'));
|
print $form->textwithpicto($langs->trans('ExportUseMySQLQuickParameter'), $langs->trans('ExportUseMySQLQuickParameterHelp'));
|
||||||
print '</label>';
|
print '</label>';
|
||||||
print '<br/>';
|
print '<br>';
|
||||||
|
|
||||||
print '<!-- <input type="checkbox" name="drop_database" value="yes" id="checkbox_drop_database" />';
|
print '<!-- <input type="checkbox" name="drop_database" value="yes" id="checkbox_drop_database" />';
|
||||||
print '<label for="checkbox_drop_database">'.$langs->trans("AddDropDatabase").'</label>';
|
print '<label for="checkbox_drop_database">'.$langs->trans("AddDropDatabase").'</label>';
|
||||||
|
|||||||
@ -289,7 +289,7 @@ if ($mode == 'overwrite') {
|
|||||||
print "\n";
|
print "\n";
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>';
|
print '<tr class="oddeven"><td>';
|
||||||
print $formadmin->select_language(GETPOST('langcode'), 'langcode', 0, null, 1, 0, $disablededit ? 1 : 0, 'maxwidthonsmartphone', 1);
|
print $formadmin->select_language(GETPOST('langcode'), 'langcode', 0, null, 1, 0, $disablededit ? 1 : 0, 'maxwidth250', 1);
|
||||||
print '</td>'."\n";
|
print '</td>'."\n";
|
||||||
print '<td>';
|
print '<td>';
|
||||||
print '<input type="text" class="flat maxwidthonsmartphone"'.$disablededit.' name="transkey" id="transkey" value="'.(!empty($transkey) ? $transkey : "").'">';
|
print '<input type="text" class="flat maxwidthonsmartphone"'.$disablededit.' name="transkey" id="transkey" value="'.(!empty($transkey) ? $transkey : "").'">';
|
||||||
@ -338,7 +338,7 @@ if ($mode == 'overwrite') {
|
|||||||
print '<td>'.$obj->transkey.'</td>'."\n";
|
print '<td>'.$obj->transkey.'</td>'."\n";
|
||||||
|
|
||||||
// Value
|
// Value
|
||||||
print '<td>';
|
print '<td class="small">';
|
||||||
/*print '<input type="hidden" name="const['.$i.'][rowid]" value="'.$obj->rowid.'">';
|
/*print '<input type="hidden" name="const['.$i.'][rowid]" value="'.$obj->rowid.'">';
|
||||||
print '<input type="hidden" name="const['.$i.'][lang]" value="'.$obj->lang.'">';
|
print '<input type="hidden" name="const['.$i.'][lang]" value="'.$obj->lang.'">';
|
||||||
print '<input type="hidden" name="const['.$i.'][name]" value="'.$obj->transkey.'">';
|
print '<input type="hidden" name="const['.$i.'][name]" value="'.$obj->transkey.'">';
|
||||||
@ -482,7 +482,7 @@ if ($mode == 'searchkey') {
|
|||||||
|
|
||||||
print '<tr class="oddeven"><td>';
|
print '<tr class="oddeven"><td>';
|
||||||
//print $formadmin->select_language($langcode,'langcode',0,null,$langs->trans("All"),0,0,'',1);
|
//print $formadmin->select_language($langcode,'langcode',0,null,$langs->trans("All"),0,0,'',1);
|
||||||
print $formadmin->select_language($langcode, 'langcode', 0, null, 0, 0, 0, 'maxwidthonsmartphone', 1);
|
print $formadmin->select_language($langcode, 'langcode', 0, null, 0, 0, 0, 'maxwidth250', 1);
|
||||||
print '</td>'."\n";
|
print '</td>'."\n";
|
||||||
print '<td>';
|
print '<td>';
|
||||||
print '<input type="text" class="flat maxwidthonsmartphone" name="transkey" value="'.$transkey.'">';
|
print '<input type="text" class="flat maxwidthonsmartphone" name="transkey" value="'.$transkey.'">';
|
||||||
@ -529,7 +529,7 @@ if ($mode == 'searchkey') {
|
|||||||
if ($i > ($offset + $limit)) {
|
if ($i > ($offset + $limit)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
print '<tr class="oddeven"><td>'.$langcode.'</td><td>'.$key.'</td><td>';
|
print '<tr class="oddeven"><td>'.$langcode.'</td><td>'.$key.'</td><td class="small">';
|
||||||
print dol_escape_htmltag($val);
|
print dol_escape_htmltag($val);
|
||||||
print '</td><td class="right nowraponall">';
|
print '</td><td class="right nowraponall">';
|
||||||
if (!empty($newlangfileonly->tab_translate[$key])) {
|
if (!empty($newlangfileonly->tab_translate[$key])) {
|
||||||
|
|||||||
@ -48,8 +48,8 @@ if (!$user->admin) {
|
|||||||
|
|
||||||
$acts[0] = "activate";
|
$acts[0] = "activate";
|
||||||
$acts[1] = "disable";
|
$acts[1] = "disable";
|
||||||
$actl[0] = img_picto($langs->trans("Disabled"), 'switch_off');
|
$actl[0] = img_picto($langs->trans("Disabled"), 'switch_off', 'class="size15x"');
|
||||||
$actl[1] = img_picto($langs->trans("Activated"), 'switch_on');
|
$actl[1] = img_picto($langs->trans("Activated"), 'switch_on', 'class="size15x"');
|
||||||
|
|
||||||
// Load variable for pagination
|
// Load variable for pagination
|
||||||
$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit;
|
$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit;
|
||||||
@ -490,6 +490,9 @@ if ($id) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!isset($obj->position)) {
|
||||||
|
$obj->position = 1;
|
||||||
|
}
|
||||||
|
|
||||||
fieldListWebsites($fieldlist, $obj, $tabname[$id], 'add');
|
fieldListWebsites($fieldlist, $obj, $tabname[$id], 'add');
|
||||||
|
|
||||||
@ -499,8 +502,6 @@ if ($id) {
|
|||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print "</tr>";
|
print "</tr>";
|
||||||
|
|
||||||
$colspan = count($fieldlist) + 2;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|||||||
@ -52,6 +52,28 @@ class Login
|
|||||||
* @throws RestException 500 System error
|
* @throws RestException 500 System error
|
||||||
*
|
*
|
||||||
* @url GET /
|
* @url GET /
|
||||||
|
*/
|
||||||
|
public function loginUnsecured($login, $password, $entity = '', $reset = 0)
|
||||||
|
{
|
||||||
|
return $this->index($login, $password, $entity, $reset);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Login
|
||||||
|
*
|
||||||
|
* Request the API token for a couple username / password.
|
||||||
|
* Using method POST is recommanded for security reasons (method GET is often logged by default by web servers with parameters so with login and pass into server log file).
|
||||||
|
* Both methods are provided for developer conveniance. Best is to not use at all the login API method and enter directly the "DOLAPIKEY" into field at the top right of page. Note: The API token (DOLAPIKEY) can be found/set on the user page.
|
||||||
|
*
|
||||||
|
* @param string $login User login
|
||||||
|
* @param string $password User password
|
||||||
|
* @param string $entity Entity (when multicompany module is used). '' means 1=first company.
|
||||||
|
* @param int $reset Reset token (0=get current token, 1=ask a new token and canceled old token. This means access using current existing API token of user will fails: new token will be required for new access)
|
||||||
|
* @return array Response status and user token
|
||||||
|
*
|
||||||
|
* @throws RestException 403 Access denied
|
||||||
|
* @throws RestException 500 System error
|
||||||
|
*
|
||||||
* @url POST /
|
* @url POST /
|
||||||
*/
|
*/
|
||||||
public function index($login, $password, $entity = '', $reset = 0)
|
public function index($login, $password, $entity = '', $reset = 0)
|
||||||
|
|||||||
@ -1661,10 +1661,14 @@ class Setup extends DolibarrApi
|
|||||||
if (empty($xmlremote)) {
|
if (empty($xmlremote)) {
|
||||||
$xmlremote = 'https://www.dolibarr.org/files/stable/signatures/filelist-'.DOL_VERSION.'.xml';
|
$xmlremote = 'https://www.dolibarr.org/files/stable/signatures/filelist-'.DOL_VERSION.'.xml';
|
||||||
}
|
}
|
||||||
if ($xmlremote && !preg_match('/^https?:\/\//', $xmlremote)) {
|
if ($xmlremote && !preg_match('/^https?:\/\//i', $xmlremote)) {
|
||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
throw new RestException(500, $langs->trans("ErrorURLMustStartWithHttp", $xmlremote));
|
throw new RestException(500, $langs->trans("ErrorURLMustStartWithHttp", $xmlremote));
|
||||||
}
|
}
|
||||||
|
if ($xmlremote && !preg_match('/\.xml$/', $xmlremote)) {
|
||||||
|
$langs->load("errors");
|
||||||
|
throw new RestException(500, $langs->trans("ErrorURLMustEndWith", $xmlremote, '.xml'));
|
||||||
|
}
|
||||||
|
|
||||||
if ($target == 'local') {
|
if ($target == 'local') {
|
||||||
if (dol_is_file($xmlfile)) {
|
if (dol_is_file($xmlfile)) {
|
||||||
@ -1673,7 +1677,7 @@ class Setup extends DolibarrApi
|
|||||||
throw new RestException(500, $langs->trans('XmlNotFound').': '.$xmlfile);
|
throw new RestException(500, $langs->trans('XmlNotFound').': '.$xmlfile);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$xmlarray = getURLContent($xmlremote, 'GET', '', 1, array(), array('http', 'https'), 0); // Accept http or https links on external remote server only
|
$xmlarray = getURLContent($xmlremote, 'GET', '', 1, array(), array('http', 'https'), 0); // Accept http or https links on external remote server only. Same is used into filecheck.php.
|
||||||
|
|
||||||
// Return array('content'=>response,'curl_error_no'=>errno,'curl_error_msg'=>errmsg...)
|
// Return array('content'=>response,'curl_error_no'=>errno,'curl_error_msg'=>errmsg...)
|
||||||
if (!$xmlarray['curl_error_no'] && $xmlarray['http_code'] != '400' && $xmlarray['http_code'] != '404') {
|
if (!$xmlarray['curl_error_no'] && $xmlarray['http_code'] != '400' && $xmlarray['http_code'] != '404') {
|
||||||
@ -1681,7 +1685,7 @@ class Setup extends DolibarrApi
|
|||||||
//print "xmlfilestart".$xmlfile."endxmlfile";
|
//print "xmlfilestart".$xmlfile."endxmlfile";
|
||||||
$xml = simplexml_load_string($xmlfile);
|
$xml = simplexml_load_string($xmlfile);
|
||||||
} else {
|
} else {
|
||||||
$errormsg = $langs->trans('XmlNotFound').': '.$xmlremote.' - '.$xmlarray['http_code'].' '.$xmlarray['curl_error_no'].' '.$xmlarray['curl_error_msg'];
|
$errormsg = $langs->trans('XmlNotFound').': '.$xmlremote.' - '.$xmlarray['http_code'].(($xmlarray['http_code'] == 400 && $xmlarray['content']) ? ' '.$xmlarray['content'] : '').' '.$xmlarray['curl_error_no'].' '.$xmlarray['curl_error_msg'];
|
||||||
throw new RestException(500, $errormsg);
|
throw new RestException(500, $errormsg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -188,7 +188,7 @@ class AssetType extends CommonObject
|
|||||||
$sql .= "accountancy_code_depreciation_asset = '".$this->db->escape($this->accountancy_code_depreciation_asset)."',";
|
$sql .= "accountancy_code_depreciation_asset = '".$this->db->escape($this->accountancy_code_depreciation_asset)."',";
|
||||||
$sql .= "accountancy_code_depreciation_expense = '".$this->db->escape($this->accountancy_code_depreciation_expense)."',";
|
$sql .= "accountancy_code_depreciation_expense = '".$this->db->escape($this->accountancy_code_depreciation_expense)."',";
|
||||||
$sql .= "note = '".$this->db->escape($this->note)."'";
|
$sql .= "note = '".$this->db->escape($this->note)."'";
|
||||||
$sql .= " WHERE rowid =".$this->id;
|
$sql .= " WHERE rowid = ".((int) $this->id);
|
||||||
|
|
||||||
$result = $this->db->query($sql);
|
$result = $this->db->query($sql);
|
||||||
if ($result) {
|
if ($result) {
|
||||||
|
|||||||
@ -346,11 +346,11 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
|
|||||||
|
|
||||||
// List of mass actions available
|
// List of mass actions available
|
||||||
$arrayofmassactions = array(
|
$arrayofmassactions = array(
|
||||||
//'presend'=>$langs->trans("SendByMail"),
|
//'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail"),
|
||||||
//'builddoc'=>$langs->trans("PDFMerge"),
|
//'builddoc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("PDFMerge"),
|
||||||
);
|
);
|
||||||
if ($permissiontodelete) {
|
if ($permissiontodelete) {
|
||||||
$arrayofmassactions['predelete'] = '<span class="fa fa-trash paddingrightonly"></span>'.$langs->trans("Delete");
|
$arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete");
|
||||||
}
|
}
|
||||||
if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'predelete'))) {
|
if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'predelete'))) {
|
||||||
$arrayofmassactions = array();
|
$arrayofmassactions = array();
|
||||||
|
|||||||
@ -148,7 +148,7 @@ class BlockedLogAuthority
|
|||||||
|
|
||||||
global $langs;
|
global $langs;
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::fetch id=".$id, LOG_DEBUG);
|
dol_syslog(get_class($this)."::fetch id=".((int) $id), LOG_DEBUG);
|
||||||
|
|
||||||
if (empty($id) && empty($signature)) {
|
if (empty($id) && empty($signature)) {
|
||||||
$this->error = 'BadParameter';
|
$this->error = 'BadParameter';
|
||||||
|
|||||||
@ -421,7 +421,7 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
|
|||||||
|
|
||||||
// List of mass actions available
|
// List of mass actions available
|
||||||
$arrayofmassactions = array(
|
$arrayofmassactions = array(
|
||||||
//'presend'=>img_picto('', 'email').$langs->trans("SendByMail"),
|
//'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail"),
|
||||||
'enable'=>img_picto('', 'check', 'class="pictofixedwidth"').$langs->trans("Enable"),
|
'enable'=>img_picto('', 'check', 'class="pictofixedwidth"').$langs->trans("Enable"),
|
||||||
'disable'=>img_picto('', 'close_title', 'class="pictofixedwidth"').$langs->trans("Disable"),
|
'disable'=>img_picto('', 'close_title', 'class="pictofixedwidth"').$langs->trans("Disable"),
|
||||||
);
|
);
|
||||||
|
|||||||
@ -219,7 +219,7 @@ class Bookmark extends CommonObject
|
|||||||
$sql .= " ,title = '".$this->db->escape($this->title)."'";
|
$sql .= " ,title = '".$this->db->escape($this->title)."'";
|
||||||
$sql .= " ,favicon = '".$this->db->escape($this->favicon)."'";
|
$sql .= " ,favicon = '".$this->db->escape($this->favicon)."'";
|
||||||
$sql .= " ,position = ".(int) $this->position;
|
$sql .= " ,position = ".(int) $this->position;
|
||||||
$sql .= " WHERE rowid = ".$this->id;
|
$sql .= " WHERE rowid = ".((int) $this->id);
|
||||||
|
|
||||||
dol_syslog("Bookmark::update", LOG_DEBUG);
|
dol_syslog("Bookmark::update", LOG_DEBUG);
|
||||||
if ($this->db->query($sql)) {
|
if ($this->db->query($sql)) {
|
||||||
|
|||||||
@ -143,13 +143,13 @@ $moreforfilter = '';
|
|||||||
|
|
||||||
// List of mass actions available
|
// List of mass actions available
|
||||||
$arrayofmassactions = array(
|
$arrayofmassactions = array(
|
||||||
//'validate'=>$langs->trans("Validate"),
|
//'validate'=>img_picto('', 'check', 'class="pictofixedwidth"').$langs->trans("Validate"),
|
||||||
//'generate_doc'=>$langs->trans("ReGeneratePDF"),
|
//'generate_doc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("ReGeneratePDF"),
|
||||||
//'builddoc'=>$langs->trans("PDFMerge"),
|
//'builddoc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("PDFMerge"),
|
||||||
//'presend'=>$langs->trans("SendByMail"),
|
//'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail"),
|
||||||
);
|
);
|
||||||
if ($permissiontodelete) {
|
if ($permissiontodelete) {
|
||||||
$arrayofmassactions['predelete'] = '<span class="fa fa-trash paddingrightonly"></span>'.$langs->trans("Delete");
|
$arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete");
|
||||||
}
|
}
|
||||||
if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'predelete'))) {
|
if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'predelete'))) {
|
||||||
$arrayofmassactions = array();
|
$arrayofmassactions = array();
|
||||||
|
|||||||
@ -37,15 +37,15 @@ function genkeypad($keypadname, $formname)
|
|||||||
$sz .= '<div id="keypad'.$keypadname.'" style="position:absolute;z-index:90;display:none; background:#AAA; vertical-align:top;">'."\n";
|
$sz .= '<div id="keypad'.$keypadname.'" style="position:absolute;z-index:90;display:none; background:#AAA; vertical-align:top;">'."\n";
|
||||||
$sz .= '<input type="button" style="font-size:'.$btnsize.'px;" value=" 7 " onclick="addvalue(\''.$keypadname.'\',\''.$formname.'\',7);"/>'."\n";
|
$sz .= '<input type="button" style="font-size:'.$btnsize.'px;" value=" 7 " onclick="addvalue(\''.$keypadname.'\',\''.$formname.'\',7);"/>'."\n";
|
||||||
$sz .= '<input type="button" style="font-size:'.$btnsize.'px;" value=" 8 " onclick="addvalue(\''.$keypadname.'\',\''.$formname.'\',8);"/>'."\n";
|
$sz .= '<input type="button" style="font-size:'.$btnsize.'px;" value=" 8 " onclick="addvalue(\''.$keypadname.'\',\''.$formname.'\',8);"/>'."\n";
|
||||||
$sz .= '<input type="button" style="font-size:'.$btnsize.'px;" value=" 9 " onclick="addvalue(\''.$keypadname.'\',\''.$formname.'\',9);"/><br/>'."\n";
|
$sz .= '<input type="button" style="font-size:'.$btnsize.'px;" value=" 9 " onclick="addvalue(\''.$keypadname.'\',\''.$formname.'\',9);"/><br>'."\n";
|
||||||
|
|
||||||
$sz .= '<input type="button" style="font-size:'.$btnsize.'px;" value=" 4 " onclick="addvalue(\''.$keypadname.'\',\''.$formname.'\',4);"/>'."\n";
|
$sz .= '<input type="button" style="font-size:'.$btnsize.'px;" value=" 4 " onclick="addvalue(\''.$keypadname.'\',\''.$formname.'\',4);"/>'."\n";
|
||||||
$sz .= '<input type="button" style="font-size:'.$btnsize.'px;" value=" 5 " onclick="addvalue(\''.$keypadname.'\',\''.$formname.'\',5);"/>'."\n";
|
$sz .= '<input type="button" style="font-size:'.$btnsize.'px;" value=" 5 " onclick="addvalue(\''.$keypadname.'\',\''.$formname.'\',5);"/>'."\n";
|
||||||
$sz .= '<input type="button" style="font-size:'.$btnsize.'px;" value=" 6 " onclick="addvalue(\''.$keypadname.'\',\''.$formname.'\',6);"/><br/>'."\n";
|
$sz .= '<input type="button" style="font-size:'.$btnsize.'px;" value=" 6 " onclick="addvalue(\''.$keypadname.'\',\''.$formname.'\',6);"/><br>'."\n";
|
||||||
|
|
||||||
$sz .= '<input type="button" style="font-size:'.$btnsize.'px;" value=" 1 " onclick="addvalue(\''.$keypadname.'\',\''.$formname.'\',1);"/>'."\n";
|
$sz .= '<input type="button" style="font-size:'.$btnsize.'px;" value=" 1 " onclick="addvalue(\''.$keypadname.'\',\''.$formname.'\',1);"/>'."\n";
|
||||||
$sz .= '<input type="button" style="font-size:'.$btnsize.'px;" value=" 2 " onclick="addvalue(\''.$keypadname.'\',\''.$formname.'\',2);"/>'."\n";
|
$sz .= '<input type="button" style="font-size:'.$btnsize.'px;" value=" 2 " onclick="addvalue(\''.$keypadname.'\',\''.$formname.'\',2);"/>'."\n";
|
||||||
$sz .= '<input type="button" style="font-size:'.$btnsize.'px;" value=" 3 " onclick="addvalue(\''.$keypadname.'\',\''.$formname.'\',3);"/><br/>'."\n";
|
$sz .= '<input type="button" style="font-size:'.$btnsize.'px;" value=" 3 " onclick="addvalue(\''.$keypadname.'\',\''.$formname.'\',3);"/><br>'."\n";
|
||||||
|
|
||||||
$sz .= '<input type="button" style="font-size:'.$btnsize.'px;" value=" 0 " onclick="addvalue(\''.$keypadname.'\',\''.$formname.'\',0);"/>'."\n";
|
$sz .= '<input type="button" style="font-size:'.$btnsize.'px;" value=" 0 " onclick="addvalue(\''.$keypadname.'\',\''.$formname.'\',0);"/>'."\n";
|
||||||
$sz .= '<input type="button" style="font-size:'.$btnsize.'px;" value="←" ';
|
$sz .= '<input type="button" style="font-size:'.$btnsize.'px;" value="←" ';
|
||||||
|
|||||||
@ -1470,7 +1470,7 @@ class Categorie extends CommonObject
|
|||||||
// Load bank categories
|
// Load bank categories
|
||||||
$sql = "SELECT c.label, c.rowid";
|
$sql = "SELECT c.label, c.rowid";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."bank_class as a, ".MAIN_DB_PREFIX."bank_categ as c";
|
$sql .= " FROM ".MAIN_DB_PREFIX."bank_class as a, ".MAIN_DB_PREFIX."bank_categ as c";
|
||||||
$sql .= " WHERE a.lineid=".$id." AND a.fk_categ = c.rowid";
|
$sql .= " WHERE a.lineid=".((int) $id)." AND a.fk_categ = c.rowid";
|
||||||
$sql .= " AND c.entity IN (".getEntity('category').")";
|
$sql .= " AND c.entity IN (".getEntity('category').")";
|
||||||
$sql .= " ORDER BY c.label";
|
$sql .= " ORDER BY c.label";
|
||||||
|
|
||||||
|
|||||||
@ -28,7 +28,6 @@
|
|||||||
*/
|
*/
|
||||||
require_once DOL_DOCUMENT_ROOT.'/comm/action/class/cactioncomm.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/comm/action/class/cactioncomm.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncommreminder.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncommreminder.class.php';
|
||||||
|
|
||||||
@ -2290,14 +2289,16 @@ class ActionComm extends CommonObject
|
|||||||
|
|
||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
|
|
||||||
//Select all action comm reminder
|
//Select all action comm reminders
|
||||||
$sql = "SELECT rowid as id FROM ".MAIN_DB_PREFIX."actioncomm_reminder";
|
$sql = "SELECT rowid as id FROM ".MAIN_DB_PREFIX."actioncomm_reminder";
|
||||||
$sql .= " WHERE typeremind = 'email' AND status = 0";
|
$sql .= " WHERE typeremind = 'email' AND status = 0";
|
||||||
$sql .= " AND dateremind <= '".$this->db->idate(dol_now())."'";
|
$sql .= " AND dateremind <= '".$this->db->idate($now)."'";
|
||||||
|
$sql .= " AND entity IN (".getEntity('actioncomm').")";
|
||||||
$sql .= $this->db->order("dateremind", "ASC");
|
$sql .= $this->db->order("dateremind", "ASC");
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
|
|
||||||
if ($resql) {
|
if ($resql) {
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
|
||||||
$formmail = new FormMail($this->db);
|
$formmail = new FormMail($this->db);
|
||||||
|
|
||||||
while ($obj = $this->db->fetch_object($resql)) {
|
while ($obj = $this->db->fetch_object($resql)) {
|
||||||
@ -2435,7 +2436,7 @@ class ActionComm extends CommonObject
|
|||||||
|
|
||||||
$sql = "UPDATE ".MAIN_DB_PREFIX."actioncomm ";
|
$sql = "UPDATE ".MAIN_DB_PREFIX."actioncomm ";
|
||||||
$sql .= " SET percent = ".(int) $percent;
|
$sql .= " SET percent = ".(int) $percent;
|
||||||
$sql .= " WHERE id=".$id;
|
$sql .= " WHERE id = ".((int) $id);
|
||||||
|
|
||||||
if ($this->db->query($sql)) {
|
if ($this->db->query($sql)) {
|
||||||
$this->db->commit();
|
$this->db->commit();
|
||||||
|
|||||||
@ -720,7 +720,7 @@ if ($action == 'show_day') {
|
|||||||
$sql .= ')';
|
$sql .= ')';
|
||||||
}
|
}
|
||||||
if ($type) {
|
if ($type) {
|
||||||
$sql .= " AND ca.id = ".$type;
|
$sql .= " AND ca.id = ".((int) $type);
|
||||||
}
|
}
|
||||||
if ($status == '0') {
|
if ($status == '0') {
|
||||||
$sql .= " AND a.percent = 0";
|
$sql .= " AND a.percent = 0";
|
||||||
|
|||||||
@ -592,7 +592,7 @@ if ($action == 'show_day') {
|
|||||||
$sql .= ')';
|
$sql .= ')';
|
||||||
}
|
}
|
||||||
if ($type) {
|
if ($type) {
|
||||||
$sql .= " AND ca.id = ".$type;
|
$sql .= " AND ca.id = ".((int) $type);
|
||||||
}
|
}
|
||||||
if ($status == '0') {
|
if ($status == '0') {
|
||||||
$sql .= " AND a.percent = 0";
|
$sql .= " AND a.percent = 0";
|
||||||
|
|||||||
@ -613,7 +613,7 @@ if ($action == 'show_day') {
|
|||||||
$sql .= ')';
|
$sql .= ')';
|
||||||
}
|
}
|
||||||
if ($type) {
|
if ($type) {
|
||||||
$sql .= " AND ca.id = ".$type;
|
$sql .= " AND ca.id = ".((int) $type);
|
||||||
}
|
}
|
||||||
if ($status == '0') {
|
if ($status == '0') {
|
||||||
$sql .= " AND a.percent = 0";
|
$sql .= " AND a.percent = 0";
|
||||||
|
|||||||
@ -219,7 +219,7 @@ if (!empty($conf->supplier_proposal->enabled) && $user->rights->supplier_proposa
|
|||||||
$sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id;
|
$sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id;
|
||||||
}
|
}
|
||||||
if ($socid) {
|
if ($socid) {
|
||||||
$sql .= " AND s.rowid = ".$socid;
|
$sql .= " AND s.rowid = ".((int) $socid);
|
||||||
}
|
}
|
||||||
|
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
@ -605,7 +605,7 @@ if (((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_S
|
|||||||
$sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id;
|
$sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id;
|
||||||
}
|
}
|
||||||
if ($socid) {
|
if ($socid) {
|
||||||
$sql .= " AND s.rowid = ".$socid;
|
$sql .= " AND s.rowid = ".((int) $socid);
|
||||||
}
|
}
|
||||||
$sql .= " ORDER BY s.datec DESC";
|
$sql .= " ORDER BY s.datec DESC";
|
||||||
$sql .= $db->plimit($max, 0);
|
$sql .= $db->plimit($max, 0);
|
||||||
@ -711,7 +711,7 @@ if (!empty($conf->contrat->enabled) && $user->rights->contrat->lire && 0) { // T
|
|||||||
$sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id;
|
$sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id;
|
||||||
}
|
}
|
||||||
if ($socid) {
|
if ($socid) {
|
||||||
$sql .= " AND s.rowid = ".$socid;
|
$sql .= " AND s.rowid = ".((int) $socid);
|
||||||
}
|
}
|
||||||
$sql .= " ORDER BY c.tms DESC";
|
$sql .= " ORDER BY c.tms DESC";
|
||||||
$sql .= $db->plimit($max + 1, 0);
|
$sql .= $db->plimit($max + 1, 0);
|
||||||
@ -786,7 +786,7 @@ if (!empty($conf->propal->enabled) && $user->rights->propal->lire) {
|
|||||||
$sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id;
|
$sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id;
|
||||||
}
|
}
|
||||||
if ($socid) {
|
if ($socid) {
|
||||||
$sql .= " AND s.rowid = ".$socid;
|
$sql .= " AND s.rowid = ".((int) $socid);
|
||||||
}
|
}
|
||||||
$sql .= " ORDER BY p.rowid DESC";
|
$sql .= " ORDER BY p.rowid DESC";
|
||||||
|
|
||||||
@ -902,7 +902,7 @@ if (!empty($conf->commande->enabled) && $user->rights->commande->lire) {
|
|||||||
$sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id;
|
$sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id;
|
||||||
}
|
}
|
||||||
if ($socid) {
|
if ($socid) {
|
||||||
$sql .= " AND s.rowid = ".$socid;
|
$sql .= " AND s.rowid = ".((int) $socid);
|
||||||
}
|
}
|
||||||
$sql .= " ORDER BY c.rowid DESC";
|
$sql .= " ORDER BY c.rowid DESC";
|
||||||
|
|
||||||
|
|||||||
@ -379,7 +379,7 @@ if ($action == 'deletefilter') {
|
|||||||
|
|
||||||
if ($action == 'delete') {
|
if ($action == 'delete') {
|
||||||
// Ici, rowid indique le destinataire et id le mailing
|
// Ici, rowid indique le destinataire et id le mailing
|
||||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."mailing_cibles WHERE rowid=".$rowid;
|
$sql = "DELETE FROM ".MAIN_DB_PREFIX."mailing_cibles WHERE rowid = ".((int) $rowid);
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if ($resql) {
|
if ($resql) {
|
||||||
if (!empty($id)) {
|
if (!empty($id)) {
|
||||||
|
|||||||
@ -167,7 +167,7 @@ if (GETPOST('exportcsv', 'int')) {
|
|||||||
|
|
||||||
if ($action == 'delete') {
|
if ($action == 'delete') {
|
||||||
// Ici, rowid indique le destinataire et id le mailing
|
// Ici, rowid indique le destinataire et id le mailing
|
||||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."mailing_cibles WHERE rowid=".$rowid;
|
$sql = "DELETE FROM ".MAIN_DB_PREFIX."mailing_cibles WHERE rowid = ".((int) $rowid);
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if ($resql) {
|
if ($resql) {
|
||||||
if (!empty($id)) {
|
if (!empty($id)) {
|
||||||
@ -678,8 +678,9 @@ if ($object->fetch($id) >= 0) {
|
|||||||
|
|
||||||
// Search Icon
|
// Search Icon
|
||||||
print '<td class="right">';
|
print '<td class="right">';
|
||||||
|
print '<!-- ID mailing_cibles = '.$obj->rowid.' -->';
|
||||||
if ($obj->statut == 0) { // Not sent yet
|
if ($obj->statut == 0) { // Not sent yet
|
||||||
if ($user->rights->mailing->creer && $allowaddtarget) {
|
if (!empty($user->rights->mailing->creer) && $allowaddtarget) {
|
||||||
print '<a class="reposition" href="'.$_SERVER['PHP_SELF'].'?action=delete&token='.newToken().'&rowid='.$obj->rowid.$param.'">'.img_delete($langs->trans("RemoveRecipient")).'</a>';
|
print '<a class="reposition" href="'.$_SERVER['PHP_SELF'].'?action=delete&token='.newToken().'&rowid='.$obj->rowid.$param.'">'.img_delete($langs->trans("RemoveRecipient")).'</a>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -614,7 +614,7 @@ class AdvanceTargetingMailing extends CommonObject
|
|||||||
}
|
}
|
||||||
} elseif ($extrafields->attributes[$elementtype]['type'][$key] == 'boolean') {
|
} elseif ($extrafields->attributes[$elementtype]['type'][$key] == 'boolean') {
|
||||||
if ($arrayquery['options_'.$key] != '') {
|
if ($arrayquery['options_'.$key] != '') {
|
||||||
$sqlwhere[] = " (te.".$key." = ".$arrayquery['options_'.$key].")";
|
$sqlwhere[] = " (te.".$key." = ".((int) $arrayquery['options_'.$key]).")";
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (is_array($arrayquery['options_'.$key])) {
|
if (is_array($arrayquery['options_'.$key])) {
|
||||||
|
|||||||
@ -2633,12 +2633,6 @@ if ($action == 'create') {
|
|||||||
print showOnlineSignatureUrl('proposal', $object->ref).'<br>';
|
print showOnlineSignatureUrl('proposal', $object->ref).'<br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Show direct download link
|
|
||||||
if ($object->statut != Propal::STATUS_DRAFT && !empty($conf->global->PROPOSAL_ALLOW_EXTERNAL_DOWNLOAD)) {
|
|
||||||
print '<br><!-- Link to download main doc -->'."\n";
|
|
||||||
print showDirectDownloadLink($object).'<br>';
|
|
||||||
}
|
|
||||||
|
|
||||||
print '</div><div class="fichehalfright"><div class="ficheaddleft">';
|
print '</div><div class="fichehalfright"><div class="ficheaddleft">';
|
||||||
|
|
||||||
// List of actions on element
|
// List of actions on element
|
||||||
|
|||||||
@ -1477,7 +1477,7 @@ class Propal extends CommonObject
|
|||||||
$sql .= " WHERE p.entity IN (".getEntity('propal').")"; // Dont't use entity if you use rowid
|
$sql .= " WHERE p.entity IN (".getEntity('propal').")"; // Dont't use entity if you use rowid
|
||||||
$sql .= " AND p.ref='".$this->db->escape($ref)."'";
|
$sql .= " AND p.ref='".$this->db->escape($ref)."'";
|
||||||
} else {
|
} else {
|
||||||
$sql .= " WHERE p.rowid=".$rowid;
|
$sql .= " WHERE p.rowid = ".((int) $rowid);
|
||||||
}
|
}
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
|
dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
|
||||||
|
|||||||
@ -14,6 +14,7 @@
|
|||||||
* Copyright (C) 2017-2018 Charlene Benke <charlie@patas-monkey.com>
|
* Copyright (C) 2017-2018 Charlene Benke <charlie@patas-monkey.com>
|
||||||
* Copyright (C) 2018 Nicolas ZABOURI <info@inovea-conseil.com>
|
* Copyright (C) 2018 Nicolas ZABOURI <info@inovea-conseil.com>
|
||||||
* Copyright (C) 2019 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
* Copyright (C) 2019 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
||||||
|
* Copyright (C) 2021 Anthony Berton <anthony.berton@bb2a.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -217,7 +218,15 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_array_fields.tpl.php';
|
|||||||
$permissiontoread = $user->rights->propal->lire;
|
$permissiontoread = $user->rights->propal->lire;
|
||||||
$permissiontoadd = $user->rights->propal->write;
|
$permissiontoadd = $user->rights->propal->write;
|
||||||
$permissiontodelete = $user->rights->propal->supprimer;
|
$permissiontodelete = $user->rights->propal->supprimer;
|
||||||
$permissiontoclose = $user->rights->propal->cloturer;
|
if (!empty($conf->global->MAIN_USE_ADVANCED_PERMS)) {
|
||||||
|
$permissiontovalidate = $user->rights->propale->propal_advance->validate;
|
||||||
|
$permissiontoclose = $user->rights->propale->propal_advance->close;
|
||||||
|
$permissiontosendbymail = $user->rights->propale->propal_advance->send;
|
||||||
|
} else {
|
||||||
|
$permissiontovalidate = $user->rights->propal->write;
|
||||||
|
$permissiontoclose = $user->rights->propal->write;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -298,7 +307,7 @@ if (empty($reshook)) {
|
|||||||
include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php';
|
include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($action == 'validate' && $permissiontoadd) {
|
if ($action == 'validate' && $permissiontovalidate) {
|
||||||
if (GETPOST('confirm') == 'yes') {
|
if (GETPOST('confirm') == 'yes') {
|
||||||
$tmpproposal = new Propal($db);
|
$tmpproposal = new Propal($db);
|
||||||
$db->begin();
|
$db->begin();
|
||||||
@ -316,9 +325,10 @@ if ($action == 'validate' && $permissiontoadd) {
|
|||||||
setEventMessage($tmpproposal->ref." ".$langs->trans('IsNotADraft'), 'errors');
|
setEventMessage($tmpproposal->ref." ".$langs->trans('IsNotADraft'), 'errors');
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
dol_print_error($db);
|
||||||
|
$error++;
|
||||||
}
|
}
|
||||||
dol_print_error($db);
|
|
||||||
$error++;
|
|
||||||
}
|
}
|
||||||
if ($error) {
|
if ($error) {
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
@ -815,18 +825,23 @@ if ($resql) {
|
|||||||
|
|
||||||
// List of mass actions available
|
// List of mass actions available
|
||||||
$arrayofmassactions = array(
|
$arrayofmassactions = array(
|
||||||
'generate_doc'=>$langs->trans("ReGeneratePDF"),
|
'generate_doc'=>img_picto('', 'pdf').' '.$langs->trans("ReGeneratePDF"),
|
||||||
'builddoc'=>$langs->trans("PDFMerge"),
|
'builddoc'=>img_picto('', 'pdf').' '.$langs->trans("PDFMerge"),
|
||||||
'presend'=>$langs->trans("SendByMail"),
|
|
||||||
'prevalidate'=>$langs->trans("Validate"),
|
|
||||||
);
|
);
|
||||||
if ($user->rights->propal->cloturer) {
|
if ($permissiontosendbymail) {
|
||||||
$arrayofmassactions['presign']=$langs->trans("Sign");
|
$arrayofmassactions['presend']=img_picto('', 'email').' '.$langs->trans("SendByMail");
|
||||||
$arrayofmassactions['nopresign']=$langs->trans("NoSign");
|
|
||||||
$arrayofmassactions['setbilled'] = $langs->trans("ClassifyBilled");
|
|
||||||
}
|
}
|
||||||
if ($user->rights->propal->supprimer) {
|
if ($permissiontovalidate) {
|
||||||
$arrayofmassactions['predelete'] = '<span class="fa fa-trash paddingrightonly"></span>'.$langs->trans("Delete");
|
$arrayofmassactions['prevalidate']=img_picto('', 'check').' '.$langs->trans("Validate");
|
||||||
|
}
|
||||||
|
if ($permissiontoclose) {
|
||||||
|
$arrayofmassactions['presign']=img_picto('', 'propal').' '.$langs->trans("Sign");
|
||||||
|
$arrayofmassactions['nopresign']=img_picto('', 'propal').' '.$langs->trans("NoSign");
|
||||||
|
$arrayofmassactions['setbilled'] =img_picto('', 'bill').' '.$langs->trans("ClassifyBilled");
|
||||||
|
}
|
||||||
|
if ($permissiontodelete) {
|
||||||
|
$arrayofmassactions['predelete'] = img_picto('', 'delete').' '.$langs->trans("Delete");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (in_array($massaction, array('presend', 'predelete', 'closed'))) {
|
if (in_array($massaction, array('presend', 'predelete', 'closed'))) {
|
||||||
|
|||||||
@ -194,7 +194,7 @@ if (!empty($conf->propal->enabled) && $user->rights->propale->lire) {
|
|||||||
$sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id;
|
$sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id;
|
||||||
}
|
}
|
||||||
if ($socid) {
|
if ($socid) {
|
||||||
$sql .= " AND s.rowid = ".$socid;
|
$sql .= " AND s.rowid = ".((int) $socid);
|
||||||
}
|
}
|
||||||
$sql .= " ORDER BY p.rowid DESC";
|
$sql .= " ORDER BY p.rowid DESC";
|
||||||
$sql .= $db->plimit(5, 0);
|
$sql .= $db->plimit(5, 0);
|
||||||
|
|||||||
@ -2629,12 +2629,6 @@ if ($action == 'create' && $usercancreate) {
|
|||||||
print showOnlinePaymentUrl('order', $object->ref).'<br>';
|
print showOnlinePaymentUrl('order', $object->ref).'<br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Show direct download link
|
|
||||||
if ($object->statut != Commande::STATUS_DRAFT && !empty($conf->global->ORDER_ALLOW_EXTERNAL_DOWNLOAD)) {
|
|
||||||
print '<br><!-- Link to download main doc -->'."\n";
|
|
||||||
print showDirectDownloadLink($object).'<br>';
|
|
||||||
}
|
|
||||||
|
|
||||||
print '</div><div class="fichehalfright"><div class="ficheaddleft">';
|
print '</div><div class="fichehalfright"><div class="ficheaddleft">';
|
||||||
|
|
||||||
// List of actions on element
|
// List of actions on element
|
||||||
|
|||||||
@ -1807,7 +1807,7 @@ class Commande extends CommonOrder
|
|||||||
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_incoterms as i ON c.fk_incoterms = i.rowid';
|
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_incoterms as i ON c.fk_incoterms = i.rowid';
|
||||||
|
|
||||||
if ($id) {
|
if ($id) {
|
||||||
$sql .= " WHERE c.rowid=".$id;
|
$sql .= " WHERE c.rowid=".((int) $id);
|
||||||
} else {
|
} else {
|
||||||
$sql .= " WHERE c.entity IN (".getEntity('commande').")"; // Dont't use entity if you use rowid
|
$sql .= " WHERE c.entity IN (".getEntity('commande').")"; // Dont't use entity if you use rowid
|
||||||
}
|
}
|
||||||
@ -2687,7 +2687,7 @@ class Commande extends CommonOrder
|
|||||||
$sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id;
|
$sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id;
|
||||||
}
|
}
|
||||||
if ($socid) {
|
if ($socid) {
|
||||||
$sql .= " AND s.rowid = ".$socid;
|
$sql .= " AND s.rowid = ".((int) $socid);
|
||||||
}
|
}
|
||||||
if ($draft) {
|
if ($draft) {
|
||||||
$sql .= " AND c.fk_statut = ".self::STATUS_DRAFT;
|
$sql .= " AND c.fk_statut = ".self::STATUS_DRAFT;
|
||||||
|
|||||||
@ -88,7 +88,7 @@ if ($action == 'addcontact' && $user->rights->commande->creer) {
|
|||||||
header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);
|
header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);
|
||||||
exit;
|
exit;
|
||||||
} else {
|
} else {
|
||||||
dol_print_error($db);
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
|
|||||||
@ -105,7 +105,7 @@ if (dol_strlen($begin)) {
|
|||||||
$sql .= " AND s.nom like '".$db->escape($begin)."'";
|
$sql .= " AND s.nom like '".$db->escape($begin)."'";
|
||||||
}
|
}
|
||||||
if ($socid > 0) {
|
if ($socid > 0) {
|
||||||
$sql .= " AND s.rowid = ".$socid;
|
$sql .= " AND s.rowid = ".((int) $socid);
|
||||||
}
|
}
|
||||||
$sql .= " AND c.fk_statut in (1, 2) AND c.facture = 0";
|
$sql .= " AND c.fk_statut in (1, 2) AND c.facture = 0";
|
||||||
$sql .= " GROUP BY s.nom";
|
$sql .= " GROUP BY s.nom";
|
||||||
|
|||||||
@ -736,10 +736,10 @@ if ($resql) {
|
|||||||
|
|
||||||
// List of mass actions available
|
// List of mass actions available
|
||||||
$arrayofmassactions = array(
|
$arrayofmassactions = array(
|
||||||
//'presend'=>$langs->trans("SendByMail"),
|
//'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail"),
|
||||||
//'builddoc'=>$langs->trans("PDFMerge"),
|
//'builddoc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("PDFMerge"),
|
||||||
);
|
);
|
||||||
//if ($user->rights->bank->supprimer) $arrayofmassactions['predelete']='<span class="fa fa-trash paddingrightonly"></span>'.$langs->trans("Delete");
|
//if ($user->rights->bank->supprimer) $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete");
|
||||||
if (in_array($massaction, array('presend', 'predelete'))) {
|
if (in_array($massaction, array('presend', 'predelete'))) {
|
||||||
$arrayofmassactions = array();
|
$arrayofmassactions = array();
|
||||||
}
|
}
|
||||||
@ -791,7 +791,7 @@ if ($resql) {
|
|||||||
$nbmax = 12; // We show last 12 receipts (so we can have more than one year)
|
$nbmax = 12; // We show last 12 receipts (so we can have more than one year)
|
||||||
$liste = "";
|
$liste = "";
|
||||||
$sql = "SELECT DISTINCT num_releve FROM ".MAIN_DB_PREFIX."bank";
|
$sql = "SELECT DISTINCT num_releve FROM ".MAIN_DB_PREFIX."bank";
|
||||||
$sql .= " WHERE fk_account=".$object->id." AND num_releve IS NOT NULL";
|
$sql .= " WHERE fk_account = ".((int) $object->id)." AND num_releve IS NOT NULL";
|
||||||
$sql .= $db->order("num_releve", "DESC");
|
$sql .= $db->order("num_releve", "DESC");
|
||||||
$sql .= $db->plimit($nbmax + 1);
|
$sql .= $db->plimit($nbmax + 1);
|
||||||
print '<br>';
|
print '<br>';
|
||||||
@ -967,7 +967,7 @@ if ($resql) {
|
|||||||
$moreforfilter = '';
|
$moreforfilter = '';
|
||||||
|
|
||||||
$moreforfilter .= '<div class="divsearchfield">';
|
$moreforfilter .= '<div class="divsearchfield">';
|
||||||
$moreforfilter .= $langs->trans('DateOperationShort').' :';
|
$moreforfilter .= $langs->trans('DateOperationShort').' ';
|
||||||
$moreforfilter .= ($conf->browser->layout == 'phone' ? '<br>' : ' ');
|
$moreforfilter .= ($conf->browser->layout == 'phone' ? '<br>' : ' ');
|
||||||
$moreforfilter .= '<div class="nowrap inline-block">';
|
$moreforfilter .= '<div class="nowrap inline-block">';
|
||||||
$moreforfilter .= $form->selectDate($search_dt_start, 'search_start_dt', 0, 0, 1, "search_form", 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From')).'</div>';
|
$moreforfilter .= $form->selectDate($search_dt_start, 'search_start_dt', 0, 0, 1, "search_form", 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From')).'</div>';
|
||||||
@ -976,7 +976,7 @@ if ($resql) {
|
|||||||
$moreforfilter .= '</div>';
|
$moreforfilter .= '</div>';
|
||||||
|
|
||||||
$moreforfilter .= '<div class="divsearchfield">';
|
$moreforfilter .= '<div class="divsearchfield">';
|
||||||
$moreforfilter .= $langs->trans('DateValueShort').' : ';
|
$moreforfilter .= $langs->trans('DateValueShort').' ';
|
||||||
$moreforfilter .= ($conf->browser->layout == 'phone' ? '<br>' : ' ');
|
$moreforfilter .= ($conf->browser->layout == 'phone' ? '<br>' : ' ');
|
||||||
$moreforfilter .= '<div class="nowrap inline-block">';
|
$moreforfilter .= '<div class="nowrap inline-block">';
|
||||||
$moreforfilter .= $form->selectDate($search_dv_start, 'search_start_dv', 0, 0, 1, "search_form", 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From')).'</div>';
|
$moreforfilter .= $form->selectDate($search_dv_start, 'search_start_dv', 0, 0, 1, "search_form", 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From')).'</div>';
|
||||||
@ -1329,21 +1329,22 @@ if ($resql) {
|
|||||||
|
|
||||||
// Description
|
// Description
|
||||||
if (!empty($arrayfields['b.label']['checked'])) {
|
if (!empty($arrayfields['b.label']['checked'])) {
|
||||||
print "<td>";
|
$labeltoshow = '';
|
||||||
|
$titletoshow = '';
|
||||||
//print "<a href=\"line.php?rowid=".$objp->rowid."&account=".$objp->fk_account."\">";
|
|
||||||
$reg = array();
|
$reg = array();
|
||||||
preg_match('/\((.+)\)/i', $objp->label, $reg); // Si texte entoure de parenthee on tente recherche de traduction
|
preg_match('/\((.+)\)/i', $objp->label, $reg); // Si texte entoure de parenthee on tente recherche de traduction
|
||||||
if ($reg[1] && $langs->trans($reg[1]) != $reg[1]) {
|
if ($reg[1] && $langs->trans($reg[1]) != $reg[1]) {
|
||||||
print $langs->trans($reg[1]);
|
$labeltoshow = $langs->trans($reg[1]);
|
||||||
} else {
|
} else {
|
||||||
if ($objp->label == '(payment_salary)') {
|
if ($objp->label == '(payment_salary)') {
|
||||||
print dol_trunc($langs->trans("SalaryPayment", 40));
|
$labeltoshow = dol_trunc($langs->trans("SalaryPayment", 40));
|
||||||
} else {
|
} else {
|
||||||
print dol_trunc($objp->label, 40);
|
$labeltoshow = dol_escape_htmltag($objp->label);
|
||||||
|
$titletoshow = $objp->label;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//print "</a> ";
|
print '<td class="tdoverflowmax300"'.($titletoshow ? ' title="'.dol_escape_htmltag($titletoshow).'"' : '').'>';
|
||||||
|
print $labeltoshow; // Already escaped
|
||||||
|
|
||||||
// Add links after description
|
// Add links after description
|
||||||
$cachebankaccount = array();
|
$cachebankaccount = array();
|
||||||
@ -1498,7 +1499,7 @@ if ($resql) {
|
|||||||
|
|
||||||
// Num cheque
|
// Num cheque
|
||||||
if (!empty($arrayfields['b.num_chq']['checked'])) {
|
if (!empty($arrayfields['b.num_chq']['checked'])) {
|
||||||
print '<td class="nowrap" align="center">'.($objp->num_chq ? $objp->num_chq : "")."</td>\n";
|
print '<td class="nowrap" align="center">'.($objp->num_chq ? dol_escape_htmltag($objp->num_chq) : "")."</td>\n";
|
||||||
if (!$i) {
|
if (!$i) {
|
||||||
$totalarray['nbfield']++;
|
$totalarray['nbfield']++;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -385,7 +385,7 @@ if ($action == 'create') {
|
|||||||
|
|
||||||
print '<tr><td class="fieldrequired">'.$langs->trans("BankAccountCountry").'</td>';
|
print '<tr><td class="fieldrequired">'.$langs->trans("BankAccountCountry").'</td>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
print $form->select_country($selectedcode, 'account_country_id');
|
print img_picto('', 'country', 'class="pictofixedwidth"').$form->select_country($selectedcode, 'account_country_id');
|
||||||
if ($user->admin) {
|
if ($user->admin) {
|
||||||
print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1);
|
print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1);
|
||||||
}
|
}
|
||||||
@ -883,7 +883,7 @@ if ($action == 'create') {
|
|||||||
|
|
||||||
print '<tr><td class="fieldrequired">'.$langs->trans("Country").'</td>';
|
print '<tr><td class="fieldrequired">'.$langs->trans("Country").'</td>';
|
||||||
print '<td class="maxwidth200onsmartphone">';
|
print '<td class="maxwidth200onsmartphone">';
|
||||||
print $form->select_country($selectedcode, 'account_country_id');
|
print img_picto('', 'country', 'class="pictofixedwidth"').$form->select_country($selectedcode, 'account_country_id');
|
||||||
if ($user->admin) {
|
if ($user->admin) {
|
||||||
print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1);
|
print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -508,15 +508,20 @@ class Account extends CommonObject
|
|||||||
dol_syslog(__METHOD__.": using numeric operations is deprecated", LOG_WARNING);
|
dol_syslog(__METHOD__.": using numeric operations is deprecated", LOG_WARNING);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (empty($this->id) && !empty($this->rowid)) { // For backward compatibility
|
||||||
|
$this->id = $this->rowid;
|
||||||
|
}
|
||||||
|
|
||||||
// Clean parameters
|
// Clean parameters
|
||||||
$emetteur = trim($emetteur);
|
$emetteur = trim($emetteur);
|
||||||
$banque = trim($banque);
|
$banque = trim($banque);
|
||||||
|
$label = trim($label);
|
||||||
|
|
||||||
$now = dol_now();
|
$now = dol_now();
|
||||||
|
|
||||||
if (is_numeric($oper)) { // Clean operation to have a code instead of a rowid
|
if (is_numeric($oper)) { // Clean operation to have a code instead of a rowid
|
||||||
$sql = "SELECT code FROM ".MAIN_DB_PREFIX."c_paiement";
|
$sql = "SELECT code FROM ".MAIN_DB_PREFIX."c_paiement";
|
||||||
$sql .= " WHERE id=".$oper;
|
$sql .= " WHERE id = ".((int) $oper);
|
||||||
$sql .= " AND entity IN (".getEntity('c_paiement').")";
|
$sql .= " AND entity IN (".getEntity('c_paiement').")";
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
if ($resql) {
|
if ($resql) {
|
||||||
@ -533,8 +538,8 @@ class Account extends CommonObject
|
|||||||
$this->error = "oper not defined";
|
$this->error = "oper not defined";
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (!$this->rowid) {
|
if (!$this->id) {
|
||||||
$this->error = "this->rowid not defined";
|
$this->error = "this->id not defined";
|
||||||
return -2;
|
return -2;
|
||||||
}
|
}
|
||||||
if ($this->courant == Account::TYPE_CASH && $oper != 'LIQ') {
|
if ($this->courant == Account::TYPE_CASH && $oper != 'LIQ') {
|
||||||
@ -555,7 +560,7 @@ class Account extends CommonObject
|
|||||||
$accline->label = $label;
|
$accline->label = $label;
|
||||||
$accline->amount = $amount;
|
$accline->amount = $amount;
|
||||||
$accline->fk_user_author = $user->id;
|
$accline->fk_user_author = $user->id;
|
||||||
$accline->fk_account = $this->rowid;
|
$accline->fk_account = $this->id;
|
||||||
$accline->fk_type = $oper;
|
$accline->fk_type = $oper;
|
||||||
$accline->numero_compte = $accountancycode;
|
$accline->numero_compte = $accountancycode;
|
||||||
$accline->num_releve = $num_releve;
|
$accline->num_releve = $num_releve;
|
||||||
@ -574,10 +579,10 @@ class Account extends CommonObject
|
|||||||
|
|
||||||
if ($accline->insert() > 0) {
|
if ($accline->insert() > 0) {
|
||||||
if ($categorie > 0) {
|
if ($categorie > 0) {
|
||||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."bank_class (";
|
$sql = "INSERT INTO ".MAIN_DB_PREFIX."bank_class(";
|
||||||
$sql .= "lineid, fk_categ";
|
$sql .= "lineid, fk_categ";
|
||||||
$sql .= ") VALUES (";
|
$sql .= ") VALUES (";
|
||||||
$sql .= $accline->id.", ".$categorie;
|
$sql .= ((int) $accline->id).", '".$this->db->escape($categorie)."'";
|
||||||
$sql .= ")";
|
$sql .= ")";
|
||||||
|
|
||||||
$result = $this->db->query($sql);
|
$result = $this->db->query($sql);
|
||||||
@ -610,7 +615,7 @@ class Account extends CommonObject
|
|||||||
*/
|
*/
|
||||||
public function create(User $user, $notrigger = 0)
|
public function create(User $user, $notrigger = 0)
|
||||||
{
|
{
|
||||||
global $langs, $conf, $hookmanager;
|
global $langs, $conf;
|
||||||
|
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
@ -769,7 +774,7 @@ class Account extends CommonObject
|
|||||||
*/
|
*/
|
||||||
public function update(User $user, $notrigger = 0)
|
public function update(User $user, $notrigger = 0)
|
||||||
{
|
{
|
||||||
global $langs, $conf, $hookmanager;
|
global $langs, $conf;
|
||||||
|
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
@ -795,9 +800,9 @@ class Account extends CommonObject
|
|||||||
$sql .= " ref = '".$this->db->escape($this->ref)."'";
|
$sql .= " ref = '".$this->db->escape($this->ref)."'";
|
||||||
$sql .= ",label = '".$this->db->escape($this->label)."'";
|
$sql .= ",label = '".$this->db->escape($this->label)."'";
|
||||||
|
|
||||||
$sql .= ",courant = ".$this->courant;
|
$sql .= ",courant = ".((int) $this->courant);
|
||||||
$sql .= ",clos = ".$this->clos;
|
$sql .= ",clos = ".((int) $this->clos);
|
||||||
$sql .= ",rappro = ".$this->rappro;
|
$sql .= ",rappro = ".((int) $this->rappro);
|
||||||
$sql .= ",url = ".($this->url ? "'".$this->db->escape($this->url)."'" : "null");
|
$sql .= ",url = ".($this->url ? "'".$this->db->escape($this->url)."'" : "null");
|
||||||
$sql .= ",account_number = '".$this->db->escape($this->account_number)."'";
|
$sql .= ",account_number = '".$this->db->escape($this->account_number)."'";
|
||||||
$sql .= ",fk_accountancy_journal = ".($this->fk_accountancy_journal > 0 ? $this->db->escape($this->fk_accountancy_journal) : "null");
|
$sql .= ",fk_accountancy_journal = ".($this->fk_accountancy_journal > 0 ? $this->db->escape($this->fk_accountancy_journal) : "null");
|
||||||
@ -823,7 +828,7 @@ class Account extends CommonObject
|
|||||||
$sql .= ",ics = '".$this->db->escape($this->ics)."'";
|
$sql .= ",ics = '".$this->db->escape($this->ics)."'";
|
||||||
$sql .= ",ics_transfer = '".$this->db->escape($this->ics_transfer)."'";
|
$sql .= ",ics_transfer = '".$this->db->escape($this->ics_transfer)."'";
|
||||||
|
|
||||||
$sql .= " WHERE rowid = ".$this->id;
|
$sql .= " WHERE rowid = ".((int) $this->id);
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::update", LOG_DEBUG);
|
dol_syslog(get_class($this)."::update", LOG_DEBUG);
|
||||||
$result = $this->db->query($sql);
|
$result = $this->db->query($sql);
|
||||||
@ -1223,7 +1228,7 @@ class Account extends CommonObject
|
|||||||
$sql .= " AND (ba.rappro = 1 AND ba.courant != 2)"; // Compte rapprochable
|
$sql .= " AND (ba.rappro = 1 AND ba.courant != 2)"; // Compte rapprochable
|
||||||
$sql .= " AND clos = 0";
|
$sql .= " AND clos = 0";
|
||||||
if ($filteraccountid) {
|
if ($filteraccountid) {
|
||||||
$sql .= " AND ba.rowid = ".$filteraccountid;
|
$sql .= " AND ba.rowid = ".((int) $filteraccountid);
|
||||||
}
|
}
|
||||||
|
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
@ -1278,7 +1283,7 @@ class Account extends CommonObject
|
|||||||
$sql .= " AND (ba.rappro = 1 AND ba.courant != 2)"; // Compte rapprochable
|
$sql .= " AND (ba.rappro = 1 AND ba.courant != 2)"; // Compte rapprochable
|
||||||
$sql .= " AND clos = 0";
|
$sql .= " AND clos = 0";
|
||||||
if ($filteraccountid) {
|
if ($filteraccountid) {
|
||||||
$sql .= " AND ba.rowid = ".$filteraccountid;
|
$sql .= " AND ba.rowid = ".((int) $filteraccountid);
|
||||||
}
|
}
|
||||||
|
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
|
|||||||
@ -249,6 +249,10 @@ class BankAccounts extends DolibarrApi
|
|||||||
$typeto = 'LIQ';
|
$typeto = 'LIQ';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Clean data
|
||||||
|
$description = checkVal($description, 'alphanohtml');
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creating bank line records
|
* Creating bank line records
|
||||||
*/
|
*/
|
||||||
@ -295,7 +299,9 @@ class BankAccounts extends DolibarrApi
|
|||||||
return array(
|
return array(
|
||||||
'success' => array(
|
'success' => array(
|
||||||
'code' => 201,
|
'code' => 201,
|
||||||
'message' => 'Internal wire transfer created successfully.'
|
'message' => 'Internal wire transfer created successfully.',
|
||||||
|
'bank_id_from' => $bank_line_id_from,
|
||||||
|
'bank_id_to' => $bank_line_id_to,
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -268,7 +268,7 @@ $sql = "SELECT b.rowid,b.dateo as do,b.datev as dv, b.amount, b.label, b.rappro,
|
|||||||
$sql .= " b.num_releve, b.fk_user_author, b.num_chq, b.fk_type, b.fk_account, b.fk_bordereau as receiptid,";
|
$sql .= " b.num_releve, b.fk_user_author, b.num_chq, b.fk_type, b.fk_account, b.fk_bordereau as receiptid,";
|
||||||
$sql .= " b.emetteur,b.banque";
|
$sql .= " b.emetteur,b.banque";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."bank as b";
|
$sql .= " FROM ".MAIN_DB_PREFIX."bank as b";
|
||||||
$sql .= " WHERE rowid=".$rowid;
|
$sql .= " WHERE rowid=".((int) $rowid);
|
||||||
$sql .= " ORDER BY dateo ASC";
|
$sql .= " ORDER BY dateo ASC";
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if ($result) {
|
if ($result) {
|
||||||
|
|||||||
@ -95,8 +95,8 @@ if (!$sortorder) {
|
|||||||
|
|
||||||
// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
|
// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
|
||||||
$object = new Account($db);
|
$object = new Account($db);
|
||||||
$hookmanager->initHooks(array('bankaccountlist'));
|
|
||||||
$extrafields = new ExtraFields($db);
|
$extrafields = new ExtraFields($db);
|
||||||
|
$hookmanager->initHooks(array('bankaccountlist'));
|
||||||
|
|
||||||
// fetch optionals attributes and labels
|
// fetch optionals attributes and labels
|
||||||
$extrafields->fetch_name_optionals_label($object->table_element);
|
$extrafields->fetch_name_optionals_label($object->table_element);
|
||||||
@ -129,6 +129,8 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_array_fields.tpl.php';
|
|||||||
$object->fields = dol_sort_array($object->fields, 'position');
|
$object->fields = dol_sort_array($object->fields, 'position');
|
||||||
$arrayfields = dol_sort_array($arrayfields, 'position');
|
$arrayfields = dol_sort_array($arrayfields, 'position');
|
||||||
|
|
||||||
|
$permissiontoadd = $user->rights->banque->modifier;
|
||||||
|
$permissiontodelete = $user->rights->banque->supprimer;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
@ -162,7 +164,6 @@ if (empty($reshook)) {
|
|||||||
// Mass actions
|
// Mass actions
|
||||||
$objectclass = 'Account';
|
$objectclass = 'Account';
|
||||||
$objectlabel = 'FinancialAccount';
|
$objectlabel = 'FinancialAccount';
|
||||||
$permissiontoadd = $user->rights->banque->modifier;
|
|
||||||
$uploaddir = $conf->banque->dir_output;
|
$uploaddir = $conf->banque->dir_output;
|
||||||
include DOL_DOCUMENT_ROOT . '/core/actions_massactions.inc.php';
|
include DOL_DOCUMENT_ROOT . '/core/actions_massactions.inc.php';
|
||||||
}
|
}
|
||||||
@ -287,13 +288,17 @@ if ($optioncss != '') {
|
|||||||
}
|
}
|
||||||
// Add $param from extra fields
|
// Add $param from extra fields
|
||||||
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
|
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
|
||||||
|
// Add $param from hooks
|
||||||
|
$parameters = array();
|
||||||
|
$reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook
|
||||||
|
$param .= $hookmanager->resPrint;
|
||||||
|
|
||||||
// List of mass actions available
|
// List of mass actions available
|
||||||
$arrayofmassactions = array(
|
$arrayofmassactions = array(
|
||||||
// 'presend'=>img_picto('', 'email').$langs->trans("SendByMail"),
|
// 'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail"),
|
||||||
// 'builddoc'=>img_picto('', 'pdf').$langs->trans("PDFMerge"),
|
// 'builddoc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("PDFMerge"),
|
||||||
);
|
);
|
||||||
if ($user->rights->banque->supprimer) {
|
if ($permissiontodelete) {
|
||||||
$arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete");
|
$arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete");
|
||||||
}
|
}
|
||||||
if ($user->rights->banque->modifier) {
|
if ($user->rights->banque->modifier) {
|
||||||
@ -304,10 +309,7 @@ if (in_array($massaction, array('presend', 'predelete','preaffecttag'))) {
|
|||||||
}
|
}
|
||||||
$massactionbutton = $form->selectMassAction('', $arrayofmassactions);
|
$massactionbutton = $form->selectMassAction('', $arrayofmassactions);
|
||||||
|
|
||||||
$newcardbutton = dolGetButtonTitle($langs->trans('NewFinancialAccount'), '', 'fa fa-plus-circle', 'card.php?action=create', '', $user->rights->banque->configurer);
|
print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">'."\n";
|
||||||
|
|
||||||
// Lines of title fields
|
|
||||||
print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
|
|
||||||
if ($optioncss != '') {
|
if ($optioncss != '') {
|
||||||
print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
}
|
}
|
||||||
@ -316,9 +318,13 @@ print '<input type="hidden" name="formfilteraction" id="formfilteraction" value=
|
|||||||
print '<input type="hidden" name="action" value="list">';
|
print '<input type="hidden" name="action" value="list">';
|
||||||
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
||||||
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
||||||
|
print '<input type="hidden" name="contextpage" value="'.$contextpage.'">';
|
||||||
|
|
||||||
print '<input type="hidden" name="page" value="'.$page.'">';
|
print '<input type="hidden" name="page" value="'.$page.'">';
|
||||||
print '<input type="hidden" name="search_status" value="'.$search_status.'">';
|
print '<input type="hidden" name="search_status" value="'.$search_status.'">';
|
||||||
|
|
||||||
|
$newcardbutton = dolGetButtonTitle($langs->trans('NewFinancialAccount'), '', 'fa fa-plus-circle', 'card.php?action=create', '', $user->rights->banque->configurer);
|
||||||
|
|
||||||
print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'bank_account', 0, $newcardbutton, '', $limit, 1);
|
print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'bank_account', 0, $newcardbutton, '', $limit, 1);
|
||||||
|
|
||||||
$topicmail = "Information";
|
$topicmail = "Information";
|
||||||
@ -342,7 +348,7 @@ if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) {
|
|||||||
|
|
||||||
// Bank accounts
|
// Bank accounts
|
||||||
$parameters = array();
|
$parameters = array();
|
||||||
$reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters); // Note that $action and $object may have been modified by hook
|
$reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters, $object); // Note that $action and $object may have been modified by hook
|
||||||
if (empty($reshook)) {
|
if (empty($reshook)) {
|
||||||
$moreforfilter .= $hookmanager->resPrint;
|
$moreforfilter .= $hookmanager->resPrint;
|
||||||
} else {
|
} else {
|
||||||
@ -357,11 +363,14 @@ if (!empty($moreforfilter)) {
|
|||||||
|
|
||||||
$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage;
|
$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage;
|
||||||
$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields
|
$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields
|
||||||
|
$selectedfields .= (count($arrayofmassactions) ? $form->showCheckAddButtons('checkforselect', 1) : '');
|
||||||
|
|
||||||
print '<div class="div-table-responsive">';
|
print '<div class="div-table-responsive">'; // You can use div-table-responsive-no-min if you dont need reserved height for your table
|
||||||
print '<table class="tagtable liste'.($moreforfilter ? " listwithfilterbefore" : "").'">'."\n";
|
print '<table class="tagtable nobottomiftotal liste'.($moreforfilter ? " listwithfilterbefore" : "").'">'."\n";
|
||||||
|
|
||||||
print '<tr class="liste_titre_filter">';
|
// Fields title search
|
||||||
|
// --------------------------------------------------------------------
|
||||||
|
print '<tr class="liste_titre">';
|
||||||
|
|
||||||
// Ref
|
// Ref
|
||||||
if (!empty($arrayfields['b.ref']['checked'])) {
|
if (!empty($arrayfields['b.ref']['checked'])) {
|
||||||
@ -411,7 +420,7 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php';
|
|||||||
|
|
||||||
// Fields from hook
|
// Fields from hook
|
||||||
$parameters = array('arrayfields'=>$arrayfields);
|
$parameters = array('arrayfields'=>$arrayfields);
|
||||||
$reshook = $hookmanager->executeHooks('printFieldListOption', $parameters); // Note that $action and $object may have been modified by hook
|
$reshook = $hookmanager->executeHooks('printFieldListOption', $parameters, $object); // Note that $action and $object may have been modified by hook
|
||||||
print $hookmanager->resPrint;
|
print $hookmanager->resPrint;
|
||||||
// Date creation
|
// Date creation
|
||||||
if (!empty($arrayfields['b.datec']['checked'])) {
|
if (!empty($arrayfields['b.datec']['checked'])) {
|
||||||
@ -438,13 +447,14 @@ if (!empty($arrayfields['balance']['checked'])) {
|
|||||||
print '<td class="liste_titre"></td>';
|
print '<td class="liste_titre"></td>';
|
||||||
}
|
}
|
||||||
// Action column
|
// Action column
|
||||||
print '<td class="liste_titre valignmiddle">';
|
print '<td class="liste_titre maxwidthsearch">';
|
||||||
$searchpicto = $form->showFilterAndCheckAddButtons($massactionbutton ? 1 : 0, 'checkforselect', 1);
|
$searchpicto = $form->showFilterButtons();
|
||||||
print $searchpicto;
|
print $searchpicto;
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>'."\n";
|
||||||
|
|
||||||
// Fields title
|
// Fields title label
|
||||||
|
// --------------------------------------------------------------------
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
if (!empty($arrayfields['b.ref']['checked'])) {
|
if (!empty($arrayfields['b.ref']['checked'])) {
|
||||||
print_liste_field_titre($arrayfields['b.ref']['label'], $_SERVER["PHP_SELF"], 'b.ref', '', $param, '', $sortfield, $sortorder);
|
print_liste_field_titre($arrayfields['b.ref']['label'], $_SERVER["PHP_SELF"], 'b.ref', '', $param, '', $sortfield, $sortorder);
|
||||||
@ -672,7 +682,9 @@ foreach ($accounts as $key => $type) {
|
|||||||
// Balance
|
// Balance
|
||||||
if (!empty($arrayfields['balance']['checked'])) {
|
if (!empty($arrayfields['balance']['checked'])) {
|
||||||
print '<td class="nowraponall right">';
|
print '<td class="nowraponall right">';
|
||||||
print '<a href="'.DOL_URL_ROOT.'/compta/bank/bankentries_list.php?id='.$objecttmp->id.'">'.price($solde, 0, $langs, 1, -1, -1, $objecttmp->currency_code).'</a>';
|
print '<a href="'.DOL_URL_ROOT.'/compta/bank/bankentries_list.php?id='.$objecttmp->id.'">';
|
||||||
|
print '<span class="amount">'.price($solde, 0, $langs, 1, -1, -1, $objecttmp->currency_code).'</span>';
|
||||||
|
print '</a>';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
if (!$i) {
|
if (!$i) {
|
||||||
$totalarray['nbfield']++;
|
$totalarray['nbfield']++;
|
||||||
|
|||||||
@ -269,10 +269,12 @@ print '<td style="display:none" class="multicurrency">'.$langs->trans("AmountToO
|
|||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>';
|
print '<tr class="oddeven"><td>';
|
||||||
|
print img_picto('', 'bank_account', 'class="paddingright"');
|
||||||
$form->select_comptes($account_from, 'account_from', 0, '', 1, '', empty($conf->multicurrency->enabled) ? 0 : 1);
|
$form->select_comptes($account_from, 'account_from', 0, '', 1, '', empty($conf->multicurrency->enabled) ? 0 : 1);
|
||||||
print "</td>";
|
print "</td>";
|
||||||
|
|
||||||
print "<td>\n";
|
print "<td>\n";
|
||||||
|
print img_picto('', 'bank_account', 'class="paddingright"');
|
||||||
$form->select_comptes($account_to, 'account_to', 0, '', 1, '', empty($conf->multicurrency->enabled) ? 0 : 1);
|
$form->select_comptes($account_to, 'account_to', 0, '', 1, '', empty($conf->multicurrency->enabled) ? 0 : 1);
|
||||||
print "</td>\n";
|
print "</td>\n";
|
||||||
|
|
||||||
|
|||||||
@ -379,10 +379,10 @@ $param .= $hookmanager->resPrint;
|
|||||||
|
|
||||||
// List of mass actions available
|
// List of mass actions available
|
||||||
$arrayofmassactions = array(
|
$arrayofmassactions = array(
|
||||||
//'presend'=>$langs->trans("SendByMail"),
|
//'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail"),
|
||||||
//'builddoc'=>$langs->trans("PDFMerge"),
|
//'builddoc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("PDFMerge"),
|
||||||
);
|
);
|
||||||
//if ($user->rights->monmodule->delete) $arrayofmassactions['predelete']='<span class="fa fa-trash paddingrightonly"></span>'.$langs->trans("Delete");
|
//if ($user->rights->monmodule->delete) $arrayofmassactions['predelete'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete");
|
||||||
if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'predelete'))) {
|
if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'predelete'))) {
|
||||||
$arrayofmassactions = array();
|
$arrayofmassactions = array();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -41,6 +41,8 @@ require_once DOL_DOCUMENT_ROOT.'/compta/cashcontrol/class/cashcontrol.class.php'
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/compta/cashcontrol/class/cashcontrol.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/compta/cashcontrol/class/cashcontrol.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
||||||
|
|
||||||
|
|
||||||
$langs->loadLangs(array("bills", "banks"));
|
$langs->loadLangs(array("bills", "banks"));
|
||||||
|
|
||||||
@ -267,7 +269,7 @@ if ($resql) {
|
|||||||
// Debit
|
// Debit
|
||||||
print '<td class="right">';
|
print '<td class="right">';
|
||||||
if ($objp->amount < 0) {
|
if ($objp->amount < 0) {
|
||||||
print price($objp->amount * -1);
|
print '<span class="amount">'.price($objp->amount * -1).'</span>';
|
||||||
$totalarray['val']['totaldebfield'] += $objp->amount;
|
$totalarray['val']['totaldebfield'] += $objp->amount;
|
||||||
$amountpertype[$objp->code] += $objp->amount;
|
$amountpertype[$objp->code] += $objp->amount;
|
||||||
}
|
}
|
||||||
@ -282,7 +284,7 @@ if ($resql) {
|
|||||||
// Credit
|
// Credit
|
||||||
print '<td class="right">';
|
print '<td class="right">';
|
||||||
if ($objp->amount > 0) {
|
if ($objp->amount > 0) {
|
||||||
print price($objp->amount);
|
print '<span class="amount">'.price($objp->amount).'</span>';
|
||||||
$totalarray['val']['totalcredfield'] += $objp->amount;
|
$totalarray['val']['totalcredfield'] += $objp->amount;
|
||||||
$amountpertype[$objp->code] -= $objp->amount;
|
$amountpertype[$objp->code] -= $objp->amount;
|
||||||
}
|
}
|
||||||
@ -307,7 +309,7 @@ if ($resql) {
|
|||||||
//$cash = $amountpertype['LIQ'] + $cashcontrol->opening;
|
//$cash = $amountpertype['LIQ'] + $cashcontrol->opening;
|
||||||
$cash = price2num($cash + $cashcontrol->opening, 'MT');
|
$cash = price2num($cash + $cashcontrol->opening, 'MT');
|
||||||
|
|
||||||
print "<div style='text-align: right'><h2>";
|
print '<div style="text-align: right"><h2>';
|
||||||
print $langs->trans("Cash").": ".price($cash);
|
print $langs->trans("Cash").": ".price($cash);
|
||||||
if ($cashcontrol->status == $cashcontrol::STATUS_VALIDATED && $cash != $cashcontrol->cash) {
|
if ($cashcontrol->status == $cashcontrol::STATUS_VALIDATED && $cash != $cashcontrol->cash) {
|
||||||
print ' <> <span class="amountremaintopay">'.$langs->trans("Declared").': '.price($cashcontrol->cash).'</span>';
|
print ' <> <span class="amountremaintopay">'.$langs->trans("Declared").': '.price($cashcontrol->cash).'</span>';
|
||||||
@ -340,7 +342,7 @@ if ($resql) {
|
|||||||
$sql .= "SET";
|
$sql .= "SET";
|
||||||
$sql .= " cash='".$db->escape($cash)."'";
|
$sql .= " cash='".$db->escape($cash)."'";
|
||||||
$sql .= ", card='".$db->escape($bank)."'";
|
$sql .= ", card='".$db->escape($bank)."'";
|
||||||
$sql .= " where rowid=".$id;
|
$sql .= " where rowid = ".((int) $id);
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@ -127,7 +127,7 @@ if (dol_strlen($begin)) {
|
|||||||
$sql .= natural_search("s.nom", $begin);
|
$sql .= natural_search("s.nom", $begin);
|
||||||
}
|
}
|
||||||
if ($socid) {
|
if ($socid) {
|
||||||
$sql .= " AND s.rowid = ".$socid;
|
$sql .= " AND s.rowid = ".((int) $socid);
|
||||||
}
|
}
|
||||||
$sql .= " ORDER BY $sortfield $sortorder ";
|
$sql .= " ORDER BY $sortfield $sortorder ";
|
||||||
$sql .= $db->plimit($conf->liste_limit + 1, $offset);
|
$sql .= $db->plimit($conf->liste_limit + 1, $offset);
|
||||||
|
|||||||
@ -5512,12 +5512,6 @@ if ($action == 'create') {
|
|||||||
print showOnlinePaymentUrl('invoice', $object->ref).'<br>';
|
print showOnlinePaymentUrl('invoice', $object->ref).'<br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Show direct download link
|
|
||||||
if ($object->statut != Facture::STATUS_DRAFT && !empty($conf->global->INVOICE_ALLOW_EXTERNAL_DOWNLOAD)) {
|
|
||||||
print '<br><!-- Link to download main doc -->'."\n";
|
|
||||||
print showDirectDownloadLink($object).'<br>';
|
|
||||||
}
|
|
||||||
|
|
||||||
print '</div><div class="fichehalfright"><div class="ficheaddleft">';
|
print '</div><div class="fichehalfright"><div class="ficheaddleft">';
|
||||||
|
|
||||||
// List of actions on element
|
// List of actions on element
|
||||||
|
|||||||
@ -1604,7 +1604,7 @@ class Facture extends CommonInvoice
|
|||||||
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_incoterms as i ON f.fk_incoterms = i.rowid';
|
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_incoterms as i ON f.fk_incoterms = i.rowid';
|
||||||
|
|
||||||
if ($rowid) {
|
if ($rowid) {
|
||||||
$sql .= " WHERE f.rowid=".$rowid;
|
$sql .= " WHERE f.rowid=".((int) $rowid);
|
||||||
} else {
|
} else {
|
||||||
$sql .= ' WHERE f.entity IN ('.getEntity('invoice').')'; // Dont't use entity if you use rowid
|
$sql .= ' WHERE f.entity IN ('.getEntity('invoice').')'; // Dont't use entity if you use rowid
|
||||||
if ($ref) {
|
if ($ref) {
|
||||||
@ -4891,6 +4891,164 @@ class Facture extends CommonInvoice
|
|||||||
return -2;
|
return -2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Send reminders by emails for ivoices that are due
|
||||||
|
* CAN BE A CRON TASK
|
||||||
|
*
|
||||||
|
* @param int $nbdays Delay after due date (or before if delay is negative)
|
||||||
|
* @param string $paymentmode '' or 'all' by default (no filter), or 'LIQ', 'CHQ', CB', ...
|
||||||
|
* @param int|string $template Name (or id) of email template (Must be a template of type 'facture_send')
|
||||||
|
* @return int 0 if OK, <>0 if KO (this function is used also by cron so only 0 is OK)
|
||||||
|
*/
|
||||||
|
public function sendEmailsReminderOnDueDate($nbdays = 0, $paymentmode = 'all', $template = '')
|
||||||
|
{
|
||||||
|
global $conf, $langs, $user;
|
||||||
|
|
||||||
|
$error = 0;
|
||||||
|
$this->output = '';
|
||||||
|
$this->error = '';
|
||||||
|
$nbMailSend = 0;
|
||||||
|
$errorsMsg = array();
|
||||||
|
|
||||||
|
if (empty($conf->facture->enabled)) { // Should not happen. If module disabled, cron job should not be visible.
|
||||||
|
$langs->load("bills");
|
||||||
|
$this->output = $langs->trans('ModuleNotEnabled', $langs->transnoentitiesnoconv("Facture"));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
/*if (empty($conf->global->FACTURE_REMINDER_EMAIL)) {
|
||||||
|
$langs->load("bills");
|
||||||
|
$this->output = $langs->trans('EventRemindersByEmailNotEnabled', $langs->transnoentitiesnoconv("Facture"));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
|
||||||
|
$formmail = new FormMail($this->db);
|
||||||
|
|
||||||
|
$now = dol_now();
|
||||||
|
$tmpinvoice = new Facture($this->db);
|
||||||
|
|
||||||
|
dol_syslog(__METHOD__, LOG_DEBUG);
|
||||||
|
|
||||||
|
$this->db->begin();
|
||||||
|
|
||||||
|
//Select all action comm reminder
|
||||||
|
$sql = "SELECT rowid as id FROM ".MAIN_DB_PREFIX."facture as f";
|
||||||
|
if (!empty($paymentmode) && $paymentmode != 'all') {
|
||||||
|
$sql .= ", ".MAIN_DB_PREFIX."c_paiement as cp";
|
||||||
|
}
|
||||||
|
$sql .= " WHERE f.paye = 0";
|
||||||
|
$sql .= " AND f.date_lim_reglement = '".$this->db->idate(dol_get_first_hour(dol_time_plus_duree(dol_now(), -1 * $nbdays, 'd'), 'gmt'), 'gmt')."'";
|
||||||
|
$sql .= " AND f.entity IN (".getEntity('facture').")";
|
||||||
|
if (!empty($paymentmode) && $paymentmode != 'all') {
|
||||||
|
$sql .= " AND f.fk_mode_reglement = cp.id AND cp.code = '".$this->db->escape($paymentmode)."'";
|
||||||
|
}
|
||||||
|
// TODO Add filter to check there is no payment started
|
||||||
|
$sql .= $this->db->order("date_lim_reglement", "ASC");
|
||||||
|
$resql = $this->db->query($sql);
|
||||||
|
|
||||||
|
if ($resql) {
|
||||||
|
while ($obj = $this->db->fetch_object($resql)) {
|
||||||
|
if (!$error) {
|
||||||
|
// Load event
|
||||||
|
$res = $tmpinvoice->fetch($obj->id);
|
||||||
|
if ($res > 0) {
|
||||||
|
$tmpinvoice->fetch_thirdparty();
|
||||||
|
|
||||||
|
$outputlangs = new Translate('', $conf);
|
||||||
|
if ($tmpinvoice->thirdparty->default_lang) {
|
||||||
|
$outputlangs->setDefaultLang($tmpinvoice->thirdparty->default_lang);
|
||||||
|
} else {
|
||||||
|
$outputlangs = $langs;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Select email template
|
||||||
|
$arraymessage = $formmail->getEMailTemplate($this->db, 'facture_send', $user, $outputlangs, (is_numeric($template) ? $template : 0), 1, (is_numeric($template) ? '' : $template));
|
||||||
|
if (is_numeric($arraymessage) && $arraymessage <= 0) {
|
||||||
|
$langs->load("bills");
|
||||||
|
$this->output = $langs->trans('FailedToFindEmailTemplate', $template);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// PREPARE EMAIL
|
||||||
|
$errormesg = '';
|
||||||
|
|
||||||
|
// Make substitution in email content
|
||||||
|
$substitutionarray = getCommonSubstitutionArray($langs, 0, '', $this);
|
||||||
|
|
||||||
|
complete_substitutions_array($substitutionarray, $langs, $this);
|
||||||
|
|
||||||
|
// Content
|
||||||
|
$sendContent = make_substitutions($langs->trans($arraymessage->content), $substitutionarray);
|
||||||
|
|
||||||
|
//Topic
|
||||||
|
$sendTopic = (!empty($arraymessage->topic)) ? $arraymessage->topic : html_entity_decode($langs->trans('EventReminder'));
|
||||||
|
|
||||||
|
// Recipient
|
||||||
|
$res = $tmpinvoice->fetch_thirdparty();
|
||||||
|
$recipient = $tmpinvoice->thirdparty;
|
||||||
|
if ($res > 0) {
|
||||||
|
if (!empty($recipient->email)) {
|
||||||
|
$to = $recipient->email;
|
||||||
|
} else {
|
||||||
|
$errormesg = "Failed to send remind to thirdparty id=".$tmpinvoice->fk_soc.". No email defined for user.";
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$errormesg = "Failed to load recipient with thirdparty id=".$tmpinvoice->fk_soc;
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sender
|
||||||
|
$from = $conf->global->MAIN_MAIL_EMAIL_FROM;
|
||||||
|
if (empty($from)) {
|
||||||
|
$errormesg = "Failed to get sender into global setup MAIN_MAIL_EMAIL_FROM";
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$error) {
|
||||||
|
// Errors Recipient
|
||||||
|
$errors_to = $conf->global->MAIN_MAIL_ERRORS_TO;
|
||||||
|
|
||||||
|
$trackid = 'inv'.$tmpinvoice->id;
|
||||||
|
// Mail Creation
|
||||||
|
$cMailFile = new CMailFile($sendTopic, $to, $from, $sendContent, array(), array(), array(), '', "", 0, 1, $errors_to, '', $trackid, '', '', '');
|
||||||
|
|
||||||
|
// Sending Mail
|
||||||
|
if ($cMailFile->sendfile()) {
|
||||||
|
$nbMailSend++;
|
||||||
|
} else {
|
||||||
|
$errormesg = $cMailFile->error.' : '.$to;
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($errormesg) {
|
||||||
|
$errorsMsg[] = $errormesg;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$errorsMsg[] = 'Failed to fetch record invoice with ID = '.$obj->id;
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$error) {
|
||||||
|
$this->output = 'Nb of emails sent : '.$nbMailSend;
|
||||||
|
$this->db->commit();
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
$this->db->commit(); // We commit also on error, to have the error message recorded.
|
||||||
|
$this->error = 'Nb of emails sent : '.$nbMailSend.', '.(!empty($errorsMsg)) ? join(', ', $errorsMsg) : $error;
|
||||||
|
return $error;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -1284,10 +1284,6 @@ if ($resql) {
|
|||||||
print '<td class="liste_titre right">';
|
print '<td class="liste_titre right">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
if (!empty($arrayfields['f.date_closing']['checked'])) {
|
|
||||||
print '<td class="liste_titre">';
|
|
||||||
print '</td>';
|
|
||||||
}
|
|
||||||
if (!empty($arrayfields['total_pa']['checked'])) {
|
if (!empty($arrayfields['total_pa']['checked'])) {
|
||||||
print '<td class="liste_titre right">';
|
print '<td class="liste_titre right">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
@ -1322,6 +1318,11 @@ if ($resql) {
|
|||||||
print '<td class="liste_titre">';
|
print '<td class="liste_titre">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
|
// Date closing
|
||||||
|
if (!empty($arrayfields['f.date_closing']['checked'])) {
|
||||||
|
print '<td class="liste_titre">';
|
||||||
|
print '</td>';
|
||||||
|
}
|
||||||
if (!empty($arrayfields['f.note_public']['checked'])) {
|
if (!empty($arrayfields['f.note_public']['checked'])) {
|
||||||
// Note public
|
// Note public
|
||||||
print '<td class="liste_titre">';
|
print '<td class="liste_titre">';
|
||||||
@ -1335,7 +1336,7 @@ if ($resql) {
|
|||||||
// Status
|
// Status
|
||||||
if (!empty($arrayfields['f.fk_statut']['checked'])) {
|
if (!empty($arrayfields['f.fk_statut']['checked'])) {
|
||||||
print '<td class="liste_titre maxwidthonsmartphone right">';
|
print '<td class="liste_titre maxwidthonsmartphone right">';
|
||||||
$liststatus = array('0'=>$langs->trans("BillShortStatusDraft"), '1'=>$langs->trans("BillShortStatusNotPaid"), '2'=>$langs->trans("BillShortStatusPaid"), '1,2'=>$langs->trans("BillShortStatusNotPaid").'+'.$langs->trans("BillShortStatusPaid"), '3'=>$langs->trans("BillShortStatusCanceled"));
|
$liststatus = array('0'=>$langs->trans("BillShortStatusDraft"), '1'=>$langs->trans("BillShortStatusNotPaid"), '0,1'=>$langs->trans("BillShortStatusDraft").'+'.$langs->trans("BillShortStatusNotPaid"), '2'=>$langs->trans("BillShortStatusPaid"), '1,2'=>$langs->trans("BillShortStatusNotPaid").'+'.$langs->trans("BillShortStatusPaid"), '3'=>$langs->trans("BillShortStatusCanceled"));
|
||||||
print $form->selectarray('search_status', $liststatus, $search_status, 1, 0, 0, '', 0, 0, 0, '', '', 1);
|
print $form->selectarray('search_status', $liststatus, $search_status, 1, 0, 0, '', 0, 0, 0, '', '', 1);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -171,7 +171,7 @@ class RemiseCheque extends CommonObject
|
|||||||
$sql .= "'".$this->db->idate($now)."'";
|
$sql .= "'".$this->db->idate($now)."'";
|
||||||
$sql .= ", '".$this->db->idate($now)."'";
|
$sql .= ", '".$this->db->idate($now)."'";
|
||||||
$sql .= ", ".$user->id;
|
$sql .= ", ".$user->id;
|
||||||
$sql .= ", ".$account_id;
|
$sql .= ", ".((int) $account_id);
|
||||||
$sql .= ", 0";
|
$sql .= ", 0";
|
||||||
$sql .= ", 0";
|
$sql .= ", 0";
|
||||||
$sql .= ", 0";
|
$sql .= ", 0";
|
||||||
|
|||||||
@ -229,9 +229,9 @@ class BonPrelevement extends CommonObject
|
|||||||
$sql .= ", cle_rib";
|
$sql .= ", cle_rib";
|
||||||
$sql .= ") VALUES (";
|
$sql .= ") VALUES (";
|
||||||
$sql .= $this->id;
|
$sql .= $this->id;
|
||||||
$sql .= ", ".$client_id;
|
$sql .= ", ".((int) $client_id);
|
||||||
$sql .= ", '".$this->db->escape($client_nom)."'";
|
$sql .= ", '".$this->db->escape($client_nom)."'";
|
||||||
$sql .= ", '".price2num($amount)."'";
|
$sql .= ", ".((float) price2num($amount));
|
||||||
$sql .= ", '".$this->db->escape($code_banque)."'";
|
$sql .= ", '".$this->db->escape($code_banque)."'";
|
||||||
$sql .= ", '".$this->db->escape($code_guichet)."'";
|
$sql .= ", '".$this->db->escape($code_guichet)."'";
|
||||||
$sql .= ", '".$this->db->escape($number)."'";
|
$sql .= ", '".$this->db->escape($number)."'";
|
||||||
@ -290,7 +290,7 @@ class BonPrelevement extends CommonObject
|
|||||||
$sql .= " FROM ".MAIN_DB_PREFIX."prelevement_bons as p";
|
$sql .= " FROM ".MAIN_DB_PREFIX."prelevement_bons as p";
|
||||||
$sql .= " WHERE p.entity IN (".getEntity('invoice').")";
|
$sql .= " WHERE p.entity IN (".getEntity('invoice').")";
|
||||||
if ($rowid > 0) {
|
if ($rowid > 0) {
|
||||||
$sql .= " AND p.rowid = ".$rowid;
|
$sql .= " AND p.rowid = ".((int) $rowid);
|
||||||
} else {
|
} else {
|
||||||
$sql .= " AND p.ref = '".$this->db->escape($ref)."'";
|
$sql .= " AND p.ref = '".$this->db->escape($ref)."'";
|
||||||
}
|
}
|
||||||
@ -1597,7 +1597,7 @@ class BonPrelevement extends CommonObject
|
|||||||
|
|
||||||
$sql = "SELECT soc.rowid as socid, soc.code_client as code, soc.address, soc.zip, soc.town, c.code as country_code,";
|
$sql = "SELECT soc.rowid as socid, soc.code_client as code, soc.address, soc.zip, soc.town, c.code as country_code,";
|
||||||
$sql .= " pl.client_nom as nom, pl.code_banque as cb, pl.code_guichet as cg, pl.number as cc, pl.amount as somme,";
|
$sql .= " pl.client_nom as nom, pl.code_banque as cb, pl.code_guichet as cg, pl.number as cc, pl.amount as somme,";
|
||||||
$sql .= " f.ref as fac, pf.fk_facture_fourn as idfac,";
|
$sql .= " f.ref as fac, pf.fk_facture_fourn as idfac, f.ref_supplier as fac_ref_supplier,";
|
||||||
$sql .= " rib.rowid, rib.datec, rib.iban_prefix as iban, rib.bic as bic, rib.rowid as drum, rib.rum, rib.date_rum";
|
$sql .= " rib.rowid, rib.datec, rib.iban_prefix as iban, rib.bic as bic, rib.rowid as drum, rib.rum, rib.date_rum";
|
||||||
$sql .= " FROM";
|
$sql .= " FROM";
|
||||||
$sql .= " ".MAIN_DB_PREFIX."prelevement_lignes as pl,";
|
$sql .= " ".MAIN_DB_PREFIX."prelevement_lignes as pl,";
|
||||||
@ -1633,7 +1633,7 @@ class BonPrelevement extends CommonObject
|
|||||||
$cachearraytotestduplicate[$obj->idfac] = $obj->rowid;
|
$cachearraytotestduplicate[$obj->idfac] = $obj->rowid;
|
||||||
|
|
||||||
$daterum = (!empty($obj->date_rum)) ? $this->db->jdate($obj->date_rum) : $this->db->jdate($obj->datec);
|
$daterum = (!empty($obj->date_rum)) ? $this->db->jdate($obj->date_rum) : $this->db->jdate($obj->datec);
|
||||||
$fileCrediteurSection .= $this->EnregDestinataireSEPA($obj->code, $obj->nom, $obj->address, $obj->zip, $obj->town, $obj->country_code, $obj->cb, $obj->cg, $obj->cc, $obj->somme, $obj->fac, $obj->idfac, $obj->iban, $obj->bic, $daterum, $obj->drum, $obj->rum, $type);
|
$fileCrediteurSection .= $this->EnregDestinataireSEPA($obj->code, $obj->nom, $obj->address, $obj->zip, $obj->town, $obj->country_code, $obj->cb, $obj->cg, $obj->cc, $obj->somme, $obj->fac_ref_supplier, $obj->idfac, $obj->iban, $obj->bic, $daterum, $obj->drum, $obj->rum, $type);
|
||||||
$this->total = $this->total + $obj->somme;
|
$this->total = $this->total + $obj->somme;
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
@ -1897,7 +1897,7 @@ class BonPrelevement extends CommonObject
|
|||||||
$XML_DEBITOR .= ' <DrctDbtTxInf>'.$CrLf;
|
$XML_DEBITOR .= ' <DrctDbtTxInf>'.$CrLf;
|
||||||
$XML_DEBITOR .= ' <PmtId>'.$CrLf;
|
$XML_DEBITOR .= ' <PmtId>'.$CrLf;
|
||||||
// Add EndToEndId. Must be a unique ID for each payment (for example by including bank, buyer or seller, date, checksum)
|
// Add EndToEndId. Must be a unique ID for each payment (for example by including bank, buyer or seller, date, checksum)
|
||||||
$XML_DEBITOR .= ' <EndToEndId>'.(($conf->global->PRELEVEMENT_END_TO_END != "") ? $conf->global->PRELEVEMENT_END_TO_END : ('AS-'.dol_trunc($row_ref, 20)).'-'.$Rowing).'</EndToEndId>'.$CrLf; // ISO20022 states that EndToEndId has a MaxLength of 35 characters
|
$XML_DEBITOR .= ' <EndToEndId>'.(($conf->global->PRELEVEMENT_END_TO_END != "") ? $conf->global->PRELEVEMENT_END_TO_END : ('DD-'.dol_trunc($row_idfac.'-'.$row_ref, 20)).'-'.$Rowing).'</EndToEndId>'.$CrLf; // ISO20022 states that EndToEndId has a MaxLength of 35 characters
|
||||||
$XML_DEBITOR .= ' </PmtId>'.$CrLf;
|
$XML_DEBITOR .= ' </PmtId>'.$CrLf;
|
||||||
$XML_DEBITOR .= ' <InstdAmt Ccy="EUR">'.round($row_somme, 2).'</InstdAmt>'.$CrLf;
|
$XML_DEBITOR .= ' <InstdAmt Ccy="EUR">'.round($row_somme, 2).'</InstdAmt>'.$CrLf;
|
||||||
$XML_DEBITOR .= ' <DrctDbtTx>'.$CrLf;
|
$XML_DEBITOR .= ' <DrctDbtTx>'.$CrLf;
|
||||||
@ -1943,7 +1943,7 @@ class BonPrelevement extends CommonObject
|
|||||||
$XML_CREDITOR .= ' <CdtTrfTxInf>'.$CrLf;
|
$XML_CREDITOR .= ' <CdtTrfTxInf>'.$CrLf;
|
||||||
$XML_CREDITOR .= ' <PmtId>'.$CrLf;
|
$XML_CREDITOR .= ' <PmtId>'.$CrLf;
|
||||||
// Add EndToEndId. Must be a unique ID for each payment (for example by including bank, buyer or seller, date, checksum)
|
// Add EndToEndId. Must be a unique ID for each payment (for example by including bank, buyer or seller, date, checksum)
|
||||||
$XML_CREDITOR .= ' <EndToEndId>'.(($conf->global->PRELEVEMENT_END_TO_END != "") ? $conf->global->PRELEVEMENT_END_TO_END : ('AS-'.dol_trunc($row_ref, 20)).'-'.$Rowing).'</EndToEndId>'.$CrLf; // ISO20022 states that EndToEndId has a MaxLength of 35 characters
|
$XML_CREDITOR .= ' <EndToEndId>'.(($conf->global->PRELEVEMENT_END_TO_END != "") ? $conf->global->PRELEVEMENT_END_TO_END : ('CT-'.dol_trunc($row_idfac.'-'.$row_ref, 20)).'-'.$Rowing).'</EndToEndId>'.$CrLf; // ISO20022 states that EndToEndId has a MaxLength of 35 characters
|
||||||
$XML_CREDITOR .= ' </PmtId>'.$CrLf;
|
$XML_CREDITOR .= ' </PmtId>'.$CrLf;
|
||||||
$XML_CREDITOR .= ' <Amt>'.$CrLf;
|
$XML_CREDITOR .= ' <Amt>'.$CrLf;
|
||||||
$XML_CREDITOR .= ' <InstdAmt Ccy="EUR">'.round($row_somme, 2).'</InstdAmt>'.$CrLf;
|
$XML_CREDITOR .= ' <InstdAmt Ccy="EUR">'.round($row_somme, 2).'</InstdAmt>'.$CrLf;
|
||||||
|
|||||||
@ -79,7 +79,7 @@ class LignePrelevement
|
|||||||
$sql .= ", pl.statut, pl.fk_soc";
|
$sql .= ", pl.statut, pl.fk_soc";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."prelevement_lignes as pl";
|
$sql .= " FROM ".MAIN_DB_PREFIX."prelevement_lignes as pl";
|
||||||
$sql .= ", ".MAIN_DB_PREFIX."prelevement_bons as p";
|
$sql .= ", ".MAIN_DB_PREFIX."prelevement_bons as p";
|
||||||
$sql .= " WHERE pl.rowid=".$rowid;
|
$sql .= " WHERE pl.rowid=".((int) $rowid);
|
||||||
$sql .= " AND p.rowid = pl.fk_prelevement_bons";
|
$sql .= " AND p.rowid = pl.fk_prelevement_bons";
|
||||||
$sql .= " AND p.entity = ".$conf->entity;
|
$sql .= " AND p.entity = ".$conf->entity;
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user