Merge remote-tracking branch 'upstream/develop' into 14a15

This commit is contained in:
Alexandre SPANGARO 2021-03-03 14:08:40 +01:00
commit 59a2fb8ed5
517 changed files with 19252 additions and 14216 deletions

34
DCO Normal file
View File

@ -0,0 +1,34 @@
Developer Certificate of Origin
Version 1.1
Copyright (C) 2002 - Today, The Dolibarr team and its contributors.
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.

View File

@ -22,7 +22,9 @@
* \brief This script create a xml checksum file * \brief This script create a xml checksum file
*/ */
if (! defined('NOREQUIREDB')) define('NOREQUIREDB', '1'); // Do not create database handler $db if (! defined('NOREQUIREDB')) {
define('NOREQUIREDB', '1'); // Do not create database handler $db
}
$sapi_type = php_sapi_name(); $sapi_type = php_sapi_name();
$script_file = basename(__FILE__); $script_file = basename(__FILE__);
@ -50,15 +52,18 @@ if (empty($argv[1])) {
print "Example: ".$script_file." release=6.0.0 includecustom=1 includeconstant=FR:INVOICE_CAN_ALWAYS_BE_REMOVED:0 includeconstant=all:MAILING_NO_USING_PHPMAIL:1\n"; print "Example: ".$script_file." release=6.0.0 includecustom=1 includeconstant=FR:INVOICE_CAN_ALWAYS_BE_REMOVED:0 includeconstant=all:MAILING_NO_USING_PHPMAIL:1\n";
exit -1; exit -1;
} }
parse_str($argv[1]); parse_str($argv[1]);
$i=0; $i=0;
while ($i < $argc) { while ($i < $argc) {
if (! empty($argv[$i])) parse_str($argv[$i]); if (! empty($argv[$i])) {
parse_str($argv[$i]);
}
if (preg_match('/includeconstant=/', $argv[$i])) { if (preg_match('/includeconstant=/', $argv[$i])) {
$tmp=explode(':', $includeconstant, 3); $tmp=explode(':', $includeconstant, 3); // $includeconstant has been set with previous parse_str()
if (count($tmp) != 3) { if (count($tmp) != 3) {
print "Error: Bad parameter includeconstant ".$includeconstant."\n"; print "Error: Bad parameter includeconstant=".$includeconstant."\n";
exit -1; exit -1;
} }
$includeconstants[$tmp[0]][$tmp[1]] = $tmp[2]; $includeconstants[$tmp[0]][$tmp[1]] = $tmp[2];
@ -78,7 +83,9 @@ $savrelease = $release;
$tmpver=explode('-', $release, 2); $tmpver=explode('-', $release, 2);
if ($tmpver[0] == 'auto' || $tmpver[0] == 'autostable') { if ($tmpver[0] == 'auto' || $tmpver[0] == 'autostable') {
$release=DOL_VERSION; $release=DOL_VERSION;
if ($tmpver[1] && $tmpver[0] == 'auto') $release.='-'.$tmpver[1]; if ($tmpver[1] && $tmpver[0] == 'auto') {
$release.='-'.$tmpver[1];
}
} }
if (empty($includecustom)) { if (empty($includecustom)) {
@ -151,7 +158,7 @@ $iterator1 = new RecursiveIteratorIterator($dir_iterator1);
$files = new RegexIterator($iterator1, '#^(?:[A-Z]:)?(?:/(?!(?:'.($includecustom?'':'custom\/|').'documents\/|conf\/|install\/))[^/]+)+/[^/]+\.(?:php|css|html|js|json|tpl|jpg|png|gif|sql|lang)$#i'); $files = new RegexIterator($iterator1, '#^(?:[A-Z]:)?(?:/(?!(?:'.($includecustom?'':'custom\/|').'documents\/|conf\/|install\/))[^/]+)+/[^/]+\.(?:php|css|html|js|json|tpl|jpg|png|gif|sql|lang)$#i');
*/ */
$regextoinclude='\.(php|php3|php4|php5|phtml|phps|phar|inc|css|scss|html|xml|js|json|tpl|jpg|jpeg|png|gif|ico|sql|lang|txt|yml|md|mp3|mp4|wav|mkv|z|gz|zip|rar|tar|less|svg|eot|woff|woff2|ttf|manifest)$'; $regextoinclude='\.(php|php3|php4|php5|phtml|phps|phar|inc|css|scss|html|xml|js|json|tpl|jpg|jpeg|png|gif|ico|sql|lang|txt|yml|md|mp3|mp4|wav|mkv|z|gz|zip|rar|tar|less|svg|eot|woff|woff2|ttf|manifest)$';
$regextoexclude='('.($includecustom?'':'custom|').'documents|conf|install|public\/test|sabre\/sabre\/.*\/tests|Shared\/PCLZip|nusoap\/lib\/Mail|php\/example|php\/test|geoip\/sample.*\.php|ckeditor\/samples|ckeditor\/adapters)$'; // Exclude dirs $regextoexclude='('.($includecustom?'':'custom|').'documents|conf|install|dejavu-fonts-ttf-.*|public\/test|sabre\/sabre\/.*\/tests|Shared\/PCLZip|nusoap\/lib\/Mail|php\/example|php\/test|geoip\/sample.*\.php|ckeditor\/samples|ckeditor\/adapters)$'; // Exclude dirs
$files = dol_dir_list(DOL_DOCUMENT_ROOT, 'files', 1, $regextoinclude, $regextoexclude, 'fullname'); $files = dol_dir_list(DOL_DOCUMENT_ROOT, 'files', 1, $regextoinclude, $regextoexclude, 'fullname');
$dir=''; $dir='';
@ -205,8 +212,9 @@ foreach ($files as $filetmp) {
$newdir = str_replace(DOL_DOCUMENT_ROOT, '', dirname($file)); $newdir = str_replace(DOL_DOCUMENT_ROOT, '', dirname($file));
$newdir = str_replace(dirname(__FILE__).'/../scripts', '', dirname($file)); $newdir = str_replace(dirname(__FILE__).'/../scripts', '', dirname($file));
if ($newdir!=$dir) { if ($newdir!=$dir) {
if ($needtoclose) if ($needtoclose) {
fputs($fp, ' </dir>'."\n"); fputs($fp, ' </dir>'."\n");
}
fputs($fp, ' <dir name="'.$newdir.'" >'."\n"); fputs($fp, ' <dir name="'.$newdir.'" >'."\n");
$dir = $newdir; $dir = $newdir;
$needtoclose=1; $needtoclose=1;

View File

@ -390,6 +390,9 @@ if ($nboftargetok) {
$olddir=getcwd(); $olddir=getcwd();
chdir("$SOURCE"); chdir("$SOURCE");
print "Clean $SOURCE/htdocs\n";
$ret=`rm -f $SOURCE/htdocs/includes/autoload.php`;
$ret=`git ls-files . --exclude-standard --others`; $ret=`git ls-files . --exclude-standard --others`;
if ($ret) if ($ret)
{ {
@ -613,7 +616,6 @@ if ($nboftargetok) {
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nnnick/chartjs/test`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nnnick/chartjs/test`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nusoap/lib/Mail`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nusoap/lib/Mail`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nusoap/samples`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nusoap/samples`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/parsedown/LICENSE.txt`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/php-iban/docs`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/php-iban/docs`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/sabre/sabre/*/tests`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/sabre/sabre/*/tests`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/stripe/tests`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/stripe/tests`;
@ -623,7 +625,6 @@ if ($nboftargetok) {
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/fonts/freefont-*`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/fonts/freefont-*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/fonts/ae_fonts_*`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/fonts/ae_fonts_*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/fonts/utils`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/fonts/utils`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/LICENSE.TXT`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/tools`; $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/tools`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/vendor`; $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/vendor`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/webmozart`; $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/webmozart`;

View File

@ -131,13 +131,16 @@ $fields = implode(',', $fieldArray);
//var_dump($fieldArray);die(); //var_dump($fieldArray);die();
$maxLength = 0; $maxLength = 0;
for ($i = 1; $i <= $record_numbers; $i++) { for ($i = 1; $i <= $record_numbers; $i++) {
if ($startlinenb && $i < $startlinenb) if ($startlinenb && $i < $startlinenb) {
continue; continue;
if ($endlinenb && $i > $endlinenb) }
if ($endlinenb && $i > $endlinenb) {
continue; continue;
}
$row = dbase_get_record_with_names($fhandle, $i); $row = dbase_get_record_with_names($fhandle, $i);
if ($row === false || (isset($row["deleted"]) && $row["deleted"] == '1')) if ($row === false || (isset($row["deleted"]) && $row["deleted"] == '1')) {
continue; continue;
}
$sqlInsert = "INSERT INTO `$table_name`($fields) VALUES (null,"; $sqlInsert = "INSERT INTO `$table_name`($fields) VALUES (null,";
array_shift($row); // remove delete column array_shift($row); // remove delete column
foreach ($row as $value) { foreach ($row as $value) {

View File

@ -88,25 +88,29 @@ if (!$ret > 0) {
$sql = "SELECT * FROM `$table` WHERE 1"; $sql = "SELECT * FROM `$table` WHERE 1";
$resql = $db->query($sql); $resql = $db->query($sql);
if ($resql) if ($resql) {
while ($fields = $db->fetch_array($resql)) { while ($fields = $db->fetch_array($resql)) {
$errorrecord = 0; $errorrecord = 0;
if ($fields === false) if ($fields === false) {
continue; continue;
}
$nboflines++; $nboflines++;
$produit = new Product($db); $produit = new Product($db);
$produit->type = 0; $produit->type = 0;
$produit->status = 1; $produit->status = 1;
$produit->ref = trim($fields['REF']); $produit->ref = trim($fields['REF']);
if ($produit->ref == '') if ($produit->ref == '') {
continue; continue;
}
print "Process line nb " . $j . ", ref " . $produit->ref; print "Process line nb " . $j . ", ref " . $produit->ref;
$produit->label = trim($fields['LIBELLE']); $produit->label = trim($fields['LIBELLE']);
if ($produit->label == '') if ($produit->label == '') {
$produit->label = $produit->ref; $produit->label = $produit->ref;
if (empty($produit->label)) }
if (empty($produit->label)) {
continue; continue;
}
//$produit->description = trim($fields[4] . "\n" . ($fields[5] ? $fields[5] . ' x ' . $fields[6] . ' x ' . $fields[7] : '')); //$produit->description = trim($fields[4] . "\n" . ($fields[5] ? $fields[5] . ' x ' . $fields[6] . ' x ' . $fields[7] : ''));
// $produit->volume = price2num($fields[8]); // $produit->volume = price2num($fields[8]);
// $produit->volume_unit = 0; // $produit->volume_unit = 0;
@ -166,8 +170,9 @@ while ($fields = $db->fetch_array($resql)) {
//$ret1 = $produit->updatePrice($produit->price_ttc, $produit->price_base_type, $user, $produit->tva_tx, $produit->price_min, 1, $produit->tva_npr, 0, 0, array()); //$ret1 = $produit->updatePrice($produit->price_ttc, $produit->price_base_type, $user, $produit->tva_tx, $produit->price_min, 1, $produit->tva_npr, 0, 0, array());
$ret1 = false; $ret1 = false;
for ($i = 0; $i < 10; $i++) { for ($i = 0; $i < 10; $i++) {
if ($fields['TARIF' . ($i)] == 0) if ($fields['TARIF' . ($i)] == 0) {
continue; continue;
}
$ret1 = $ret1 || $produit->updatePrice(price2num($fields['TARIF' . ($i)]), 'HT', $user, $produit->tva_tx, $produit->price_min, $i + 1, $produit->tva_npr, 0, 0, array()) < 0; $ret1 = $ret1 || $produit->updatePrice(price2num($fields['TARIF' . ($i)]), 'HT', $user, $produit->tva_tx, $produit->price_min, $i + 1, $produit->tva_npr, 0, 0, array()) < 0;
} }
if ($ret1) { if ($ret1) {
@ -227,7 +232,10 @@ while ($fields = $db->fetch_array($resql)) {
$error++; // $errorrecord will be reset $error++; // $errorrecord will be reset
} }
$j++; $j++;
} else die("error : $sql"); }
} else {
die("error : $sql");
}

View File

@ -144,15 +144,17 @@ if (!$ret > 0) {
$sql = "SELECT * FROM `$table` WHERE 1 "; //ORDER BY REMISE DESC,`LCIVIL` DESC"; $sql = "SELECT * FROM `$table` WHERE 1 "; //ORDER BY REMISE DESC,`LCIVIL` DESC";
$resql = $db->query($sql); $resql = $db->query($sql);
//$db->begin(); //$db->begin();
if ($resql) if ($resql) {
while ($fields = $db->fetch_array($resql)) { while ($fields = $db->fetch_array($resql)) {
$i++; $i++;
$errorrecord = 0; $errorrecord = 0;
if ($startlinenb && $i < $startlinenb) if ($startlinenb && $i < $startlinenb) {
continue; continue;
if ($endlinenb && $i > $endlinenb) }
if ($endlinenb && $i > $endlinenb) {
continue; continue;
}
$nboflines++; $nboflines++;
@ -170,16 +172,20 @@ while ($fields = $db->fetch_array($resql)) {
$object->address = trim($fields['FADR1']); $object->address = trim($fields['FADR1']);
if ($fields['FADR2']) if ($fields['FADR2']) {
$object->address .= "\n" . trim($fields['FADR2']); $object->address .= "\n" . trim($fields['FADR2']);
if ($fields['FADR3']) }
if ($fields['FADR3']) {
$object->address .= "\n" . trim($fields['FADR3']); $object->address .= "\n" . trim($fields['FADR3']);
}
$object->zip = trim($fields['FPOSTE']); $object->zip = trim($fields['FPOSTE']);
$object->town = trim($fields['FVILLE']); $object->town = trim($fields['FVILLE']);
if ($fields['FPAYS']) if ($fields['FPAYS']) {
$object->country_id = dol_getIdFromCode($db, trim(ucwords(strtolower($fields['FPAYS']))), 'c_country', 'label', 'rowid'); $object->country_id = dol_getIdFromCode($db, trim(ucwords(strtolower($fields['FPAYS']))), 'c_country', 'label', 'rowid');
else $object->country_id = 1; } else {
$object->country_id = 1;
}
$object->phone = trim($fields['FTEL']) ? trim($fields['FTEL']) : trim($fields['FCONTACT']); $object->phone = trim($fields['FTEL']) ? trim($fields['FTEL']) : trim($fields['FCONTACT']);
$object->phone = substr($object->phone, 0, 20); $object->phone = substr($object->phone, 0, 20);
$object->fax = trim($fields['FFAX']) ? trim($fields['FFAX']) : trim($fields['FCONTACT']); $object->fax = trim($fields['FFAX']) ? trim($fields['FFAX']) : trim($fields['FCONTACT']);
@ -289,16 +295,20 @@ while ($fields = $db->fetch_array($resql)) {
$contact->lastname = $fields['LCIVIL'] . " " . $fields['LNOM']; $contact->lastname = $fields['LCIVIL'] . " " . $fields['LNOM'];
} }
$contact->address = trim($fields['LADR1']); $contact->address = trim($fields['LADR1']);
if ($fields['LADR2']) if ($fields['LADR2']) {
$contact->address .= "\n" . trim($fields['LADR2']); $contact->address .= "\n" . trim($fields['LADR2']);
if ($fields['LADR3']) }
if ($fields['LADR3']) {
$contact->address .= "\n" . trim($fields['LADR3']); $contact->address .= "\n" . trim($fields['LADR3']);
}
$contact->zip = trim($fields['LPOSTE']); $contact->zip = trim($fields['LPOSTE']);
$contact->town = trim($fields['LVILLE']); $contact->town = trim($fields['LVILLE']);
if ($fields['FPAYS']) if ($fields['FPAYS']) {
$contact->country_id = dol_getIdFromCode($db, trim(ucwords(strtolower($fields['LPAYS']))), 'c_country', 'label', 'rowid'); $contact->country_id = dol_getIdFromCode($db, trim(ucwords(strtolower($fields['LPAYS']))), 'c_country', 'label', 'rowid');
else $contact->country_id = 1; } else {
$contact->country_id = 1;
}
$contact->email = $fields['LMAIL']; $contact->email = $fields['LMAIL'];
$contact->phone = trim($fields['LTEL']) ? trim($fields['LTEL']) : trim($fields['LCONTACT']); $contact->phone = trim($fields['LTEL']) ? trim($fields['LTEL']) : trim($fields['LCONTACT']);
$contact->fax = trim($fields['LFAX']) ? trim($fields['LFAX']) : trim($fields['LCONTACT']); $contact->fax = trim($fields['LFAX']) ? trim($fields['LFAX']) : trim($fields['LCONTACT']);
@ -338,7 +348,10 @@ while ($fields = $db->fetch_array($resql)) {
$error++; // $errorrecord will be reset $error++; // $errorrecord will be reset
} }
$j++; $j++;
} else die("error : $sql"); }
} else {
die("error : $sql");
}
$db->commit(); $db->commit();

View File

@ -25,27 +25,42 @@ class DBase
private $recordLength = 0; private $recordLength = 0;
private $recordCount = 0; private $recordCount = 0;
//resource dbase_open ( string $filename , int $mode ) /**
* resource dbase_open
* @param string $filename filename
* @param int $mode mode
* @return DBase
*/
public static function open($filename, $mode) public static function open($filename, $mode)
{ {
if (!file_exists($filename)) if (!file_exists($filename)) {
return false; return false;
}
$modes = array('r', 'w', 'r+'); $modes = array('r', 'w', 'r+');
$mode = $modes[$mode]; $mode = $modes[$mode];
$fd = fopen($filename, $mode); $fd = fopen($filename, $mode);
if (!$fd) if (!$fd) {
return false; return false;
}
return new DBase($fd); return new DBase($fd);
} }
//resource dbase_create ( string $filename , array $fields [, int $type = DBASE_TYPE_DBASE ] ) /**
* resource dbase_create
* @param string $filename filename
* @param array $fields fields
* @param int $type DBASE_TYPE_DBASE
* @return DBase
*/
public static function create($filename, $fields, $type = DBASE_TYPE_DBASE) public static function create($filename, $fields, $type = DBASE_TYPE_DBASE)
{ {
if (file_exists($filename)) if (file_exists($filename)) {
return false; return false;
}
$fd = fopen($filename, 'c+'); $fd = fopen($filename, 'c+');
if (!$fd) if (!$fd) {
return false; return false;
}
// Byte 0 (1 byte): Valid dBASE for DOS file; bits 0-2 indicate version number, bit 3 // Byte 0 (1 byte): Valid dBASE for DOS file; bits 0-2 indicate version number, bit 3
// indicates the presence of a dBASE for DOS memo file, bits 4-6 indicate the // indicates the presence of a dBASE for DOS memo file, bits 4-6 indicate the
// presence of a SQL table, bit 7 indicates the presence of any memo file // presence of a SQL table, bit 7 indicates the presence of any memo file
@ -62,8 +77,9 @@ class DBase
// Byte 10-11 (16-bit number): Number of bytes in record. // Byte 10-11 (16-bit number): Number of bytes in record.
// Make sure the include the byte for deleted flag // Make sure the include the byte for deleted flag
$len = 1; $len = 1;
foreach ($fields as &$field) foreach ($fields as &$field) {
$len += self::length($field); $len += self::length($field);
}
self::putInt16($fd, $len); self::putInt16($fd, $len);
// Byte 12-13 (2 bytes): Reserved, 0 filled. // Byte 12-13 (2 bytes): Reserved, 0 filled.
self::putInt16($fd, 0); self::putInt16($fd, 0);
@ -102,7 +118,11 @@ class DBase
return new DBase($fd); return new DBase($fd);
} }
// Create DBase instance /**
* Create DBase instance
* @param mixed $fd file descriptor
* @return void
*/
private function __construct($fd) private function __construct($fd)
{ {
$this->fd = $fd; $this->fd = $fd;
@ -126,75 +146,120 @@ class DBase
} }
} }
//bool dbase_close ( resource $dbase_identifier ) /**
* dbase_close
* @return void
*/
public function close() public function close()
{ {
fclose($this->fd); fclose($this->fd);
} }
//array dbase_get_header_info ( resource $dbase_identifier ) // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
/**
* dbase_get_header_info
* @return array
*/
public function get_header_info() public function get_header_info()
{ {
// phpcs:disable
return $this->fields; return $this->fields;
} }
//int dbase_numfields ( resource $dbase_identifier ) /**
* dbase_numfields
* @return int
*/
public function numfields() public function numfields()
{ {
return $this->fieldCount; return $this->fieldCount;
} }
//int dbase_numrecords ( resource $dbase_identifier ) /**
* dbase_numrecords
* @return int
*/
public function numrecords() public function numrecords()
{ {
return $this->recordCount; return $this->recordCount;
} }
//bool dbase_add_record ( resource $dbase_identifier , array $record ) // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
/**
* dbase_add_record
* @param array $record record
* @return bool
*/
public function add_record($record) public function add_record($record)
{ {
if (count($record) != $this->fieldCount) // phpcs:enable
if (count($record) != $this->fieldCount) {
return false; return false;
}
// Seek to end of file, minus the end of file marker // Seek to end of file, minus the end of file marker
fseek($this->fd, 0, SEEK_END); fseek($this->fd, 0, SEEK_END);
// Put the deleted flag // Put the deleted flag
self::putChar8($this->fd, 0x20); self::putChar8($this->fd, 0x20);
// Put the record // Put the record
if (!$this->putRecord($record)) if (!$this->putRecord($record)) {
return false; return false;
}
// Update the record count // Update the record count
fseek($this->fd, 4); fseek($this->fd, 4);
self::putInt32($this->fd, ++$this->recordCount); self::putInt32($this->fd, ++$this->recordCount);
return true; return true;
} }
//bool dbase_replace_record ( resource $dbase_identifier , array $record , int $record_number ) // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
/**
* dbase_replace_record
* @param array $record record
* @param int $record_number record number
* @return bool
*/
public function replace_record($record, $record_number) public function replace_record($record, $record_number)
{ {
if (count($record) != $this->fieldCount) // phpcs:enable
if (count($record) != $this->fieldCount) {
return false; return false;
if ($record_number < 1 || $record_number > $this->recordCount) }
if ($record_number < 1 || $record_number > $this->recordCount) {
return false; return false;
}
// Skip to the record location, plus the 1 byte for the deleted flag // Skip to the record location, plus the 1 byte for the deleted flag
fseek($this->fd, $this->headerLength + ($this->recordLength * ($record_number - 1)) + 1); fseek($this->fd, $this->headerLength + ($this->recordLength * ($record_number - 1)) + 1);
return $this->putRecord($record); return $this->putRecord($record);
} }
//bool dbase_delete_record ( resource $dbase_identifier , int $record_number ) // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
/**
* dbase_delete_record
* @param int $record_number record number
* @return bool
*/
public function delete_record($record_number) public function delete_record($record_number)
{ {
if ($record_number < 1 || $record_number > $this->recordCount) // phpcs:enable
if ($record_number < 1 || $record_number > $this->recordCount) {
return false; return false;
}
fseek($this->fd, $this->headerLength + ($this->recordLength * ($record_number - 1))); fseek($this->fd, $this->headerLength + ($this->recordLength * ($record_number - 1)));
self::putChar8($this->fd, 0x2A); self::putChar8($this->fd, 0x2A);
return true; return true;
} }
//array dbase_get_record ( resource $dbase_identifier , int $record_number ) // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
/**
* dbase_get_record
* @param int $record_number record number
* @return array
*/
public function get_record($record_number) public function get_record($record_number)
{ {
if ($record_number < 1 || $record_number > $this->recordCount) // phpcs:enable
if ($record_number < 1 || $record_number > $this->recordCount) {
return false; return false;
}
fseek($this->fd, $this->headerLength + ($this->recordLength * ($record_number - 1))); fseek($this->fd, $this->headerLength + ($this->recordLength * ($record_number - 1)));
$record = array( $record = array(
'deleted' => self::getChar8($this->fd) == 0x2A ? 1 : 0 'deleted' => self::getChar8($this->fd) == 0x2A ? 1 : 0
@ -203,22 +268,31 @@ class DBase
$value = trim(fread($this->fd, $field['length'])); $value = trim(fread($this->fd, $field['length']));
if ($field['type'] == 'L') { if ($field['type'] == 'L') {
$value = strtolower($value); $value = strtolower($value);
if ($value == 't' || $value == 'y') if ($value == 't' || $value == 'y') {
$value = true; $value = true;
elseif ($value == 'f' || $value == 'n') } elseif ($value == 'f' || $value == 'n') {
$value = false; $value = false;
else $value = null; } else {
$value = null;
}
} }
$record[$i] = $value; $record[$i] = $value;
} }
return $record; return $record;
} }
//array dbase_get_record_with_names ( resource $dbase_identifier , int $record_number ) // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
/**
* dbase_get_record_with_names
* @param int $record_number record number
* @return array
*/
public function get_record_with_names($record_number) public function get_record_with_names($record_number)
{ {
if ($record_number < 1 || $record_number > $this->recordCount) // phpcs:enable
if ($record_number < 1 || $record_number > $this->recordCount) {
return false; return false;
}
$record = $this->get_record($record_number); $record = $this->get_record($record_number);
foreach ($this->fields as $i => &$field) { foreach ($this->fields as $i => &$field) {
$record[$field['name']] = $record[$i]; $record[$field['name']] = $record[$i];
@ -227,7 +301,10 @@ class DBase
return $record; return $record;
} }
//bool dbase_pack ( resource $dbase_identifier ) /**
* dbase_pack
* @return void
*/
public function pack() public function pack()
{ {
$in_offset = $out_offset = $this->headerLength; $in_offset = $out_offset = $this->headerLength;
@ -256,6 +333,10 @@ class DBase
* A few utilitiy functions * A few utilitiy functions
*/ */
/**
* @param string $field field
* @return int
*/
private static function length($field) private static function length($field)
{ {
switch ($field[1]) { switch ($field[1]) {
@ -278,49 +359,100 @@ class DBase
* Functions for reading and writing bytes * Functions for reading and writing bytes
*/ */
/**
* getChar8
* @param mixed $fd file descriptor
* @return int
*/
private static function getChar8($fd) private static function getChar8($fd)
{ {
return ord(fread($fd, 1)); return ord(fread($fd, 1));
} }
/**
* putChar8
* @param mixed $fd file descriptor
* @param mixed $value value
* @return bool
*/
private static function putChar8($fd, $value) private static function putChar8($fd, $value)
{ {
return fwrite($fd, chr($value)); return fwrite($fd, chr($value));
} }
/**
* getInt16
* @param mixed $fd file descriptor
* @param int $n n
* @return bool
*/
private static function getInt16($fd, $n = 1) private static function getInt16($fd, $n = 1)
{ {
$data = fread($fd, 2 * $n); $data = fread($fd, 2 * $n);
$i = unpack("S$n", $data); $i = unpack("S$n", $data);
if ($n == 1) if ($n == 1) {
return (int) $i[1]; return (int) $i[1];
else return array_merge($i); } else {
return array_merge($i);
}
} }
/**
* putInt16
* @param mixed $fd file descriptor
* @param mixed $value value
* @return bool
*/
private static function putInt16($fd, $value) private static function putInt16($fd, $value)
{ {
return fwrite($fd, pack('S', $value)); return fwrite($fd, pack('S', $value));
} }
/**
* getInt32
* @param mixed $fd file descriptor
* @param int $n n
* @return bool
*/
private static function getInt32($fd, $n = 1) private static function getInt32($fd, $n = 1)
{ {
$data = fread($fd, 4 * $n); $data = fread($fd, 4 * $n);
$i = unpack("L$n", $data); $i = unpack("L$n", $data);
if ($n == 1) if ($n == 1) {
return (int) $i[1]; return (int) $i[1];
else return array_merge($i); } else {
return array_merge($i);
}
} }
/**
* putint32
* @param mixed $fd file descriptor
* @param mixed $value value
* @return bool
*/
private static function putInt32($fd, $value) private static function putInt32($fd, $value)
{ {
return fwrite($fd, pack('L', $value)); return fwrite($fd, pack('L', $value));
} }
/**
* putString
* @param mixed $fd file descriptor
* @param mixed $value value
* @param int $length length
* @return bool
*/
private static function putString($fd, $value, $length = 254) private static function putString($fd, $value, $length = 254)
{ {
$ret = fwrite($fd, pack('A' . $length, $value)); $ret = fwrite($fd, pack('A' . $length, $value));
} }
/**
* putRecord
* @param mixed $record record
* @return bool
*/
private function putRecord($record) private function putRecord($record)
{ {
foreach ($this->fields as $i => &$field) { foreach ($this->fields as $i => &$field) {
@ -336,62 +468,130 @@ class DBase
} }
if (!function_exists('dbase_open')) { if (!function_exists('dbase_open')) {
/**
* dbase_open
* @param string $filename filename
* @param int $mode mode
* @return DBase
*/
function dbase_open($filename, $mode) function dbase_open($filename, $mode)
{ {
return DBase::open($filename, $mode); return DBase::open($filename, $mode);
} }
/**
* dbase_create
* @param string $filename filename
* @param array $fields fields
* @param int $type type
* @return DBase
*/
function dbase_create($filename, $fields, $type = DBASE_TYPE_DBASE) function dbase_create($filename, $fields, $type = DBASE_TYPE_DBASE)
{ {
return DBase::create($filename, $fields, $type); return DBase::create($filename, $fields, $type);
} }
/**
* dbase_close
* @param Resource $dbase_identifier dbase identifier
* @return bool
*/
function dbase_close($dbase_identifier) function dbase_close($dbase_identifier)
{ {
return $dbase_identifier->close(); return $dbase_identifier->close();
} }
/**
* dbase_get_header_info
* @param Resource $dbase_identifier dbase identifier
* @return string
*/
function dbase_get_header_info($dbase_identifier) function dbase_get_header_info($dbase_identifier)
{ {
return $dbase_identifier->get_header_info(); return $dbase_identifier->get_header_info();
} }
/**
* dbase_numfields
* @param Resource $dbase_identifier dbase identifier
* @return int
*/
function dbase_numfields($dbase_identifier) function dbase_numfields($dbase_identifier)
{ {
$dbase_identifier->numfields(); $dbase_identifier->numfields();
} }
/**
* dbase_numrecords
* @param Resource $dbase_identifier dbase identifier
* @return int
*/
function dbase_numrecords($dbase_identifier) function dbase_numrecords($dbase_identifier)
{ {
return $dbase_identifier->numrecords(); return $dbase_identifier->numrecords();
} }
/**
* dbase_add_record
* @param Resource $dbase_identifier dbase identifier
* @param array $record record
* @return bool
*/
function dbase_add_record($dbase_identifier, $record) function dbase_add_record($dbase_identifier, $record)
{ {
return $dbase_identifier->add_record($record); return $dbase_identifier->add_record($record);
} }
/**
* dbase_delete_record
* @param Resource $dbase_identifier dbase identifier
* @param int $record_number record number
* @return bool
*/
function dbase_delete_record($dbase_identifier, $record_number) function dbase_delete_record($dbase_identifier, $record_number)
{ {
return $dbase_identifier->delete_record($record_number); return $dbase_identifier->delete_record($record_number);
} }
/**
* dbase_replace_record
* @param Resource $dbase_identifier dbase identifier
* @param array $record record
* @param int $record_number record number
* @return bool
*/
function dbase_replace_record($dbase_identifier, $record, $record_number) function dbase_replace_record($dbase_identifier, $record, $record_number)
{ {
return $dbase_identifier->replace_record($record, $record_number); return $dbase_identifier->replace_record($record, $record_number);
} }
/**
* dbase_get_record
* @param Resource $dbase_identifier dbase identifier
* @param int $record_number record number
* @return bool
*/
function dbase_get_record($dbase_identifier, $record_number) function dbase_get_record($dbase_identifier, $record_number)
{ {
return $dbase_identifier->get_record($record_number); return $dbase_identifier->get_record($record_number);
} }
/**
* dbase_get_record_with_names
* @param Resource $dbase_identifier dbase identifier
* @param int $record_number record number
* @return bool
*/
function dbase_get_record_with_names($dbase_identifier, $record_number) function dbase_get_record_with_names($dbase_identifier, $record_number)
{ {
return $dbase_identifier->get_record_with_names($record_number); return $dbase_identifier->get_record_with_names($record_number);
} }
/**
* dbase_pack
* @param Resource $dbase_identifier dbase identifier
* @return bool
*/
function dbase_pack($dbase_identifier) function dbase_pack($dbase_identifier)
{ {
return $dbase_identifier->pack(); return $dbase_identifier->pack();

View File

@ -100,8 +100,7 @@ $dates = array (mktime(12, 0, 0, 1, 3, $year),
); );
$ret=$user->fetch('', 'admin'); $ret=$user->fetch('', 'admin');
if (! $ret > 0) if (! $ret > 0) {
{
print 'A user with login "admin" and all permissions must be created to use this script.'."\n"; print 'A user with login "admin" and all permissions must be created to use this script.'."\n";
exit; exit;
} }
@ -111,12 +110,10 @@ $user->getrights();
$socids = array(); $socids = array();
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe WHERE client in (1, 3)"; $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe WHERE client in (1, 3)";
$resql = $db->query($sql); $resql = $db->query($sql);
if ($resql) if ($resql) {
{
$num_thirdparties = $db->num_rows($resql); $num_thirdparties = $db->num_rows($resql);
$i = 0; $i = 0;
while ($i < $num_thirdparties) while ($i < $num_thirdparties) {
{
$i++; $i++;
$row = $db->fetch_row($resql); $row = $db->fetch_row($resql);
$socids[$i] = $row[0]; $socids[$i] = $row[0];
@ -126,12 +123,10 @@ if ($resql)
$prodids = array(); $prodids = array();
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."product WHERE tosell=1"; $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."product WHERE tosell=1";
$resql = $db->query($sql); $resql = $db->query($sql);
if ($resql) if ($resql) {
{
$num_prods = $db->num_rows($resql); $num_prods = $db->num_rows($resql);
$i = 0; $i = 0;
while ($i < $num_prods) while ($i < $num_prods) {
{
$i++; $i++;
$row = $db->fetch_row($resql); $row = $db->fetch_row($resql);
$prodids[$i] = $row[0]; $prodids[$i] = $row[0];
@ -140,8 +135,7 @@ if ($resql)
$i=0; $i=0;
$result=0; $result=0;
while ($i < GEN_NUMBER_FACTURE && $result >= 0) while ($i < GEN_NUMBER_FACTURE && $result >= 0) {
{
$i++; $i++;
$socid = mt_rand(1, $num_thirdparties); $socid = mt_rand(1, $num_thirdparties);
@ -158,26 +152,22 @@ while ($i < GEN_NUMBER_FACTURE && $result >= 0)
$fuser->getRights(); $fuser->getRights();
$result=$object->create($fuser); $result=$object->create($fuser);
if ($result >= 0) if ($result >= 0) {
{
$nbp = mt_rand(2, 5); $nbp = mt_rand(2, 5);
$xnbp = 0; $xnbp = 0;
while ($xnbp < $nbp) while ($xnbp < $nbp) {
{
$prodid = mt_rand(1, $num_prods); $prodid = mt_rand(1, $num_prods);
$product=new Product($db); $product=new Product($db);
$result=$product->fetch($prodids[$prodid]); $result=$product->fetch($prodids[$prodid]);
$result=$object->addline($product->description, $product->price, mt_rand(1, 5), 0, 0, 0, $prodids[$prodid], 0, '', '', 0, 0, '', $product->price_base_type, $product->price_ttc, $product->type); $result=$object->addline($product->description, $product->price, mt_rand(1, 5), 0, 0, 0, $prodids[$prodid], 0, '', '', 0, 0, '', $product->price_base_type, $product->price_ttc, $product->type);
if ($result < 0) if ($result < 0) {
{
dol_print_error($db, $propal->error); dol_print_error($db, $propal->error);
} }
$xnbp++; $xnbp++;
} }
$result=$object->validate($fuser); $result=$object->validate($fuser);
if ($result) if ($result) {
{
print " OK with ref ".$object->ref."\n";; print " OK with ref ".$object->ref."\n";;
} else { } else {
dol_print_error($db, $object->error); dol_print_error($db, $object->error);

View File

@ -106,8 +106,7 @@ $dates = array (mktime(12, 0, 0, 1, 3, $year),
); );
$ret=$user->fetch('', 'admin'); $ret=$user->fetch('', 'admin');
if ($ret <= 0) if ($ret <= 0) {
{
print 'A user with login "admin" and all permissions must be created to use this script.'."\n"; print 'A user with login "admin" and all permissions must be created to use this script.'."\n";
exit; exit;
} }
@ -124,7 +123,9 @@ if ($resql) {
$row = $db->fetch_row($resql); $row = $db->fetch_row($resql);
$societesid[$i] = $row[0]; $societesid[$i] = $row[0];
} }
} else { print "err"; } } else {
print "err";
}
$commandesid = array(); $commandesid = array();
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."commande"; $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."commande";
@ -137,7 +138,9 @@ if ($resql) {
$row = $db->fetch_row($resql); $row = $db->fetch_row($resql);
$commandesid[$i] = $row[0]; $commandesid[$i] = $row[0];
} }
} else { print "err"; } } else {
print "err";
}
$prodids = array(); $prodids = array();
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."product WHERE tosell=1"; $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."product WHERE tosell=1";
@ -156,8 +159,7 @@ if ($resql) {
print "Build ".GEN_NUMBER_COMMANDE." orders\n"; print "Build ".GEN_NUMBER_COMMANDE." orders\n";
for ($s = 0 ; $s < GEN_NUMBER_COMMANDE ; $s++) for ($s = 0; $s < GEN_NUMBER_COMMANDE; $s++) {
{
print "Process order ".$s."\n"; print "Process order ".$s."\n";
$object = new Commande($db); $object = new Commande($db);
@ -182,26 +184,22 @@ for ($s = 0 ; $s < GEN_NUMBER_COMMANDE ; $s++)
$db->begin(); $db->begin();
$result=$object->create($fuser); $result=$object->create($fuser);
if ($result >= 0) if ($result >= 0) {
{
$nbp = mt_rand(2, 5); $nbp = mt_rand(2, 5);
$xnbp = 0; $xnbp = 0;
while ($xnbp < $nbp) while ($xnbp < $nbp) {
{
$prodid = mt_rand(1, $num_prods); $prodid = mt_rand(1, $num_prods);
$product=new Product($db); $product=new Product($db);
$result=$product->fetch($prodids[$prodid]); $result=$product->fetch($prodids[$prodid]);
$result=$object->addline($product->description, $product->price, mt_rand(1, 5), 0, 0, 0, $prodids[$prodid], 0, 0, 0, $product->price_base_type, $product->price_ttc, '', '', $product->type); $result=$object->addline($product->description, $product->price, mt_rand(1, 5), 0, 0, 0, $prodids[$prodid], 0, 0, 0, $product->price_base_type, $product->price_ttc, '', '', $product->type);
if ($result <= 0) if ($result <= 0) {
{
dol_print_error($db, $object->error); dol_print_error($db, $object->error);
} }
$xnbp++; $xnbp++;
} }
$result=$object->valid($fuser); $result=$object->valid($fuser);
if ($result > 0) if ($result > 0) {
{
$db->commit(); $db->commit();
print " OK with ref ".$object->ref."\n"; print " OK with ref ".$object->ref."\n";
} else { } else {

View File

@ -54,8 +54,7 @@ define(GEN_NUMBER_PRODUIT, 100000);
$ret=$user->fetch('', 'admin'); $ret=$user->fetch('', 'admin');
if (! $ret > 0) if (! $ret > 0) {
{
print 'A user with login "admin" and all permissions must be created to use this script.'."\n"; print 'A user with login "admin" and all permissions must be created to use this script.'."\n";
exit; exit;
} }
@ -66,27 +65,36 @@ $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."product"; $productsid = array();
$resql=$db->query($sql); $resql=$db->query($sql);
if ($resql) { if ($resql) {
$num = $db->num_rows($resql); $i = 0; $num = $db->num_rows($resql); $i = 0;
while ($i < $num) { $row = $db->fetch_row($resql); $productsid[$i] = $row[0]; $i++; } while ($i < $num) {
$row = $db->fetch_row($resql); $productsid[$i] = $row[0]; $i++;
}
} }
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe"; $societesid = array(); $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe"; $societesid = array();
$resql=$db->query($sql); $resql=$db->query($sql);
if ($resql) { if ($resql) {
$num = $db->num_rows($resql); $i = 0; $num = $db->num_rows($resql); $i = 0;
while ($i < $num) { $row = $db->fetch_row($resql); $societesid[$i] = $row[0]; $i++; } while ($i < $num) {
} else { print "err"; } $row = $db->fetch_row($resql); $societesid[$i] = $row[0]; $i++;
}
} else {
print "err";
}
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."commande"; $commandesid = array(); $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."commande"; $commandesid = array();
$resql=$db->query($sql); $resql=$db->query($sql);
if ($resql) { if ($resql) {
$num = $db->num_rows($resql); $i = 0; $num = $db->num_rows($resql); $i = 0;
while ($i < $num) { $row = $db->fetch_row($resql); $commandesid[$i] = $row[0]; $i++; } while ($i < $num) {
} else { print "err"; } $row = $db->fetch_row($resql); $commandesid[$i] = $row[0]; $i++;
}
} else {
print "err";
}
print "Generates ".GEN_NUMBER_PRODUIT." products\n"; print "Generates ".GEN_NUMBER_PRODUIT." products\n";
for ($s = 0 ; $s < GEN_NUMBER_PRODUIT ; $s++) for ($s = 0; $s < GEN_NUMBER_PRODUIT; $s++) {
{
print "Product ".$s; print "Product ".$s;
$produit = new Product($db); $produit = new Product($db);
$produit->type = mt_rand(0, 1); $produit->type = mt_rand(0, 1);
@ -97,6 +105,9 @@ for ($s = 0 ; $s < GEN_NUMBER_PRODUIT ; $s++)
$produit->price = mt_rand(1, 1000); $produit->price = mt_rand(1, 1000);
$produit->tva_tx = "19.6"; $produit->tva_tx = "19.6";
$ret=$produit->create($user); $ret=$produit->create($user);
if ($ret < 0) print "Error $ret - ".$produit->error."\n"; if ($ret < 0) {
else print " OK with ref ".$produit->ref."\n"; print "Error $ret - ".$produit->error."\n";
} else {
print " OK with ref ".$produit->ref."\n";
}
} }

View File

@ -102,8 +102,7 @@ $dates = array (mktime(12, 0, 0, 1, 3, $year),
); );
$ret=$user->fetch('', 'admin'); $ret=$user->fetch('', 'admin');
if (! $ret > 0) if (! $ret > 0) {
{
print 'A user with login "admin" and all permissions must be created to use this script.'."\n"; print 'A user with login "admin" and all permissions must be created to use this script.'."\n";
exit; exit;
} }
@ -113,12 +112,10 @@ $user->getrights();
$socids = array(); $socids = array();
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe WHERE client in (1,3)"; $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe WHERE client in (1,3)";
$resql = $db->query($sql); $resql = $db->query($sql);
if ($resql) if ($resql) {
{
$num_thirdparties = $db->num_rows($resql); $num_thirdparties = $db->num_rows($resql);
$i = 0; $i = 0;
while ($i < $num_thirdparties) while ($i < $num_thirdparties) {
{
$i++; $i++;
$row = $db->fetch_row($resql); $row = $db->fetch_row($resql);
$socids[$i] = $row[0]; $socids[$i] = $row[0];
@ -128,12 +125,10 @@ if ($resql)
$contids = array(); $contids = array();
$sql = "SELECT rowid, fk_soc FROM ".MAIN_DB_PREFIX."socpeople"; $sql = "SELECT rowid, fk_soc FROM ".MAIN_DB_PREFIX."socpeople";
$resql = $db->query($sql); $resql = $db->query($sql);
if ($resql) if ($resql) {
{
$num_conts = $db->num_rows($resql); $num_conts = $db->num_rows($resql);
$i = 0; $i = 0;
while ($i < $num_conts) while ($i < $num_conts) {
{
$i++; $i++;
$row = $db->fetch_row($resql); $row = $db->fetch_row($resql);
$contids[$row[1]][0] = $row[0]; // A ameliorer $contids[$row[1]][0] = $row[0]; // A ameliorer
@ -143,12 +138,10 @@ if ($resql)
$prodids = array(); $prodids = array();
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."product WHERE tosell=1"; $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."product WHERE tosell=1";
$resql = $db->query($sql); $resql = $db->query($sql);
if ($resql) if ($resql) {
{
$num_prods = $db->num_rows($resql); $num_prods = $db->num_rows($resql);
$i = 0; $i = 0;
while ($i < $num_prods) while ($i < $num_prods) {
{
$i++; $i++;
$row = $db->fetch_row($resql); $row = $db->fetch_row($resql);
$prodids[$i] = $row[0]; $prodids[$i] = $row[0];
@ -159,15 +152,13 @@ $user->rights->propal->creer=1;
$user->rights->propal->propal_advance->validate=1; $user->rights->propal->propal_advance->validate=1;
if (! empty($conf->global->PROPALE_ADDON) && is_readable(DOL_DOCUMENT_ROOT ."/core/modules/propale/".$conf->global->PROPALE_ADDON.".php")) if (! empty($conf->global->PROPALE_ADDON) && is_readable(DOL_DOCUMENT_ROOT ."/core/modules/propale/".$conf->global->PROPALE_ADDON.".php")) {
{
require_once DOL_DOCUMENT_ROOT ."/core/modules/propale/".$conf->global->PROPALE_ADDON.".php"; require_once DOL_DOCUMENT_ROOT ."/core/modules/propale/".$conf->global->PROPALE_ADDON.".php";
} }
$i=0; $i=0;
$result=0; $result=0;
while ($i < GEN_NUMBER_PROPAL && $result >= 0) while ($i < GEN_NUMBER_PROPAL && $result >= 0) {
{
$i++; $i++;
$socid = mt_rand(1, $num_thirdparties); $socid = mt_rand(1, $num_thirdparties);
print "Proposal ".$i." for socid ".$socid; print "Proposal ".$i." for socid ".$socid;
@ -188,26 +179,22 @@ while ($i < GEN_NUMBER_PROPAL && $result >= 0)
$object->mode_reglement_id = 3; $object->mode_reglement_id = 3;
$result=$object->create($fuser); $result=$object->create($fuser);
if ($result >= 0) if ($result >= 0) {
{
$nbp = mt_rand(2, 5); $nbp = mt_rand(2, 5);
$xnbp = 0; $xnbp = 0;
while ($xnbp < $nbp) while ($xnbp < $nbp) {
{
$prodid = mt_rand(1, $num_prods); $prodid = mt_rand(1, $num_prods);
$product=new Product($db); $product=new Product($db);
$result=$product->fetch($prodids[$prodid]); $result=$product->fetch($prodids[$prodid]);
$result=$object->addline($product->description, $product->price, mt_rand(1, 5), 0, 0, 0, $prodids[$prodid], 0); $result=$object->addline($product->description, $product->price, mt_rand(1, 5), 0, 0, 0, $prodids[$prodid], 0);
if ($result < 0) if ($result < 0) {
{
dol_print_error($db, $object->error); dol_print_error($db, $object->error);
} }
$xnbp++; $xnbp++;
} }
$result=$object->valid($fuser); $result=$object->valid($fuser);
if ($result > 0) if ($result > 0) {
{
$db->commit(); $db->commit();
print " OK with ref ".$object->ref."\n"; print " OK with ref ".$object->ref."\n";
} else { } else {

View File

@ -57,8 +57,7 @@ define(GEN_NUMBER_SOCIETE, 10);
$ret=$user->fetch('', 'admin'); $ret=$user->fetch('', 'admin');
if (! $ret > 0) if (! $ret > 0) {
{
print 'A user with login "admin" and all permissions must be created to use this script.'."\n"; print 'A user with login "admin" and all permissions must be created to use this script.'."\n";
exit; exit;
} }
@ -85,7 +84,9 @@ if ($resql) {
$societesid[$i] = $row[0]; $societesid[$i] = $row[0];
$i++; $i++;
} }
} else { print "err"; } } else {
print "err";
}
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."commande"; $commandesid = array(); $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."commande"; $commandesid = array();
$resql=$db->query($sql); $resql=$db->query($sql);
@ -96,13 +97,14 @@ if ($resql) {
$commandesid[$i] = $row[0]; $commandesid[$i] = $row[0];
$i++; $i++;
} }
} else { print "err"; } } else {
print "err";
}
print "Generates ".GEN_NUMBER_SOCIETE." companies\n"; print "Generates ".GEN_NUMBER_SOCIETE." companies\n";
for ($s = 0 ; $s < GEN_NUMBER_SOCIETE ; $s++) for ($s = 0; $s < GEN_NUMBER_SOCIETE; $s++) {
{
print "Company $s\n"; print "Company $s\n";
$soc = new Societe($db); $soc = new Societe($db);
$soc->name = "Company num ".time()."$s"; $soc->name = "Company num ".time()."$s";
@ -115,23 +117,22 @@ for ($s = 0 ; $s < GEN_NUMBER_SOCIETE ; $s++)
$soc->country_id=1; $soc->country_id=1;
$soc->country_code='FR'; $soc->country_code='FR';
// Un client sur 3 a une remise de 5% // Un client sur 3 a une remise de 5%
$user_remise=mt_rand(1, 3); if ($user_remise==3) $soc->remise_percent=5; $user_remise=mt_rand(1, 3); if ($user_remise==3) {
$soc->remise_percent=5;
}
print "> client=".$soc->client.", fournisseur=".$soc->fournisseur.", remise=".$soc->remise_percent."\n"; print "> client=".$soc->client.", fournisseur=".$soc->fournisseur.", remise=".$soc->remise_percent."\n";
$soc->note_private = 'Company created by the script generate-societe.php'; $soc->note_private = 'Company created by the script generate-societe.php';
$socid = $soc->create(); $socid = $soc->create();
if ($socid >= 0) if ($socid >= 0) {
{
$rand = mt_rand(1, 4); $rand = mt_rand(1, 4);
print "> Generates $rand contact(s)\n"; print "> Generates $rand contact(s)\n";
for ($c = 0 ; $c < $rand ; $c++) for ($c = 0; $c < $rand; $c++) {
{
$contact = new Contact($db); $contact = new Contact($db);
$contact->socid = $soc->id; $contact->socid = $soc->id;
$contact->lastname = "Lastname".$c; $contact->lastname = "Lastname".$c;
$contact->firstname = $listoflastname[mt_rand(0, count($listoflastname)-1)]; $contact->firstname = $listoflastname[mt_rand(0, count($listoflastname)-1)];
if ( $contact->create($user) ) if ($contact->create($user)) {
{
} }
} }

View File

@ -79,30 +79,26 @@ if (! file_exists($filepath)) {
} }
$ret=$user->fetch('', 'admin'); $ret=$user->fetch('', 'admin');
if (! $ret > 0) if (! $ret > 0) {
{
print 'A user with login "admin" and all permissions must be created to use this script.'."\n"; print 'A user with login "admin" and all permissions must be created to use this script.'."\n";
exit; exit;
} }
$user->getrights(); $user->getrights();
// Ask confirmation // Ask confirmation
if (! $confirmed) if (! $confirmed) {
{
print "Hit Enter to continue or CTRL+C to stop...\n"; print "Hit Enter to continue or CTRL+C to stop...\n";
$input = trim(fgets(STDIN)); $input = trim(fgets(STDIN));
} }
// Open input and output files // Open input and output files
$fhandle = fopen($filepath, 'r'); $fhandle = fopen($filepath, 'r');
if (! $fhandle) if (! $fhandle) {
{
print 'Error: Failed to open file '.$filepath."\n"; print 'Error: Failed to open file '.$filepath."\n";
exit(1); exit(1);
} }
$fhandleerr = fopen($filepatherr, 'w'); $fhandleerr = fopen($filepatherr, 'w');
if (! $fhandleerr) if (! $fhandleerr) {
{
print 'Error: Failed to open file '.$filepatherr."\n"; print 'Error: Failed to open file '.$filepatherr."\n";
exit(1); exit(1);
} }
@ -114,13 +110,16 @@ $db->begin();
$i=0; $i=0;
$nboflines++; $nboflines++;
while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape)) while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape)) {
{
$i++; $i++;
$errorrecord=0; $errorrecord=0;
if ($startlinenb && $i < $startlinenb) continue; if ($startlinenb && $i < $startlinenb) {
if ($endlinenb && $i > $endlinenb) continue; continue;
}
if ($endlinenb && $i > $endlinenb) {
continue;
}
$nboflines++; $nboflines++;
@ -159,8 +158,7 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
$produit->array_options['options_ecotaxdeee']=price2num($fields[17]); $produit->array_options['options_ecotaxdeee']=price2num($fields[17]);
$ret=$produit->create($user); $ret=$produit->create($user);
if ($ret < 0) if ($ret < 0) {
{
print " - Error in create result code = ".$ret." - ".$produit->errorsToString(); print " - Error in create result code = ".$ret." - ".$produit->errorsToString();
$errorrecord++; $errorrecord++;
} else { } else {
@ -170,12 +168,10 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
dol_syslog("Add prices"); dol_syslog("Add prices");
// If we use price level, insert price for each level // If we use price level, insert price for each level
if (! $errorrecord && 1) if (! $errorrecord && 1) {
{
$ret1=$produit->updatePrice($produit->price_ttc, $produit->price_base_type, $user, $produit->tva_tx, $produit->price_min, 1, $produit->tva_npr, 0, 0, array()); $ret1=$produit->updatePrice($produit->price_ttc, $produit->price_base_type, $user, $produit->tva_tx, $produit->price_min, 1, $produit->tva_npr, 0, 0, array());
$ret2=$produit->updatePrice(price2num($fields[14]), 'HT', $user, $produit->tva_tx, $produit->price_min, 2, $produit->tva_npr, 0, 0, array()); $ret2=$produit->updatePrice(price2num($fields[14]), 'HT', $user, $produit->tva_tx, $produit->price_min, 2, $produit->tva_npr, 0, 0, array());
if ($ret1 < 0 || $ret2 < 0) if ($ret1 < 0 || $ret2 < 0) {
{
print " - Error in updatePrice result code = ".$ret1." ".$ret2." - ".$produit->errorsToString(); print " - Error in updatePrice result code = ".$ret1." ".$ret2." - ".$produit->errorsToString();
$errorrecord++; $errorrecord++;
} else { } else {
@ -186,14 +182,12 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
dol_syslog("Add multilangs"); dol_syslog("Add multilangs");
// Add alternative languages // Add alternative languages
if (! $errorrecord && 1) if (! $errorrecord && 1) {
{
$produit->multilangs['fr_FR']=array('label'=>$produit->label, 'description'=>$produit->description, 'note'=>$produit->note_private); $produit->multilangs['fr_FR']=array('label'=>$produit->label, 'description'=>$produit->description, 'note'=>$produit->note_private);
$produit->multilangs['en_US']=array('label'=>$fields[3], 'description'=>$produit->description, 'note'=>$produit->note_private); $produit->multilangs['en_US']=array('label'=>$fields[3], 'description'=>$produit->description, 'note'=>$produit->note_private);
$ret=$produit->setMultiLangs($user); $ret=$produit->setMultiLangs($user);
if ($ret < 0) if ($ret < 0) {
{
print " - Error in setMultiLangs result code = ".$ret." - ".$produit->errorsToString(); print " - Error in setMultiLangs result code = ".$ret." - ".$produit->errorsToString();
$errorrecord++; $errorrecord++;
} else { } else {
@ -203,8 +197,7 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
print "\n"; print "\n";
if ($errorrecord) if ($errorrecord) {
{
fwrite($fhandleerr, 'Error on record nb '.$i." - ".$produit->errorsToString()."\n"); fwrite($fhandleerr, 'Error on record nb '.$i." - ".$produit->errorsToString()."\n");
$error++; // $errorrecord will be reset $error++; // $errorrecord will be reset
} }
@ -217,8 +210,7 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
// commit or rollback // commit or rollback
print "Nb of lines qualified: ".$nboflines."\n"; print "Nb of lines qualified: ".$nboflines."\n";
print "Nb of errors: ".$error."\n"; print "Nb of errors: ".$error."\n";
if ($mode != 'confirmforced' && ($error || $mode != 'confirm')) if ($mode != 'confirmforced' && ($error || $mode != 'confirm')) {
{
print "Rollback any changes.\n"; print "Rollback any changes.\n";
$db->rollback(); $db->rollback();
} else { } else {

View File

@ -79,30 +79,26 @@ if (! file_exists($filepath)) {
} }
$ret=$user->fetch('', 'admin'); $ret=$user->fetch('', 'admin');
if (! $ret > 0) if (! $ret > 0) {
{
print 'A user with login "admin" and all permissions must be created to use this script.'."\n"; print 'A user with login "admin" and all permissions must be created to use this script.'."\n";
exit; exit;
} }
$user->getrights(); $user->getrights();
// Ask confirmation // Ask confirmation
if (! $confirmed) if (! $confirmed) {
{
print "Hit Enter to continue or CTRL+C to stop...\n"; print "Hit Enter to continue or CTRL+C to stop...\n";
$input = trim(fgets(STDIN)); $input = trim(fgets(STDIN));
} }
// Open input and output files // Open input and output files
$fhandle = fopen($filepath, 'r'); $fhandle = fopen($filepath, 'r');
if (! $fhandle) if (! $fhandle) {
{
print 'Error: Failed to open file '.$filepath."\n"; print 'Error: Failed to open file '.$filepath."\n";
exit(1); exit(1);
} }
$fhandleerr = fopen($filepatherr, 'w'); $fhandleerr = fopen($filepatherr, 'w');
if (! $fhandleerr) if (! $fhandleerr) {
{
print 'Error: Failed to open file '.$filepatherr."\n"; print 'Error: Failed to open file '.$filepatherr."\n";
exit(1); exit(1);
} }
@ -114,13 +110,16 @@ $db->begin();
$i=0; $i=0;
$nboflines=0; $nboflines=0;
while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape)) while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape)) {
{
$i++; $i++;
$errorrecord=0; $errorrecord=0;
if ($startlinenb && $i < $startlinenb) continue; if ($startlinenb && $i < $startlinenb) {
if ($endlinenb && $i > $endlinenb) continue; continue;
}
if ($endlinenb && $i > $endlinenb) {
continue;
}
$nboflines++; $nboflines++;
@ -144,14 +143,16 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
$object->default_lang = trim($fields[43]); $object->default_lang = trim($fields[43]);
//$condpayment = dol_string_unaccent(trim($fields[36])); //$condpayment = dol_string_unaccent(trim($fields[36]));
if ($fields[36]) if ($fields[36]) {
{
$condpayment = trim($fields[36]); $condpayment = trim($fields[36]);
if ($condpayment == 'A la commande') $condpayment = 'A réception de commande'; if ($condpayment == 'A la commande') {
if ($condpayment == 'A reception facture') $condpayment = 'Réception de facture'; $condpayment = 'A réception de commande';
}
if ($condpayment == 'A reception facture') {
$condpayment = 'Réception de facture';
}
$object->cond_reglement_id = dol_getIdFromCode($db, $condpayment, 'c_payment_term', 'libelle_facture', 'rowid', 1); $object->cond_reglement_id = dol_getIdFromCode($db, $condpayment, 'c_payment_term', 'libelle_facture', 'rowid', 1);
if (empty($object->cond_reglement_id)) if (empty($object->cond_reglement_id)) {
{
print " - Error cant find payment mode for ".$condpayment."\n"; print " - Error cant find payment mode for ".$condpayment."\n";
$errorrecord++; $errorrecord++;
} }
@ -165,7 +166,9 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
// Set price level // Set price level
$object->price_level = 1; $object->price_level = 1;
if ($labeltype == 'Revendeur') $object->price_level = 2; if ($labeltype == 'Revendeur') {
$object->price_level = 2;
}
print "Process line nb ".$i.", name ".$object->name; print "Process line nb ".$i.", name ".$object->name;
@ -174,11 +177,9 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
$object->array_options['options_anastate']=price2num($fields[20]); $object->array_options['options_anastate']=price2num($fields[20]);
$object->array_options['options_anaregion']=price2num($fields[17]); $object->array_options['options_anaregion']=price2num($fields[17]);
if (! $errorrecord) if (! $errorrecord) {
{
$ret=$object->create($user); $ret=$object->create($user);
if ($ret < 0) if ($ret < 0) {
{
print " - Error in create result code = ".$ret." - ".$object->errorsToString(); print " - Error in create result code = ".$ret." - ".$object->errorsToString();
$errorrecord++; $errorrecord++;
} else { } else {
@ -186,28 +187,28 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
} }
} }
if (! $errorrecord) if (! $errorrecord) {
{
dol_syslog("Set price level"); dol_syslog("Set price level");
$object->set_price_level($object->price_level, $user); $object->set_price_level($object->price_level, $user);
} }
// Assign sales representative // Assign sales representative
if (! $errorrecord && $fields[3]) if (! $errorrecord && $fields[3]) {
{
$salesrep=new User($db); $salesrep=new User($db);
$tmp=explode(' ', $fields[3], 2); $tmp=explode(' ', $fields[3], 2);
$salesrep->firstname = trim($tmp[0]); $salesrep->firstname = trim($tmp[0]);
$salesrep->lastname = trim($tmp[1]); $salesrep->lastname = trim($tmp[1]);
if ($salesrep->lastname) $salesrep->login = strtolower(substr($salesrep->firstname, 0, 1)) . strtolower(substr($salesrep->lastname, 0)); if ($salesrep->lastname) {
else $salesrep->login=strtolower($salesrep->firstname); $salesrep->login = strtolower(substr($salesrep->firstname, 0, 1)) . strtolower(substr($salesrep->lastname, 0));
} else {
$salesrep->login=strtolower($salesrep->firstname);
}
$salesrep->login=preg_replace('/ /', '', $salesrep->login); $salesrep->login=preg_replace('/ /', '', $salesrep->login);
$salesrep->fetch(0, $salesrep->login); $salesrep->fetch(0, $salesrep->login);
$result = $object->add_commercial($user, $salesrep->id); $result = $object->add_commercial($user, $salesrep->id);
if ($result < 0) if ($result < 0) {
{
print " - Error in create link with sale representative result code = ".$result." - ".$object->errorsToString(); print " - Error in create link with sale representative result code = ".$result." - ".$object->errorsToString();
$errorrecord++; $errorrecord++;
} else { } else {
@ -217,8 +218,7 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
dol_syslog("Add invoice contacts"); dol_syslog("Add invoice contacts");
// Insert an invoice contact if there is an invoice email != standard email // Insert an invoice contact if there is an invoice email != standard email
if (! $errorrecord && $fields[27] && $fields[26] != $fields[27]) if (! $errorrecord && $fields[27] && $fields[26] != $fields[27]) {
{
$ret1=$ret2=0; $ret1=$ret2=0;
$contact = new Contact($db); $contact = new Contact($db);
@ -231,12 +231,10 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
$contact->socid=$object->id; $contact->socid=$object->id;
$ret1=$contact->create($user); $ret1=$contact->create($user);
if ($ret1 > 0) if ($ret1 > 0) {
{
//$ret2=$contact->add_contact($object->id, 'BILLING'); //$ret2=$contact->add_contact($object->id, 'BILLING');
} }
if ($ret1 < 0 || $ret2 < 0) if ($ret1 < 0 || $ret2 < 0) {
{
print " - Error in create contact result code = ".$ret1." ".$ret2." - ".$object->errorsToString(); print " - Error in create contact result code = ".$ret1." ".$ret2." - ".$object->errorsToString();
$errorrecord++; $errorrecord++;
} else { } else {
@ -246,8 +244,7 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
dol_syslog("Add delivery contacts"); dol_syslog("Add delivery contacts");
// Insert a delivery contact // Insert a delivery contact
if (! $errorrecord && $fields[47]) if (! $errorrecord && $fields[47]) {
{
$ret1=$ret2=0; $ret1=$ret2=0;
$contact2 = new Contact($db); $contact2 = new Contact($db);
@ -263,12 +260,10 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
$contact2->array_options['options_anazoneliv']=price2num($fields[53]); $contact2->array_options['options_anazoneliv']=price2num($fields[53]);
$ret1=$contact2->create($user); $ret1=$contact2->create($user);
if ($ret1 > 0) if ($ret1 > 0) {
{
//$ret2=$contact2->add_contact($object->id, 'SHIPPING'); //$ret2=$contact2->add_contact($object->id, 'SHIPPING');
} }
if ($ret1 < 0 || $ret2 < 0) if ($ret1 < 0 || $ret2 < 0) {
{
print " - Error in create contact result code = ".$ret1." ".$ret2." - ".$object->errorsToString(); print " - Error in create contact result code = ".$ret1." ".$ret2." - ".$object->errorsToString();
$errorrecord++; $errorrecord++;
} else { } else {
@ -279,8 +274,7 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
print "\n"; print "\n";
if ($errorrecord) if ($errorrecord) {
{
fwrite($fhandleerr, 'Error on record nb '.$i." - ".$object->errorsToString()."\n"); fwrite($fhandleerr, 'Error on record nb '.$i." - ".$object->errorsToString()."\n");
$error++; // $errorrecord will be reset $error++; // $errorrecord will be reset
} }
@ -293,8 +287,7 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
// commit or rollback // commit or rollback
print "Nb of lines qualified: ".$nboflines."\n"; print "Nb of lines qualified: ".$nboflines."\n";
print "Nb of errors: ".$error."\n"; print "Nb of errors: ".$error."\n";
if ($mode != 'confirmforced' && ($error || $mode != 'confirm')) if ($mode != 'confirmforced' && ($error || $mode != 'confirm')) {
{
print "Rollback any changes.\n"; print "Rollback any changes.\n";
$db->rollback(); $db->rollback();
} else { } else {

View File

@ -79,30 +79,26 @@ if (! file_exists($filepath)) {
} }
$ret=$user->fetch('', 'admin'); $ret=$user->fetch('', 'admin');
if (! $ret > 0) if (! $ret > 0) {
{
print 'A user with login "admin" and all permissions must be created to use this script.'."\n"; print 'A user with login "admin" and all permissions must be created to use this script.'."\n";
exit; exit;
} }
$user->getrights(); $user->getrights();
// Ask confirmation // Ask confirmation
if (! $confirmed) if (! $confirmed) {
{
print "Hit Enter to continue or CTRL+C to stop...\n"; print "Hit Enter to continue or CTRL+C to stop...\n";
$input = trim(fgets(STDIN)); $input = trim(fgets(STDIN));
} }
// Open input and output files // Open input and output files
$fhandle = fopen($filepath, 'r'); $fhandle = fopen($filepath, 'r');
if (! $fhandle) if (! $fhandle) {
{
print 'Error: Failed to open file '.$filepath."\n"; print 'Error: Failed to open file '.$filepath."\n";
exit(1); exit(1);
} }
$fhandleerr = fopen($filepatherr, 'w'); $fhandleerr = fopen($filepatherr, 'w');
if (! $fhandleerr) if (! $fhandleerr) {
{
print 'Error: Failed to open file '.$filepatherr."\n"; print 'Error: Failed to open file '.$filepatherr."\n";
exit(1); exit(1);
} }
@ -114,13 +110,16 @@ $db->begin();
$i=0; $i=0;
$nboflines=0; $nboflines=0;
while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape)) while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape)) {
{
$i++; $i++;
$errorrecord=0; $errorrecord=0;
if ($startlinenb && $i < $startlinenb) continue; if ($startlinenb && $i < $startlinenb) {
if ($endlinenb && $i > $endlinenb) continue; continue;
}
if ($endlinenb && $i > $endlinenb) {
continue;
}
$nboflines++; $nboflines++;
@ -130,16 +129,18 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
$tmp=explode(' ', $fields[3], 2); $tmp=explode(' ', $fields[3], 2);
$object->firstname = trim($tmp[0]); $object->firstname = trim($tmp[0]);
$object->lastname = trim($tmp[1]); $object->lastname = trim($tmp[1]);
if ($object->lastname) $object->login = strtolower(substr($object->firstname, 0, 1)) . strtolower(substr($object->lastname, 0)); if ($object->lastname) {
else $object->login=strtolower($object->firstname); $object->login = strtolower(substr($object->firstname, 0, 1)) . strtolower(substr($object->lastname, 0));
} else {
$object->login=strtolower($object->firstname);
}
$object->login=preg_replace('/ /', '', $object->login); $object->login=preg_replace('/ /', '', $object->login);
$object->password = 'init'; $object->password = 'init';
print "Process line nb ".$i.", login ".$object->login; print "Process line nb ".$i.", login ".$object->login;
$ret=$object->create($user); $ret=$object->create($user);
if ($ret < 0) if ($ret < 0) {
{
print " - Error in create result code = ".$ret." - ".$object->errorsToString(); print " - Error in create result code = ".$ret." - ".$object->errorsToString();
$errorrecord++; $errorrecord++;
} else { } else {
@ -148,8 +149,7 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
print "\n"; print "\n";
if ($errorrecord) if ($errorrecord) {
{
fwrite($fhandleerr, 'Error on record nb '.$i." - ".$object->errorsToString()."\n"); fwrite($fhandleerr, 'Error on record nb '.$i." - ".$object->errorsToString()."\n");
$error++; // $errorrecord will be reset $error++; // $errorrecord will be reset
} }
@ -162,8 +162,7 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
// commit or rollback // commit or rollback
print "Nb of lines qualified: ".$nboflines."\n"; print "Nb of lines qualified: ".$nboflines."\n";
print "Nb of errors: ".$error."\n"; print "Nb of errors: ".$error."\n";
if ($mode != 'confirmforced' && ($error || $mode != 'confirm')) if ($mode != 'confirmforced' && ($error || $mode != 'confirm')) {
{
print "Rollback any changes.\n"; print "Rollback any changes.\n";
$db->rollback(); $db->rollback();
} else { } else {

View File

@ -188,18 +188,15 @@ if (empty($mode) || ! in_array($mode, array('test','confirm'))) {
print "option can be ".implode(',', array_keys($sqls))."\n"; print "option can be ".implode(',', array_keys($sqls))."\n";
exit(-1); exit(-1);
} }
if (empty($option)) if (empty($option)) {
{
print "Usage: $script_file (test|confirm) (all|option) (all|YYYY-MM-DD) [dbtype dbhost dbuser dbpassword dbname dbport]\n"; print "Usage: $script_file (test|confirm) (all|option) (all|YYYY-MM-DD) [dbtype dbhost dbuser dbpassword dbname dbport]\n";
print "\n"; print "\n";
print "option must be defined with a value in list ".implode(',', array_keys($sqls))."\n"; print "option must be defined with a value in list ".implode(',', array_keys($sqls))."\n";
exit(-1); exit(-1);
} }
if ($option != 'all') if ($option != 'all') {
{
$listofoptions=explode(',', $option); $listofoptions=explode(',', $option);
foreach ($listofoptions as $cursoroption) foreach ($listofoptions as $cursoroption) {
{
if (! in_array($cursoroption, array_keys($sqls))) { if (! in_array($cursoroption, array_keys($sqls))) {
print "Usage: $script_file (test|confirm) (all|option) (all|YYYY-MM-DD) [dbtype dbhost dbuser dbpassword dbname dbport]\n"; print "Usage: $script_file (test|confirm) (all|option) (all|YYYY-MM-DD) [dbtype dbhost dbuser dbpassword dbname dbport]\n";
print "\n"; print "\n";
@ -216,11 +213,12 @@ if (empty($date) || (! preg_match('/\d\d\d\d\-\d\d\-\d\d$/', $date) && $date !=
exit(-1); exit(-1);
} }
if ($date == 'all') $date = '2199-01-01'; if ($date == 'all') {
$date = '2199-01-01';
}
// Replace database handler // Replace database handler
if (! empty($argv[4])) if (! empty($argv[4])) {
{
$db->close(); $db->close();
unset($db); unset($db);
$db=getDoliDBInstance($argv[4], $argv[5], $argv[6], $argv[7], $argv[8], $argv[9]); $db=getDoliDBInstance($argv[4], $argv[5], $argv[6], $argv[7], $argv[8], $argv[9]);
@ -229,8 +227,7 @@ if (! empty($argv[4]))
//var_dump($user->db->database_name); //var_dump($user->db->database_name);
$ret=$user->fetch('', 'admin'); $ret=$user->fetch('', 'admin');
if (! $ret > 0) if (! $ret > 0) {
{
print 'An admin user with login "admin" must exists to use this script.'."\n"; print 'An admin user with login "admin" must exists to use this script.'."\n";
exit; exit;
} }
@ -245,8 +242,7 @@ print "Database port = ".$db->database_port."\n";
print "User = ".$db->database_user."\n"; print "User = ".$db->database_user."\n";
print "\n"; print "\n";
if (! $confirmed) if (! $confirmed) {
{
print "Hit Enter to continue or CTRL+C to stop...\n"; print "Hit Enter to continue or CTRL+C to stop...\n";
$input = trim(fgets(STDIN)); $input = trim(fgets(STDIN));
} }
@ -264,10 +260,8 @@ function processfamily($family, $date)
global $db, $sqls; global $db, $sqls;
$error=0; $error=0;
foreach ($sqls[$family] as $sql) foreach ($sqls[$family] as $sql) {
{ if (preg_match('/^@/', $sql)) {
if (preg_match('/^@/', $sql))
{
$newfamily=preg_replace('/@/', '', $sql); $newfamily=preg_replace('/@/', '', $sql);
processfamily($newfamily, $date); processfamily($newfamily, $date);
continue; continue;
@ -278,51 +272,51 @@ function processfamily($family, $date)
print "Run sql: ".$sql."\n"; print "Run sql: ".$sql."\n";
$resql=$db->query($sql); $resql=$db->query($sql);
if (! $resql) if (! $resql) {
{ if ($db->errno() != 'DB_ERROR_NOSUCHTABLE') {
if ($db->errno() != 'DB_ERROR_NOSUCHTABLE')
{
$error++; $error++;
} }
} }
if ($error) if ($error) {
{
print $db->lasterror(); print $db->lasterror();
$error++; $error++;
break; break;
} }
} }
if ($error) return -1; if ($error) {
else return 1; return -1;
} else {
return 1;
}
} }
$db->begin(); $db->begin();
$listofoptions=explode(',', $option); $listofoptions=explode(',', $option);
foreach ($listofoptions as $cursoroption) foreach ($listofoptions as $cursoroption) {
{
$oldfamily=''; $oldfamily='';
foreach ($sqls as $family => $familysql) foreach ($sqls as $family => $familysql) {
{ if ($cursoroption && $cursoroption != 'all' && $cursoroption != $family) {
if ($cursoroption && $cursoroption != 'all' && $cursoroption != $family) continue; continue;
}
if ($family != $oldfamily) print "Process action for family ".$family."\n"; if ($family != $oldfamily) {
print "Process action for family ".$family."\n";
}
$oldfamily = $family; $oldfamily = $family;
$result=processfamily($family, $date); $result=processfamily($family, $date);
if ($result < 0) if ($result < 0) {
{
$error++; $error++;
break; break;
} }
} }
} }
if ($error || $mode != 'confirm') if ($error || $mode != 'confirm') {
{
print "\nRollback any changes.\n"; print "\nRollback any changes.\n";
$db->rollback(); $db->rollback();
} else { } else {

View File

@ -41,14 +41,30 @@ $passwordbase=isset($argv[6])?$argv[6]:'';
// Include Dolibarr environment // Include Dolibarr environment
$res=0; $res=0;
if (! $res && file_exists($path."../../master.inc.php")) $res=@include $path."../../master.inc.php"; if (! $res && file_exists($path."../../master.inc.php")) {
if (! $res && file_exists($path."../../htdocs/master.inc.php")) $res=@include $path."../../htdocs/master.inc.php"; $res=@include $path."../../master.inc.php";
if (! $res && file_exists("../master.inc.php")) $res=@include "../master.inc.php"; }
if (! $res && file_exists("../../master.inc.php")) $res=@include "../../master.inc.php"; if (! $res && file_exists($path."../../htdocs/master.inc.php")) {
if (! $res && file_exists("../../../master.inc.php")) $res=@include "../../../master.inc.php"; $res=@include $path."../../htdocs/master.inc.php";
if (! $res && preg_match('/\/nltechno([^\/]*)\//', $_SERVER["PHP_SELF"], $reg)) $res=@include $path."../../../dolibarr".$reg[1]."/htdocs/master.inc.php"; // Used on dev env only }
if (! $res && preg_match('/\/nltechno([^\/]*)\//', $_SERVER["PHP_SELF"], $reg)) $res=@include "../../../dolibarr".$reg[1]."/htdocs/master.inc.php"; // Used on dev env only if (! $res && file_exists("../master.inc.php")) {
if (! $res) die("Failed to include master.inc.php file\n"); $res=@include "../master.inc.php";
}
if (! $res && file_exists("../../master.inc.php")) {
$res=@include "../../master.inc.php";
}
if (! $res && file_exists("../../../master.inc.php")) {
$res=@include "../../../master.inc.php";
}
if (! $res && preg_match('/\/nltechno([^\/]*)\//', $_SERVER["PHP_SELF"], $reg)) {
$res=@include $path."../../../dolibarr".$reg[1]."/htdocs/master.inc.php"; // Used on dev env only
}
if (! $res && preg_match('/\/nltechno([^\/]*)\//', $_SERVER["PHP_SELF"], $reg)) {
$res=@include "../../../dolibarr".$reg[1]."/htdocs/master.inc.php"; // Used on dev env only
}
if (! $res) {
die("Failed to include master.inc.php file\n");
}
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
@ -58,15 +74,13 @@ include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
$login=''; $login='';
$server=''; $server='';
if (preg_match('/^(.*)@(.*):(.*)$/', $sourceserver, $reg)) if (preg_match('/^(.*)@(.*):(.*)$/', $sourceserver, $reg)) {
{
$login=$reg[1]; $login=$reg[1];
$server=$reg[2]; $server=$reg[2];
$sourcefile=$reg[3]; $sourcefile=$reg[3];
$targetfile=basename($sourcefile); $targetfile=basename($sourcefile);
} }
if (empty($sourceserver) || empty($server) || empty($login) || empty($sourcefile) || empty($password) || empty($database) || empty($loginbase) || empty($passwordbase)) if (empty($sourceserver) || empty($server) || empty($login) || empty($sourcefile) || empty($password) || empty($database) || empty($loginbase) || empty($passwordbase)) {
{
print "Usage: $script_file login@server:/src/file.(sql|gz|bz2) passssh databaseserver databasename loginbase passbase\n"; print "Usage: $script_file login@server:/src/file.(sql|gz|bz2) passssh databaseserver databasename loginbase passbase\n";
print "Return code: 0 if success, <>0 if error\n"; print "Return code: 0 if success, <>0 if error\n";
print "Warning, this script may take a long time.\n"; print "Warning, this script may take a long time.\n";
@ -88,14 +102,11 @@ if (! function_exists("ssh2_connect")) {
} }
$connection = ssh2_connect($server, 22); $connection = ssh2_connect($server, 22);
if ($connection) if ($connection) {
{ if (! @ssh2_auth_password($connection, $login, $password)) {
if (! @ssh2_auth_password($connection, $login, $password))
{
dol_syslog("Could not authenticate with username ".$login." . and password ".preg_replace('/./', '*', $password), LOG_ERR); dol_syslog("Could not authenticate with username ".$login." . and password ".preg_replace('/./', '*', $password), LOG_ERR);
exit(-5); exit(-5);
} } else {
else {
//$stream = ssh2_exec($connection, '/usr/bin/php -i'); //$stream = ssh2_exec($connection, '/usr/bin/php -i');
/* /*
print "Generate dump ".$filesys1.'.bz2'."\n"; print "Generate dump ".$filesys1.'.bz2'."\n";
@ -111,12 +122,10 @@ if ($connection)
ssh2_scp_recv($connection, $sourcefile, $targetdir.$targetfile); ssh2_scp_recv($connection, $sourcefile, $targetdir.$targetfile);
$fullcommand="cat ".$targetdir.$targetfile." | mysql -h".$databaseserver." -u".$loginbase." -p".$passwordbase." -D ".$database; $fullcommand="cat ".$targetdir.$targetfile." | mysql -h".$databaseserver." -u".$loginbase." -p".$passwordbase." -D ".$database;
if (preg_match('/\.bz2$/', $targetfile)) if (preg_match('/\.bz2$/', $targetfile)) {
{
$fullcommand="bzip2 -c -d ".$targetdir.$targetfile." | mysql -h".$databaseserver." -u".$loginbase." -p".$passwordbase." -D ".$database; $fullcommand="bzip2 -c -d ".$targetdir.$targetfile." | mysql -h".$databaseserver." -u".$loginbase." -p".$passwordbase." -D ".$database;
} }
if (preg_match('/\.gz$/', $targetfile)) if (preg_match('/\.gz$/', $targetfile)) {
{
$fullcommand="gzip -d ".$targetdir.$targetfile." | mysql -h".$databaseserver." -u".$loginbase." -p".$passwordbase." -D ".$database; $fullcommand="gzip -d ".$targetdir.$targetfile." | mysql -h".$databaseserver." -u".$loginbase." -p".$passwordbase." -D ".$database;
} }
print "Load dump with ".$fullcommand."\n"; print "Load dump with ".$fullcommand."\n";
@ -124,13 +133,14 @@ if ($connection)
$return_var=0; $return_var=0;
print strftime("%Y%m%d-%H%M%S").' '.$fullcommand."\n"; print strftime("%Y%m%d-%H%M%S").' '.$fullcommand."\n";
exec($fullcommand, $output, $return_var); exec($fullcommand, $output, $return_var);
foreach ($output as $line) print $line."\n"; foreach ($output as $line) {
print $line."\n";
}
//ssh2_sftp_unlink($sftp, $fileinstalllock); //ssh2_sftp_unlink($sftp, $fileinstalllock);
//print $output; //print $output;
} }
} } else {
else {
print 'Failed to connect to ssh2 to '.$server; print 'Failed to connect to ssh2 to '.$server;
exit(-6); exit(-6);
} }

View File

@ -36,14 +36,30 @@ $confirm=isset($argv[1])?$argv[1]:'';
// Include Dolibarr environment // Include Dolibarr environment
$res=0; $res=0;
if (! $res && file_exists($path."../../master.inc.php")) $res=@include $path."../../master.inc.php"; if (! $res && file_exists($path."../../master.inc.php")) {
if (! $res && file_exists($path."../../htdocs/master.inc.php")) $res=@include $path."../../htdocs/master.inc.php"; $res=@include $path."../../master.inc.php";
if (! $res && file_exists("../master.inc.php")) $res=@include "../master.inc.php"; }
if (! $res && file_exists("../../master.inc.php")) $res=@include "../../master.inc.php"; if (! $res && file_exists($path."../../htdocs/master.inc.php")) {
if (! $res && file_exists("../../../master.inc.php")) $res=@include "../../../master.inc.php"; $res=@include $path."../../htdocs/master.inc.php";
if (! $res && preg_match('/\/nltechno([^\/]*)\//', $_SERVER["PHP_SELF"], $reg)) $res=@include $path."../../../dolibarr".$reg[1]."/htdocs/master.inc.php"; // Used on dev env only }
if (! $res && preg_match('/\/nltechno([^\/]*)\//', $_SERVER["PHP_SELF"], $reg)) $res=@include "../../../dolibarr".$reg[1]."/htdocs/master.inc.php"; // Used on dev env only if (! $res && file_exists("../master.inc.php")) {
if (! $res) die("Failed to include master.inc.php file\n"); $res=@include "../master.inc.php";
}
if (! $res && file_exists("../../master.inc.php")) {
$res=@include "../../master.inc.php";
}
if (! $res && file_exists("../../../master.inc.php")) {
$res=@include "../../../master.inc.php";
}
if (! $res && preg_match('/\/nltechno([^\/]*)\//', $_SERVER["PHP_SELF"], $reg)) {
$res=@include $path."../../../dolibarr".$reg[1]."/htdocs/master.inc.php"; // Used on dev env only
}
if (! $res && preg_match('/\/nltechno([^\/]*)\//', $_SERVER["PHP_SELF"], $reg)) {
$res=@include "../../../dolibarr".$reg[1]."/htdocs/master.inc.php"; // Used on dev env only
}
if (! $res) {
die("Failed to include master.inc.php file\n");
}
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
@ -53,8 +69,7 @@ include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
print "***** ".$script_file." *****\n"; print "***** ".$script_file." *****\n";
print "Update dates to current year for database name = ".$db->database_name."\n"; print "Update dates to current year for database name = ".$db->database_name."\n";
if (empty($confirm)) if (empty($confirm)) {
{
print "Usage: $script_file confirm\n"; print "Usage: $script_file confirm\n";
print "Return code: 0 if success, <>0 if error\n"; print "Return code: 0 if success, <>0 if error\n";
exit(-1); exit(-1);
@ -73,53 +88,52 @@ $tables=array(
'commande_fournisseur'=>array(0=>'date_commande', 1=>'date_valid', 3=>'date_creation', 4=>'date_approve', 5=>'date_approve2', 6=>'date_livraison'), 'commande_fournisseur'=>array(0=>'date_commande', 1=>'date_valid', 3=>'date_creation', 4=>'date_approve', 5=>'date_approve2', 6=>'date_livraison'),
'supplier_proposal'=>array(0=>'datec', 1=>'date_valid', 2=>'date_cloture'), 'supplier_proposal'=>array(0=>'datec', 1=>'date_valid', 2=>'date_cloture'),
'expensereport'=>array(0=>'date_debut', 1=>'date_fin', 2=>'date_create', 3=>'date_valid', 4=>'date_approve', 5=>'date_refuse', 6=>'date_cancel'), 'expensereport'=>array(0=>'date_debut', 1=>'date_fin', 2=>'date_create', 3=>'date_valid', 4=>'date_approve', 5=>'date_refuse', 6=>'date_cancel'),
'holiday'=>array(0=>'date_debut', 1=>'date_fin', 2=>'date_create', 3=>'date_valid', 5=>'date_refuse', 6=>'date_cancel') 'holiday'=>array(0=>'date_debut', 1=>'date_fin', 2=>'date_create', 3=>'date_valid', 5=>'date_refuse', 6=>'date_cancel'),
'ticket'=>array(0=>'datec', 1=>'date_read', 2=>'date_close')
); );
$year=2010; $year=2010;
$currentyear=$tmp['year']; $currentyear=$tmp['year'];
while ($year <= $currentyear) while ($year <= $currentyear) {
{
//$year=2021; //$year=2021;
$delta1=($currentyear - $year); $delta1=($currentyear - $year);
$delta2=($currentyear - $year - 1); $delta2=($currentyear - $year - 1);
//$delta=-1; //$delta=-1;
if ($delta1) if ($delta1) {
{ foreach ($tables as $tablekey => $tableval) {
foreach ($tables as $tablekey => $tableval)
{
print "Correct ".$tablekey." for year ".$year." and move them to current year ".$currentyear." "; print "Correct ".$tablekey." for year ".$year." and move them to current year ".$currentyear." ";
$sql="select rowid from ".MAIN_DB_PREFIX.$tablekey." where ".$tableval[0]." between '".$year."-01-01' and '".$year."-12-31' and ".$tableval[0]." < DATE_ADD(NOW(), INTERVAL -1 YEAR)"; $sql="select rowid from ".MAIN_DB_PREFIX.$tablekey." where ".$tableval[0]." between '".$year."-01-01' and '".$year."-12-31' and ".$tableval[0]." < DATE_ADD(NOW(), INTERVAL -1 YEAR)";
//$sql="select rowid from ".MAIN_DB_PREFIX.$tablekey." where ".$tableval[0]." between '".$year."-01-01' and '".$year."-12-31' and ".$tableval[0]." > NOW()"; //$sql="select rowid from ".MAIN_DB_PREFIX.$tablekey." where ".$tableval[0]." between '".$year."-01-01' and '".$year."-12-31' and ".$tableval[0]." > NOW()";
$resql = $db->query($sql); $resql = $db->query($sql);
if ($resql) if ($resql) {
{
$num = $db->num_rows($resql); $num = $db->num_rows($resql);
$i=0; $i=0;
while ($i < $num) while ($i < $num) {
{
$obj=$db->fetch_object($resql); $obj=$db->fetch_object($resql);
if ($obj) if ($obj) {
{
print "."; print ".";
$sql2="UPDATE ".MAIN_DB_PREFIX.$tablekey." set "; $sql2="UPDATE ".MAIN_DB_PREFIX.$tablekey." set ";
$j=0; $j=0;
foreach ($tableval as $field) foreach ($tableval as $field) {
{ if ($j) {
if ($j) $sql2.=", "; $sql2.=", ";
}
$sql2.= $field." = ".$db->ifsql("DATE_ADD(".$field.", INTERVAL ".$delta1." YEAR) > NOW()", "DATE_ADD(".$field.", INTERVAL ".$delta2." YEAR)", "DATE_ADD(".$field.", INTERVAL ".$delta1." YEAR)"); $sql2.= $field." = ".$db->ifsql("DATE_ADD(".$field.", INTERVAL ".$delta1." YEAR) > NOW()", "DATE_ADD(".$field.", INTERVAL ".$delta2." YEAR)", "DATE_ADD(".$field.", INTERVAL ".$delta1." YEAR)");
$j++; $j++;
} }
$sql2.=" WHERE rowid = ".$obj->rowid; $sql2.=" WHERE rowid = ".$obj->rowid;
//print $sql2."\n"; //print $sql2."\n";
$resql2 = $db->query($sql2); $resql2 = $db->query($sql2);
if (! $resql2) dol_print_error($db); if (! $resql2) {
dol_print_error($db);
}
} }
$i++; $i++;
} }
} else {
dol_print_error($db);
} }
else dol_print_error($db);
print "\n"; print "\n";
} }
} }

View File

@ -7,7 +7,7 @@
<exclude-pattern type="relative">build/html</exclude-pattern> <exclude-pattern type="relative">build/html</exclude-pattern>
<exclude-pattern type="relative">build/aps</exclude-pattern> <exclude-pattern type="relative">build/aps</exclude-pattern>
<exclude-pattern type="relative">dev/tools/test/namespacemig</exclude-pattern> <exclude-pattern type="relative">dev/tools/test/namespacemig</exclude-pattern>
<exclude-pattern type="relative">dev/initdata/dbf/includes</exclude-pattern> <!-- <exclude-pattern type="relative">dev/initdata/dbf/includes</exclude-pattern> -->
<exclude-pattern type="relative">documents</exclude-pattern> <exclude-pattern type="relative">documents</exclude-pattern>
<exclude-pattern type="relative">htdocs/core/class/lessc.class.php</exclude-pattern> <exclude-pattern type="relative">htdocs/core/class/lessc.class.php</exclude-pattern>
<exclude-pattern type="relative">htdocs/custom</exclude-pattern> <exclude-pattern type="relative">htdocs/custom</exclude-pattern>
@ -104,9 +104,9 @@
</rule> </rule>
--> -->
<!-- We want to allow 'if () { ...small code... }' on same line for better code compacity and readability --> <!-- We want to allow 'if () { ...small code... }' on same line for better code compacity and readability -->
<rule ref="Generic.Formatting.DisallowMultipleStatements"> <!-- <rule ref="Generic.Formatting.DisallowMultipleStatements">
<severity>0</severity> <severity>0</severity>
</rule> </rule> -->
<!-- Check assignement have the = align on each line. Have 20 chars padding maximum and always show as errors --> <!-- Check assignement have the = align on each line. Have 20 chars padding maximum and always show as errors -->
@ -174,8 +174,8 @@
<rule ref="Generic.Strings.UnnecessaryStringConcat.Found"> <rule ref="Generic.Strings.UnnecessaryStringConcat.Found">
</rule> </rule>
<!-- Disallow usage of tab --> <!-- Disallow usage of space -->
<!-- <rule ref="Generic.WhiteSpace.DisallowTabIndent" /> --> <rule ref="Generic.WhiteSpace.DisallowSpaceIndent" />
<!-- Check indent are done with spaces and with correct number --> <!-- Check indent are done with spaces and with correct number -->
<!-- Disabled as this does not support tab --> <!-- Disabled as this does not support tab -->
@ -214,8 +214,8 @@
<rule ref="Squiz.WhiteSpace.ControlStructureSpacing.SpacingAfterOpen" /> <rule ref="Squiz.WhiteSpace.ControlStructureSpacing.SpacingAfterOpen" />
<rule ref="Squiz.WhiteSpace.ControlStructureSpacing.SpacingBeforeClose" /> <rule ref="Squiz.WhiteSpace.ControlStructureSpacing.SpacingBeforeClose" />
<!-- <rule ref="Squiz.ControlStructures.ControlSignature.SpaceAfterCloseParenthesis" /> --> <rule ref="Squiz.ControlStructures.ControlSignature.SpaceAfterCloseParenthesis" />
<!-- <rule ref="Squiz.ControlStructures.ControlSignature.SpaceAfterCloseBrace" /> --> <rule ref="Squiz.ControlStructures.ControlSignature.SpaceAfterCloseBrace" />
<rule ref="Squiz.ControlStructures.ControlSignature.SpaceAfterKeyword" /> <rule ref="Squiz.ControlStructures.ControlSignature.SpaceAfterKeyword" />
<rule ref="Squiz.ControlStructures.ForEachLoopDeclaration.SpaceAfterOpen" /> <rule ref="Squiz.ControlStructures.ForEachLoopDeclaration.SpaceAfterOpen" />

View File

@ -48,8 +48,9 @@ if (! ($argv[1] && $argv[2])) {
echo "Usage: php pg2mysql_cli.php <inputfilename> <outputfilename> [engine]\n"; echo "Usage: php pg2mysql_cli.php <inputfilename> <outputfilename> [engine]\n";
exit(); exit();
} else { } else {
if (isset($argv[3])) if (isset($argv[3])) {
$config['engine'] = $argv[3]; $config['engine'] = $argv[3];
}
pg2mysql_large($argv[1], $argv[2]); pg2mysql_large($argv[1], $argv[2]);
echo <<<XHTML echo <<<XHTML
@ -74,14 +75,18 @@ function getfieldname($l)
// first check if its in nice quotes for us // first check if its in nice quotes for us
$regs = array(); $regs = array();
if (preg_match("/`(.*)`/", $l, $regs)) { if (preg_match("/`(.*)`/", $l, $regs)) {
if ($regs[1]) if ($regs[1]) {
return $regs[1]; return $regs[1];
else return null; } else {
} // if its not in quotes, then it should (we hope!) be the first "word" on the line, up to the first space. return null;
elseif (preg_match("/([^\ ]*)/", trim($l), $regs)) { }
if ($regs[1]) } elseif (preg_match("/([^\ ]*)/", trim($l), $regs)) {
// if its not in quotes, then it should (we hope!) be the first "word" on the line, up to the first space.
if ($regs[1]) {
return $regs[1]; return $regs[1];
else return null; } else {
return null;
}
} }
} }
@ -94,13 +99,15 @@ function getfieldname($l)
*/ */
function formatsize($s) function formatsize($s)
{ {
if ($s < pow(2, 14)) if ($s < pow(2, 14)) {
return "{$s}B"; return "{$s}B";
elseif ($s < pow(2, 20)) } elseif ($s < pow(2, 20)) {
return sprintf("%.1f", round($s / 1024, 1)) . "K"; return sprintf("%.1f", round($s / 1024, 1)) . "K";
elseif ($s < pow(2, 30)) } elseif ($s < pow(2, 30)) {
return sprintf("%.1f", round($s / 1024 / 1024, 1)) . "M"; return sprintf("%.1f", round($s / 1024 / 1024, 1)) . "M";
else return sprintf("%.1f", round($s / 1024 / 1024 / 1024, 1)) . "G"; } else {
return sprintf("%.1f", round($s / 1024 / 1024 / 1024, 1)) . "G";
}
} }
/** /**
@ -141,9 +148,11 @@ function pg2mysql_large($infilename, $outfilename)
$c = substr_count($instr, "'"); $c = substr_count($instr, "'");
// we have an odd number of ' marks // we have an odd number of ' marks
if ($c % 2 != 0) { if ($c % 2 != 0) {
if ($inquotes) if ($inquotes) {
$inquotes = false; $inquotes = false;
else $inquotes = true; } else {
$inquotes = true;
}
} }
if ($linenum % 10000 == 0) { if ($linenum % 10000 == 0) {
@ -323,9 +332,11 @@ function pg2mysql(&$input, &$arrayofprimaryalreadyintabledef, $header = true)
$line = str_replace(" bool DEFAULT false", " bool DEFAULT 0", $line); $line = str_replace(" bool DEFAULT false", " bool DEFAULT 0", $line);
if (preg_match("/ character varying\(([0-9]*)\)/", $line, $regs)) { if (preg_match("/ character varying\(([0-9]*)\)/", $line, $regs)) {
$num = $regs[1]; $num = $regs[1];
if ($num <= 255) if ($num <= 255) {
$line = preg_replace("/ character varying\([0-9]*\)/", " varchar($num)", $line); $line = preg_replace("/ character varying\([0-9]*\)/", " varchar($num)", $line);
else $line = preg_replace("/ character varying\([0-9]*\)/", " text", $line); } else {
$line = preg_replace("/ character varying\([0-9]*\)/", " text", $line);
}
} }
// character varying with no size, we will default to varchar(255) // character varying with no size, we will default to varchar(255)
if (preg_match("/ character varying/", $line)) { if (preg_match("/ character varying/", $line)) {
@ -345,9 +356,11 @@ function pg2mysql(&$input, &$arrayofprimaryalreadyintabledef, $header = true)
$line = preg_replace("/::.*$/", "\n", $line); $line = preg_replace("/::.*$/", "\n", $line);
if (preg_match("/character\(([0-9]*)\)/", $line, $regs)) { if (preg_match("/character\(([0-9]*)\)/", $line, $regs)) {
$num = $regs[1]; $num = $regs[1];
if ($num <= 255) if ($num <= 255) {
$line = preg_replace("/ character\([0-9]*\)/", " varchar($num)", $line); $line = preg_replace("/ character\([0-9]*\)/", " varchar($num)", $line);
else $line = preg_replace("/ character\([0-9]*\)/", " text", $line); } else {
$line = preg_replace("/ character\([0-9]*\)/", " text", $line);
}
} }
// timestamps // timestamps
$line = str_replace(" timestamp with time zone", " datetime", $line); $line = str_replace(" timestamp with time zone", " datetime", $line);
@ -457,9 +470,11 @@ function pg2mysql(&$input, &$arrayofprimaryalreadyintabledef, $header = true)
$c = substr_count($line, "'"); $c = substr_count($line, "'");
// we have an odd number of ' marks // we have an odd number of ' marks
if ($c % 2 != 0) { if ($c % 2 != 0) {
if ($inquotes) if ($inquotes) {
$inquotes = false; $inquotes = false;
else $inquotes = true; } else {
$inquotes = true;
}
// echo "inquotes=$inquotes\n"; // echo "inquotes=$inquotes\n";
} }
} while (substr($lines[$linenumber], - 3, - 1) != ");" || $inquotes); } while (substr($lines[$linenumber], - 3, - 1) != ");" || $inquotes);
@ -524,8 +539,9 @@ function pg2mysql(&$input, &$arrayofprimaryalreadyintabledef, $header = true)
} }
} }
if (substr($line, 0, 13) == 'DROP DATABASE') if (substr($line, 0, 13) == 'DROP DATABASE') {
$output .= $line; $output .= $line;
}
if (substr($line, 0, 15) == 'CREATE DATABASE') { if (substr($line, 0, 15) == 'CREATE DATABASE') {
$matches = array(); $matches = array();

View File

@ -4,6 +4,7 @@
use Dolibarr\Aaa as Aaa; use Dolibarr\Aaa as Aaa;
use function Dolibarr\faaa as faaa; // Need php 5.6+ use function Dolibarr\faaa as faaa; // Need php 5.6+
//use const Dolibarr\AAA; //use const Dolibarr\AAA;
//use Bbb as Bbb; //use Bbb as Bbb;

View File

@ -3,10 +3,11 @@
$a = microtime(true); $a = microtime(true);
$i = 0; $i = 0;
while ($i < 1000000) while ($i < 1000000) {
{
$key = '1234567890111213141516171819'.$i; $key = '1234567890111213141516171819'.$i;
if ($i == 1000) $key = 'MAIN_MODULE_AAAAAiiiiiiiiiiiiiiiiiiiiiiiiiiiii'; if ($i == 1000) {
$key = 'MAIN_MODULE_AAAAAiiiiiiiiiiiiiiiiiiiiiiiiiiiii';
}
//if (preg_match('/^MAIN_MODULE_/', $key)) { //if (preg_match('/^MAIN_MODULE_/', $key)) {
//if (substr($key, 0, 12) == 'MAIN_MODULE_') { //if (substr($key, 0, 12) == 'MAIN_MODULE_') {

View File

@ -89,8 +89,8 @@ $pdf->SetKeywords('TCPDF, PDF, example, test, guide');
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 016', PDF_HEADER_STRING); $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 016', PDF_HEADER_STRING);
// set header and footer fonts // set header and footer fonts
$pdf->setHeaderFont(Array('helvetica', '', PDF_FONT_SIZE_MAIN)); $pdf->setHeaderFont(array('helvetica', '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array('helvetica', '', PDF_FONT_SIZE_DATA)); $pdf->setFooterFont(array('helvetica', '', PDF_FONT_SIZE_DATA));
// set default monospaced font // set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

View File

@ -64,8 +64,8 @@ $pdf->SetKeywords('TCPDF, PDF, example, test, guide');
$pdf->SetHeaderData('', PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 038', PDF_HEADER_STRING); $pdf->SetHeaderData('', PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 038', PDF_HEADER_STRING);
// set header and footer fonts // set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); $pdf->setHeaderFont(array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); $pdf->setFooterFont(array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
// set default monospaced font // set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

View File

@ -77,9 +77,10 @@ class autoTranslator
$files = $this->getTranslationFilesArray($this->_refLang); $files = $this->getTranslationFilesArray($this->_refLang);
$counter = 1; $counter = 1;
foreach ($files as $file) foreach ($files as $file) {
{ if ($this->_limittofile && $this->_limittofile != $file) {
if ($this->_limittofile && $this->_limittofile != $file) continue; continue;
}
$counter++; $counter++;
$fileContent = null; $fileContent = null;
$refPath = $this->_langDir.$this->_refLang.self::DIR_SEPARATOR.$file; $refPath = $this->_langDir.$this->_refLang.self::DIR_SEPARATOR.$file;
@ -88,54 +89,66 @@ class autoTranslator
// Define target dirs // Define target dirs
$targetlangs=array($this->_destlang); $targetlangs=array($this->_destlang);
if ($this->_destlang == 'all') if ($this->_destlang == 'all') {
{
$targetlangs=array(); $targetlangs=array();
// If we must process all languages // If we must process all languages
$arraytmp=dol_dir_list($this->_langDir, 'directories', 0); $arraytmp=dol_dir_list($this->_langDir, 'directories', 0);
foreach ($arraytmp as $dirtmp) foreach ($arraytmp as $dirtmp) {
{ if ($dirtmp['name'] === $this->_refLang) {
if ($dirtmp['name'] === $this->_refLang) continue; // We discard source language continue; // We discard source language
}
$tmppart=explode('_', $dirtmp['name']); $tmppart=explode('_', $dirtmp['name']);
if (preg_match('/^en/i', $dirtmp['name'])) continue; // We discard en_* languages if (preg_match('/^en/i', $dirtmp['name'])) {
if (preg_match('/^fr/i', $dirtmp['name'])) continue; // We discard fr_* languages continue; // We discard en_* languages
if (preg_match('/^es/i', $dirtmp['name'])) continue; // We discard es_* languages }
if (preg_match('/ca_ES/i', $dirtmp['name'])) continue; // We discard es_CA language if (preg_match('/^fr/i', $dirtmp['name'])) {
if (preg_match('/pt_BR/i', $dirtmp['name'])) continue; // We discard pt_BR language continue; // We discard fr_* languages
if (preg_match('/nl_BE/i', $dirtmp['name'])) continue; // We discard nl_BE language }
if (preg_match('/^\./i', $dirtmp['name'])) continue; // We discard files .* if (preg_match('/^es/i', $dirtmp['name'])) {
if (preg_match('/^CVS/i', $dirtmp['name'])) continue; // We discard CVS continue; // We discard es_* languages
}
if (preg_match('/ca_ES/i', $dirtmp['name'])) {
continue; // We discard es_CA language
}
if (preg_match('/pt_BR/i', $dirtmp['name'])) {
continue; // We discard pt_BR language
}
if (preg_match('/nl_BE/i', $dirtmp['name'])) {
continue; // We discard nl_BE language
}
if (preg_match('/^\./i', $dirtmp['name'])) {
continue; // We discard files .*
}
if (preg_match('/^CVS/i', $dirtmp['name'])) {
continue; // We discard CVS
}
$targetlangs[]=$dirtmp['name']; $targetlangs[]=$dirtmp['name'];
} }
//var_dump($targetlangs); //var_dump($targetlangs);
} }
// Process translation of source file for each target languages // Process translation of source file for each target languages
foreach ($targetlangs as $my_destlang) foreach ($targetlangs as $my_destlang) {
{
$this->_translatedFiles = array(); $this->_translatedFiles = array();
$destPath = $this->_langDir.$my_destlang.self::DIR_SEPARATOR.$file; $destPath = $this->_langDir.$my_destlang.self::DIR_SEPARATOR.$file;
// Check destination file presence // Check destination file presence
if (! file_exists($destPath)) if (! file_exists($destPath)) {
{
// No file present, we generate file // No file present, we generate file
echo "File not found: " . $destPath . ". We generate it.<br>\n"; echo "File not found: " . $destPath . ". We generate it.<br>\n";
$this->createTranslationFile($destPath, $my_destlang); $this->createTranslationFile($destPath, $my_destlang);
} } else {
else {
echo "Updating file: " . $destPath . "<br>\n"; echo "Updating file: " . $destPath . "<br>\n";
} }
// Translate lines // Translate lines
$fileContentDest = file($destPath, FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES); $fileContentDest = file($destPath, FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
$newlines=0; $newlines=0;
foreach ($fileContent as $line){ foreach ($fileContent as $line) {
$key = $this->getLineKey($line); $key = $this->getLineKey($line);
$value = $this->getLineValue($line); $value = $this->getLineValue($line);
if ($key && $value) if ($key && $value) {
{
$newlines+=$this->translateFileLine($fileContentDest, $file, $key, $value, $my_destlang); $newlines+=$this->translateFileLine($fileContentDest, $file, $key, $value, $my_destlang);
} }
} }
@ -159,8 +172,7 @@ class autoTranslator
{ {
$this->_time_end = date('Y-m-d H:i:s'); $this->_time_end = date('Y-m-d H:i:s');
if (isset($this->_translatedFiles[$file]) && count($this->_translatedFiles[$file])>0) if (isset($this->_translatedFiles[$file]) && count($this->_translatedFiles[$file])>0) {
{
$fp = fopen($destPath, 'a'); $fp = fopen($destPath, 'a');
fwrite($fp, "\n"); fwrite($fp, "\n");
fwrite($fp, "\n"); fwrite($fp, "\n");
@ -213,8 +225,7 @@ class autoTranslator
$destValue = $this->getLineValue($line); $destValue = $this->getLineValue($line);
// If translated return // If translated return
//print "destKey=".$destKey."\n"; //print "destKey=".$destKey."\n";
if ( trim($destKey) == trim($key) ) if (trim($destKey) == trim($key)) { // Found already existing translation (key already exits in dest file)
{ // Found already existing translation (key already exits in dest file)
return 0; return 0;
} }
} }
@ -227,13 +238,18 @@ class autoTranslator
$val=$value; $val=$value;
} else { } else {
// If not translated then translate // If not translated then translate
if ($this->_outputpagecode == 'UTF-8') $val=$this->translateTexts(array($value), substr($this->_refLang, 0, 2), substr($my_destlang, 0, 2)); if ($this->_outputpagecode == 'UTF-8') {
else $val=utf8_decode($this->translateTexts(array($value), substr($this->_refLang, 0, 2), substr($my_destlang, 0, 2))); $val=$this->translateTexts(array($value), substr($this->_refLang, 0, 2), substr($my_destlang, 0, 2));
} else {
$val=utf8_decode($this->translateTexts(array($value), substr($this->_refLang, 0, 2), substr($my_destlang, 0, 2)));
}
} }
$val=trim($val); $val=trim($val);
if (empty($val)) return 0; if (empty($val)) {
return 0;
}
$this->_translatedFiles[$file][] = $key . '=' . $val ; $this->_translatedFiles[$file][] = $key . '=' . $val ;
return 1; return 1;
@ -293,9 +309,13 @@ class autoTranslator
{ {
// We want to be sure that src_lang and dest_lang are using 2 chars only // We want to be sure that src_lang and dest_lang are using 2 chars only
$tmp=explode('_', $src_lang); $tmp=explode('_', $src_lang);
if (! empty($tmp[1]) && $tmp[0] == $tmp[1]) $src_lang=$tmp[0]; if (! empty($tmp[1]) && $tmp[0] == $tmp[1]) {
$src_lang=$tmp[0];
}
$tmp=explode('_', $dest_lang); $tmp=explode('_', $dest_lang);
if (! empty($tmp[1]) && $tmp[0] == $tmp[1]) $dest_lang=$tmp[0]; if (! empty($tmp[1]) && $tmp[0] == $tmp[1]) {
$dest_lang=$tmp[0];
}
//setting language pair //setting language pair
$lang_pair = $src_lang.'|'.$dest_lang; $lang_pair = $src_lang.'|'.$dest_lang;
@ -313,8 +333,7 @@ class autoTranslator
// Send request // Send request
//print "Url to translate: ".$url."\n"; //print "Url to translate: ".$url."\n";
if (! function_exists("curl_init")) if (! function_exists("curl_init")) {
{
print "Error, your PHP does not support curl functions.\n"; print "Error, your PHP does not support curl functions.\n";
die(); die();
} }
@ -331,8 +350,7 @@ class autoTranslator
$json = json_decode($body, true); $json = json_decode($body, true);
if ((! empty($json['responseStatus']) && $json['responseStatus'] != 200) if ((! empty($json['responseStatus']) && $json['responseStatus'] != 200)
|| count($json['data']['translations']) == 0) || count($json['data']['translations']) == 0) {
{
print "Error: ".$json['responseStatus']." ".$url."\n"; print "Error: ".$json['responseStatus']." ".$url."\n";
return false; return false;
} }

View File

@ -67,21 +67,17 @@ print 'Argument 1='.$argv[1]."\n";
print 'Argument 2='.$argv[2]."\n"; print 'Argument 2='.$argv[2]."\n";
print 'Argument 3='.$argv[3]."\n"; print 'Argument 3='.$argv[3]."\n";
$file=''; $file='';
if (isset($argv[4])) if (isset($argv[4])) {
{
$file=$argv[4]; $file=$argv[4];
print 'Argument 4='.$argv[4]."\n"; print 'Argument 4='.$argv[4]."\n";
} }
print 'Files will be generated/updated in directory '.$dir."\n"; print 'Files will be generated/updated in directory '.$dir."\n";
if ($argv[2] != 'all') if ($argv[2] != 'all') {
{ if (! is_dir($dir.'/'.$argv[2])) {
if (! is_dir($dir.'/'.$argv[2]))
{
print 'Create directory '.$dir.'/'.$argv[2]."\n"; print 'Create directory '.$dir.'/'.$argv[2]."\n";
$result=mkdir($dir.'/'.$argv[2]); $result=mkdir($dir.'/'.$argv[2]);
if (! $result) if (! $result) {
{
$db->close(); $db->close();
return -1; return -1;
} }

View File

@ -25,14 +25,12 @@ $path=dirname(__FILE__).'/';
$web=0; $web=0;
// Test if batch mode // Test if batch mode
if (substr($sapi_type, 0, 3) == 'cgi') if (substr($sapi_type, 0, 3) == 'cgi') {
{
$web=1; $web=1;
} }
if ($web) if ($web) {
{
echo "<html>"; echo "<html>";
echo "<head>"; echo "<head>";
@ -87,9 +85,13 @@ if ($web)
} }
echo "If you call this with argument \"unused=true\" it searches for the translation strings that exist in en_US but are never used.\n"; echo "If you call this with argument \"unused=true\" it searches for the translation strings that exist in en_US but are never used.\n";
if ($web) print "<br>"; if ($web) {
print "<br>";
}
echo "IMPORTANT: that can take quite a lot of time (up to 10 minutes), you need to tune the max_execution_time on your php.ini accordingly.\n"; echo "IMPORTANT: that can take quite a lot of time (up to 10 minutes), you need to tune the max_execution_time on your php.ini accordingly.\n";
if ($web) print "<br>"; if ($web) {
print "<br>";
}
@ -105,8 +107,7 @@ $workdir = $htdocs."langs/en_US/";
$files = scandir($workdir); $files = scandir($workdir);
if (empty($files)) if (empty($files)) {
{
echo "Can't scan workdir = ".$workdir; echo "Can't scan workdir = ".$workdir;
exit; exit;
} }
@ -115,18 +116,17 @@ $dups=array();
$exludefiles = array('.','..','README'); $exludefiles = array('.','..','README');
$files = array_diff($files, $exludefiles); $files = array_diff($files, $exludefiles);
// To force a file: $files=array('myfile.lang'); // To force a file: $files=array('myfile.lang');
if (isset($argv[2])) if (isset($argv[2])) {
{
$files = array($argv[2]); $files = array($argv[2]);
} }
$langstrings_3d = array(); $langstrings_3d = array();
$langstrings_full = array(); $langstrings_full = array();
foreach ($files AS $file) { foreach ($files as $file) {
$path_file = pathinfo($file); $path_file = pathinfo($file);
// we're only interested in .lang files // we're only interested in .lang files
if ($path_file['extension']=='lang') { if ($path_file['extension']=='lang') {
$content = file($workdir.$file); $content = file($workdir.$file);
foreach ($content AS $line => $row) { foreach ($content as $line => $row) {
// don't want comment lines // don't want comment lines
if (substr($row, 0, 1) !== '#') { if (substr($row, 0, 1) !== '#') {
// don't want lines without the separator (why should those even be here, anyway...) // don't want lines without the separator (why should those even be here, anyway...)
@ -142,26 +142,26 @@ foreach ($files AS $file) {
} }
} }
foreach ($langstrings_3d AS $filename => $file) foreach ($langstrings_3d as $filename => $file) {
{ foreach ($file as $linenum => $value) {
foreach ($file AS $linenum => $value)
{
$keys = array_keys($langstrings_full, $value); $keys = array_keys($langstrings_full, $value);
if (count($keys)>1) if (count($keys)>1) {
{ foreach ($keys as $key) {
foreach ($keys AS $key) {
$dups[$value][$filename][$linenum] = trim($langstrings_3dtrans[$filename][$linenum]); $dups[$value][$filename][$linenum] = trim($langstrings_3dtrans[$filename][$linenum]);
} }
} }
} }
} }
if ($web) print "<h2>"; if ($web) {
print "<h2>";
}
print "Duplicate strings in lang files in $workdir - ".count($dups)." found\n"; print "Duplicate strings in lang files in $workdir - ".count($dups)." found\n";
if ($web) print "</h2>"; if ($web) {
print "</h2>";
}
if ($web) if ($web) {
{
echo '<table border_bottom="1">'."\n"; echo '<table border_bottom="1">'."\n";
echo "<thead><tr><th align=\"center\">#</th><th>String</th><th>File and lines</th></thead>\n"; echo "<thead><tr><th align=\"center\">#</th><th>String</th><th>File and lines</th></thead>\n";
echo "<tbody>\n"; echo "<tbody>\n";
@ -173,75 +173,126 @@ $sininstallandadmin='';
$sother=''; $sother='';
$count = 0; $count = 0;
foreach ($dups as $string => $pages) foreach ($dups as $string => $pages) {
{
$count++; $count++;
$s=''; $s='';
// Keyword $string // Keyword $string
if ($web) $s.="<tr>"; if ($web) {
if ($web) $s.="<td align=\"center\">"; $s.="<tr>";
if ($web) $s.=$count; }
if ($web) $s.="</td>"; if ($web) {
if ($web) $s.="<td>"; $s.="<td align=\"center\">";
}
if ($web) {
$s.=$count;
}
if ($web) {
$s.="</td>";
}
if ($web) {
$s.="<td>";
}
$s.=$string; $s.=$string;
if ($web) $s.="</td>"; if ($web) {
if ($web) $s.="<td>"; $s.="</td>";
if (! $web) $s.= ' : '; }
if ($web) {
$s.="<td>";
}
if (! $web) {
$s.= ' : ';
}
// Loop on each files keyword was found // Loop on each files keyword was found
$duplicateinsamefile=0; $duplicateinsamefile=0;
$inmain=0; $inmain=0;
$inadmin=0; $inadmin=0;
foreach ($pages AS $file => $lines) foreach ($pages as $file => $lines) {
{ if ($file == 'main.lang') {
if ($file == 'main.lang') { $inmain=1; $inadmin=0; } $inmain=1; $inadmin=0;
if ($file == 'admin.lang' && ! $inmain) { $inadmin=1; } }
if ($file == 'admin.lang' && ! $inmain) {
$inadmin=1;
}
$s.=$file." "; $s.=$file." ";
// Loop on each line keword was found into file. // Loop on each line keword was found into file.
$listoffilesforthisentry=array(); $listoffilesforthisentry=array();
foreach ($lines as $line => $translatedvalue) foreach ($lines as $line => $translatedvalue) {
{ if (! empty($listoffilesforthisentry[$file])) {
if (! empty($listoffilesforthisentry[$file])) $duplicateinsamefile=1; $duplicateinsamefile=1;
}
$listoffilesforthisentry[$file]=1; $listoffilesforthisentry[$file]=1;
$s.= "(".$line." - ".htmlentities($translatedvalue).") "; $s.= "(".$line." - ".htmlentities($translatedvalue).") ";
} }
if ($web) $s.="<br>"; if ($web) {
$s.="<br>";
}
}
if ($web) {
$s.="</td></tr>";
} }
if ($web) $s.="</td></tr>";
$s.="\n"; $s.="\n";
if ($duplicateinsamefile) $sduplicateinsamefile .= $s; if ($duplicateinsamefile) {
elseif ($inmain) $sinmainandother .= $s; $sduplicateinsamefile .= $s;
elseif ($inadmin) $sininstallandadmin .= $s; } elseif ($inmain) {
else $sother .= $s; $sinmainandother .= $s;
} elseif ($inadmin) {
$sininstallandadmin .= $s;
} else {
$sother .= $s;
}
} }
if (! $web) print "\n***** Entries duplicated in same file\n"; if (! $web) {
print "\n***** Entries duplicated in same file\n";
}
print $sduplicateinsamefile; print $sduplicateinsamefile;
if (! $web && empty($sduplicateinsamefile)) print "None\n"; if (! $web && empty($sduplicateinsamefile)) {
if (! $web) print "\n"; print "None\n";
}
if (! $web) {
print "\n";
}
if (! $web) print "***** Entries in main and another (keep only entry in main)\n"; if (! $web) {
print "***** Entries in main and another (keep only entry in main)\n";
}
print $sinmainandother; print $sinmainandother;
if (! $web && empty($sinmainandother)) print "None\n"; if (! $web && empty($sinmainandother)) {
if (! $web) print "\n"; print "None\n";
}
if (! $web) {
print "\n";
}
if (! $web) print "***** Entries in admin and another\n"; if (! $web) {
print "***** Entries in admin and another\n";
}
print $sininstallandadmin; print $sininstallandadmin;
if (! $web && empty($sininstallandadmin)) print "None\n"; if (! $web && empty($sininstallandadmin)) {
if (! $web) print "\n"; print "None\n";
}
if (! $web) {
print "\n";
}
if (! $web) print "***** Other\n"; if (! $web) {
print "***** Other\n";
}
print $sother; print $sother;
if (! $web && empty($sother)) print "None\n"; if (! $web && empty($sother)) {
if (! $web) print "\n"; print "None\n";
}
if (! $web) {
print "\n";
}
if ($web) if ($web) {
{
echo "</tbody>\n"; echo "</tbody>\n";
echo "</table>\n"; echo "</table>\n";
} }
@ -249,105 +300,254 @@ if ($web)
// STEP 2 - Search key not used // STEP 2 - Search key not used
if ((! empty($_REQUEST['unused']) && $_REQUEST['unused'] == 'true') || (isset($argv[1]) && $argv[1]=='unused=true')) if ((! empty($_REQUEST['unused']) && $_REQUEST['unused'] == 'true') || (isset($argv[1]) && $argv[1]=='unused=true')) {
{
print "***** Strings in en_US that are never used:\n"; print "***** Strings in en_US that are never used:\n";
$unused=array(); $unused=array();
foreach ($langstrings_dist AS $value => $line) foreach ($langstrings_dist as $value => $line) {
{
$qualifiedforclean=1; $qualifiedforclean=1;
// Check if we must keep this key to be into file for removal // Check if we must keep this key to be into file for removal
if (preg_match('/^Module\d+/', $value)) $qualifiedforclean=0; if (preg_match('/^Module\d+/', $value)) {
if (preg_match('/^Permission\d+/', $value)) $qualifiedforclean=0; $qualifiedforclean=0;
if (preg_match('/^PermissionAdvanced\d+/', $value)) $qualifiedforclean=0; }
if (preg_match('/^ProfId\d+/', $value)) $qualifiedforclean=0; if (preg_match('/^Permission\d+/', $value)) {
if (preg_match('/^Delays_/', $value)) $qualifiedforclean=0; $qualifiedforclean=0;
if (preg_match('/^BarcodeDesc/', $value)) $qualifiedforclean=0; }
if (preg_match('/^Extrafield/', $value)) $qualifiedforclean=0; if (preg_match('/^PermissionAdvanced\d+/', $value)) {
if (preg_match('/^LocalTax/', $value)) $qualifiedforclean=0; $qualifiedforclean=0;
if (preg_match('/^Country/', $value)) $qualifiedforclean=0; }
if (preg_match('/^Civility/', $value)) $qualifiedforclean=0; if (preg_match('/^ProfId\d+/', $value)) {
if (preg_match('/^Currency/', $value)) $qualifiedforclean=0; $qualifiedforclean=0;
if (preg_match('/^DemandReasonTypeSRC/', $value)) $qualifiedforclean=0; }
if (preg_match('/^PaperFormat/', $value)) $qualifiedforclean=0; if (preg_match('/^Delays_/', $value)) {
if (preg_match('/^Duration/', $value)) $qualifiedforclean=0; $qualifiedforclean=0;
if (preg_match('/^AmountLT/', $value)) $qualifiedforclean=0; }
if (preg_match('/^TotalLT/', $value)) $qualifiedforclean=0; if (preg_match('/^BarcodeDesc/', $value)) {
if (preg_match('/^Month/', $value)) $qualifiedforclean=0; $qualifiedforclean=0;
if (preg_match('/^MonthShort/', $value)) $qualifiedforclean=0; }
if (preg_match('/^Day\d/', $value)) $qualifiedforclean=0; if (preg_match('/^Extrafield/', $value)) {
if (preg_match('/^Short/', $value)) $qualifiedforclean=0; $qualifiedforclean=0;
if (preg_match('/^ExportDataset_/', $value)) $qualifiedforclean=0; }
if (preg_match('/^ImportDataset_/', $value)) $qualifiedforclean=0; if (preg_match('/^LocalTax/', $value)) {
if (preg_match('/^ActionAC_/', $value)) $qualifiedforclean=0; $qualifiedforclean=0;
if (preg_match('/^TypeLocaltax/', $value)) $qualifiedforclean=0; }
if (preg_match('/^StatusProspect/', $value)) $qualifiedforclean=0; if (preg_match('/^Country/', $value)) {
if (preg_match('/^PL_/', $value)) $qualifiedforclean=0; $qualifiedforclean=0;
if (preg_match('/^TE_/', $value)) $qualifiedforclean=0; }
if (preg_match('/^JuridicalStatus/', $value)) $qualifiedforclean=0; if (preg_match('/^Civility/', $value)) {
if (preg_match('/^CalcMode/', $value)) $qualifiedforclean=0; $qualifiedforclean=0;
if (preg_match('/^newLT/', $value)) $qualifiedforclean=0; }
if (preg_match('/^LT[0-9]/', $value)) $qualifiedforclean=0; if (preg_match('/^Currency/', $value)) {
if (preg_match('/^TypeContact_contrat_/', $value)) $qualifiedforclean=0; $qualifiedforclean=0;
if (preg_match('/^ErrorPriceExpression/', $value)) $qualifiedforclean=0; }
if (preg_match('/^Language_/', $value)) $qualifiedforclean=0; if (preg_match('/^DemandReasonTypeSRC/', $value)) {
if (preg_match('/^DescADHERENT_/', $value)) $qualifiedforclean=0; $qualifiedforclean=0;
if (preg_match('/^SubmitTranslation/', $value)) $qualifiedforclean=0; }
if (preg_match('/^ModuleCompanyCode/', $value)) $qualifiedforclean=0; if (preg_match('/^PaperFormat/', $value)) {
if (preg_match('/InDolibarr$/', $value)) $qualifiedforclean=0; $qualifiedforclean=0;
}
if (preg_match('/^Duration/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^AmountLT/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^TotalLT/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^Month/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^MonthShort/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^Day\d/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^Short/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^ExportDataset_/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^ImportDataset_/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^ActionAC_/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^TypeLocaltax/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^StatusProspect/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^PL_/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^TE_/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^JuridicalStatus/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^CalcMode/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^newLT/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^LT[0-9]/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^TypeContact_contrat_/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^ErrorPriceExpression/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^Language_/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^DescADHERENT_/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^SubmitTranslation/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^ModuleCompanyCode/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/InDolibarr$/', $value)) {
$qualifiedforclean=0;
}
// admin.lang // admin.lang
if (preg_match('/^DAV_ALLOW_PUBLIC_DIR/i', $value)) $qualifiedforclean=0; if (preg_match('/^DAV_ALLOW_PUBLIC_DIR/i', $value)) {
if (preg_match('/^DAV_ALLOW_ECM_DIR/i', $value)) $qualifiedforclean=0; $qualifiedforclean=0;
}
if (preg_match('/^DAV_ALLOW_ECM_DIR/i', $value)) {
$qualifiedforclean=0;
}
// boxes.lang // boxes.lang
if (preg_match('/^BoxTitleLast/', $value)) $qualifiedforclean=0; if (preg_match('/^BoxTitleLast/', $value)) {
if (preg_match('/^BoxTitleLatest/', $value)) $qualifiedforclean=0; $qualifiedforclean=0;
}
if (preg_match('/^BoxTitleLatest/', $value)) {
$qualifiedforclean=0;
}
// install.lang // install.lang
if (preg_match('/^KeepDefaultValues/', $value)) $qualifiedforclean=0; if (preg_match('/^KeepDefaultValues/', $value)) {
$qualifiedforclean=0;
}
// mail.lang // mail.lang
if (preg_match('/MailingModuleDesc/i', $value)) $qualifiedforclean=0; if (preg_match('/MailingModuleDesc/i', $value)) {
$qualifiedforclean=0;
}
// main.lang // main.lang
if (preg_match('/^Duration/', $value)) $qualifiedforclean=0; if (preg_match('/^Duration/', $value)) {
if (preg_match('/^FormatDate/', $value)) $qualifiedforclean=0; $qualifiedforclean=0;
if (preg_match('/^DateFormat/', $value)) $qualifiedforclean=0; }
if (preg_match('/^.b$/', $value)) $qualifiedforclean=0; if (preg_match('/^FormatDate/', $value)) {
if (preg_match('/^.*Bytes$/', $value)) $qualifiedforclean=0; $qualifiedforclean=0;
if (preg_match('/^NoteSomeFeaturesAreDisabled/', $value)) $qualifiedforclean=0; }
if (preg_match('/^(DoTest|Under|Limits|Cards|CurrentValue|DateLimit|DateAndHour|NbOfLines|NbOfObjects|NbOfReferes|TotalTTCShort|VATs)/', $value)) $qualifiedforclean=0; if (preg_match('/^DateFormat/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^.b$/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^.*Bytes$/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^NoteSomeFeaturesAreDisabled/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^(DoTest|Under|Limits|Cards|CurrentValue|DateLimit|DateAndHour|NbOfLines|NbOfObjects|NbOfReferes|TotalTTCShort|VATs)/', $value)) {
$qualifiedforclean=0;
}
// modulebuilder // modulebuilder
if (preg_match('/^ModuleBuilderDesc/', $value)) $qualifiedforclean=0; if (preg_match('/^ModuleBuilderDesc/', $value)) {
$qualifiedforclean=0;
}
// orders // orders
if (preg_match('/^OrderSource/', $value)) $qualifiedforclean=0; if (preg_match('/^OrderSource/', $value)) {
if (preg_match('/^TypeContact_/', $value)) $qualifiedforclean=0; $qualifiedforclean=0;
}
if (preg_match('/^TypeContact_/', $value)) {
$qualifiedforclean=0;
}
// other.lang // other.lang
if (preg_match('/^Notify_/', $value)) $qualifiedforclean=0; if (preg_match('/^Notify_/', $value)) {
if (preg_match('/^PredefinedMail/', $value)) $qualifiedforclean=0; $qualifiedforclean=0;
if (preg_match('/^DemoCompany/', $value)) $qualifiedforclean=0; }
if (preg_match('/^WeightUnit/', $value)) $qualifiedforclean=0; if (preg_match('/^PredefinedMail/', $value)) {
if (preg_match('/^LengthUnit/', $value)) $qualifiedforclean=0; $qualifiedforclean=0;
if (preg_match('/^SurfaceUnit/', $value)) $qualifiedforclean=0; }
if (preg_match('/^VolumeUnit/', $value)) $qualifiedforclean=0; if (preg_match('/^DemoCompany/', $value)) {
if (preg_match('/^SizeUnit/', $value)) $qualifiedforclean=0; $qualifiedforclean=0;
if (preg_match('/^EMailText/', $value)) $qualifiedforclean=0; }
if (preg_match('/ById$/', $value)) $qualifiedforclean=0; if (preg_match('/^WeightUnit/', $value)) {
if (preg_match('/ByLogin$/', $value)) $qualifiedforclean=0; $qualifiedforclean=0;
}
if (preg_match('/^LengthUnit/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^SurfaceUnit/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^VolumeUnit/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^SizeUnit/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/^EMailText/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/ById$/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/ByLogin$/', $value)) {
$qualifiedforclean=0;
}
// printing // printing
if (preg_match('/PrintingDriverDesc$/', $value)) $qualifiedforclean=0; if (preg_match('/PrintingDriverDesc$/', $value)) {
if (preg_match('/PrintTestDesc$/', $value)) $qualifiedforclean=0; $qualifiedforclean=0;
}
if (preg_match('/PrintTestDesc$/', $value)) {
$qualifiedforclean=0;
}
// products // products
if (preg_match('/GlobalVariableUpdaterType$/', $value)) $qualifiedforclean=0; if (preg_match('/GlobalVariableUpdaterType$/', $value)) {
if (preg_match('/GlobalVariableUpdaterHelp$/', $value)) $qualifiedforclean=0; $qualifiedforclean=0;
if (preg_match('/OppStatus/', $value)) $qualifiedforclean=0; }
if (preg_match('/AvailabilityType/', $value)) $qualifiedforclean=0; if (preg_match('/GlobalVariableUpdaterHelp$/', $value)) {
if (preg_match('/CardProduct/', $value)) $qualifiedforclean=0; $qualifiedforclean=0;
}
if (preg_match('/OppStatus/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/AvailabilityType/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/CardProduct/', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/sms/i', $value)) $qualifiedforclean=0; if (preg_match('/sms/i', $value)) {
if (preg_match('/TF_/i', $value)) $qualifiedforclean=0; $qualifiedforclean=0;
if (preg_match('/WithBankUsing/i', $value)) $qualifiedforclean=0; }
if (preg_match('/descWORKFLOW_/i', $value)) $qualifiedforclean=0; if (preg_match('/TF_/i', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/WithBankUsing/i', $value)) {
$qualifiedforclean=0;
}
if (preg_match('/descWORKFLOW_/i', $value)) {
$qualifiedforclean=0;
}
if (! $qualifiedforclean) if (! $qualifiedforclean) {
{
continue; continue;
} }
@ -359,28 +559,31 @@ if ((! empty($_REQUEST['unused']) && $_REQUEST['unused'] == 'true') || (isset($a
if (empty($output)) { if (empty($output)) {
$unused[$value] = $line; $unused[$value] = $line;
echo $line; // $trad contains the \n echo $line; // $trad contains the \n
} } else {
else {
unset($output); unset($output);
//print 'X'.$output.'Y'; //print 'X'.$output.'Y';
} }
} }
if (empty($unused)) print "No string not used found.\n"; if (empty($unused)) {
else { print "No string not used found.\n";
} else {
$filetosave='/tmp/'.($argv[2]?$argv[2]:"").'notused.lang'; $filetosave='/tmp/'.($argv[2]?$argv[2]:"").'notused.lang';
print "Strings in en_US that are never used are saved into file ".$filetosave.":\n"; print "Strings in en_US that are never used are saved into file ".$filetosave.":\n";
file_put_contents($filetosave, implode("", $unused)); file_put_contents($filetosave, implode("", $unused));
print "To remove from original file, run command :\n"; print "To remove from original file, run command :\n";
if (($argv[2]?$argv[2]:"")) print 'cd htdocs/langs/en_US; mv '.($argv[2]?$argv[2]:"")." ".($argv[2]?$argv[2]:"").".tmp; "; if (($argv[2]?$argv[2]:"")) {
print 'cd htdocs/langs/en_US; mv '.($argv[2]?$argv[2]:"")." ".($argv[2]?$argv[2]:"").".tmp; ";
}
print "diff ".($argv[2]?$argv[2]:"").".tmp ".$filetosave." | grep \< | cut -b 3- > ".($argv[2]?$argv[2]:""); print "diff ".($argv[2]?$argv[2]:"").".tmp ".$filetosave." | grep \< | cut -b 3- > ".($argv[2]?$argv[2]:"");
if (($argv[2]?$argv[2]:"")) print "; rm ".($argv[2]?$argv[2]:"").".tmp;\n"; if (($argv[2]?$argv[2]:"")) {
print "; rm ".($argv[2]?$argv[2]:"").".tmp;\n";
}
} }
} }
echo "\n"; echo "\n";
if ($web) if ($web) {
{
echo "</body>\n"; echo "</body>\n";
echo "</html>\n"; echo "</html>\n";
} }

View File

@ -63,8 +63,7 @@ $lSecondary = isset($argv[2])?$argv[2]:'';
$lEnglish = 'en_US'; $lEnglish = 'en_US';
$filesToProcess = isset($argv[3])?$argv[3]:''; $filesToProcess = isset($argv[3])?$argv[3]:'';
if (empty($lPrimary) || empty($lSecondary) || empty($filesToProcess)) if (empty($lPrimary) || empty($lSecondary) || empty($filesToProcess)) {
{
$rc = 1; $rc = 1;
$msg = '***** Script to clean language files *****'."\n"; $msg = '***** Script to clean language files *****'."\n";
$msg.= 'Usage: ./dev/translation/strip_language_file.php xx_XX xx_YY [file.lang|all]'."\n"; $msg.= 'Usage: ./dev/translation/strip_language_file.php xx_XX xx_YY [file.lang|all]'."\n";
@ -77,8 +76,7 @@ $aSecondary = array();
$aEnglish = array(); $aEnglish = array();
// Define array $filesToProcess // Define array $filesToProcess
if ($filesToProcess == 'all') if ($filesToProcess == 'all') {
{
$dir = new DirectoryIterator('htdocs/langs/'.$lPrimary); $dir = new DirectoryIterator('htdocs/langs/'.$lPrimary);
while ($dir->valid()) { while ($dir->valid()) {
if (!$dir->isDot() && $dir->isFile() && ! preg_match('/^\./', $dir->getFilename())) { if (!$dir->isDot() && $dir->isFile() && ! preg_match('/^\./', $dir->getFilename())) {
@ -87,15 +85,15 @@ if ($filesToProcess == 'all')
$dir->next(); $dir->next();
} }
$filesToProcess=$files; $filesToProcess=$files;
} else {
$filesToProcess=explode(',', $filesToProcess);
} }
else $filesToProcess=explode(',', $filesToProcess);
// Arguments should be OK here. // Arguments should be OK here.
// Loop on each file // Loop on each file
foreach ($filesToProcess as $fileToProcess) foreach ($filesToProcess as $fileToProcess) {
{
$lPrimaryFile = 'htdocs/langs/'.$lPrimary.'/'.$fileToProcess; $lPrimaryFile = 'htdocs/langs/'.$lPrimary.'/'.$fileToProcess;
$lSecondaryFile = 'htdocs/langs/'.$lSecondary.'/'.$fileToProcess; $lSecondaryFile = 'htdocs/langs/'.$lSecondary.'/'.$fileToProcess;
$lEnglishFile = 'htdocs/langs/'.$lEnglish.'/'.$fileToProcess; $lEnglishFile = 'htdocs/langs/'.$lEnglish.'/'.$fileToProcess;
@ -103,21 +101,21 @@ foreach ($filesToProcess as $fileToProcess)
print "---- Process language file ".$lSecondaryFile."\n"; print "---- Process language file ".$lSecondaryFile."\n";
if ( ! is_readable($lPrimaryFile) ) { if (! is_readable($lPrimaryFile)) {
$rc = 2; $rc = 2;
$msg = "Cannot read primary language file $lPrimaryFile."; $msg = "Cannot read primary language file $lPrimaryFile.";
print $msg . " (rc=$rc).\n"; print $msg . " (rc=$rc).\n";
exit($rc); exit($rc);
} }
if ( ! is_readable($lSecondaryFile) ) { if (! is_readable($lSecondaryFile)) {
$rc = 3; $rc = 3;
$msg = "Cannot read secondary language file $lSecondaryFile. We discard this file."; $msg = "Cannot read secondary language file $lSecondaryFile. We discard this file.";
print $msg . "\n"; print $msg . "\n";
continue; continue;
} }
if ( ! is_readable($lEnglishFile) ) { if (! is_readable($lEnglishFile)) {
$rc = 3; $rc = 3;
$msg = "Cannot read english language file $lEnglishFile. We discard this file."; $msg = "Cannot read english language file $lEnglishFile. We discard this file.";
print $msg . "\n"; print $msg . "\n";
@ -126,25 +124,23 @@ foreach ($filesToProcess as $fileToProcess)
// Start reading and parsing Secondary // Start reading and parsing Secondary
if ( $handle = fopen($lSecondaryFile, 'r') ) if ($handle = fopen($lSecondaryFile, 'r')) {
{
print "Read Secondary File $lSecondaryFile:\n"; print "Read Secondary File $lSecondaryFile:\n";
$cnt = 0; $cnt = 0;
while (($line = fgets($handle)) !== false) while (($line = fgets($handle)) !== false) {
{
$cnt++; $cnt++;
// strip comments // strip comments
if ( preg_match("/^\w*#/", $line) ) { if (preg_match("/^\w*#/", $line)) {
continue; continue;
} }
// strip empty lines // strip empty lines
if ( preg_match("/^\w*$/", $line) ) { if (preg_match("/^\w*$/", $line)) {
continue; continue;
} }
$a = mb_split('=', trim($line), 2); $a = mb_split('=', trim($line), 2);
if ( count($a) != 2 ) { if (count($a) != 2) {
print "ERROR in file $lSecondaryFile, line $cnt: " . trim($line) . "\n"; print "ERROR in file $lSecondaryFile, line $cnt: " . trim($line) . "\n";
continue; continue;
} }
@ -152,29 +148,27 @@ foreach ($filesToProcess as $fileToProcess)
list($key, $value) = $a; list($key, $value) = $a;
// key is redundant // key is redundant
if ( array_key_exists($key, $aSecondary) ) { if (array_key_exists($key, $aSecondary)) {
print "Key $key is redundant in file $lSecondaryFile (line: $cnt).\n"; print "Key $key is redundant in file $lSecondaryFile (line: $cnt).\n";
continue; continue;
} }
// String has no value // String has no value
if ( $value == '' ) { if ($value == '') {
print "Key $key has no value in file $lSecondaryFile (line: $cnt).\n"; print "Key $key has no value in file $lSecondaryFile (line: $cnt).\n";
continue; continue;
} }
$aSecondary[$key] = trim($value); $aSecondary[$key] = trim($value);
} }
if ( ! feof($handle) ) if (! feof($handle)) {
{
$rc = 5; $rc = 5;
$msg = "Unexpected fgets() fail"; $msg = "Unexpected fgets() fail";
print $msg . " (rc=$rc).\n"; print $msg . " (rc=$rc).\n";
exit($rc); exit($rc);
} }
fclose($handle); fclose($handle);
} } else {
else {
$rc = 6; $rc = 6;
$msg = "Cannot open file $lSecondaryFile"; $msg = "Cannot open file $lSecondaryFile";
print $msg . " (rc=$rc).\n"; print $msg . " (rc=$rc).\n";
@ -184,25 +178,23 @@ foreach ($filesToProcess as $fileToProcess)
// Start reading and parsing English // Start reading and parsing English
if ( $handle = fopen($lEnglishFile, 'r') ) if ($handle = fopen($lEnglishFile, 'r')) {
{
print "Read English File $lEnglishFile:\n"; print "Read English File $lEnglishFile:\n";
$cnt = 0; $cnt = 0;
while (($line = fgets($handle)) !== false) while (($line = fgets($handle)) !== false) {
{
$cnt++; $cnt++;
// strip comments // strip comments
if ( preg_match("/^\w*#/", $line) ) { if (preg_match("/^\w*#/", $line)) {
continue; continue;
} }
// strip empty lines // strip empty lines
if ( preg_match("/^\w*$/", $line) ) { if (preg_match("/^\w*$/", $line)) {
continue; continue;
} }
$a = mb_split('=', trim($line), 2); $a = mb_split('=', trim($line), 2);
if ( count($a) != 2 ) { if (count($a) != 2) {
print "ERROR in file $lEnglishFile, line $cnt: " . trim($line) . "\n"; print "ERROR in file $lEnglishFile, line $cnt: " . trim($line) . "\n";
continue; continue;
} }
@ -210,29 +202,27 @@ foreach ($filesToProcess as $fileToProcess)
list($key, $value) = $a; list($key, $value) = $a;
// key is redundant // key is redundant
if ( array_key_exists($key, $aEnglish) ) { if (array_key_exists($key, $aEnglish)) {
print "Key $key is redundant in file $lEnglishFile (line: $cnt).\n"; print "Key $key is redundant in file $lEnglishFile (line: $cnt).\n";
continue; continue;
} }
// String has no value // String has no value
if ( $value == '' ) { if ($value == '') {
print "Key $key has no value in file $lEnglishFile (line: $cnt).\n"; print "Key $key has no value in file $lEnglishFile (line: $cnt).\n";
continue; continue;
} }
$aEnglish[$key] = trim($value); $aEnglish[$key] = trim($value);
} }
if ( ! feof($handle) ) if (! feof($handle)) {
{
$rc = 5; $rc = 5;
$msg = "Unexpected fgets() fail"; $msg = "Unexpected fgets() fail";
print $msg . " (rc=$rc).\n"; print $msg . " (rc=$rc).\n";
exit($rc); exit($rc);
} }
fclose($handle); fclose($handle);
} } else {
else {
$rc = 6; $rc = 6;
$msg = "Cannot open file $lEnglishFile"; $msg = "Cannot open file $lEnglishFile";
print $msg . " (rc=$rc).\n"; print $msg . " (rc=$rc).\n";
@ -246,10 +236,8 @@ foreach ($filesToProcess as $fileToProcess)
$arrayofkeytoalwayskeep=array('DIRECTION','FONTFORPDF','FONTSIZEFORPDF','SeparatorDecimal','SeparatorThousand'); $arrayofkeytoalwayskeep=array('DIRECTION','FONTFORPDF','FONTSIZEFORPDF','SeparatorDecimal','SeparatorThousand');
if ( $handle = fopen($lPrimaryFile, 'r') ) if ($handle = fopen($lPrimaryFile, 'r')) {
{ if (! $oh = fopen($output, 'w')) {
if ( ! $oh = fopen($output, 'w') )
{
print "ERROR in writing to file ".$output."\n"; print "ERROR in writing to file ".$output."\n";
exit; exit;
} }
@ -259,21 +247,20 @@ foreach ($filesToProcess as $fileToProcess)
fwrite($oh, "# Dolibarr language file - Source file is en_US - ".(preg_replace('/\.lang$/', '', $fileToProcess))."\n"); fwrite($oh, "# Dolibarr language file - Source file is en_US - ".(preg_replace('/\.lang$/', '', $fileToProcess))."\n");
$cnt = 0; $cnt = 0;
while (($line = fgets($handle)) !== false) while (($line = fgets($handle)) !== false) {
{
$cnt++; $cnt++;
// strip comments // strip comments
if ( preg_match("/^\w*#/", $line) ) { if (preg_match("/^\w*#/", $line)) {
continue; continue;
} }
// strip empty lines // strip empty lines
if ( preg_match("/^\w*$/", $line) ) { if (preg_match("/^\w*$/", $line)) {
continue; continue;
} }
$a = mb_split('=', trim($line), 2); $a = mb_split('=', trim($line), 2);
if ( count($a) != 2 ) { if (count($a) != 2) {
print "ERROR in file $lPrimaryFile, line $cnt: " . trim($line) . "\n"; print "ERROR in file $lPrimaryFile, line $cnt: " . trim($line) . "\n";
continue; continue;
} }
@ -281,17 +268,16 @@ foreach ($filesToProcess as $fileToProcess)
list($key, $value) = $a; list($key, $value) = $a;
// key is redundant // key is redundant
if ( array_key_exists($key, $aPrimary) ) { if (array_key_exists($key, $aPrimary)) {
print "Key $key is redundant in file $lPrimaryFile (line: $cnt) - Already found into ".$fileFirstFound[$key]." (line: ".$lineFirstFound[$key].").\n"; print "Key $key is redundant in file $lPrimaryFile (line: $cnt) - Already found into ".$fileFirstFound[$key]." (line: ".$lineFirstFound[$key].").\n";
continue; continue;
} } else {
else {
$fileFirstFound[$key] = $fileToProcess; $fileFirstFound[$key] = $fileToProcess;
$lineFirstFound[$key] = $cnt; $lineFirstFound[$key] = $cnt;
} }
// String has no value // String has no value
if ( $value == '' ) { if ($value == '') {
print "Key $key has no value in file $lPrimaryFile (line: $cnt).\n"; print "Key $key has no value in file $lPrimaryFile (line: $cnt).\n";
continue; continue;
} }
@ -305,28 +291,23 @@ foreach ($filesToProcess as $fileToProcess)
//print "Found primary key = ".$key."\n"; //print "Found primary key = ".$key."\n";
// Key not in other file // Key not in other file
if (in_array($key, $arrayofkeytoalwayskeep) || preg_match('/^FormatDate/', $key) || preg_match('/^FormatHour/', $key)) if (in_array($key, $arrayofkeytoalwayskeep) || preg_match('/^FormatDate/', $key) || preg_match('/^FormatHour/', $key)) {
{
//print "Key $key is a key we always want to see into secondary file (line: $cnt).\n"; //print "Key $key is a key we always want to see into secondary file (line: $cnt).\n";
} } elseif (! array_key_exists($key, $aSecondary)) {
elseif ( ! array_key_exists($key, $aSecondary))
{
//print "Key $key does NOT exist in secondary language (line: $cnt).\n"; //print "Key $key does NOT exist in secondary language (line: $cnt).\n";
continue; continue;
} }
// String exists in both files and value into alternative language differs from main language but also from english files // String exists in both files and value into alternative language differs from main language but also from english files
if ( if ((! empty($aSecondary[$key]) && $aSecondary[$key] != $aPrimary[$key]
(! empty($aSecondary[$key]) && $aSecondary[$key] != $aPrimary[$key]
&& ! empty($aEnglish[$key]) && $aSecondary[$key] != $aEnglish[$key]) && ! empty($aEnglish[$key]) && $aSecondary[$key] != $aEnglish[$key])
|| in_array($key, $arrayofkeytoalwayskeep) || preg_match('/^FormatDate/', $key) || preg_match('/^FormatHour/', $key) || in_array($key, $arrayofkeytoalwayskeep) || preg_match('/^FormatDate/', $key) || preg_match('/^FormatHour/', $key)
) ) {
{
//print "Key $key differs (aSecondary=".$aSecondary[$key].", aPrimary=".$aPrimary[$key].", aEnglish=".$aEnglish[$key].") so we add it into new secondary language (line: $cnt).\n"; //print "Key $key differs (aSecondary=".$aSecondary[$key].", aPrimary=".$aPrimary[$key].", aEnglish=".$aEnglish[$key].") so we add it into new secondary language (line: $cnt).\n";
fwrite($oh, $key."=".(empty($aSecondary[$key])?$aPrimary[$key]:$aSecondary[$key])."\n"); fwrite($oh, $key."=".(empty($aSecondary[$key])?$aPrimary[$key]:$aSecondary[$key])."\n");
} }
} }
if ( ! feof($handle) ) { if (! feof($handle)) {
$rc = 7; $rc = 7;
$msg = "Unexpected fgets() fail"; $msg = "Unexpected fgets() fail";
print $msg . " (rc=$rc).\n"; print $msg . " (rc=$rc).\n";
@ -334,8 +315,7 @@ foreach ($filesToProcess as $fileToProcess)
} }
fclose($oh); fclose($oh);
fclose($handle); fclose($handle);
} } else {
else {
$rc = 8; $rc = 8;
$msg = "Cannot open file $lPrimaryFile"; $msg = "Cannot open file $lPrimaryFile";
print $msg . " (rc=$rc).\n"; print $msg . " (rc=$rc).\n";

View File

@ -37,7 +37,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php';
// Load translation files required by the page // Load translation files required by the page
$langs->loadLangs(array("admin", "members")); $langs->loadLangs(array("admin", "members"));
if (!$user->admin) accessforbidden(); if (!$user->admin) {
accessforbidden();
}
$choices = array('yesno', 'texte', 'chaine'); $choices = array('yesno', 'texte', 'chaine');
@ -126,17 +128,24 @@ if ($action == 'update' || $action == 'add') {
$constname = GETPOST('constname', 'alpha'); $constname = GETPOST('constname', 'alpha');
$constvalue = (GETPOST('constvalue_'.$constname) ? GETPOST('constvalue_'.$constname) : GETPOST('constvalue')); $constvalue = (GETPOST('constvalue_'.$constname) ? GETPOST('constvalue_'.$constname) : GETPOST('constvalue'));
if (($constname == 'ADHERENT_CARD_TYPE' || $constname == 'ADHERENT_ETIQUETTE_TYPE' || $constname == 'ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS') && $constvalue == -1) $constvalue = ''; if (($constname == 'ADHERENT_CARD_TYPE' || $constname == 'ADHERENT_ETIQUETTE_TYPE' || $constname == 'ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS') && $constvalue == -1) {
$constvalue = '';
}
if ($constname == 'ADHERENT_LOGIN_NOT_REQUIRED') { // Invert choice if ($constname == 'ADHERENT_LOGIN_NOT_REQUIRED') { // Invert choice
if ($constvalue) $constvalue = 0; if ($constvalue) {
else $constvalue = 1; $constvalue = 0;
} else {
$constvalue = 1;
}
} }
$consttype = GETPOST('consttype', 'alpha'); $consttype = GETPOST('consttype', 'alpha');
$constnote = GETPOST('constnote'); $constnote = GETPOST('constnote');
$res = dolibarr_set_const($db, $constname, $constvalue, $choices[$consttype], 0, $constnote, $conf->entity); $res = dolibarr_set_const($db, $constname, $constvalue, $choices[$consttype], 0, $constnote, $conf->entity);
if (!($res > 0)) $error++; if (!($res > 0)) {
$error++;
}
if (!$error) { if (!$error) {
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
@ -211,9 +220,15 @@ 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"));
if (!empty($conf->banque->enabled)) $arraychoices['bankdirect'] = $langs->trans("MoreActionBankDirect"); if (!empty($conf->banque->enabled)) {
if (!empty($conf->banque->enabled) && !empty($conf->societe->enabled) && !empty($conf->facture->enabled)) $arraychoices['invoiceonly'] = $langs->trans("MoreActionInvoiceOnly"); $arraychoices['bankdirect'] = $langs->trans("MoreActionBankDirect");
if (!empty($conf->banque->enabled) && !empty($conf->societe->enabled) && !empty($conf->facture->enabled)) $arraychoices['bankviainvoice'] = $langs->trans("MoreActionBankViaInvoice"); }
if (!empty($conf->banque->enabled) && !empty($conf->societe->enabled) && !empty($conf->facture->enabled)) {
$arraychoices['invoiceonly'] = $langs->trans("MoreActionInvoiceOnly");
}
if (!empty($conf->banque->enabled) && !empty($conf->societe->enabled) && !empty($conf->facture->enabled)) {
$arraychoices['bankviainvoice'] = $langs->trans("MoreActionBankViaInvoice");
}
print '<td>'; print '<td>';
print $form->selectarray('ADHERENT_BANK_USE', $arraychoices, $conf->global->ADHERENT_BANK_USE, 0); print $form->selectarray('ADHERENT_BANK_USE', $arraychoices, $conf->global->ADHERENT_BANK_USE, 0);
if ($conf->global->ADHERENT_BANK_USE == 'bankdirect' || $conf->global->ADHERENT_BANK_USE == 'bankviainvoice') { if ($conf->global->ADHERENT_BANK_USE == 'bankdirect' || $conf->global->ADHERENT_BANK_USE == 'bankviainvoice') {
@ -349,7 +364,9 @@ foreach ($dirmodels as $reldir) {
$module = new $classname($db); $module = new $classname($db);
$modulequalified = 1; $modulequalified = 1;
if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) $modulequalified = 0; if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) {
$modulequalified = 0;
}
if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) { if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) {
$modulequalified = 0; $modulequalified = 0;
} }
@ -404,8 +421,7 @@ foreach ($dirmodels as $reldir) {
// Preview // Preview
print '<td class="center">'; print '<td class="center">';
if ($module->type == 'pdf') if ($module->type == 'pdf') {
{
print '<a href="'.$_SERVER["PHP_SELF"].'?action=specimen&module='.$name.'">'.img_object($langs->trans("Preview"), 'contract').'</a>'; print '<a href="'.$_SERVER["PHP_SELF"].'?action=specimen&module='.$name.'">'.img_object($langs->trans("Preview"), 'contract').'</a>';
} else { } else {
print img_object($langs->trans("PreviewNotAvailable"), 'generic'); print img_object($langs->trans("PreviewNotAvailable"), 'generic');

View File

@ -36,7 +36,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php';
// Load translation files required by the page // Load translation files required by the page
$langs->loadLangs(array("admin", "members")); $langs->loadLangs(array("admin", "members"));
if (!$user->admin) accessforbidden(); if (!$user->admin) {
accessforbidden();
}
$oldtypetonewone = array('texte'=>'text', 'chaine'=>'string'); // old type to new ones $oldtypetonewone = array('texte'=>'text', 'chaine'=>'string'); // old type to new ones
@ -92,7 +94,9 @@ if ($action == 'update' || $action == 'add') {
$res = dolibarr_set_const($db, $constname, $constvalue, $typetouse, 0, $constnote, $conf->entity); $res = dolibarr_set_const($db, $constname, $constvalue, $typetouse, 0, $constnote, $conf->entity);
if (!($res > 0)) $error++; if (!($res > 0)) {
$error++;
}
if (!$error) { if (!$error) {
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');

View File

@ -37,13 +37,17 @@ $form = new Form($db);
// List of supported format // List of supported format
$tmptype2label = ExtraFields::$type2label; $tmptype2label = ExtraFields::$type2label;
$type2label = array(''); $type2label = array('');
foreach ($tmptype2label as $key => $val) $type2label[$key] = $langs->transnoentitiesnoconv($val); foreach ($tmptype2label as $key => $val) {
$type2label[$key] = $langs->transnoentitiesnoconv($val);
}
$action = GETPOST('action', 'aZ09'); $action = GETPOST('action', 'aZ09');
$attrname = GETPOST('attrname', 'alpha'); $attrname = GETPOST('attrname', 'alpha');
$elementtype = 'adherent'; //Must be the $table_element of the class that manage extrafield $elementtype = 'adherent'; //Must be the $table_element of the class that manage extrafield
if (!$user->admin) accessforbidden(); if (!$user->admin) {
accessforbidden();
}
/* /*

View File

@ -40,13 +40,17 @@ $form = new Form($db);
// List of supported format // List of supported format
$tmptype2label = ExtraFields::$type2label; $tmptype2label = ExtraFields::$type2label;
$type2label = array(''); $type2label = array('');
foreach ($tmptype2label as $key => $val) $type2label[$key] = $langs->transnoentitiesnoconv($val); foreach ($tmptype2label as $key => $val) {
$type2label[$key] = $langs->transnoentitiesnoconv($val);
}
$action = GETPOST('action', 'aZ09'); $action = GETPOST('action', 'aZ09');
$attrname = GETPOST('attrname', 'alpha'); $attrname = GETPOST('attrname', 'alpha');
$elementtype = 'adherent_type'; //Must be the $table_element of the class that manage extrafield $elementtype = 'adherent_type'; //Must be the $table_element of the class that manage extrafield
if (!$user->admin) accessforbidden(); if (!$user->admin) {
accessforbidden();
}
/* /*

View File

@ -35,7 +35,9 @@ $langs->loadLangs(array("admin", "members"));
$action = GETPOST('action', 'aZ09'); $action = GETPOST('action', 'aZ09');
if (!$user->admin) accessforbidden(); if (!$user->admin) {
accessforbidden();
}
/* /*
@ -43,8 +45,11 @@ if (!$user->admin) accessforbidden();
*/ */
if ($action == 'setMEMBER_ENABLE_PUBLIC') { if ($action == 'setMEMBER_ENABLE_PUBLIC') {
if (GETPOST('value')) dolibarr_set_const($db, 'MEMBER_ENABLE_PUBLIC', 1, 'chaine', 0, '', $conf->entity); if (GETPOST('value')) {
else dolibarr_set_const($db, 'MEMBER_ENABLE_PUBLIC', 0, 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, 'MEMBER_ENABLE_PUBLIC', 1, 'chaine', 0, '', $conf->entity);
} else {
dolibarr_set_const($db, 'MEMBER_ENABLE_PUBLIC', 0, 'chaine', 0, '', $conf->entity);
}
} }
if ($action == 'update') { if ($action == 'update') {
@ -58,12 +63,15 @@ if ($action == 'update') {
$res = dolibarr_set_const($db, "MEMBER_NEWFORM_AMOUNT", $amount, 'chaine', 0, '', $conf->entity); $res = dolibarr_set_const($db, "MEMBER_NEWFORM_AMOUNT", $amount, 'chaine', 0, '', $conf->entity);
$res = dolibarr_set_const($db, "MEMBER_NEWFORM_EDITAMOUNT", $editamount, 'chaine', 0, '', $conf->entity); $res = dolibarr_set_const($db, "MEMBER_NEWFORM_EDITAMOUNT", $editamount, 'chaine', 0, '', $conf->entity);
$res = dolibarr_set_const($db, "MEMBER_NEWFORM_PAYONLINE", $payonline, 'chaine', 0, '', $conf->entity); $res = dolibarr_set_const($db, "MEMBER_NEWFORM_PAYONLINE", $payonline, 'chaine', 0, '', $conf->entity);
if ($forcetype < 0) $res = dolibarr_del_const($db, "MEMBER_NEWFORM_FORCETYPE", $conf->entity); if ($forcetype < 0) {
else { $res = dolibarr_del_const($db, "MEMBER_NEWFORM_FORCETYPE", $conf->entity);
} else {
$res = dolibarr_set_const($db, "MEMBER_NEWFORM_FORCETYPE", $forcetype, 'chaine', 0, '', $conf->entity); $res = dolibarr_set_const($db, "MEMBER_NEWFORM_FORCETYPE", $forcetype, 'chaine', 0, '', $conf->entity);
} }
if (!($res > 0)) $error++; if (!($res > 0)) {
$error++;
}
if (!$error) { if (!$error) {
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
@ -195,9 +203,15 @@ if (!empty($conf->global->MEMBER_ENABLE_PUBLIC)) {
$listofval = array(); $listofval = array();
$listofval['-1'] = $langs->trans('No'); $listofval['-1'] = $langs->trans('No');
$listofval['all'] = $langs->trans('Yes').' ('.$langs->trans("VisitorCanChooseItsPaymentMode").')'; $listofval['all'] = $langs->trans('Yes').' ('.$langs->trans("VisitorCanChooseItsPaymentMode").')';
if (!empty($conf->paybox->enabled)) $listofval['paybox'] = 'Paybox'; if (!empty($conf->paybox->enabled)) {
if (!empty($conf->paypal->enabled)) $listofval['paypal'] = 'PayPal'; $listofval['paybox'] = 'Paybox';
if (!empty($conf->stripe->enabled)) $listofval['stripe'] = 'Stripe'; }
if (!empty($conf->paypal->enabled)) {
$listofval['paypal'] = 'PayPal';
}
if (!empty($conf->stripe->enabled)) {
$listofval['stripe'] = 'Stripe';
}
print $form->selectarray("MEMBER_NEWFORM_PAYONLINE", $listofval, (!empty($conf->global->MEMBER_NEWFORM_PAYONLINE) ? $conf->global->MEMBER_NEWFORM_PAYONLINE : ''), 0); print $form->selectarray("MEMBER_NEWFORM_PAYONLINE", $listofval, (!empty($conf->global->MEMBER_NEWFORM_PAYONLINE) ? $conf->global->MEMBER_NEWFORM_PAYONLINE : ''), 0);
print "</td></tr>\n"; print "</td></tr>\n";

View File

@ -42,16 +42,24 @@ $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit;
$sortfield = GETPOST("sortfield", 'alpha'); $sortfield = GETPOST("sortfield", 'alpha');
$sortorder = GETPOST("sortorder", 'alpha'); $sortorder = GETPOST("sortorder", 'alpha');
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 if (empty($page) || $page == -1) {
$page = 0;
} // If $page is not defined, or '' or -1
$offset = $limit * $page; $offset = $limit * $page;
$pageprev = $page - 1; $pageprev = $page - 1;
$pagenext = $page + 1; $pagenext = $page + 1;
if (!$sortfield) $sortfield = 'a.datep,a.id'; if (!$sortfield) {
if (!$sortorder) $sortorder = 'DESC'; $sortfield = 'a.datep,a.id';
}
if (!$sortorder) {
$sortorder = 'DESC';
}
if (GETPOST('actioncode', 'array')) { if (GETPOST('actioncode', 'array')) {
$actioncode = GETPOST('actioncode', 'array', 3); $actioncode = GETPOST('actioncode', 'array', 3);
if (!count($actioncode)) $actioncode = '0'; if (!count($actioncode)) {
$actioncode = '0';
}
} else { } else {
$actioncode = GETPOST("actioncode", "alpha", 3) ?GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : (empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT)); $actioncode = GETPOST("actioncode", "alpha", 3) ?GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : (empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT));
} }
@ -76,7 +84,9 @@ if ($result > 0) {
$parameters = array('id'=>$id, 'objcanvas'=>$objcanvas); $parameters = array('id'=>$id, 'objcanvas'=>$objcanvas);
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); if ($reshook < 0) {
setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
}
if (empty($reshook)) { if (empty($reshook)) {
// Cancel // Cancel
@ -115,7 +125,9 @@ if ($object->id > 0) {
$helpurl = "EN:Module_Foundations|FR:Module_Adh&eacute;rents|ES:M&oacute;dulo_Miembros"; $helpurl = "EN:Module_Foundations|FR:Module_Adh&eacute;rents|ES:M&oacute;dulo_Miembros";
llxHeader("", $title, $helpurl); llxHeader("", $title, $helpurl);
if (!empty($conf->notification->enabled)) $langs->load("mails"); if (!empty($conf->notification->enabled)) {
$langs->load("mails");
}
$head = member_prepare_head($object); $head = member_prepare_head($object);
print dol_get_fiche_head($head, 'agenda', $langs->trans("Member"), -1, 'user'); print dol_get_fiche_head($head, 'agenda', $langs->trans("Member"), -1, 'user');
@ -149,8 +161,12 @@ if ($object->id > 0) {
print '<br>'; print '<br>';
$param = '&id='.$id; $param = '&id='.$id;
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.$contextpage; if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.$limit; $param .= '&contextpage='.$contextpage;
}
if ($limit > 0 && $limit != $conf->liste_limit) {
$param .= '&limit='.$limit;
}
print_barre_liste($langs->trans("ActionsOnMember"), 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', '', $newcardbutton, '', 0, 1, 1); print_barre_liste($langs->trans("ActionsOnMember"), 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', '', $newcardbutton, '', 0, 1, 1);

View File

@ -70,7 +70,9 @@ abstract class ActionsAdherentCardCommon
else else
{*/ {*/
$object = new Adherent($this->db); $object = new Adherent($this->db);
if (!empty($id)) $object->fetch($id); if (!empty($id)) {
$object->fetch($id);
}
$this->object = $object; $this->object = $object;
//} //}
} }
@ -89,7 +91,9 @@ abstract class ActionsAdherentCardCommon
global $conf, $langs, $user, $canvas; global $conf, $langs, $user, $canvas;
global $form, $formcompany, $objsoc; global $form, $formcompany, $objsoc;
if ($action == 'add' || $action == 'update') $this->assign_post(); if ($action == 'add' || $action == 'update') {
$this->assign_post();
}
foreach ($this->object as $key => $value) { foreach ($this->object as $key => $value) {
$this->tpl[$key] = $value; $this->tpl[$key] = $value;
@ -123,12 +127,24 @@ abstract class ActionsAdherentCardCommon
// Predefined with third party // Predefined with third party
if ((isset($objsoc->typent_code) && $objsoc->typent_code == 'TE_PRIVATE')) { if ((isset($objsoc->typent_code) && $objsoc->typent_code == 'TE_PRIVATE')) {
if (dol_strlen(trim($this->object->address)) == 0) $this->tpl['address'] = $objsoc->address; if (dol_strlen(trim($this->object->address)) == 0) {
if (dol_strlen(trim($this->object->zip)) == 0) $this->object->zip = $objsoc->zip; $this->tpl['address'] = $objsoc->address;
if (dol_strlen(trim($this->object->town)) == 0) $this->object->town = $objsoc->town; }
if (dol_strlen(trim($this->object->phone_perso)) == 0) $this->object->phone_perso = $objsoc->phone; if (dol_strlen(trim($this->object->zip)) == 0) {
if (dol_strlen(trim($this->object->phone_mobile)) == 0) $this->object->phone_mobile = $objsoc->phone_mobile; $this->object->zip = $objsoc->zip;
if (dol_strlen(trim($this->object->email)) == 0) $this->object->email = $objsoc->email; }
if (dol_strlen(trim($this->object->town)) == 0) {
$this->object->town = $objsoc->town;
}
if (dol_strlen(trim($this->object->phone_perso)) == 0) {
$this->object->phone_perso = $objsoc->phone;
}
if (dol_strlen(trim($this->object->phone_mobile)) == 0) {
$this->object->phone_mobile = $objsoc->phone_mobile;
}
if (dol_strlen(trim($this->object->email)) == 0) {
$this->object->email = $objsoc->email;
}
} }
// Zip // Zip
@ -137,17 +153,24 @@ abstract class ActionsAdherentCardCommon
// Town // Town
$this->tpl['select_town'] = $formcompany->select_ziptown($this->object->town, 'town', array('zipcode', 'selectcountry_id', 'state_id')); $this->tpl['select_town'] = $formcompany->select_ziptown($this->object->town, 'town', array('zipcode', 'selectcountry_id', 'state_id'));
if (dol_strlen(trim($this->object->country_id)) == 0) $this->object->country_id = $objsoc->country_id; if (dol_strlen(trim($this->object->country_id)) == 0) {
$this->object->country_id = $objsoc->country_id;
}
// Country // Country
$this->tpl['select_country'] = $form->select_country($this->object->country_id, 'country_id'); $this->tpl['select_country'] = $form->select_country($this->object->country_id, 'country_id');
$countrynotdefined = $langs->trans("ErrorSetACountryFirst").' ('.$langs->trans("SeeAbove").')'; $countrynotdefined = $langs->trans("ErrorSetACountryFirst").' ('.$langs->trans("SeeAbove").')';
if ($user->admin) $this->tpl['info_admin'] = info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1); if ($user->admin) {
$this->tpl['info_admin'] = info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1);
}
// State // State
if ($this->object->country_id) $this->tpl['select_state'] = $formcompany->select_state($this->object->state_id, $this->object->country_code); if ($this->object->country_id) {
else $this->tpl['select_state'] = $countrynotdefined; $this->tpl['select_state'] = $formcompany->select_state($this->object->state_id, $this->object->country_code);
} else {
$this->tpl['select_state'] = $countrynotdefined;
}
// Physical or Moral // Physical or Moral
$selectarray = array('0'=>$langs->trans("Physical"), '1'=>$langs->trans("Moral")); $selectarray = array('0'=>$langs->trans("Physical"), '1'=>$langs->trans("Moral"));
@ -166,7 +189,9 @@ abstract class ActionsAdherentCardCommon
$dolibarr_user = new User($this->db); $dolibarr_user = new User($this->db);
$result = $dolibarr_user->fetch($this->object->user_id); $result = $dolibarr_user->fetch($this->object->user_id);
$this->tpl['dolibarr_user'] = $dolibarr_user->getLoginUrl(1); $this->tpl['dolibarr_user'] = $dolibarr_user->getLoginUrl(1);
} else $this->tpl['dolibarr_user'] = $langs->trans("NoDolibarrAccess"); } else {
$this->tpl['dolibarr_user'] = $langs->trans("NoDolibarrAccess");
}
} }
if ($action == 'view' || $action == 'delete') { if ($action == 'view' || $action == 'delete') {

View File

@ -60,9 +60,15 @@ class ActionsAdherentCardDefault extends ActionsAdherentCardCommon
$out = ''; $out = '';
if ($action == 'view') $out .= (!empty($conf->global->ADHERENT_ADDRESSES_MANAGEMENT) ? $langs->trans("Adherent") : $langs->trans("ContactAddress")); if ($action == 'view') {
if ($action == 'edit') $out .= (!empty($conf->global->ADHERENT_ADDRESSES_MANAGEMENT) ? $langs->trans("EditAdherent") : $langs->trans("EditAdherentAddress")); $out .= (!empty($conf->global->ADHERENT_ADDRESSES_MANAGEMENT) ? $langs->trans("Adherent") : $langs->trans("ContactAddress"));
if ($action == 'create') $out .= (!empty($conf->global->ADHERENT_ADDRESSES_MANAGEMENT) ? $langs->trans("NewAdherent") : $langs->trans("NewAdherentAddress")); }
if ($action == 'edit') {
$out .= (!empty($conf->global->ADHERENT_ADDRESSES_MANAGEMENT) ? $langs->trans("EditAdherent") : $langs->trans("EditAdherentAddress"));
}
if ($action == 'create') {
$out .= (!empty($conf->global->ADHERENT_ADDRESSES_MANAGEMENT) ? $langs->trans("NewAdherent") : $langs->trans("NewAdherentAddress"));
}
return $out; return $out;
} }

View File

@ -29,8 +29,12 @@ echo "<!-- BEGIN PHP TEMPLATE ADHERENTCARD_VIEW.TPL.PHP DEFAULT -->\n";
echo $this->control->tpl['showhead']; echo $this->control->tpl['showhead'];
dol_htmloutput_errors($this->control->tpl['error'], $this->control->tpl['errors']); dol_htmloutput_errors($this->control->tpl['error'], $this->control->tpl['errors']);
if (!empty($this->control->tpl['action_create_user'])) echo $this->control->tpl['action_create_user']; if (!empty($this->control->tpl['action_create_user'])) {
if (!empty($this->control->tpl['action_delete'])) echo $this->control->tpl['action_delete']; ?> echo $this->control->tpl['action_create_user'];
}
if (!empty($this->control->tpl['action_delete'])) {
echo $this->control->tpl['action_delete'];
} ?>
<table class="border allwidth"> <table class="border allwidth">

View File

@ -118,7 +118,9 @@ if ($id) {
$parameters = array('id'=>$id, 'rowid'=>$id, 'objcanvas'=>$objcanvas, 'confirm'=>$confirm); $parameters = array('id'=>$id, 'rowid'=>$id, 'objcanvas'=>$objcanvas, 'confirm'=>$confirm);
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); if ($reshook < 0) {
setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
}
if (empty($reshook)) { if (empty($reshook)) {
if ($cancel) { if ($cancel) {
@ -141,7 +143,9 @@ if (empty($reshook)) {
if (!$error) { if (!$error) {
if ($userid != $object->user_id) { // If link differs from currently in database if ($userid != $object->user_id) { // If link differs from currently in database
$result = $object->setUserId($userid); $result = $object->setUserId($userid);
if ($result < 0) dol_print_error($object->db, $object->error); if ($result < 0) {
dol_print_error($object->db, $object->error);
}
$action = ''; $action = '';
} }
} }
@ -169,7 +173,9 @@ if (empty($reshook)) {
if (!$error) { if (!$error) {
$result = $object->setThirdPartyId($socid); $result = $object->setThirdPartyId($socid);
if ($result < 0) dol_print_error($object->db, $object->error); if ($result < 0) {
dol_print_error($object->db, $object->error);
}
$action = ''; $action = '';
} }
} }
@ -221,8 +227,7 @@ if (empty($reshook)) {
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
$birthdate = ''; $birthdate = '';
if (GETPOST("birthday", 'int') && GETPOST("birthmonth", 'int') && GETPOST("birthyear", 'int')) if (GETPOST("birthday", 'int') && GETPOST("birthmonth", 'int') && GETPOST("birthyear", 'int')) {
{
$birthdate = dol_mktime(12, 0, 0, GETPOST("birthmonth", 'int'), GETPOST("birthday", 'int'), GETPOST("birthyear", 'int')); $birthdate = dol_mktime(12, 0, 0, GETPOST("birthmonth", 'int'), GETPOST("birthday", 'int'), GETPOST("birthyear", 'int'));
} }
$lastname = GETPOST("lastname", 'alphanohtml'); $lastname = GETPOST("lastname", 'alphanohtml');
@ -294,8 +299,11 @@ if (empty($reshook)) {
//$object->note = trim(GETPOST("comment","alpha")); //$object->note = trim(GETPOST("comment","alpha"));
$object->morphy = GETPOST("morphy", 'alpha'); $object->morphy = GETPOST("morphy", 'alpha');
if (GETPOST('deletephoto', 'alpha')) $object->photo = ''; if (GETPOST('deletephoto', 'alpha')) {
elseif (!empty($_FILES['photo']['name'])) $object->photo = dol_sanitizeFileName($_FILES['photo']['name']); $object->photo = '';
} elseif (!empty($_FILES['photo']['name'])) {
$object->photo = dol_sanitizeFileName($_FILES['photo']['name']);
}
// Get status and public property // Get status and public property
$object->statut = GETPOST("statut", 'alpha'); $object->statut = GETPOST("statut", 'alpha');
@ -303,18 +311,24 @@ if (empty($reshook)) {
// Fill array 'array_options' with data from add form // Fill array 'array_options' with data from add form
$ret = $extrafields->setOptionalsFromPost(null, $object); $ret = $extrafields->setOptionalsFromPost(null, $object);
if ($ret < 0) $error++; if ($ret < 0) {
$error++;
}
// Check if we need to also synchronize user information // Check if we need to also synchronize user information
$nosyncuser = 0; $nosyncuser = 0;
if ($object->user_id) { // If linked to a user if ($object->user_id) { // If linked to a user
if ($user->id != $object->user_id && empty($user->rights->user->user->creer)) $nosyncuser = 1; // Disable synchronizing if ($user->id != $object->user_id && empty($user->rights->user->user->creer)) {
$nosyncuser = 1; // Disable synchronizing
}
} }
// Check if we need to also synchronize password information // Check if we need to also synchronize password information
$nosyncuserpass = 0; $nosyncuserpass = 0;
if ($object->user_id) { // If linked to a user if ($object->user_id) { // If linked to a user
if ($user->id != $object->user_id && empty($user->rights->user->user->password)) $nosyncuserpass = 1; // Disable synchronizing if ($user->id != $object->user_id && empty($user->rights->user->user->password)) {
$nosyncuserpass = 1; // Disable synchronizing
}
} }
$result = $object->update($user, 0, $nosyncuser, $nosyncuserpass); $result = $object->update($user, 0, $nosyncuser, $nosyncuserpass);
@ -380,7 +394,9 @@ if (empty($reshook)) {
} }
if ($action == 'add' && $user->rights->adherent->creer) { if ($action == 'add' && $user->rights->adherent->creer) {
if ($canvas) $object->canvas = $canvas; if ($canvas) {
$object->canvas = $canvas;
}
$birthdate = ''; $birthdate = '';
if (GETPOSTISSET("birthday") && GETPOST("birthday") && GETPOSTISSET("birthmonth") && GETPOST("birthmonth") && GETPOSTISSET("birthyear") && GETPOST("birthyear")) { if (GETPOSTISSET("birthday") && GETPOST("birthday") && GETPOSTISSET("birthmonth") && GETPOST("birthmonth") && GETPOSTISSET("birthyear") && GETPOST("birthyear")) {
$birthdate = dol_mktime(12, 0, 0, GETPOST("birthmonth", 'int'), GETPOST("birthday", 'int'), GETPOST("birthyear", 'int')); $birthdate = dol_mktime(12, 0, 0, GETPOST("birthmonth", 'int'), GETPOST("birthday", 'int'), GETPOST("birthyear", 'int'));
@ -461,7 +477,9 @@ if (empty($reshook)) {
// Fill array 'array_options' with data from add form // Fill array 'array_options' with data from add form
$ret = $extrafields->setOptionalsFromPost(null, $object); $ret = $extrafields->setOptionalsFromPost(null, $object);
if ($ret < 0) $error++; if ($ret < 0) {
$error++;
}
// Check parameters // Check parameters
if (empty($morphy) || $morphy == "-1") { if (empty($morphy) || $morphy == "-1") {
@ -515,7 +533,9 @@ if (empty($reshook)) {
setEventMessages($langs->trans("ErrorBadEMail", $email), null, 'errors'); setEventMessages($langs->trans("ErrorBadEMail", $email), null, 'errors');
} }
$public = 0; $public = 0;
if (isset($public)) $public = 1; if (isset($public)) {
$public = 1;
}
if (!$error) { if (!$error) {
$db->begin(); $db->begin();
@ -590,7 +610,9 @@ if (empty($reshook)) {
$arraydefaultmessage = null; $arraydefaultmessage = null;
$labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION; $labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION;
if (!empty($labeltouse)) $arraydefaultmessage = $formmail->getEMailTemplate($db, 'member', $user, $outputlangs, 0, 1, $labeltouse); if (!empty($labeltouse)) {
$arraydefaultmessage = $formmail->getEMailTemplate($db, 'member', $user, $outputlangs, 0, 1, $labeltouse);
}
if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) { if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) {
$subject = $arraydefaultmessage->topic; $subject = $arraydefaultmessage->topic;
@ -659,7 +681,9 @@ if (empty($reshook)) {
$arraydefaultmessage = null; $arraydefaultmessage = null;
$labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_CANCELATION; $labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_CANCELATION;
if (!empty($labeltouse)) $arraydefaultmessage = $formmail->getEMailTemplate($db, 'member', $user, $outputlangs, 0, 1, $labeltouse); if (!empty($labeltouse)) {
$arraydefaultmessage = $formmail->getEMailTemplate($db, 'member', $user, $outputlangs, 0, 1, $labeltouse);
}
if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) { if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) {
$subject = $arraydefaultmessage->topic; $subject = $arraydefaultmessage->topic;
@ -757,7 +781,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
if (empty($object->error) && $id) { if (empty($object->error) && $id) {
$object = new Adherent($db); $object = new Adherent($db);
$result = $object->fetch($id); $result = $object->fetch($id);
if ($result <= 0) dol_print_error('', $object->error); if ($result <= 0) {
dol_print_error('', $object->error);
}
} }
$objcanvas->assign_values($action, $object->id, $object->ref); // Set value for templates $objcanvas->assign_values($action, $object->id, $object->ref); // Set value for templates
$objcanvas->display_canvas($action); // Show template $objcanvas->display_canvas($action); // Show template
@ -785,7 +811,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
if (!empty($socid)) { if (!empty($socid)) {
$object = new Societe($db); $object = new Societe($db);
if ($socid > 0) $object->fetch($socid); if ($socid > 0) {
$object->fetch($socid);
}
if (!($object->id > 0)) { if (!($object->id > 0)) {
$langs->load("errors"); $langs->load("errors");
@ -832,7 +860,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
print '<input type="hidden" name="token" value="'.newToken().'">'; print '<input type="hidden" name="token" value="'.newToken().'">';
print '<input type="hidden" name="action" value="add">'; print '<input type="hidden" name="action" value="add">';
print '<input type="hidden" name="socid" value="'.$socid.'">'; print '<input type="hidden" name="socid" value="'.$socid.'">';
if ($backtopage) print '<input type="hidden" name="backtopage" value="'.($backtopage != '1' ? $backtopage : $_SERVER["HTTP_REFERER"]).'">'; if ($backtopage) {
print '<input type="hidden" name="backtopage" value="'.($backtopage != '1' ? $backtopage : $_SERVER["HTTP_REFERER"]).'">';
}
print dol_get_fiche_head(''); print dol_get_fiche_head('');
@ -913,7 +943,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
$object->country_id = $object->country_id ? $object->country_id : $mysoc->country_id; $object->country_id = $object->country_id ? $object->country_id : $mysoc->country_id;
print '<tr><td width="25%">'.$langs->trans('Country').'</td><td>'; print '<tr><td width="25%">'.$langs->trans('Country').'</td><td>';
print $form->select_country(GETPOSTISSET('country_id') ? GETPOST('country_id', 'alpha') : $object->country_id, 'country_id'); print $form->select_country(GETPOSTISSET('country_id') ? GETPOST('country_id', 'alpha') : $object->country_id, 'country_id');
if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1); if ($user->admin) {
print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1);
}
print '</td></tr>'; print '</td></tr>';
// State // State
@ -941,7 +973,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
if (!empty($conf->socialnetworks->enabled)) { if (!empty($conf->socialnetworks->enabled)) {
foreach ($socialnetworks as $key => $value) { foreach ($socialnetworks as $key => $value) {
if (!$value['active']) break; if (!$value['active']) {
break;
}
print '<tr><td>'.$langs->trans($value['label']).'</td><td><input type="text" name="member_'.$key.'" size="40" value="'.(GETPOSTISSET('member_'.$key) ? GETPOST('member_'.$key, 'alpha') : $object->socialnetworks[$key]).'"></td></tr>'; print '<tr><td>'.$langs->trans($value['label']).'</td><td><input type="text" name="member_'.$key.'" size="40" value="'.(GETPOSTISSET('member_'.$key) ? GETPOST('member_'.$key, 'alpha') : $object->socialnetworks[$key]).'"></td></tr>';
} }
} }
@ -1057,7 +1091,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
print '<input type="hidden" name="action" value="update" />'; print '<input type="hidden" name="action" value="update" />';
print '<input type="hidden" name="rowid" value="'.$id.'" />'; print '<input type="hidden" name="rowid" value="'.$id.'" />';
print '<input type="hidden" name="statut" value="'.$object->statut.'" />'; print '<input type="hidden" name="statut" value="'.$object->statut.'" />';
if ($backtopage) print '<input type="hidden" name="backtopage" value="'.($backtopage != '1' ? $backtopage : $_SERVER["HTTP_REFERER"]).'">'; if ($backtopage) {
print '<input type="hidden" name="backtopage" value="'.($backtopage != '1' ? $backtopage : $_SERVER["HTTP_REFERER"]).'">';
}
print dol_get_fiche_head($head, 'general', $langs->trans("Member"), 0, 'user'); print dol_get_fiche_head($head, 'general', $langs->trans("Member"), 0, 'user');
@ -1121,9 +1157,13 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
print '<td class="hideonsmartphone" valign="middle">'; print '<td class="hideonsmartphone" valign="middle">';
print $form->showphoto('memberphoto', $object)."\n"; print $form->showphoto('memberphoto', $object)."\n";
if ($caneditfieldmember) { if ($caneditfieldmember) {
if ($object->photo) print "<br>\n"; if ($object->photo) {
print "<br>\n";
}
print '<table class="nobordernopadding">'; print '<table class="nobordernopadding">';
if ($object->photo) print '<tr><td><input type="checkbox" class="flat photodelete" name="deletephoto" id="photodelete"> '.$langs->trans("Delete").'<br><br></td></tr>'; if ($object->photo) {
print '<tr><td><input type="checkbox" class="flat photodelete" name="deletephoto" id="photodelete"> '.$langs->trans("Delete").'<br><br></td></tr>';
}
print '<tr><td>'.$langs->trans("PhotoFile").'</td></tr>'; print '<tr><td>'.$langs->trans("PhotoFile").'</td></tr>';
print '<tr><td><input type="file" class="flat" name="photo" id="photoinput"></td></tr>'; print '<tr><td><input type="file" class="flat" name="photo" id="photoinput"></td></tr>';
print '</table>'; print '</table>';
@ -1150,7 +1190,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
//$object->country_id=$object->country_id?$object->country_id:$mysoc->country_id; // In edit mode we don't force to company country if not defined //$object->country_id=$object->country_id?$object->country_id:$mysoc->country_id; // In edit mode we don't force to company country if not defined
print '<tr><td>'.$langs->trans('Country').'</td><td>'; print '<tr><td>'.$langs->trans('Country').'</td><td>';
print $form->select_country(GETPOSTISSET("country_id") ? GETPOST("country_id", "alpha") : $object->country_id, 'country_id'); print $form->select_country(GETPOSTISSET("country_id") ? GETPOST("country_id", "alpha") : $object->country_id, 'country_id');
if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1); if ($user->admin) {
print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1);
}
print '</td></tr>'; print '</td></tr>';
// State // State
@ -1174,7 +1216,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
if (!empty($conf->socialnetworks->enabled)) { if (!empty($conf->socialnetworks->enabled)) {
foreach ($socialnetworks as $key => $value) { foreach ($socialnetworks as $key => $value) {
if (!$value['active']) break; if (!$value['active']) {
break;
}
print '<tr><td>'.$langs->trans($value['label']).'</td><td><input type="text" name="'.$key.'" class="minwidth100" value="'.(GETPOSTISSET($key) ? GETPOST($key, 'alphanohtml') : $object->socialnetworks[$key]).'"></td></tr>'; print '<tr><td>'.$langs->trans($value['label']).'</td><td><input type="text" name="'.$key.'" class="minwidth100" value="'.(GETPOSTISSET($key) ? GETPOST($key, 'alphanohtml') : $object->socialnetworks[$key]).'"></td></tr>';
} }
} }
@ -1223,7 +1267,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
print '<tr><td>'.$langs->trans("LinkedToDolibarrUser").'</td><td colspan="2" class="valeur">'; print '<tr><td>'.$langs->trans("LinkedToDolibarrUser").'</td><td colspan="2" class="valeur">';
if ($object->user_id) { if ($object->user_id) {
$form->form_users($_SERVER['PHP_SELF'].'?rowid='.$object->id, $object->user_id, 'none'); $form->form_users($_SERVER['PHP_SELF'].'?rowid='.$object->id, $object->user_id, 'none');
} else print $langs->trans("NoDolibarrAccess"); } else {
print $langs->trans("NoDolibarrAccess");
}
print '</td></tr>'; print '</td></tr>';
// Other attributes. Fields from hook formObjectOptions and Extrafields. // Other attributes. Fields from hook formObjectOptions and Extrafields.
@ -1279,7 +1325,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
$login = dol_buildlogin($object->lastname, $object->firstname); $login = dol_buildlogin($object->lastname, $object->firstname);
} }
if (empty($login)) $login = strtolower(substr($object->firstname, 0, 4)).strtolower(substr($object->lastname, 0, 4)); if (empty($login)) {
$login = strtolower(substr($object->firstname, 0, 4)).strtolower(substr($object->lastname, 0, 4));
}
// Create a form array // Create a form array
$formquestion = array( $formquestion = array(
@ -1304,10 +1352,14 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
if ($object->morphy == 'mor') { if ($object->morphy == 'mor') {
$companyname = $object->company; $companyname = $object->company;
if (!empty($fullname)) $companyalias = $fullname; if (!empty($fullname)) {
$companyalias = $fullname;
}
} else { } else {
$companyname = $fullname; $companyname = $fullname;
if (!empty($object->company)) $companyalias = $object->company; if (!empty($object->company)) {
$companyalias = $object->company;
}
} }
// Create a form array // Create a form array
@ -1341,7 +1393,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
$arraydefaultmessage = null; $arraydefaultmessage = null;
$labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION; $labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION;
if (!empty($labeltouse)) $arraydefaultmessage = $formmail->getEMailTemplate($db, 'member', $user, $outputlangs, 0, 1, $labeltouse); if (!empty($labeltouse)) {
$arraydefaultmessage = $formmail->getEMailTemplate($db, 'member', $user, $outputlangs, 0, 1, $labeltouse);
}
if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) { if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) {
$subject = $arraydefaultmessage->topic; $subject = $arraydefaultmessage->topic;
@ -1368,7 +1422,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
// Create form popup // Create form popup
$formquestion = array(); $formquestion = array();
if ($object->email) $formquestion[] = array('type' => 'checkbox', 'name' => 'send_mail', 'label' => $label, 'value' => ($conf->global->ADHERENT_DEFAULT_SENDINFOBYMAIL ?true:false)); if ($object->email) {
$formquestion[] = array('type' => 'checkbox', 'name' => 'send_mail', 'label' => $label, 'value' => ($conf->global->ADHERENT_DEFAULT_SENDINFOBYMAIL ?true:false));
}
if (!empty($conf->mailman->enabled) && !empty($conf->global->ADHERENT_USE_MAILMAN)) { if (!empty($conf->mailman->enabled) && !empty($conf->global->ADHERENT_USE_MAILMAN)) {
$formquestion[] = array('type'=>'other', 'label'=>$langs->transnoentitiesnoconv("SynchroMailManEnabled"), 'value'=>''); $formquestion[] = array('type'=>'other', 'label'=>$langs->transnoentitiesnoconv("SynchroMailManEnabled"), 'value'=>'');
} }
@ -1400,7 +1456,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
$arraydefaultmessage = null; $arraydefaultmessage = null;
$labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_CANCELATION; $labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_CANCELATION;
if (!empty($labeltouse)) $arraydefaultmessage = $formmail->getEMailTemplate($db, 'member', $user, $outputlangs, 0, 1, $labeltouse); if (!empty($labeltouse)) {
$arraydefaultmessage = $formmail->getEMailTemplate($db, 'member', $user, $outputlangs, 0, 1, $labeltouse);
}
if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) { if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) {
$subject = $arraydefaultmessage->topic; $subject = $arraydefaultmessage->topic;
@ -1427,15 +1485,21 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
// Create an array // Create an array
$formquestion = array(); $formquestion = array();
if ($object->email) $formquestion[] = array('type' => 'checkbox', 'name' => 'send_mail', 'label' => $label, 'value' => (!empty($conf->global->ADHERENT_DEFAULT_SENDINFOBYMAIL) ? 'true' : 'false')); if ($object->email) {
if ($backtopage) $formquestion[] = array('type' => 'hidden', 'name' => 'backtopage', 'value' => ($backtopage != '1' ? $backtopage : $_SERVER["HTTP_REFERER"])); $formquestion[] = array('type' => 'checkbox', 'name' => 'send_mail', 'label' => $label, 'value' => (!empty($conf->global->ADHERENT_DEFAULT_SENDINFOBYMAIL) ? 'true' : 'false'));
}
if ($backtopage) {
$formquestion[] = array('type' => 'hidden', 'name' => 'backtopage', 'value' => ($backtopage != '1' ? $backtopage : $_SERVER["HTTP_REFERER"]));
}
print $form->formconfirm("card.php?rowid=".$id, $langs->trans("ResiliateMember"), $langs->trans("ConfirmResiliateMember"), "confirm_resign", $formquestion, 'no', 1, 240); print $form->formconfirm("card.php?rowid=".$id, $langs->trans("ResiliateMember"), $langs->trans("ConfirmResiliateMember"), "confirm_resign", $formquestion, 'no', 1, 240);
} }
// Confirm remove member // Confirm remove member
if ($action == 'delete') { if ($action == 'delete') {
$formquestion = array(); $formquestion = array();
if ($backtopage) $formquestion[] = array('type' => 'hidden', 'name' => 'backtopage', 'value' => ($backtopage != '1' ? $backtopage : $_SERVER["HTTP_REFERER"])); if ($backtopage) {
$formquestion[] = array('type' => 'hidden', 'name' => 'backtopage', 'value' => ($backtopage != '1' ? $backtopage : $_SERVER["HTTP_REFERER"]));
}
print $form->formconfirm("card.php?rowid=".$id, $langs->trans("DeleteMember"), $langs->trans("ConfirmDeleteMember"), "confirm_delete", $formquestion, 'no', 1); print $form->formconfirm("card.php?rowid=".$id, $langs->trans("DeleteMember"), $langs->trans("ConfirmDeleteMember"), "confirm_delete", $formquestion, 'no', 1);
} }
@ -1449,8 +1513,12 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
} }
$rowspan = 17; $rowspan = 17;
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) $rowspan++; if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) {
if (!empty($conf->societe->enabled)) $rowspan++; $rowspan++;
}
if (!empty($conf->societe->enabled)) {
$rowspan++;
}
$linkback = '<a href="'.DOL_URL_ROOT.'/adherents/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>'; $linkback = '<a href="'.DOL_URL_ROOT.'/adherents/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
@ -1477,7 +1545,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
// Gender // Gender
print '<tr><td>'.$langs->trans("Gender").'</td>'; print '<tr><td>'.$langs->trans("Gender").'</td>';
print '<td>'; print '<td>';
if ($object->gender) print $langs->trans("Gender".$object->gender); if ($object->gender) {
print $langs->trans("Gender".$object->gender);
}
print '</td></tr>'; print '</td></tr>';
// Company // Company
@ -1490,10 +1560,14 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
// Password // Password
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) { if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) {
print '<tr><td>'.$langs->trans("Password").'</td><td>'.preg_replace('/./i', '*', $object->pass); print '<tr><td>'.$langs->trans("Password").'</td><td>'.preg_replace('/./i', '*', $object->pass);
if ($object->pass) print preg_replace('/./i', '*', $object->pass); if ($object->pass) {
else { print preg_replace('/./i', '*', $object->pass);
if ($user->admin) print $langs->trans("Crypted").': '.$object->pass_indatabase_crypted; } else {
else print $langs->trans("Hidden"); if ($user->admin) {
print $langs->trans("Crypted").': '.$object->pass_indatabase_crypted;
} else {
print $langs->trans("Hidden");
}
} }
if ((!empty($object->pass) || !empty($object->pass_crypted)) && empty($object->user_id)) { if ((!empty($object->pass) || !empty($object->pass_crypted)) && empty($object->user_id)) {
$langs->load("errors"); $langs->load("errors");
@ -1515,14 +1589,44 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
print $langs->trans("SubscriptionNotNeeded"); print $langs->trans("SubscriptionNotNeeded");
} elseif (!$adht->subscription) { } elseif (!$adht->subscription) {
print $langs->trans("SubscriptionNotRecorded"); print $langs->trans("SubscriptionNotRecorded");
if ($object->statut > 0) print " ".img_warning($langs->trans("Late")); // displays delay Pictogram only if not a draft and not terminated if ($object->statut > 0) {
print " ".img_warning($langs->trans("Late")); // displays delay Pictogram only if not a draft and not terminated
}
} else { } else {
print $langs->trans("SubscriptionNotReceived"); print $langs->trans("SubscriptionNotReceived");
if ($object->statut > 0) print " ".img_warning($langs->trans("Late")); // displays delay Pictogram only if not a draft and not terminated if ($object->statut > 0) {
print " ".img_warning($langs->trans("Late")); // displays delay Pictogram only if not a draft and not terminated
}
} }
} }
print '</td></tr>'; print '</td></tr>';
print '</table>';
print '</div>';
print '<div class="fichehalfright"><div class="ficheaddleft">';
print '<div class="underbanner clearboth"></div>';
print '<table class="border tableforfield tableforfield" width="100%">';
// Birth Date
print '<tr><td class="titlefield">'.$langs->trans("DateOfBirth").'</td><td class="valeur">'.dol_print_date($object->birth, 'day').'</td></tr>';
// Public
print '<tr><td>'.$langs->trans("Public").'</td><td class="valeur">'.yn($object->public).'</td></tr>';
// Categories
if (!empty($conf->categorie->enabled) && !empty($user->rights->categorie->lire)) {
print '<tr><td>'.$langs->trans("Categories").'</td>';
print '<td colspan="2">';
print $form->showCategories($object->id, Categorie::TYPE_MEMBER, 1);
print '</td></tr>';
}
// Other attributes
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php';
// Third party Dolibarr // Third party Dolibarr
if (!empty($conf->societe->enabled)) { if (!empty($conf->societe->enabled)) {
print '<tr><td>'; print '<tr><td>';
@ -1566,34 +1670,11 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
$linkeduser->fetch($object->user_id); $linkeduser->fetch($object->user_id);
print $linkeduser->getNomUrl(-1); print $linkeduser->getNomUrl(-1);
} else { } else {
print $langs->trans("NoDolibarrAccess"); print '<span class="opacitymedium">'.$langs->trans("NoDolibarrAccess").'</span>';
} }
} }
print '</td></tr>'; print '</td></tr>';
print '</table>';
print '</div>';
print '<div class="fichehalfright"><div class="ficheaddleft">';
print '<div class="underbanner clearboth"></div>';
print '<table class="border tableforfield tableforfield" width="100%">';
// Birth Date
print '<tr><td class="titlefield">'.$langs->trans("DateOfBirth").'</td><td class="valeur">'.dol_print_date($object->birth, 'day').'</td></tr>';
// Public
print '<tr><td>'.$langs->trans("Public").'</td><td class="valeur">'.yn($object->public).'</td></tr>';
// Categories
if (!empty($conf->categorie->enabled) && !empty($user->rights->categorie->lire)) {
print '<tr><td>'.$langs->trans("Categories").'</td>';
print '<td colspan="2">';
print $form->showCategories($object->id, Categorie::TYPE_MEMBER, 1);
print '</td></tr>';
}
//VCard //VCard
print '<tr><td>'; print '<tr><td>';
print $langs->trans("VCard").'</td><td colspan="3">'; print $langs->trans("VCard").'</td><td colspan="3">';
@ -1603,9 +1684,6 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
print '</a>'; print '</a>';
print '</td></tr>'; print '</td></tr>';
// Other attributes
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php';
print "</table>\n"; print "</table>\n";
print "</div></div></div>\n"; print "</div></div></div>\n";
@ -1687,8 +1765,11 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
// Create third party // Create third party
if (!empty($conf->societe->enabled) && !$object->socid) { if (!empty($conf->societe->enabled) && !$object->socid) {
if ($user->rights->societe->creer) { if ($user->rights->societe->creer) {
if ($object->statut != -1) print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?rowid='.$object->id.'&amp;action=create_thirdparty">'.$langs->trans("CreateDolibarrThirdParty").'</a></div>'; if ($object->statut != -1) {
else print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("ValidateBefore")).'">'.$langs->trans("CreateDolibarrThirdParty").'</a></div>'; print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?rowid='.$object->id.'&amp;action=create_thirdparty">'.$langs->trans("CreateDolibarrThirdParty").'</a></div>';
} else {
print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("ValidateBefore")).'">'.$langs->trans("CreateDolibarrThirdParty").'</a></div>';
}
} else { } else {
print '<div class="inline-block divButAction"><font class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("CreateDolibarrThirdParty")."</font></div>"; print '<div class="inline-block divButAction"><font class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("CreateDolibarrThirdParty")."</font></div>";
} }
@ -1697,8 +1778,11 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
// Create user // Create user
if (!$user->socid && !$object->user_id) { if (!$user->socid && !$object->user_id) {
if ($user->rights->user->user->creer) { if ($user->rights->user->user->creer) {
if ($object->statut != -1) print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?rowid='.$object->id.'&amp;action=create_user">'.$langs->trans("CreateDolibarrLogin").'</a></div>'; if ($object->statut != -1) {
else print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("ValidateBefore")).'">'.$langs->trans("CreateDolibarrLogin").'</a></div>'; print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?rowid='.$object->id.'&amp;action=create_user">'.$langs->trans("CreateDolibarrLogin").'</a></div>';
} else {
print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("ValidateBefore")).'">'.$langs->trans("CreateDolibarrLogin").'</a></div>';
}
} else { } else {
print '<div class="inline-block divButAction"><font class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("CreateDolibarrLogin")."</font></div>"; print '<div class="inline-block divButAction"><font class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("CreateDolibarrLogin")."</font></div>";
} }

View File

@ -80,8 +80,12 @@ if ((!empty($foruserid) || !empty($foruserlogin) || !empty($mode)) && !$mesg) {
} }
$sql .= " WHERE d.fk_adherent_type = t.rowid AND d.statut = 1"; $sql .= " WHERE d.fk_adherent_type = t.rowid AND d.statut = 1";
$sql .= " AND d.entity IN (".getEntity('adherent').")"; $sql .= " AND d.entity IN (".getEntity('adherent').")";
if (is_numeric($foruserid)) $sql .= " AND d.rowid=".(int) $foruserid; if (is_numeric($foruserid)) {
if ($foruserlogin) $sql .= " AND d.login='".$db->escape($foruserlogin)."'"; $sql .= " AND d.rowid=".(int) $foruserid;
}
if ($foruserlogin) {
$sql .= " AND d.login='".$db->escape($foruserlogin)."'";
}
$sql .= " ORDER BY d.rowid ASC"; $sql .= " ORDER BY d.rowid ASC";
dol_syslog("Search members", LOG_DEBUG); dol_syslog("Search members", LOG_DEBUG);
@ -92,7 +96,9 @@ if ((!empty($foruserid) || !empty($foruserlogin) || !empty($mode)) && !$mesg) {
while ($i < $num) { while ($i < $num) {
$objp = $db->fetch_object($result); $objp = $db->fetch_object($result);
if ($objp->country == '-') $objp->country = ''; if ($objp->country == '-') {
$objp->country = '';
}
$adherentstatic->id = $objp->rowid; $adherentstatic->id = $objp->rowid;
$adherentstatic->ref = $objp->ref; $adherentstatic->ref = $objp->ref;
@ -147,7 +153,9 @@ if ((!empty($foruserid) || !empty($foruserlogin) || !empty($mode)) && !$mesg) {
if (is_numeric($foruserid) || $foruserlogin) { if (is_numeric($foruserid) || $foruserlogin) {
$nb = $_Avery_Labels[$model]['NX'] * $_Avery_Labels[$model]['NY']; $nb = $_Avery_Labels[$model]['NX'] * $_Avery_Labels[$model]['NY'];
if ($nb <= 0) $nb = 1; // Protection to avoid empty page if ($nb <= 0) {
$nb = 1; // Protection to avoid empty page
}
for ($j = 0; $j < $nb; $j++) { for ($j = 0; $j < $nb; $j++) {
$arrayofmembers[] = array( $arrayofmembers[] = array(
@ -175,7 +183,9 @@ if ((!empty($foruserid) || !empty($foruserlogin) || !empty($mode)) && !$mesg) {
// For labels // For labels
if ($mode == 'label') { if ($mode == 'label') {
if (empty($conf->global->ADHERENT_ETIQUETTE_TEXT)) $conf->global->ADHERENT_ETIQUETTE_TEXT = "__FULLNAME__\n__ADDRESS__\n__ZIP__ __TOWN__\n__COUNTRY__"; if (empty($conf->global->ADHERENT_ETIQUETTE_TEXT)) {
$conf->global->ADHERENT_ETIQUETTE_TEXT = "__FULLNAME__\n__ADDRESS__\n__ZIP__ __TOWN__\n__COUNTRY__";
}
$textleft = make_substitutions($conf->global->ADHERENT_ETIQUETTE_TEXT, $substitutionarray); $textleft = make_substitutions($conf->global->ADHERENT_ETIQUETTE_TEXT, $substitutionarray);
$textheader = ''; $textheader = '';
$textfooter = ''; $textfooter = '';
@ -203,7 +213,9 @@ if ((!empty($foruserid) || !empty($foruserlogin) || !empty($mode)) && !$mesg) {
if (empty($model) || $model == '-1') { if (empty($model) || $model == '-1') {
$mesg = $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DescADHERENT_CARD_TYPE")); $mesg = $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DescADHERENT_CARD_TYPE"));
} }
if (!$mesg) $result = members_card_pdf_create($db, $arrayofmembers, $model, $outputlangs); if (!$mesg) {
$result = members_card_pdf_create($db, $arrayofmembers, $model, $outputlangs);
}
} elseif ($mode == 'label') { } elseif ($mode == 'label') {
if (!count($arrayofmembers)) { if (!count($arrayofmembers)) {
$mesg = $langs->trans("ErrorRecordNotFound"); $mesg = $langs->trans("ErrorRecordNotFound");
@ -211,7 +223,9 @@ if ((!empty($foruserid) || !empty($foruserlogin) || !empty($mode)) && !$mesg) {
if (empty($modellabel) || $modellabel == '-1') { if (empty($modellabel) || $modellabel == '-1') {
$mesg = $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DescADHERENT_ETIQUETTE_TYPE")); $mesg = $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DescADHERENT_ETIQUETTE_TYPE"));
} }
if (!$mesg) $result = doc_label_pdf_create($db, $arrayofmembers, $modellabel, $outputlangs); if (!$mesg) {
$result = doc_label_pdf_create($db, $arrayofmembers, $modellabel, $outputlangs);
}
} }
if ($result <= 0) { if ($result <= 0) {

View File

@ -373,18 +373,24 @@ class Adherent extends CommonObject
// Detect if message is HTML // Detect if message is HTML
if ($msgishtml == -1) { if ($msgishtml == -1) {
$msgishtml = 0; $msgishtml = 0;
if (dol_textishtml($text, 0)) $msgishtml = 1; if (dol_textishtml($text, 0)) {
$msgishtml = 1;
}
} }
dol_syslog('send_an_email msgishtml='.$msgishtml); dol_syslog('send_an_email msgishtml='.$msgishtml);
$texttosend = $this->makeSubstitution($text); $texttosend = $this->makeSubstitution($text);
$subjecttosend = $this->makeSubstitution($subject); $subjecttosend = $this->makeSubstitution($subject);
if ($msgishtml) $texttosend = dol_htmlentitiesbr($texttosend); if ($msgishtml) {
$texttosend = dol_htmlentitiesbr($texttosend);
}
// Envoi mail confirmation // Envoi mail confirmation
$from = $conf->email_from; $from = $conf->email_from;
if (!empty($conf->global->ADHERENT_MAIL_FROM)) $from = $conf->global->ADHERENT_MAIL_FROM; if (!empty($conf->global->ADHERENT_MAIL_FROM)) {
$from = $conf->global->ADHERENT_MAIL_FROM;
}
$trackid = 'mem'.$this->id; $trackid = 'mem'.$this->id;
@ -413,10 +419,14 @@ class Adherent extends CommonObject
$birthday = dol_print_date($this->birth, 'day'); $birthday = dol_print_date($this->birth, 'day');
$msgishtml = 0; $msgishtml = 0;
if (dol_textishtml($text, 1)) $msgishtml = 1; if (dol_textishtml($text, 1)) {
$msgishtml = 1;
}
$infos = ''; $infos = '';
if ($this->civility_id) $infos .= $langs->transnoentities("UserTitle").": ".$this->getCivilityLabel()."\n"; if ($this->civility_id) {
$infos .= $langs->transnoentities("UserTitle").": ".$this->getCivilityLabel()."\n";
}
$infos .= $langs->transnoentities("id").": ".$this->id."\n"; $infos .= $langs->transnoentities("id").": ".$this->id."\n";
$infos .= $langs->transnoentities("ref").": ".$this->ref."\n"; $infos .= $langs->transnoentities("ref").": ".$this->ref."\n";
$infos .= $langs->transnoentities("Lastname").": ".$this->lastname."\n"; $infos .= $langs->transnoentities("Lastname").": ".$this->lastname."\n";
@ -514,7 +524,9 @@ class Adherent extends CommonObject
$this->error = $langs->trans("ErrorBadEMail", $this->email); $this->error = $langs->trans("ErrorBadEMail", $this->email);
return -1; return -1;
} }
if (!$this->datec) $this->datec = $now; if (!$this->datec) {
$this->datec = $now;
}
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) { if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) {
if (empty($this->login)) { if (empty($this->login)) {
$this->error = $langs->trans("ErrorWrongValueForParameterX", "Login"); $this->error = $langs->trans("ErrorWrongValueForParameterX", "Login");
@ -669,9 +681,15 @@ class Adherent extends CommonObject
$sql .= ", fk_adherent_type = ".$this->db->escape($this->typeid); $sql .= ", fk_adherent_type = ".$this->db->escape($this->typeid);
$sql .= ", morphy = '".$this->db->escape($this->morphy)."'"; $sql .= ", morphy = '".$this->db->escape($this->morphy)."'";
$sql .= ", birth = ".($this->birth ? "'".$this->db->idate($this->birth)."'" : "null"); $sql .= ", birth = ".($this->birth ? "'".$this->db->idate($this->birth)."'" : "null");
if ($this->socid) $sql .= ", fk_soc = '".$this->db->escape($this->socid)."'"; // Must be modified only when creating from a third-party if ($this->socid) {
if ($this->datefin) $sql .= ", datefin = '".$this->db->idate($this->datefin)."'"; // Must be modified only when deleting a subscription $sql .= ", fk_soc = '".$this->db->escape($this->socid)."'"; // Must be modified only when creating from a third-party
if ($this->datevalid) $sql .= ", datevalid = '".$this->db->idate($this->datevalid)."'"; // Must be modified only when validating a member }
if ($this->datefin) {
$sql .= ", datefin = '".$this->db->idate($this->datefin)."'"; // Must be modified only when deleting a subscription
}
if ($this->datevalid) {
$sql .= ", datevalid = '".$this->db->idate($this->datevalid)."'"; // Must be modified only when validating a member
}
$sql .= ", fk_user_mod = ".($user->id > 0 ? $user->id : 'null'); // Can be null because member can be create by a guest $sql .= ", fk_user_mod = ".($user->id > 0 ? $user->id : 'null'); // Can be null because member can be create by a guest
$sql .= " WHERE rowid = ".$this->id; $sql .= " WHERE rowid = ".$this->id;
@ -716,7 +734,9 @@ class Adherent extends CommonObject
// If password to set differs from the one found into database // If password to set differs from the one found into database
$result = $this->setPassword($user, $this->pass, $isencrypted, $notrigger, $nosyncuserpass); $result = $this->setPassword($user, $this->pass, $isencrypted, $notrigger, $nosyncuserpass);
if (!$nbrowsaffected) $nbrowsaffected++; if (!$nbrowsaffected) {
$nbrowsaffected++;
}
} }
} }
@ -759,7 +779,9 @@ class Adherent extends CommonObject
//var_dump($this->login);exit; //var_dump($this->login);exit;
// If option ADHERENT_LOGIN_NOT_REQUIRED is on, there is no login of member, so we do not overwrite user login to keep existing one. // If option ADHERENT_LOGIN_NOT_REQUIRED is on, there is no login of member, so we do not overwrite user login to keep existing one.
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) $luser->login = $this->login; if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) {
$luser->login = $this->login;
}
$luser->ref = $this->ref; $luser->ref = $this->ref;
$luser->civility_id = $this->civility_id; $luser->civility_id = $this->civility_id;
@ -925,14 +947,18 @@ class Adherent extends CommonObject
$errorflag = 0; $errorflag = 0;
// Check parameters // Check parameters
if (empty($rowid)) $rowid = $this->id; if (empty($rowid)) {
$rowid = $this->id;
}
$this->db->begin(); $this->db->begin();
if (!$error && !$notrigger) { if (!$error && !$notrigger) {
// Call trigger // Call trigger
$result = $this->call_trigger('MEMBER_DELETE', $user); $result = $this->call_trigger('MEMBER_DELETE', $user);
if ($result < 0) $error++; if ($result < 0) {
$error++;
}
// End call triggers // End call triggers
} }
@ -1474,7 +1500,9 @@ class Adherent extends CommonObject
$error = 0; $error = 0;
// Clean parameters // Clean parameters
if (!$amount) $amount = 0; if (!$amount) {
$amount = 0;
}
$this->db->begin(); $this->db->begin();
@ -1605,10 +1633,14 @@ class Adherent extends CommonObject
if ($this->morphy == 'mor') { if ($this->morphy == 'mor') {
$companyname = $this->company; $companyname = $this->company;
if (!empty($fullname)) $companyalias = $fullname; if (!empty($fullname)) {
$companyalias = $fullname;
}
} else { } else {
$companyname = $fullname; $companyname = $fullname;
if (!empty($this->company)) $companyalias = $this->company; if (!empty($this->company)) {
$companyalias = $this->company;
}
} }
$result = $customer->create_from_member($this, $companyname, $companyalias); $result = $customer->create_from_member($this, $companyname, $companyalias);
@ -1671,7 +1703,9 @@ class Adherent extends CommonObject
if (!$error) { if (!$error) {
// Add line to draft invoice // Add line to draft invoice
$idprodsubscription = 0; $idprodsubscription = 0;
if (!empty($conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS) && (!empty($conf->product->enabled) || !empty($conf->service->enabled))) $idprodsubscription = $conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS; if (!empty($conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS) && (!empty($conf->product->enabled) || !empty($conf->service->enabled))) {
$idprodsubscription = $conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS;
}
$vattouse = 0; $vattouse = 0;
if (isset($conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS) && $conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS == 'defaultforfoundationcountry') { if (isset($conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS) && $conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS == 'defaultforfoundationcountry') {
@ -1758,8 +1792,12 @@ class Adherent extends CommonObject
$outputlangs = $langs; $outputlangs = $langs;
$newlang = ''; $newlang = '';
$lang_id = GETPOST('lang_id'); $lang_id = GETPOST('lang_id');
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && !empty($lang_id)) $newlang = $lang_id; if ($conf->global->MAIN_MULTILANGS && empty($newlang) && !empty($lang_id)) {
if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $customer->default_lang; $newlang = $lang_id;
}
if ($conf->global->MAIN_MULTILANGS && empty($newlang)) {
$newlang = $customer->default_lang;
}
if (!empty($newlang)) { if (!empty($newlang)) {
$outputlangs = new Translate("", $conf); $outputlangs = new Translate("", $conf);
$outputlangs->setDefaultLang($newlang); $outputlangs->setDefaultLang($newlang);
@ -1901,7 +1939,9 @@ class Adherent extends CommonObject
$result = $mailmanspip->add_to_mailman($this); $result = $mailmanspip->add_to_mailman($this);
if ($result < 0) { if ($result < 0) {
if (!empty($mailmanspip->error)) $this->errors[] = $mailmanspip->error; if (!empty($mailmanspip->error)) {
$this->errors[] = $mailmanspip->error;
}
$err += 1; $err += 1;
} }
foreach ($mailmanspip->mladded_ko as $tmplist => $tmpemail) { foreach ($mailmanspip->mladded_ko as $tmplist => $tmpemail) {
@ -1950,7 +1990,9 @@ class Adherent extends CommonObject
if (!empty($conf->global->ADHERENT_USE_MAILMAN)) { if (!empty($conf->global->ADHERENT_USE_MAILMAN)) {
$result = $mailmanspip->del_to_mailman($this); $result = $mailmanspip->del_to_mailman($this);
if ($result < 0) { if ($result < 0) {
if (!empty($mailmanspip->error)) $this->errors[] = $mailmanspip->error; if (!empty($mailmanspip->error)) {
$this->errors[] = $mailmanspip->error;
}
$err += 1; $err += 1;
} }
@ -1991,7 +2033,9 @@ class Adherent extends CommonObject
$langs->load("dict"); $langs->load("dict");
$code = (empty($this->civility_id) ? '' : $this->civility_id); $code = (empty($this->civility_id) ? '' : $this->civility_id);
if (empty($code)) return ''; if (empty($code)) {
return '';
}
return $langs->getLabelFromKey($this->db, "Civility".$code, "c_civility", "code", "label", $code); return $langs->getLabelFromKey($this->db, "Civility".$code, "c_civility", "code", "label", $code);
} }
@ -2012,7 +2056,9 @@ class Adherent extends CommonObject
{ {
global $conf, $langs; global $conf, $langs;
if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) && $withpictoimg) $withpictoimg = 0; if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) && $withpictoimg) {
$withpictoimg = 0;
}
$result = ''; $result = '';
$label = ''; $label = '';
@ -2028,9 +2074,15 @@ class Adherent extends CommonObject
$label .= '<div class="centpercent">'; $label .= '<div class="centpercent">';
$label .= img_picto('', $this->picto).' <u class="paddingrightonly">'.$langs->trans("Member").'</u>'; $label .= img_picto('', $this->picto).' <u class="paddingrightonly">'.$langs->trans("Member").'</u>';
$label .= ' '.$this->getLibStatut(4); $label .= ' '.$this->getLibStatut(4);
if (!empty($this->ref)) $label .= '<br><b>'.$langs->trans('Ref').':</b> '.$this->ref; if (!empty($this->ref)) {
if (!empty($this->firstname) || !empty($this->lastname)) $label .= '<br><b>'.$langs->trans('Name').':</b> '.$this->getFullName($langs); $label .= '<br><b>'.$langs->trans('Ref').':</b> '.$this->ref;
if (!empty($this->company)) $label .= '<br><b>'.$langs->trans('Company').':</b> '.$this->company; }
if (!empty($this->firstname) || !empty($this->lastname)) {
$label .= '<br><b>'.$langs->trans('Name').':</b> '.$this->getFullName($langs);
}
if (!empty($this->company)) {
$label .= '<br><b>'.$langs->trans('Company').':</b> '.$this->company;
}
$label .= '</div>'; $label .= '</div>';
$url = DOL_URL_ROOT.'/adherents/card.php?rowid='.$this->id; $url = DOL_URL_ROOT.'/adherents/card.php?rowid='.$this->id;
@ -2041,8 +2093,12 @@ class Adherent extends CommonObject
if ($option != 'nolink') { if ($option != 'nolink') {
// Add param to save lastsearch_values or not // Add param to save lastsearch_values or not
$add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0); $add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0);
if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) $add_save_lastsearch_values = 1; if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) {
if ($add_save_lastsearch_values) $url .= '&save_lastsearch_values=1'; $add_save_lastsearch_values = 1;
}
if ($add_save_lastsearch_values) {
$url .= '&save_lastsearch_values=1';
}
} }
$linkstart .= '<a href="'.$url.'"'; $linkstart .= '<a href="'.$url.'"';
@ -2061,16 +2117,20 @@ class Adherent extends CommonObject
$linkend = '</a>'; $linkend = '</a>';
$result .= $linkstart; $result .= $linkstart;
if ($withpictoimg) $result .= '<div class="inline-block nopadding valignmiddle">'; if ($withpictoimg) {
$result .= '<div class="inline-block nopadding valignmiddle">';
}
if ($withpictoimg) { if ($withpictoimg) {
$paddafterimage = ''; $paddafterimage = '';
if (abs($withpictoimg) == 1) $paddafterimage = 'style="margin-right: 3px;"'; if (abs($withpictoimg) == 1) {
$paddafterimage = 'style="margin-right: 3px;"';
}
// Only picto // Only picto
if ($withpictoimg > 0) if ($withpictoimg > 0) {
$picto = '<span class="nopadding'.($morecss ? ' userimg'.$morecss : '').'">'. $picto = '<span class="nopadding'.($morecss ? ' userimg'.$morecss : '').'">'.
img_object('', 'user', $paddafterimage.' '.($notooltip ? '' : 'class="classfortooltip"'), 0, 0, $notooltip ? 0 : 1).'</span>'; img_object('', 'user', $paddafterimage.' '.($notooltip ? '' : 'class="classfortooltip"'), 0, 0, $notooltip ? 0 : 1).'</span>';
} else {
// Picto must be a photo // Picto must be a photo
else {
$picto = '<span class="nopadding'.($morecss ? ' userimg'.$morecss : '').'"'.($paddafterimage ? ' '.$paddafterimage : '').'>'; $picto = '<span class="nopadding'.($morecss ? ' userimg'.$morecss : '').'"'.($paddafterimage ? ' '.$paddafterimage : '').'>';
$picto .= Form::showphoto('memberphoto', $this, 0, 0, 0, 'userphoto'.($withpictoimg == -3 ? 'small' : ''), 'mini', 0, 1); $picto .= Form::showphoto('memberphoto', $this, 0, 0, 0, 'userphoto'.($withpictoimg == -3 ? 'small' : ''), 'mini', 0, 1);
$picto .= '</span>'; $picto .= '</span>';
@ -2078,8 +2138,10 @@ class Adherent extends CommonObject
$result .= $picto; $result .= $picto;
} }
if ($withpictoimg > -2 && $withpictoimg != 2) { if ($withpictoimg > -2 && $withpictoimg != 2) {
if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) $result .= '<span class="nopadding valignmiddle'.((!isset($this->statut) || $this->statut) ? '' : ' strikefordisabled'). if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) {
$result .= '<span class="nopadding valignmiddle'.((!isset($this->statut) || $this->statut) ? '' : ' strikefordisabled').
($morecss ? ' usertext'.$morecss : '').'">'; ($morecss ? ' usertext'.$morecss : '').'">';
}
if ($mode == 'login') { if ($mode == 'login') {
$result .= dol_trunc($this->login, $maxlen); $result .= dol_trunc($this->login, $maxlen);
} elseif ($mode == 'ref') { } elseif ($mode == 'ref') {
@ -2087,9 +2149,13 @@ class Adherent extends CommonObject
} else { } else {
$result .= $this->getFullName($langs, '', ($mode == 'firstname' ? 2 : ($mode == 'lastname' ? 4 : -1)), $maxlen); $result .= $this->getFullName($langs, '', ($mode == 'firstname' ? 2 : ($mode == 'lastname' ? 4 : -1)), $maxlen);
} }
if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) $result .= '</span>'; if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) {
$result .= '</span>';
}
}
if ($withpictoimg) {
$result .= '</div>';
} }
if ($withpictoimg) $result .= '</div>';
$result .= $linkend; $result .= $linkend;
if ($addlinktonotes) { if ($addlinktonotes) {
@ -2214,7 +2280,9 @@ class Adherent extends CommonObject
// phpcs:enable // phpcs:enable
global $conf, $langs; global $conf, $langs;
if ($user->socid) return -1; // protection pour eviter appel par utilisateur externe if ($user->socid) {
return -1; // protection pour eviter appel par utilisateur externe
}
$now = dol_now(); $now = dol_now();
@ -2398,9 +2466,15 @@ class Adherent extends CommonObject
// phpcs:enable // phpcs:enable
global $conf; global $conf;
$dn = ''; $dn = '';
if ($mode == 0) $dn = $conf->global->LDAP_KEY_MEMBERS."=".$info[$conf->global->LDAP_KEY_MEMBERS].",".$conf->global->LDAP_MEMBER_DN; if ($mode == 0) {
if ($mode == 1) $dn = $conf->global->LDAP_MEMBER_DN; $dn = $conf->global->LDAP_KEY_MEMBERS."=".$info[$conf->global->LDAP_KEY_MEMBERS].",".$conf->global->LDAP_MEMBER_DN;
if ($mode == 2) $dn = $conf->global->LDAP_KEY_MEMBERS."=".$info[$conf->global->LDAP_KEY_MEMBERS]; }
if ($mode == 1) {
$dn = $conf->global->LDAP_MEMBER_DN;
}
if ($mode == 2) {
$dn = $conf->global->LDAP_KEY_MEMBERS."=".$info[$conf->global->LDAP_KEY_MEMBERS];
}
return $dn; return $dn;
} }
@ -2448,31 +2522,65 @@ class Adherent extends CommonObject
// Check if it is the LDAP key and if its value has been changed // Check if it is the LDAP key and if its value has been changed
if (!empty($conf->global->LDAP_KEY_MEMBERS) && $conf->global->LDAP_KEY_MEMBERS == $conf->global->$constname) { if (!empty($conf->global->LDAP_KEY_MEMBERS) && $conf->global->LDAP_KEY_MEMBERS == $conf->global->$constname) {
if (!empty($this->oldcopy) && $this->$varname != $this->oldcopy->$varname) $keymodified = true; // For check if LDAP key has been modified if (!empty($this->oldcopy) && $this->$varname != $this->oldcopy->$varname) {
$keymodified = true; // For check if LDAP key has been modified
} }
} }
} }
if ($this->firstname && !empty($conf->global->LDAP_MEMBER_FIELD_FIRSTNAME)) $info[$conf->global->LDAP_MEMBER_FIELD_FIRSTNAME] = $this->firstname; }
if ($this->poste && !empty($conf->global->LDAP_MEMBER_FIELD_TITLE)) $info[$conf->global->LDAP_MEMBER_FIELD_TITLE] = $this->poste; if ($this->firstname && !empty($conf->global->LDAP_MEMBER_FIELD_FIRSTNAME)) {
if ($this->company && !empty($conf->global->LDAP_MEMBER_FIELD_COMPANY)) $info[$conf->global->LDAP_MEMBER_FIELD_COMPANY] = $this->company; $info[$conf->global->LDAP_MEMBER_FIELD_FIRSTNAME] = $this->firstname;
if ($this->address && !empty($conf->global->LDAP_MEMBER_FIELD_ADDRESS)) $info[$conf->global->LDAP_MEMBER_FIELD_ADDRESS] = $this->address; }
if ($this->zip && !empty($conf->global->LDAP_MEMBER_FIELD_ZIP)) $info[$conf->global->LDAP_MEMBER_FIELD_ZIP] = $this->zip; if ($this->poste && !empty($conf->global->LDAP_MEMBER_FIELD_TITLE)) {
if ($this->town && !empty($conf->global->LDAP_MEMBER_FIELD_TOWN)) $info[$conf->global->LDAP_MEMBER_FIELD_TOWN] = $this->town; $info[$conf->global->LDAP_MEMBER_FIELD_TITLE] = $this->poste;
if ($this->country_code && !empty($conf->global->LDAP_MEMBER_FIELD_COUNTRY)) $info[$conf->global->LDAP_MEMBER_FIELD_COUNTRY] = $this->country_code; }
if ($this->company && !empty($conf->global->LDAP_MEMBER_FIELD_COMPANY)) {
$info[$conf->global->LDAP_MEMBER_FIELD_COMPANY] = $this->company;
}
if ($this->address && !empty($conf->global->LDAP_MEMBER_FIELD_ADDRESS)) {
$info[$conf->global->LDAP_MEMBER_FIELD_ADDRESS] = $this->address;
}
if ($this->zip && !empty($conf->global->LDAP_MEMBER_FIELD_ZIP)) {
$info[$conf->global->LDAP_MEMBER_FIELD_ZIP] = $this->zip;
}
if ($this->town && !empty($conf->global->LDAP_MEMBER_FIELD_TOWN)) {
$info[$conf->global->LDAP_MEMBER_FIELD_TOWN] = $this->town;
}
if ($this->country_code && !empty($conf->global->LDAP_MEMBER_FIELD_COUNTRY)) {
$info[$conf->global->LDAP_MEMBER_FIELD_COUNTRY] = $this->country_code;
}
foreach ($socialnetworks as $key => $value) { foreach ($socialnetworks as $key => $value) {
if ($this->socialnetworks[$value['label']] && !empty($conf->global->{'LDAP_MEMBER_FIELD_'.strtoupper($value['label'])})) { if ($this->socialnetworks[$value['label']] && !empty($conf->global->{'LDAP_MEMBER_FIELD_'.strtoupper($value['label'])})) {
$info[$conf->global->{'LDAP_MEMBER_FIELD_'.strtoupper($value['label'])}] = $this->socialnetworks[$value['label']]; $info[$conf->global->{'LDAP_MEMBER_FIELD_'.strtoupper($value['label'])}] = $this->socialnetworks[$value['label']];
} }
} }
if ($this->phone && !empty($conf->global->LDAP_MEMBER_FIELD_PHONE)) $info[$conf->global->LDAP_MEMBER_FIELD_PHONE] = $this->phone; if ($this->phone && !empty($conf->global->LDAP_MEMBER_FIELD_PHONE)) {
if ($this->phone_perso && !empty($conf->global->LDAP_MEMBER_FIELD_PHONE_PERSO)) $info[$conf->global->LDAP_MEMBER_FIELD_PHONE_PERSO] = $this->phone_perso; $info[$conf->global->LDAP_MEMBER_FIELD_PHONE] = $this->phone;
if ($this->phone_mobile && !empty($conf->global->LDAP_MEMBER_FIELD_MOBILE)) $info[$conf->global->LDAP_MEMBER_FIELD_MOBILE] = $this->phone_mobile; }
if ($this->fax && !empty($conf->global->LDAP_MEMBER_FIELD_FAX)) $info[$conf->global->LDAP_MEMBER_FIELD_FAX] = $this->fax; if ($this->phone_perso && !empty($conf->global->LDAP_MEMBER_FIELD_PHONE_PERSO)) {
if ($this->note_private && !empty($conf->global->LDAP_MEMBER_FIELD_DESCRIPTION)) $info[$conf->global->LDAP_MEMBER_FIELD_DESCRIPTION] = dol_string_nohtmltag($this->note_private, 2); $info[$conf->global->LDAP_MEMBER_FIELD_PHONE_PERSO] = $this->phone_perso;
if ($this->note_public && !empty($conf->global->LDAP_MEMBER_FIELD_NOTE_PUBLIC)) $info[$conf->global->LDAP_MEMBER_FIELD_NOTE_PUBLIC] = dol_string_nohtmltag($this->note_public, 2); }
if ($this->birth && !empty($conf->global->LDAP_MEMBER_FIELD_BIRTHDATE)) $info[$conf->global->LDAP_MEMBER_FIELD_BIRTHDATE] = dol_print_date($this->birth, 'dayhourldap'); if ($this->phone_mobile && !empty($conf->global->LDAP_MEMBER_FIELD_MOBILE)) {
if (isset($this->statut) && !empty($conf->global->LDAP_FIELD_MEMBER_STATUS)) $info[$conf->global->LDAP_FIELD_MEMBER_STATUS] = $this->statut; $info[$conf->global->LDAP_MEMBER_FIELD_MOBILE] = $this->phone_mobile;
if ($this->datefin && !empty($conf->global->LDAP_FIELD_MEMBER_END_LASTSUBSCRIPTION)) $info[$conf->global->LDAP_FIELD_MEMBER_END_LASTSUBSCRIPTION] = dol_print_date($this->datefin, 'dayhourldap'); }
if ($this->fax && !empty($conf->global->LDAP_MEMBER_FIELD_FAX)) {
$info[$conf->global->LDAP_MEMBER_FIELD_FAX] = $this->fax;
}
if ($this->note_private && !empty($conf->global->LDAP_MEMBER_FIELD_DESCRIPTION)) {
$info[$conf->global->LDAP_MEMBER_FIELD_DESCRIPTION] = dol_string_nohtmltag($this->note_private, 2);
}
if ($this->note_public && !empty($conf->global->LDAP_MEMBER_FIELD_NOTE_PUBLIC)) {
$info[$conf->global->LDAP_MEMBER_FIELD_NOTE_PUBLIC] = dol_string_nohtmltag($this->note_public, 2);
}
if ($this->birth && !empty($conf->global->LDAP_MEMBER_FIELD_BIRTHDATE)) {
$info[$conf->global->LDAP_MEMBER_FIELD_BIRTHDATE] = dol_print_date($this->birth, 'dayhourldap');
}
if (isset($this->statut) && !empty($conf->global->LDAP_FIELD_MEMBER_STATUS)) {
$info[$conf->global->LDAP_FIELD_MEMBER_STATUS] = $this->statut;
}
if ($this->datefin && !empty($conf->global->LDAP_FIELD_MEMBER_END_LASTSUBSCRIPTION)) {
$info[$conf->global->LDAP_FIELD_MEMBER_END_LASTSUBSCRIPTION] = dol_print_date($this->datefin, 'dayhourldap');
}
// When password is modified // When password is modified
if (!empty($this->pass)) { if (!empty($this->pass)) {
@ -2482,8 +2590,9 @@ class Adherent extends CommonObject
if (!empty($conf->global->LDAP_MEMBER_FIELD_PASSWORD_CRYPTED)) { if (!empty($conf->global->LDAP_MEMBER_FIELD_PASSWORD_CRYPTED)) {
$info[$conf->global->LDAP_MEMBER_FIELD_PASSWORD_CRYPTED] = dol_hash($this->pass, 4); // Create OpenLDAP MD5 password (TODO add type of encryption) $info[$conf->global->LDAP_MEMBER_FIELD_PASSWORD_CRYPTED] = dol_hash($this->pass, 4); // Create OpenLDAP MD5 password (TODO add type of encryption)
} }
} // Set LDAP password if possible } elseif ($conf->global->LDAP_SERVER_PROTOCOLVERSION !== '3') {
elseif ($conf->global->LDAP_SERVER_PROTOCOLVERSION !== '3') { // If ldap key is modified and LDAPv3 we use ldap_rename function for avoid lose encrypt password // Set LDAP password if possible
// If ldap key is modified and LDAPv3 we use ldap_rename function for avoid lose encrypt password
if (!empty($conf->global->DATABASE_PWD_ENCRYPTED)) { if (!empty($conf->global->DATABASE_PWD_ENCRYPTED)) {
// Just for the default MD5 ! // Just for the default MD5 !
if (empty($conf->global->MAIN_SECURITY_HASH_ALGO)) { if (empty($conf->global->MAIN_SECURITY_HASH_ALGO)) {
@ -2493,18 +2602,30 @@ class Adherent extends CommonObject
$info[$conf->global->LDAP_MEMBER_FIELD_PASSWORD_CRYPTED] = '{md5}'.base64_encode(hex2bin($this->pass_indatabase_crypted)); $info[$conf->global->LDAP_MEMBER_FIELD_PASSWORD_CRYPTED] = '{md5}'.base64_encode(hex2bin($this->pass_indatabase_crypted));
} }
} }
} // Use $this->pass_indatabase value if exists } elseif (!empty($this->pass_indatabase)) {
elseif (!empty($this->pass_indatabase)) { // Use $this->pass_indatabase value if exists
if (!empty($conf->global->LDAP_MEMBER_FIELD_PASSWORD)) $info[$conf->global->LDAP_MEMBER_FIELD_PASSWORD] = $this->pass_indatabase; // $this->pass_indatabase = mot de passe non crypte if (!empty($conf->global->LDAP_MEMBER_FIELD_PASSWORD)) {
if (!empty($conf->global->LDAP_MEMBER_FIELD_PASSWORD_CRYPTED)) $info[$conf->global->LDAP_MEMBER_FIELD_PASSWORD_CRYPTED] = dol_hash($this->pass_indatabase, 4); // md5 for OpenLdap TODO add type of encryption $info[$conf->global->LDAP_MEMBER_FIELD_PASSWORD] = $this->pass_indatabase; // $this->pass_indatabase = mot de passe non crypte
}
if (!empty($conf->global->LDAP_MEMBER_FIELD_PASSWORD_CRYPTED)) {
$info[$conf->global->LDAP_MEMBER_FIELD_PASSWORD_CRYPTED] = dol_hash($this->pass_indatabase, 4); // md5 for OpenLdap TODO add type of encryption
}
} }
} }
// Subscriptions // Subscriptions
if ($this->first_subscription_date && !empty($conf->global->LDAP_FIELD_MEMBER_FIRSTSUBSCRIPTION_DATE)) $info[$conf->global->LDAP_FIELD_MEMBER_FIRSTSUBSCRIPTION_DATE] = dol_print_date($this->first_subscription_date, 'dayhourldap'); if ($this->first_subscription_date && !empty($conf->global->LDAP_FIELD_MEMBER_FIRSTSUBSCRIPTION_DATE)) {
if (isset($this->first_subscription_amount) && !empty($conf->global->LDAP_FIELD_MEMBER_FIRSTSUBSCRIPTION_AMOUNT)) $info[$conf->global->LDAP_FIELD_MEMBER_FIRSTSUBSCRIPTION_AMOUNT] = $this->first_subscription_amount; $info[$conf->global->LDAP_FIELD_MEMBER_FIRSTSUBSCRIPTION_DATE] = dol_print_date($this->first_subscription_date, 'dayhourldap');
if ($this->last_subscription_date && !empty($conf->global->LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_DATE)) $info[$conf->global->LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_DATE] = dol_print_date($this->last_subscription_date, 'dayhourldap'); }
if (isset($this->last_subscription_amount) && !empty($conf->global->LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_AMOUNT)) $info[$conf->global->LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_AMOUNT] = $this->last_subscription_amount; if (isset($this->first_subscription_amount) && !empty($conf->global->LDAP_FIELD_MEMBER_FIRSTSUBSCRIPTION_AMOUNT)) {
$info[$conf->global->LDAP_FIELD_MEMBER_FIRSTSUBSCRIPTION_AMOUNT] = $this->first_subscription_amount;
}
if ($this->last_subscription_date && !empty($conf->global->LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_DATE)) {
$info[$conf->global->LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_DATE] = dol_print_date($this->last_subscription_date, 'dayhourldap');
}
if (isset($this->last_subscription_amount) && !empty($conf->global->LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_AMOUNT)) {
$info[$conf->global->LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_AMOUNT] = $this->last_subscription_amount;
}
return $info; return $info;
} }
@ -2626,8 +2747,12 @@ class Adherent extends CommonObject
global $conf; global $conf;
//Only valid members //Only valid members
if ($this->statut <= 0) return false; if ($this->statut <= 0) {
if (!$this->datefin) return false; return false;
}
if (!$this->datefin) {
return false;
}
$now = dol_now(); $now = dol_now();
@ -2720,7 +2845,9 @@ class Adherent extends CommonObject
$arraydefaultmessage = null; $arraydefaultmessage = null;
$labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION; $labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION;
if (!empty($labeltouse)) $arraydefaultmessage = $formmail->getEMailTemplate($this->db, 'member', $user, $outputlangs, 0, 1, $labeltouse); if (!empty($labeltouse)) {
$arraydefaultmessage = $formmail->getEMailTemplate($this->db, 'member', $user, $outputlangs, 0, 1, $labeltouse);
}
if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) { if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) {
$substitutionarray = getCommonSubstitutionArray($outputlangs, 0, null, $adherent); $substitutionarray = getCommonSubstitutionArray($outputlangs, 0, null, $adherent);
@ -2763,7 +2890,9 @@ class Adherent extends CommonObject
if ($message) { if ($message) {
$actionmsg = $langs->transnoentities('MailFrom').': '.dol_escape_htmltag($from); $actionmsg = $langs->transnoentities('MailFrom').': '.dol_escape_htmltag($from);
$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('MailTo').': '.dol_escape_htmltag($sendto)); $actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('MailTo').': '.dol_escape_htmltag($sendto));
if ($sendtocc) $actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('Bcc').": ".dol_escape_htmltag($sendtocc)); if ($sendtocc) {
$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('Bcc').": ".dol_escape_htmltag($sendtocc));
}
$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('MailTopic').": ".$subject); $actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('MailTopic').": ".$subject);
$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('TextUsedInTheMessageBody').":"); $actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('TextUsedInTheMessageBody').":");
$actionmsg = dol_concatdesc($actionmsg, $message); $actionmsg = dol_concatdesc($actionmsg, $message);
@ -2843,7 +2972,9 @@ class Adherent extends CommonObject
$listofids .= $idmember; $listofids .= $idmember;
$i++; $i++;
} }
if ($listofids) $listofids .= ']'; if ($listofids) {
$listofids .= ']';
}
$this->output .= $listofids; $this->output .= $listofids;
} }
if ($nbko) { if ($nbko) {
@ -2864,7 +2995,9 @@ class Adherent extends CommonObject
$listofids .= $idmember; $listofids .= $idmember;
$i++; $i++;
} }
if ($listofids) $listofids .= ']'; if ($listofids) {
$listofids .= ']';
}
$this->output .= $listofids; $this->output .= $listofids;
} }
} }

View File

@ -313,7 +313,9 @@ class AdherentType extends CommonObject
if (!$notrigger) { if (!$notrigger) {
// Call trigger // Call trigger
$result = $this->call_trigger('MEMBER_TYPE_CREATE', $user); $result = $this->call_trigger('MEMBER_TYPE_CREATE', $user);
if ($result < 0) { $error++; } if ($result < 0) {
$error++;
}
// End call triggers // End call triggers
} }
@ -386,7 +388,9 @@ class AdherentType extends CommonObject
if (!$error && !$notrigger) { if (!$error && !$notrigger) {
// Call trigger // Call trigger
$result = $this->call_trigger('MEMBER_TYPE_MODIFY', $user); $result = $this->call_trigger('MEMBER_TYPE_MODIFY', $user);
if ($result < 0) { $error++; } if ($result < 0) {
$error++;
}
// End call triggers // End call triggers
} }
@ -423,7 +427,9 @@ class AdherentType extends CommonObject
if ($resql) { if ($resql) {
// Call trigger // Call trigger
$result = $this->call_trigger('MEMBER_TYPE_DELETE', $user); $result = $this->call_trigger('MEMBER_TYPE_DELETE', $user);
if ($result < 0) { $error++; $this->db->rollback(); return -2; } if ($result < 0) {
$error++; $this->db->rollback(); return -2;
}
// End call triggers // End call triggers
$this->db->commit(); $this->db->commit();
@ -499,7 +505,9 @@ class AdherentType extends CommonObject
$sql = "SELECT rowid, libelle as label"; $sql = "SELECT rowid, libelle as label";
$sql .= " FROM ".MAIN_DB_PREFIX."adherent_type"; $sql .= " FROM ".MAIN_DB_PREFIX."adherent_type";
$sql .= " WHERE entity IN (".getEntity('member_type').")"; $sql .= " WHERE entity IN (".getEntity('member_type').")";
if ($status >= 0) $sql .= " AND statut = ".((int) $status); if ($status >= 0) {
$sql .= " AND statut = ".((int) $status);
}
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if ($resql) { if ($resql) {
@ -539,7 +547,9 @@ class AdherentType extends CommonObject
$sql .= " FROM ".MAIN_DB_PREFIX."adherent as a"; $sql .= " FROM ".MAIN_DB_PREFIX."adherent as a";
$sql .= " WHERE a.entity IN (".getEntity('member').")"; $sql .= " WHERE a.entity IN (".getEntity('member').")";
$sql .= " AND a.fk_adherent_type = ".$this->id; $sql .= " AND a.fk_adherent_type = ".$this->id;
if (!empty($excludefilter)) $sql .= ' AND ('.$excludefilter.')'; if (!empty($excludefilter)) {
$sql .= ' AND ('.$excludefilter.')';
}
dol_syslog(get_class($this)."::listUsersForGroup", LOG_DEBUG); dol_syslog(get_class($this)."::listUsersForGroup", LOG_DEBUG);
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
@ -554,7 +564,9 @@ class AdherentType extends CommonObject
$memberstatic->fetch($obj->rowid); $memberstatic->fetch($obj->rowid);
} }
$ret[$obj->rowid] = $memberstatic; $ret[$obj->rowid] = $memberstatic;
} else $ret[$obj->rowid] = $obj->rowid; } else {
$ret[$obj->rowid] = $obj->rowid;
}
} }
} }
@ -578,7 +590,13 @@ class AdherentType extends CommonObject
public function getmorphylib($morphy = '') public function getmorphylib($morphy = '')
{ {
global $langs; global $langs;
if ($morphy == 'phy') { return $langs->trans("Physical"); } elseif ($morphy == 'mor') { return $langs->trans("Moral"); } else return $langs->trans("MorAndPhy"); if ($morphy == 'phy') {
return $langs->trans("Physical");
} elseif ($morphy == 'mor') {
return $langs->trans("Moral");
} else {
return $langs->trans("MorAndPhy");
}
//return $morphy; //return $morphy;
} }
@ -609,8 +627,12 @@ class AdherentType extends CommonObject
$linkend = '</a>'; $linkend = '</a>';
$result .= $linkstart; $result .= $linkstart;
if ($withpicto) $result .= img_object(($notooltip ? '' : $label), ($this->picto ? $this->picto : 'generic'), ($notooltip ? (($withpicto != 2) ? 'class="paddingright"' : '') : 'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip ? 0 : 1); if ($withpicto) {
if ($withpicto != 2) $result .= ($maxlen ?dol_trunc($this->label, $maxlen) : $this->label); $result .= img_object(($notooltip ? '' : $label), ($this->picto ? $this->picto : 'generic'), ($notooltip ? (($withpicto != 2) ? 'class="paddingright"' : '') : 'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip ? 0 : 1);
}
if ($withpicto != 2) {
$result .= ($maxlen ?dol_trunc($this->label, $maxlen) : $this->label);
}
$result .= $linkend; $result .= $linkend;
return $result; return $result;
@ -642,7 +664,9 @@ class AdherentType extends CommonObject
$langs->load('companies'); $langs->load('companies');
$statusType = 'status4'; $statusType = 'status4';
if ($status == 0) $statusType = 'status5'; if ($status == 0) {
$statusType = 'status5';
}
if (empty($this->labelStatus) || empty($this->labelStatusShort)) { if (empty($this->labelStatus) || empty($this->labelStatusShort)) {
$this->labelStatus[0] = $langs->trans("ActivityCeased"); $this->labelStatus[0] = $langs->trans("ActivityCeased");
@ -670,9 +694,15 @@ class AdherentType extends CommonObject
// phpcs:enable // phpcs:enable
global $conf; global $conf;
$dn = ''; $dn = '';
if ($mode == 0) $dn = $conf->global->LDAP_KEY_MEMBERS_TYPES."=".$info[$conf->global->LDAP_KEY_MEMBERS_TYPES].",".$conf->global->LDAP_MEMBER_TYPE_DN; if ($mode == 0) {
if ($mode == 1) $dn = $conf->global->LDAP_MEMBER_TYPE_DN; $dn = $conf->global->LDAP_KEY_MEMBERS_TYPES."=".$info[$conf->global->LDAP_KEY_MEMBERS_TYPES].",".$conf->global->LDAP_MEMBER_TYPE_DN;
if ($mode == 2) $dn = $conf->global->LDAP_KEY_MEMBERS_TYPES."=".$info[$conf->global->LDAP_KEY_MEMBERS_TYPES]; }
if ($mode == 1) {
$dn = $conf->global->LDAP_MEMBER_TYPE_DN;
}
if ($mode == 2) {
$dn = $conf->global->LDAP_KEY_MEMBERS_TYPES."=".$info[$conf->global->LDAP_KEY_MEMBERS_TYPES];
}
return $dn; return $dn;
} }
@ -695,11 +725,15 @@ class AdherentType extends CommonObject
$info["objectclass"] = explode(',', $conf->global->LDAP_MEMBER_TYPE_OBJECT_CLASS); $info["objectclass"] = explode(',', $conf->global->LDAP_MEMBER_TYPE_OBJECT_CLASS);
// Champs // Champs
if ($this->label && !empty($conf->global->LDAP_MEMBER_TYPE_FIELD_FULLNAME)) $info[$conf->global->LDAP_MEMBER_TYPE_FIELD_FULLNAME] = $this->label; if ($this->label && !empty($conf->global->LDAP_MEMBER_TYPE_FIELD_FULLNAME)) {
if ($this->note && !empty($conf->global->LDAP_MEMBER_TYPE_FIELD_DESCRIPTION)) $info[$conf->global->LDAP_MEMBER_TYPE_FIELD_DESCRIPTION] = dol_string_nohtmltag($this->note, 0, 'UTF-8', 1); $info[$conf->global->LDAP_MEMBER_TYPE_FIELD_FULLNAME] = $this->label;
}
if ($this->note && !empty($conf->global->LDAP_MEMBER_TYPE_FIELD_DESCRIPTION)) {
$info[$conf->global->LDAP_MEMBER_TYPE_FIELD_DESCRIPTION] = dol_string_nohtmltag($this->note, 0, 'UTF-8', 1);
}
if (!empty($conf->global->LDAP_MEMBER_TYPE_FIELD_GROUPMEMBERS)) { if (!empty($conf->global->LDAP_MEMBER_TYPE_FIELD_GROUPMEMBERS)) {
$valueofldapfield = array(); $valueofldapfield = array();
foreach ($this->members as $key=>$val) { // This is array of users for group into dolibarr database. foreach ($this->members as $key => $val) { // This is array of users for group into dolibarr database.
$member = new Adherent($this->db); $member = new Adherent($this->db);
$member->fetch($val->id, '', '', '', false, false); $member->fetch($val->id, '', '', '', false, false);
$info2 = $member->_load_ldap_info(); $info2 = $member->_load_ldap_info();

View File

@ -36,7 +36,7 @@ class Members extends DolibarrApi
/** /**
* @var array $FIELDS Mandatory fields, checked when create and update object * @var array $FIELDS Mandatory fields, checked when create and update object
*/ */
static $FIELDS = array( public static $FIELDS = array(
'morphy', 'morphy',
'typeid' 'typeid'
); );
@ -325,7 +325,9 @@ class Members extends DolibarrApi
} }
foreach ($request_data as $field => $value) { foreach ($request_data as $field => $value) {
if ($field == 'id') continue; if ($field == 'id') {
continue;
}
// Process the status separately because it must be updated using // Process the status separately because it must be updated using
// the validate() and resiliate() methods of the class Adherent. // the validate() and resiliate() methods of the class Adherent.
if ($field == 'statut') { if ($field == 'statut') {
@ -399,8 +401,9 @@ class Members extends DolibarrApi
{ {
$member = array(); $member = array();
foreach (Members::$FIELDS as $field) { foreach (Members::$FIELDS as $field) {
if (!isset($data[$field])) if (!isset($data[$field])) {
throw new RestException(400, "$field field missing"); throw new RestException(400, "$field field missing");
}
$member[$field] = $data[$field]; $member[$field] = $data[$field];
} }
return $member; return $member;

View File

@ -30,7 +30,7 @@ class MembersTypes extends DolibarrApi
/** /**
* @var array $FIELDS Mandatory fields, checked when create and update object * @var array $FIELDS Mandatory fields, checked when create and update object
*/ */
static $FIELDS = array( public static $FIELDS = array(
'label', 'label',
); );
@ -190,7 +190,9 @@ class MembersTypes extends DolibarrApi
} }
foreach ($request_data as $field => $value) { foreach ($request_data as $field => $value) {
if ($field == 'id') continue; if ($field == 'id') {
continue;
}
// Process the status separately because it must be updated using // Process the status separately because it must be updated using
// the validate() and resiliate() methods of the class AdherentType. // the validate() and resiliate() methods of the class AdherentType.
$membertype->$field = $value; $membertype->$field = $value;
@ -250,8 +252,9 @@ class MembersTypes extends DolibarrApi
{ {
$membertype = array(); $membertype = array();
foreach (MembersTypes::$FIELDS as $field) { foreach (MembersTypes::$FIELDS as $field) {
if (!isset($data[$field])) if (!isset($data[$field])) {
throw new RestException(400, "$field field missing"); throw new RestException(400, "$field field missing");
}
$membertype[$field] = $data[$field]; $membertype[$field] = $data[$field];
} }
return $membertype; return $membertype;

View File

@ -30,7 +30,7 @@ class Subscriptions extends DolibarrApi
/** /**
* @var array $FIELDS Mandatory fields, checked when create and update object * @var array $FIELDS Mandatory fields, checked when create and update object
*/ */
static $FIELDS = array( public static $FIELDS = array(
'fk_adherent', 'fk_adherent',
'dateh', 'dateh',
'datef', 'datef',

View File

@ -50,12 +50,18 @@ $limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit;
$sortfield = GETPOST("sortfield", 'alpha'); $sortfield = GETPOST("sortfield", 'alpha');
$sortorder = GETPOST("sortorder", 'alpha'); $sortorder = GETPOST("sortorder", 'alpha');
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 if (empty($page) || $page == -1) {
$page = 0;
} // If $page is not defined, or '' or -1
$offset = $limit * $page; $offset = $limit * $page;
$pageprev = $page - 1; $pageprev = $page - 1;
$pagenext = $page + 1; $pagenext = $page + 1;
if (!$sortorder) $sortorder = "ASC"; if (!$sortorder) {
if (!$sortfield) $sortfield = "name"; $sortorder = "ASC";
}
if (!$sortfield) {
$sortfield = "name";
}
$form = new Form($db); $form = new Form($db);
@ -96,8 +102,9 @@ if ($id > 0) {
$totalsize += $file['size']; $totalsize += $file['size'];
} }
if (!empty($conf->notification->enabled)) if (!empty($conf->notification->enabled)) {
$langs->load("mails"); $langs->load("mails");
}
$head = member_prepare_head($object); $head = member_prepare_head($object);

View File

@ -27,7 +27,9 @@ require '../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php';
// Security check // Security check
if (!$user->rights->adherent->export) accessforbidden(); if (!$user->rights->adherent->export) {
accessforbidden();
}
/* /*
@ -38,8 +40,12 @@ llxHeader();
$now = dol_now(); $now = dol_now();
if (empty($sortorder)) { $sortorder = "ASC"; } if (empty($sortorder)) {
if (empty($sortfield)) { $sortfield = "d.login"; } $sortorder = "ASC";
}
if (empty($sortfield)) {
$sortfield = "d.login";
}
if (!isset($statut)) { if (!isset($statut)) {
$statut = 1; $statut = 1;
} }

View File

@ -257,7 +257,7 @@ print "</tr>\n";
krsort($Total); krsort($Total);
$i = 0; $i = 0;
foreach ($Total as $key=>$value) { foreach ($Total as $key => $value) {
if ($i >= 8) { if ($i >= 8) {
print '<tr class="oddeven">'; print '<tr class="oddeven">';
print "<td>...</td>"; print "<td>...</td>";

View File

@ -142,7 +142,9 @@ if (!empty($conf->global->LDAP_MEMBER_ACTIVE) && $conf->global->LDAP_MEMBER_ACTI
print "</div>\n"; print "</div>\n";
if (!empty($conf->global->LDAP_MEMBER_ACTIVE) && $conf->global->LDAP_MEMBER_ACTIVE != 'ldap2dolibarr') print "<br>\n"; if (!empty($conf->global->LDAP_MEMBER_ACTIVE) && $conf->global->LDAP_MEMBER_ACTIVE != 'ldap2dolibarr') {
print "<br>\n";
}

View File

@ -69,24 +69,36 @@ $catid = GETPOST("catid", 'int');
$optioncss = GETPOST('optioncss', 'alpha'); $optioncss = GETPOST('optioncss', 'alpha');
$filter = GETPOST("filter", 'alpha'); $filter = GETPOST("filter", 'alpha');
if ($filter) $search_filter = $filter; // For backward compatibility if ($filter) {
$search_filter = $filter; // For backward compatibility
}
$statut = GETPOST("statut", 'alpha'); $statut = GETPOST("statut", 'alpha');
if ($statut != '') $search_status = $statut; // For backward compatibility if ($statut != '') {
$search_status = $statut; // For backward compatibility
}
$sall = trim((GETPOST('search_all', 'alphanohtml') != '') ?GETPOST('search_all', 'alphanohtml') : GETPOST('sall', 'alphanohtml')); $sall = trim((GETPOST('search_all', 'alphanohtml') != '') ?GETPOST('search_all', 'alphanohtml') : GETPOST('sall', 'alphanohtml'));
if ($search_status < -1) $search_status = ''; if ($search_status < -1) {
$search_status = '';
}
$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit;
$sortfield = GETPOST("sortfield", 'alpha'); $sortfield = GETPOST("sortfield", 'alpha');
$sortorder = GETPOST("sortorder", 'alpha'); $sortorder = GETPOST("sortorder", 'alpha');
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 if (empty($page) || $page == -1) {
$page = 0;
} // If $page is not defined, or '' or -1
$offset = $limit * $page; $offset = $limit * $page;
$pageprev = $page - 1; $pageprev = $page - 1;
$pagenext = $page + 1; $pagenext = $page + 1;
if (!$sortorder) { $sortorder = ($filter == 'outofdate' ? "DESC" : "ASC"); } if (!$sortorder) {
if (!$sortfield) { $sortfield = ($filter == 'outofdate' ? "d.datefin" : "d.lastname"); } $sortorder = ($filter == 'outofdate' ? "DESC" : "ASC");
}
if (!$sortfield) {
$sortfield = ($filter == 'outofdate' ? "d.datefin" : "d.lastname");
}
$object = new Adherent($db); $object = new Adherent($db);
@ -117,7 +129,9 @@ $fieldstosearchall = array(
'd.note_public'=>'NotePublic', 'd.note_public'=>'NotePublic',
'd.note_private'=>'NotePrivate', 'd.note_private'=>'NotePrivate',
); );
if ($db->type == 'pgsql') unset($fieldstosearchall['d.rowid']); if ($db->type == 'pgsql') {
unset($fieldstosearchall['d.rowid']);
}
$arrayfields = array( $arrayfields = array(
'd.ref'=>array('label'=>$langs->trans("Ref"), 'checked'=>1), 'd.ref'=>array('label'=>$langs->trans("Ref"), 'checked'=>1),
'd.civility'=>array('label'=>$langs->trans("Civility"), 'checked'=>0), 'd.civility'=>array('label'=>$langs->trans("Civility"), 'checked'=>0),
@ -153,12 +167,18 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_array_fields.tpl.php';
* Actions * Actions
*/ */
if (GETPOST('cancel', 'alpha')) { $action = 'list'; $massaction = ''; } if (GETPOST('cancel', 'alpha')) {
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend' && $massaction != 'confirm_createbills') { $massaction = ''; } $action = 'list'; $massaction = '';
}
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend' && $massaction != 'confirm_createbills') {
$massaction = '';
}
$parameters = array('socid'=>$socid); $parameters = array('socid'=>$socid);
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); if ($reshook < 0) {
setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
}
if (empty($reshook)) { if (empty($reshook)) {
// Selection of new fields // Selection of new fields
@ -212,7 +232,9 @@ if (empty($reshook)) {
if ($result < 0 && !count($tmpmember->errors)) { if ($result < 0 && !count($tmpmember->errors)) {
setEventMessages($tmpmember->error, $tmpmember->errors, 'errors'); setEventMessages($tmpmember->error, $tmpmember->errors, 'errors');
} else { } else {
if ($result > 0) $nbclose++; if ($result > 0) {
$nbclose++;
}
} }
} }
@ -256,8 +278,11 @@ $sql .= " s.nom,";
$sql .= " t.libelle as type, t.subscription,"; $sql .= " t.libelle as type, t.subscription,";
$sql .= " state.code_departement as state_code, state.nom as state_name,"; $sql .= " state.code_departement as state_code, state.nom as state_name,";
// Add fields from extrafields // Add fields from extrafields
if (!empty($extrafields->attributes[$object->table_element]['label'])) if (!empty($extrafields->attributes[$object->table_element]['label'])) {
foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql .= ($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.' as options_'.$key.', ' : ''); foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) {
$sql .= ($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.' as options_'.$key.', ' : '');
}
}
// Add fields from hooks // Add fields from hooks
$parameters = array(); $parameters = array();
$reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook $reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook
@ -276,16 +301,34 @@ $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as state on (state.rowid =
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s on (s.rowid = d.fk_soc)"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s on (s.rowid = d.fk_soc)";
$sql .= ", ".MAIN_DB_PREFIX."adherent_type as t"; $sql .= ", ".MAIN_DB_PREFIX."adherent_type as t";
$sql .= " WHERE d.fk_adherent_type = t.rowid "; $sql .= " WHERE d.fk_adherent_type = t.rowid ";
if ($catid > 0) $sql .= " AND cm.fk_categorie = ".$db->escape($catid); if ($catid > 0) {
if ($catid == -2) $sql .= " AND cm.fk_categorie IS NULL"; $sql .= " AND cm.fk_categorie = ".$db->escape($catid);
if ($search_categ > 0) $sql .= " AND cm.fk_categorie = ".$db->escape($search_categ); }
if ($search_categ == -2) $sql .= " AND cm.fk_categorie IS NULL"; if ($catid == -2) {
$sql .= " AND cm.fk_categorie IS NULL";
}
if ($search_categ > 0) {
$sql .= " AND cm.fk_categorie = ".$db->escape($search_categ);
}
if ($search_categ == -2) {
$sql .= " AND cm.fk_categorie IS NULL";
}
$sql .= " AND d.entity IN (".getEntity('adherent').")"; $sql .= " AND d.entity IN (".getEntity('adherent').")";
if ($sall) $sql .= natural_search(array_keys($fieldstosearchall), $sall); if ($sall) {
if ($search_type > 0) $sql .= " AND t.rowid=".$db->escape($search_type); $sql .= natural_search(array_keys($fieldstosearchall), $sall);
if ($search_filter == 'withoutsubscription') $sql .= " AND (datefin IS NULL OR t.subscription = 0)"; }
if ($search_filter == 'uptodate') $sql .= " AND (datefin >= '".$db->idate($now)."' OR t.subscription = 0)"; if ($search_type > 0) {
if ($search_filter == 'outofdate') $sql .= " AND (datefin < '".$db->idate($now)."' AND t.subscription = 1)"; $sql .= " AND t.rowid=".$db->escape($search_type);
}
if ($search_filter == 'withoutsubscription') {
$sql .= " AND (datefin IS NULL OR t.subscription = 0)";
}
if ($search_filter == 'uptodate') {
$sql .= " AND (datefin >= '".$db->idate($now)."' OR t.subscription = 0)";
}
if ($search_filter == 'outofdate') {
$sql .= " AND (datefin < '".$db->idate($now)."' AND t.subscription = 1)";
}
if ($search_status != '') { if ($search_status != '') {
// Peut valoir un nombre ou liste de nombre separes par virgules // Peut valoir un nombre ou liste de nombre separes par virgules
$sql .= " AND d.statut in (".$db->sanitize($db->escape($search_status)).")"; $sql .= " AND d.statut in (".$db->sanitize($db->escape($search_status)).")";
@ -293,21 +336,51 @@ if ($search_status != '') {
if ($search_ref) { if ($search_ref) {
$sql .= natural_search("d.ref", $search_ref); $sql .= natural_search("d.ref", $search_ref);
} }
if ($search_civility) $sql .= natural_search("d.civility", $search_civility); if ($search_civility) {
if ($search_firstname) $sql .= natural_search("d.firstname", $search_firstname); $sql .= natural_search("d.civility", $search_civility);
if ($search_lastname) $sql .= natural_search(array("d.firstname", "d.lastname", "d.societe"), $search_lastname); }
if ($search_gender != '' && $search_gender != '-1') $sql .= natural_search("d.gender", $search_gender); if ($search_firstname) {
if ($search_login) $sql .= natural_search("d.login", $search_login); $sql .= natural_search("d.firstname", $search_firstname);
if ($search_company) $sql .= natural_search("s.nom", $search_company); }
if ($search_email) $sql .= natural_search("d.email", $search_email); if ($search_lastname) {
if ($search_address) $sql .= natural_search("d.address", $search_address); $sql .= natural_search(array("d.firstname", "d.lastname", "d.societe"), $search_lastname);
if ($search_town) $sql .= natural_search("d.town", $search_town); }
if ($search_zip) $sql .= natural_search("d.zip", $search_zip); if ($search_gender != '' && $search_gender != '-1') {
if ($search_state) $sql .= natural_search("state.nom", $search_state); $sql .= natural_search("d.gender", $search_gender);
if ($search_phone) $sql .= natural_search("d.phone", $search_phone); }
if ($search_phone_perso) $sql .= natural_search("d.phone_perso", $search_phone_perso); if ($search_login) {
if ($search_phone_mobile) $sql .= natural_search("d.phone_mobile", $search_phone_mobile); $sql .= natural_search("d.login", $search_login);
if ($search_country) $sql .= " AND d.country IN (".$search_country.')'; }
if ($search_company) {
$sql .= natural_search("s.nom", $search_company);
}
if ($search_email) {
$sql .= natural_search("d.email", $search_email);
}
if ($search_address) {
$sql .= natural_search("d.address", $search_address);
}
if ($search_town) {
$sql .= natural_search("d.town", $search_town);
}
if ($search_zip) {
$sql .= natural_search("d.zip", $search_zip);
}
if ($search_state) {
$sql .= natural_search("state.nom", $search_state);
}
if ($search_phone) {
$sql .= natural_search("d.phone", $search_phone);
}
if ($search_phone_perso) {
$sql .= natural_search("d.phone_perso", $search_phone_perso);
}
if ($search_phone_mobile) {
$sql .= natural_search("d.phone_mobile", $search_phone_mobile);
}
if ($search_country) {
$sql .= " AND d.country IN (".$search_country.')';
}
// Add where from extra fields // Add where from extra fields
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php'; include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php';
@ -323,8 +396,11 @@ $sql .= $db->order($sortfield, $sortorder);
$nbtotalofrecords = ''; $nbtotalofrecords = '';
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
$resql = $db->query($sql); $resql = $db->query($sql);
if ($resql) $nbtotalofrecords = $db->num_rows($resql); if ($resql) {
else dol_print_error($db); $nbtotalofrecords = $db->num_rows($resql);
} else {
dol_print_error($db);
}
if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0
$page = 0; $page = 0;
$offset = 0; $offset = 0;
@ -355,13 +431,27 @@ llxHeader('', $langs->trans("Member"), 'EN:Module_Foundations|FR:Module_Adh&eacu
$titre = $langs->trans("MembersList"); $titre = $langs->trans("MembersList");
if (GETPOSTISSET("search_status")) { if (GETPOSTISSET("search_status")) {
if ($search_status == '-1,1') { $titre = $langs->trans("MembersListQualified"); } if ($search_status == '-1,1') {
if ($search_status == '-1') { $titre = $langs->trans("MembersListToValid"); } $titre = $langs->trans("MembersListQualified");
if ($search_status == '1' && $filter == '') { $titre = $langs->trans("MembersValidated"); } }
if ($search_status == '1' && $filter == 'withoutsubscription') { $titre = $langs->trans("MembersWithSubscriptionToReceive"); } if ($search_status == '-1') {
if ($search_status == '1' && $filter == 'uptodate') { $titre = $langs->trans("MembersListUpToDate"); } $titre = $langs->trans("MembersListToValid");
if ($search_status == '1' && $filter == 'outofdate') { $titre = $langs->trans("MembersListNotUpToDate"); } }
if ($search_status == '0') { $titre = $langs->trans("MembersListResiliated"); } if ($search_status == '1' && $filter == '') {
$titre = $langs->trans("MembersValidated");
}
if ($search_status == '1' && $filter == 'withoutsubscription') {
$titre = $langs->trans("MembersWithSubscriptionToReceive");
}
if ($search_status == '1' && $filter == 'uptodate') {
$titre = $langs->trans("MembersListUpToDate");
}
if ($search_status == '1' && $filter == 'outofdate') {
$titre = $langs->trans("MembersListNotUpToDate");
}
if ($search_status == '0') {
$titre = $langs->trans("MembersListResiliated");
}
} elseif ($action == 'search') { } elseif ($action == 'search') {
$titre = $langs->trans("MembersListQualified"); $titre = $langs->trans("MembersListQualified");
} }
@ -373,30 +463,78 @@ if ($search_type > 0) {
} }
$param = ''; $param = '';
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage); if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit); $param .= '&contextpage='.urlencode($contextpage);
if ($sall != "") $param .= "&sall=".urlencode($sall); }
if ($search_ref) $param .= "&search_ref=".urlencode($search_ref); if ($limit > 0 && $limit != $conf->liste_limit) {
if ($search_civility) $param .= "&search_civility=".urlencode($search_civility); $param .= '&limit='.urlencode($limit);
if ($search_firstname) $param .= "&search_firstname=".urlencode($search_firstname); }
if ($search_lastname) $param .= "&search_lastname=".urlencode($search_lastname); if ($sall != "") {
if ($search_gender) $param .= "&search_gender=".urlencode($search_gender); $param .= "&sall=".urlencode($sall);
if ($search_login) $param .= "&search_login=".urlencode($search_login); }
if ($search_email) $param .= "&search_email=".urlencode($search_email); if ($search_ref) {
if ($search_categ) $param .= "&search_categ=".urlencode($search_categ); $param .= "&search_ref=".urlencode($search_ref);
if ($search_company) $param .= "&search_company=".urlencode($search_company); }
if ($search_address != '') $param .= "&search_address=".urlencode($search_address); if ($search_civility) {
if ($search_town != '') $param .= "&search_town=".urlencode($search_town); $param .= "&search_civility=".urlencode($search_civility);
if ($search_zip != '') $param .= "&search_zip=".urlencode($search_zip); }
if ($search_state != '') $param .= "&search_state=".urlencode($search_state); if ($search_firstname) {
if ($search_country != '') $param .= "&search_country=".urlencode($search_country); $param .= "&search_firstname=".urlencode($search_firstname);
if ($search_phone != '') $param .= "&search_phone=".urlencode($search_phone); }
if ($search_phone_perso != '') $param .= "&search_phone_perso=".urlencode($search_phone_perso); if ($search_lastname) {
if ($search_phone_mobile != '') $param .= "&search_phone_mobile=".urlencode($search_phone_mobile); $param .= "&search_lastname=".urlencode($search_lastname);
if ($search_filter && $search_filter != '-1') $param .= "&search_filter=".urlencode($search_filter); }
if ($search_status != "" && $search_status != '-1') $param .= "&search_status=".urlencode($search_status); if ($search_gender) {
if ($search_type > 0) $param .= "&search_type=".urlencode($search_type); $param .= "&search_gender=".urlencode($search_gender);
if ($optioncss != '') $param .= '&optioncss='.urlencode($optioncss); }
if ($search_login) {
$param .= "&search_login=".urlencode($search_login);
}
if ($search_email) {
$param .= "&search_email=".urlencode($search_email);
}
if ($search_categ) {
$param .= "&search_categ=".urlencode($search_categ);
}
if ($search_company) {
$param .= "&search_company=".urlencode($search_company);
}
if ($search_address != '') {
$param .= "&search_address=".urlencode($search_address);
}
if ($search_town != '') {
$param .= "&search_town=".urlencode($search_town);
}
if ($search_zip != '') {
$param .= "&search_zip=".urlencode($search_zip);
}
if ($search_state != '') {
$param .= "&search_state=".urlencode($search_state);
}
if ($search_country != '') {
$param .= "&search_country=".urlencode($search_country);
}
if ($search_phone != '') {
$param .= "&search_phone=".urlencode($search_phone);
}
if ($search_phone_perso != '') {
$param .= "&search_phone_perso=".urlencode($search_phone_perso);
}
if ($search_phone_mobile != '') {
$param .= "&search_phone_mobile=".urlencode($search_phone_mobile);
}
if ($search_filter && $search_filter != '-1') {
$param .= "&search_filter=".urlencode($search_filter);
}
if ($search_status != "" && $search_status != '-1') {
$param .= "&search_status=".urlencode($search_status);
}
if ($search_type > 0) {
$param .= "&search_type=".urlencode($search_type);
}
if ($optioncss != '') {
$param .= '&optioncss='.urlencode($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';
@ -405,10 +543,18 @@ $arrayofmassactions = array(
//'presend'=>$langs->trans("SendByMail"), //'presend'=>$langs->trans("SendByMail"),
//'builddoc'=>$langs->trans("PDFMerge"), //'builddoc'=>$langs->trans("PDFMerge"),
); );
if ($user->rights->adherent->creer) $arrayofmassactions['close'] = $langs->trans("Resiliate"); if ($user->rights->adherent->creer) {
if ($user->rights->adherent->supprimer) $arrayofmassactions['predelete'] = '<span class="fa fa-trash paddingrightonly"></span>'.$langs->trans("Delete"); $arrayofmassactions['close'] = $langs->trans("Resiliate");
if ($user->rights->societe->creer) $arrayofmassactions['preaffecttag'] = '<span class="fa fa-tag paddingrightonly"></span>'.$langs->trans("AffectTag"); }
if (in_array($massaction, array('presend', 'predelete','preaffecttag'))) $arrayofmassactions = array(); if ($user->rights->adherent->supprimer) {
$arrayofmassactions['predelete'] = '<span class="fa fa-trash paddingrightonly"></span>'.$langs->trans("Delete");
}
if ($user->rights->societe->creer) {
$arrayofmassactions['preaffecttag'] = '<span class="fa fa-tag paddingrightonly"></span>'.$langs->trans("AffectTag");
}
if (in_array($massaction, array('presend', 'predelete','preaffecttag'))) {
$arrayofmassactions = array();
}
$massactionbutton = $form->selectMassAction('', $arrayofmassactions); $massactionbutton = $form->selectMassAction('', $arrayofmassactions);
$newcardbutton = ''; $newcardbutton = '';
@ -417,7 +563,9 @@ if ($user->rights->adherent->creer) {
} }
print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">'; print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">'; if ($optioncss != '') {
print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
}
print '<input type="hidden" name="token" value="'.newToken().'">'; print '<input type="hidden" name="token" value="'.newToken().'">';
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">'; print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
print '<input type="hidden" name="action" value="list">'; print '<input type="hidden" name="action" value="list">';
@ -434,7 +582,9 @@ $trackid = 'mem'.$object->id;
include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php';
if ($sall) { if ($sall) {
foreach ($fieldstosearchall as $key => $val) $fieldstosearchall[$key] = $langs->trans($val); foreach ($fieldstosearchall as $key => $val) {
$fieldstosearchall[$key] = $langs->trans($val);
}
print '<div class="divsearchfieldfilter">'.$langs->trans("FilterOnInto", $sall).join(', ', $fieldstosearchall).'</div>'; print '<div class="divsearchfieldfilter">'.$langs->trans("FilterOnInto", $sall).join(', ', $fieldstosearchall).'</div>';
} }
@ -448,8 +598,11 @@ if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) {
} }
$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); // Note that $action and $object may have been modified by hook
if (empty($reshook)) $moreforfilter .= $hookmanager->resPrint; if (empty($reshook)) {
else $moreforfilter = $hookmanager->resPrint; $moreforfilter .= $hookmanager->resPrint;
} else {
$moreforfilter = $hookmanager->resPrint;
}
if (!empty($moreforfilter)) { if (!empty($moreforfilter)) {
print '<div class="liste_titre liste_titre_bydiv centpercent">'; print '<div class="liste_titre liste_titre_bydiv centpercent">';
print $moreforfilter; print $moreforfilter;
@ -458,7 +611,9 @@ 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
if ($massactionbutton) $selectedfields .= $form->showCheckAddButtons('checkforselect', 1); if ($massactionbutton) {
$selectedfields .= $form->showCheckAddButtons('checkforselect', 1);
}
print '<div class="div-table-responsive">'; print '<div class="div-table-responsive">';
print '<table class="tagtable liste'.($moreforfilter ? " listwithfilterbefore" : "").'">'."\n"; print '<table class="tagtable liste'.($moreforfilter ? " listwithfilterbefore" : "").'">'."\n";
@ -609,26 +764,66 @@ print '</td>';
print "</tr>\n"; print "</tr>\n";
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
if (!empty($conf->global->MAIN_SHOW_TECHNICAL_ID)) print_liste_field_titre("ID", $_SERVER["PHP_SELF"], '', '', $param, 'align="center"', $sortfield, $sortorder); if (!empty($conf->global->MAIN_SHOW_TECHNICAL_ID)) {
if (!empty($arrayfields['d.ref']['checked'])) print_liste_field_titre($arrayfields['d.ref']['label'], $_SERVER["PHP_SELF"], 'd.ref', '', $param, '', $sortfield, $sortorder); print_liste_field_titre("ID", $_SERVER["PHP_SELF"], '', '', $param, 'align="center"', $sortfield, $sortorder);
if (!empty($arrayfields['d.civility']['checked'])) print_liste_field_titre($arrayfields['d.civility']['label'], $_SERVER["PHP_SELF"], 'd.civility', '', $param, '', $sortfield, $sortorder); }
if (!empty($arrayfields['d.firstname']['checked'])) print_liste_field_titre($arrayfields['d.firstname']['label'], $_SERVER["PHP_SELF"], 'd.firstname', '', $param, '', $sortfield, $sortorder); if (!empty($arrayfields['d.ref']['checked'])) {
if (!empty($arrayfields['d.lastname']['checked'])) print_liste_field_titre($arrayfields['d.lastname']['label'], $_SERVER["PHP_SELF"], 'd.lastname', '', $param, '', $sortfield, $sortorder); print_liste_field_titre($arrayfields['d.ref']['label'], $_SERVER["PHP_SELF"], 'd.ref', '', $param, '', $sortfield, $sortorder);
if (!empty($arrayfields['d.gender']['checked'])) print_liste_field_titre($arrayfields['d.gender']['label'], $_SERVER['PHP_SELF'], 'd.gender', $param, "", "", $sortfield, $sortorder); }
if (!empty($arrayfields['d.company']['checked'])) print_liste_field_titre($arrayfields['d.company']['label'], $_SERVER["PHP_SELF"], 'd.societe', '', $param, '', $sortfield, $sortorder); if (!empty($arrayfields['d.civility']['checked'])) {
if (!empty($arrayfields['d.login']['checked'])) print_liste_field_titre($arrayfields['d.login']['label'], $_SERVER["PHP_SELF"], 'd.login', '', $param, '', $sortfield, $sortorder); print_liste_field_titre($arrayfields['d.civility']['label'], $_SERVER["PHP_SELF"], 'd.civility', '', $param, '', $sortfield, $sortorder);
if (!empty($arrayfields['d.morphy']['checked'])) print_liste_field_titre($arrayfields['d.morphy']['label'], $_SERVER["PHP_SELF"], 'd.morphy', '', $param, '', $sortfield, $sortorder); }
if (!empty($arrayfields['t.libelle']['checked'])) print_liste_field_titre($arrayfields['t.libelle']['label'], $_SERVER["PHP_SELF"], 't.libelle', '', $param, '', $sortfield, $sortorder); if (!empty($arrayfields['d.firstname']['checked'])) {
if (!empty($arrayfields['d.address']['checked'])) print_liste_field_titre($arrayfields['d.address']['label'], $_SERVER["PHP_SELF"], 'd.address', '', $param, '', $sortfield, $sortorder); print_liste_field_titre($arrayfields['d.firstname']['label'], $_SERVER["PHP_SELF"], 'd.firstname', '', $param, '', $sortfield, $sortorder);
if (!empty($arrayfields['d.zip']['checked'])) print_liste_field_titre($arrayfields['d.zip']['label'], $_SERVER["PHP_SELF"], 'd.zip', '', $param, '', $sortfield, $sortorder); }
if (!empty($arrayfields['d.town']['checked'])) print_liste_field_titre($arrayfields['d.town']['label'], $_SERVER["PHP_SELF"], 'd.town', '', $param, '', $sortfield, $sortorder); if (!empty($arrayfields['d.lastname']['checked'])) {
if (!empty($arrayfields['state.nom']['checked'])) print_liste_field_titre($arrayfields['state.nom']['label'], $_SERVER["PHP_SELF"], "state.nom", "", $param, '', $sortfield, $sortorder); print_liste_field_titre($arrayfields['d.lastname']['label'], $_SERVER["PHP_SELF"], 'd.lastname', '', $param, '', $sortfield, $sortorder);
if (!empty($arrayfields['country.code_iso']['checked'])) print_liste_field_titre($arrayfields['country.code_iso']['label'], $_SERVER["PHP_SELF"], "country.code_iso", "", $param, 'align="center"', $sortfield, $sortorder); }
if (!empty($arrayfields['d.phone']['checked'])) print_liste_field_titre($arrayfields['d.phone']['label'], $_SERVER["PHP_SELF"], 'd.phone', '', $param, '', $sortfield, $sortorder); if (!empty($arrayfields['d.gender']['checked'])) {
if (!empty($arrayfields['d.phone_perso']['checked'])) print_liste_field_titre($arrayfields['d.phone_perso']['label'], $_SERVER["PHP_SELF"], 'd.phone_perso', '', $param, '', $sortfield, $sortorder); print_liste_field_titre($arrayfields['d.gender']['label'], $_SERVER['PHP_SELF'], 'd.gender', $param, "", "", $sortfield, $sortorder);
if (!empty($arrayfields['d.phone_mobile']['checked'])) print_liste_field_titre($arrayfields['d.phone_mobile']['label'], $_SERVER["PHP_SELF"], 'd.phone_mobile', '', $param, '', $sortfield, $sortorder); }
if (!empty($arrayfields['d.email']['checked'])) print_liste_field_titre($arrayfields['d.email']['label'], $_SERVER["PHP_SELF"], 'd.email', '', $param, '', $sortfield, $sortorder); if (!empty($arrayfields['d.company']['checked'])) {
if (!empty($arrayfields['d.datefin']['checked'])) print_liste_field_titre($arrayfields['d.datefin']['label'], $_SERVER["PHP_SELF"], 'd.datefin', '', $param, 'align="center"', $sortfield, $sortorder); print_liste_field_titre($arrayfields['d.company']['label'], $_SERVER["PHP_SELF"], 'd.societe', '', $param, '', $sortfield, $sortorder);
}
if (!empty($arrayfields['d.login']['checked'])) {
print_liste_field_titre($arrayfields['d.login']['label'], $_SERVER["PHP_SELF"], 'd.login', '', $param, '', $sortfield, $sortorder);
}
if (!empty($arrayfields['d.morphy']['checked'])) {
print_liste_field_titre($arrayfields['d.morphy']['label'], $_SERVER["PHP_SELF"], 'd.morphy', '', $param, '', $sortfield, $sortorder);
}
if (!empty($arrayfields['t.libelle']['checked'])) {
print_liste_field_titre($arrayfields['t.libelle']['label'], $_SERVER["PHP_SELF"], 't.libelle', '', $param, '', $sortfield, $sortorder);
}
if (!empty($arrayfields['d.address']['checked'])) {
print_liste_field_titre($arrayfields['d.address']['label'], $_SERVER["PHP_SELF"], 'd.address', '', $param, '', $sortfield, $sortorder);
}
if (!empty($arrayfields['d.zip']['checked'])) {
print_liste_field_titre($arrayfields['d.zip']['label'], $_SERVER["PHP_SELF"], 'd.zip', '', $param, '', $sortfield, $sortorder);
}
if (!empty($arrayfields['d.town']['checked'])) {
print_liste_field_titre($arrayfields['d.town']['label'], $_SERVER["PHP_SELF"], 'd.town', '', $param, '', $sortfield, $sortorder);
}
if (!empty($arrayfields['state.nom']['checked'])) {
print_liste_field_titre($arrayfields['state.nom']['label'], $_SERVER["PHP_SELF"], "state.nom", "", $param, '', $sortfield, $sortorder);
}
if (!empty($arrayfields['country.code_iso']['checked'])) {
print_liste_field_titre($arrayfields['country.code_iso']['label'], $_SERVER["PHP_SELF"], "country.code_iso", "", $param, 'align="center"', $sortfield, $sortorder);
}
if (!empty($arrayfields['d.phone']['checked'])) {
print_liste_field_titre($arrayfields['d.phone']['label'], $_SERVER["PHP_SELF"], 'd.phone', '', $param, '', $sortfield, $sortorder);
}
if (!empty($arrayfields['d.phone_perso']['checked'])) {
print_liste_field_titre($arrayfields['d.phone_perso']['label'], $_SERVER["PHP_SELF"], 'd.phone_perso', '', $param, '', $sortfield, $sortorder);
}
if (!empty($arrayfields['d.phone_mobile']['checked'])) {
print_liste_field_titre($arrayfields['d.phone_mobile']['label'], $_SERVER["PHP_SELF"], 'd.phone_mobile', '', $param, '', $sortfield, $sortorder);
}
if (!empty($arrayfields['d.email']['checked'])) {
print_liste_field_titre($arrayfields['d.email']['label'], $_SERVER["PHP_SELF"], 'd.email', '', $param, '', $sortfield, $sortorder);
}
if (!empty($arrayfields['d.datefin']['checked'])) {
print_liste_field_titre($arrayfields['d.datefin']['label'], $_SERVER["PHP_SELF"], 'd.datefin', '', $param, 'align="center"', $sortfield, $sortorder);
}
// Extra fields // Extra fields
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php';
@ -636,10 +831,18 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php';
$parameters = array('arrayfields'=>$arrayfields, 'param'=>$param, 'sortfield'=>$sortfield, 'sortorder'=>$sortorder); $parameters = array('arrayfields'=>$arrayfields, 'param'=>$param, 'sortfield'=>$sortfield, 'sortorder'=>$sortorder);
$reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters); // Note that $action and $object may have been modified by hook $reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters); // Note that $action and $object may have been modified by hook
print $hookmanager->resPrint; print $hookmanager->resPrint;
if (!empty($arrayfields['d.datec']['checked'])) print_liste_field_titre($arrayfields['d.datec']['label'], $_SERVER["PHP_SELF"], "d.datec", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder); if (!empty($arrayfields['d.datec']['checked'])) {
if (!empty($arrayfields['d.birth']['checked'])) print_liste_field_titre($arrayfields['d.birth']['label'], $_SERVER["PHP_SELF"], "d.birth", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder); print_liste_field_titre($arrayfields['d.datec']['label'], $_SERVER["PHP_SELF"], "d.datec", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder);
if (!empty($arrayfields['d.tms']['checked'])) print_liste_field_titre($arrayfields['d.tms']['label'], $_SERVER["PHP_SELF"], "d.tms", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder); }
if (!empty($arrayfields['d.statut']['checked'])) print_liste_field_titre($arrayfields['d.statut']['label'], $_SERVER["PHP_SELF"], "d.statut", "", $param, 'class="right"', $sortfield, $sortorder); if (!empty($arrayfields['d.birth']['checked'])) {
print_liste_field_titre($arrayfields['d.birth']['label'], $_SERVER["PHP_SELF"], "d.birth", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder);
}
if (!empty($arrayfields['d.tms']['checked'])) {
print_liste_field_titre($arrayfields['d.tms']['label'], $_SERVER["PHP_SELF"], "d.tms", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder);
}
if (!empty($arrayfields['d.statut']['checked'])) {
print_liste_field_titre($arrayfields['d.statut']['label'], $_SERVER["PHP_SELF"], "d.statut", "", $param, 'class="right"', $sortfield, $sortorder);
}
print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch '); print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch ');
print "</tr>\n"; print "</tr>\n";
@ -676,7 +879,9 @@ while ($i < min($num, $limit)) {
if (!empty($conf->global->MAIN_SHOW_TECHNICAL_ID)) { if (!empty($conf->global->MAIN_SHOW_TECHNICAL_ID)) {
print '<td class="center">'.$obj->rowid.'</td>'; print '<td class="center">'.$obj->rowid.'</td>';
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Ref // Ref
@ -684,35 +889,47 @@ while ($i < min($num, $limit)) {
print "<td>"; print "<td>";
print $memberstatic->getNomUrl(-1, 0, 'card', 'ref', '', -1, 0, 1); print $memberstatic->getNomUrl(-1, 0, 'card', 'ref', '', -1, 0, 1);
print "</td>\n"; print "</td>\n";
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Civility // Civility
if (!empty($arrayfields['d.civility']['checked'])) { if (!empty($arrayfields['d.civility']['checked'])) {
print "<td>"; print "<td>";
print $obj->civility; print $obj->civility;
print "</td>\n"; print "</td>\n";
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Firstname // Firstname
if (!empty($arrayfields['d.firstname']['checked'])) { if (!empty($arrayfields['d.firstname']['checked'])) {
print "<td>"; print "<td>";
print $obj->firstname; print $obj->firstname;
print "</td>\n"; print "</td>\n";
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Lastname // Lastname
if (!empty($arrayfields['d.lastname']['checked'])) { if (!empty($arrayfields['d.lastname']['checked'])) {
print "<td>"; print "<td>";
print $obj->lastname; print $obj->lastname;
print "</td>\n"; print "</td>\n";
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Gender // Gender
if (!empty($arrayfields['d.gender']['checked'])) { if (!empty($arrayfields['d.gender']['checked'])) {
print '<td>'; print '<td>';
if ($obj->gender) print $langs->trans("Gender".$obj->gender); if ($obj->gender) {
print $langs->trans("Gender".$obj->gender);
}
print '</td>'; print '</td>';
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Company // Company
if (!empty($arrayfields['d.company']['checked'])) { if (!empty($arrayfields['d.company']['checked'])) {
@ -723,7 +940,9 @@ while ($i < min($num, $limit)) {
// Login // Login
if (!empty($arrayfields['d.login']['checked'])) { if (!empty($arrayfields['d.login']['checked'])) {
print "<td>".$obj->login."</td>\n"; print "<td>".$obj->login."</td>\n";
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Nature (Moral/Physical) // Nature (Moral/Physical)
if (!empty($arrayfields['d.morphy']['checked'])) { if (!empty($arrayfields['d.morphy']['checked'])) {
@ -737,7 +956,9 @@ while ($i < min($num, $limit)) {
} }
print $s; print $s;
print "</td>\n"; print "</td>\n";
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Type label // Type label
if (!empty($arrayfields['t.libelle']['checked'])) { if (!empty($arrayfields['t.libelle']['checked'])) {
@ -746,33 +967,43 @@ while ($i < min($num, $limit)) {
print '<td class="nowrap">'; print '<td class="nowrap">';
print $membertypestatic->getNomUrl(1, 32); print $membertypestatic->getNomUrl(1, 32);
print '</td>'; print '</td>';
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Address // Address
if (!empty($arrayfields['d.address']['checked'])) { if (!empty($arrayfields['d.address']['checked'])) {
print '<td class="nocellnopadd">'; print '<td class="nocellnopadd">';
print $obj->address; print $obj->address;
print '</td>'; print '</td>';
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Zip // Zip
if (!empty($arrayfields['d.zip']['checked'])) { if (!empty($arrayfields['d.zip']['checked'])) {
print '<td class="nocellnopadd">'; print '<td class="nocellnopadd">';
print $obj->zip; print $obj->zip;
print '</td>'; print '</td>';
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Town // Town
if (!empty($arrayfields['d.town']['checked'])) { if (!empty($arrayfields['d.town']['checked'])) {
print '<td class="nocellnopadd">'; print '<td class="nocellnopadd">';
print $obj->town; print $obj->town;
print '</td>'; print '</td>';
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// State // State
if (!empty($arrayfields['state.nom']['checked'])) { if (!empty($arrayfields['state.nom']['checked'])) {
print "<td>".$obj->state_name."</td>\n"; print "<td>".$obj->state_name."</td>\n";
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Country // Country
if (!empty($arrayfields['country.code_iso']['checked'])) { if (!empty($arrayfields['country.code_iso']['checked'])) {
@ -780,28 +1011,36 @@ while ($i < min($num, $limit)) {
$tmparray = getCountry($obj->country, 'all'); $tmparray = getCountry($obj->country, 'all');
print $tmparray['label']; print $tmparray['label'];
print '</td>'; print '</td>';
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Phone pro // Phone pro
if (!empty($arrayfields['d.phone']['checked'])) { if (!empty($arrayfields['d.phone']['checked'])) {
print '<td class="nocellnopadd">'; print '<td class="nocellnopadd">';
print $obj->phone; print $obj->phone;
print '</td>'; print '</td>';
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Phone perso // Phone perso
if (!empty($arrayfields['d.phone_perso']['checked'])) { if (!empty($arrayfields['d.phone_perso']['checked'])) {
print '<td class="nocellnopadd">'; print '<td class="nocellnopadd">';
print $obj->phone_perso; print $obj->phone_perso;
print '</td>'; print '</td>';
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Phone mobile // Phone mobile
if (!empty($arrayfields['d.phone_mobile']['checked'])) { if (!empty($arrayfields['d.phone_mobile']['checked'])) {
print '<td class="nocellnopadd">'; print '<td class="nocellnopadd">';
print $obj->phone_mobile; print $obj->phone_mobile;
print '</td>'; print '</td>';
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// EMail // EMail
if (!empty($arrayfields['d.email']['checked'])) { if (!empty($arrayfields['d.email']['checked'])) {
@ -822,7 +1061,9 @@ while ($i < min($num, $limit)) {
print '<td class="nowrap left">'; print '<td class="nowrap left">';
if ($obj->subscription == 'yes') { if ($obj->subscription == 'yes') {
print $langs->trans("SubscriptionNotReceived"); print $langs->trans("SubscriptionNotReceived");
if ($obj->statut > 0) print " ".img_warning(); if ($obj->statut > 0) {
print " ".img_warning();
}
} else { } else {
print '&nbsp;'; print '&nbsp;';
} }
@ -840,38 +1081,50 @@ while ($i < min($num, $limit)) {
print '<td class="nowrap center">'; print '<td class="nowrap center">';
print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser'); print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser');
print '</td>'; print '</td>';
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Birth // Birth
if (!empty($arrayfields['d.birth']['checked'])) { if (!empty($arrayfields['d.birth']['checked'])) {
print '<td class="nowrap center">'; print '<td class="nowrap center">';
print dol_print_date($db->jdate($obj->birth), 'day', 'tzuser'); print dol_print_date($db->jdate($obj->birth), 'day', 'tzuser');
print '</td>'; print '</td>';
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Date modification // Date modification
if (!empty($arrayfields['d.tms']['checked'])) { if (!empty($arrayfields['d.tms']['checked'])) {
print '<td class="nowrap center">'; print '<td class="nowrap center">';
print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser'); print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser');
print '</td>'; print '</td>';
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Status // Status
if (!empty($arrayfields['d.statut']['checked'])) { if (!empty($arrayfields['d.statut']['checked'])) {
print '<td class="nowrap right">'; print '<td class="nowrap right">';
print $memberstatic->LibStatut($obj->statut, $obj->subscription, $datefin, 5); print $memberstatic->LibStatut($obj->statut, $obj->subscription, $datefin, 5);
print '</td>'; print '</td>';
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Action column // Action column
print '<td class="center">'; print '<td class="center">';
if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
$selected = 0; $selected = 0;
if (in_array($obj->rowid, $arrayofselected)) $selected = 1; if (in_array($obj->rowid, $arrayofselected)) {
$selected = 1;
}
print '<input id="cb'.$obj->rowid.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.'"'.($selected ? ' checked="checked"' : '').'>'; print '<input id="cb'.$obj->rowid.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.'"'.($selected ? ' checked="checked"' : '').'>';
} }
print '</td>'; print '</td>';
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
print "</tr>\n"; print "</tr>\n";
$i++; $i++;
@ -884,7 +1137,11 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/list_print_total.tpl.php';
// If no record found // If no record found
if ($num == 0) { if ($num == 0) {
$colspan = 1; $colspan = 1;
foreach ($arrayfields as $key => $val) { if (!empty($val['checked'])) $colspan++; } foreach ($arrayfields as $key => $val) {
if (!empty($val['checked'])) {
$colspan++;
}
}
print '<tr><td colspan="'.$colspan.'" class="opacitymedium">'.$langs->trans("NoRecordFound").'</td></tr>'; print '<tr><td colspan="'.$colspan.'" class="opacitymedium">'.$langs->trans("NoRecordFound").'</td></tr>';
} }

View File

@ -82,8 +82,12 @@ if ($resql) {
while ($i < $num) { while ($i < $num) {
$obj = $db->fetch_object($resql); $obj = $db->fetch_object($resql);
if ($obj->code == 'phy') $foundphy++; if ($obj->code == 'phy') {
if ($obj->code == 'mor') $foundmor++; $foundphy++;
}
if ($obj->code == 'mor') {
$foundmor++;
}
$data[$obj->code] = array('label'=>$obj->code, 'nb'=>$obj->nb, 'nbsubscriptions'=>$obj->nbsubscriptions, 'lastdate'=>$db->jdate($obj->lastdate), 'lastsubscriptiondate'=>$db->jdate($obj->lastsubscriptiondate)); $data[$obj->code] = array('label'=>$obj->code, 'nb'=>$obj->nb, 'nbsubscriptions'=>$obj->nbsubscriptions, 'lastdate'=>$db->jdate($obj->lastdate), 'lastsubscriptiondate'=>$db->jdate($obj->lastsubscriptiondate));
@ -113,8 +117,12 @@ if ($resql) {
while ($i < $num) { while ($i < $num) {
$obj = $db->fetch_object($resql); $obj = $db->fetch_object($resql);
if ($obj->code == 'phy') $foundphy++; if ($obj->code == 'phy') {
if ($obj->code == 'mor') $foundmor++; $foundphy++;
}
if ($obj->code == 'mor') {
$foundmor++;
}
$data[$obj->code]['nbactive'] = $obj->nb; $data[$obj->code]['nbactive'] = $obj->nb;
@ -152,8 +160,12 @@ print '<td class="right">'.$langs->trans("NbOfSubscriptions").'</td>';
print '<td class="center">'.$langs->trans("LatestSubscriptionDate").'</td>'; print '<td class="center">'.$langs->trans("LatestSubscriptionDate").'</td>';
print '</tr>'; print '</tr>';
if (!$foundphy) $data[] = array('label'=>'phy', 'nb'=>'0', 'nbactive'=>'0', 'lastdate'=>'', 'lastsubscriptiondate'=>''); if (!$foundphy) {
if (!$foundmor) $data[] = array('label'=>'mor', 'nb'=>'0', 'nbactive'=>'0', 'lastdate'=>'', 'lastsubscriptiondate'=>''); $data[] = array('label'=>'phy', 'nb'=>'0', 'nbactive'=>'0', 'lastdate'=>'', 'lastsubscriptiondate'=>'');
}
if (!$foundmor) {
$data[] = array('label'=>'mor', 'nb'=>'0', 'nbactive'=>'0', 'lastdate'=>'', 'lastsubscriptiondate'=>'');
}
foreach ($data as $val) { foreach ($data as $val) {
$nb = $val['nb']; $nb = $val['nb'];

View File

@ -56,13 +56,23 @@ $langs->loadLangs(array("companies", "members", "banks"));
$memberstatic = new Adherent($db); $memberstatic = new Adherent($db);
$arrayjs = array('https://www.google.com/jsapi'); $arrayjs = array('https://www.google.com/jsapi');
if (!empty($conf->dol_use_jmobile)) $arrayjs = array(); if (!empty($conf->dol_use_jmobile)) {
$arrayjs = array();
}
$title = $langs->trans("Statistics"); $title = $langs->trans("Statistics");
if ($mode == 'memberbycountry') $title = $langs->trans("MembersStatisticsByCountries"); if ($mode == 'memberbycountry') {
if ($mode == 'memberbystate') $title = $langs->trans("MembersStatisticsByState"); $title = $langs->trans("MembersStatisticsByCountries");
if ($mode == 'memberbytown') $title = $langs->trans("MembersStatisticsByTown"); }
if ($mode == 'memberbyregion') $title = $langs->trans("MembersStatisticsByRegion"); if ($mode == 'memberbystate') {
$title = $langs->trans("MembersStatisticsByState");
}
if ($mode == 'memberbytown') {
$title = $langs->trans("MembersStatisticsByTown");
}
if ($mode == 'memberbyregion') {
$title = $langs->trans("MembersStatisticsByRegion");
}
llxHeader('', $title, '', '', 0, 0, $arrayjs); llxHeader('', $title, '', '', 0, 0, $arrayjs);
@ -207,11 +217,15 @@ if ($mode && !count($data)) {
print $langs->trans("NoValidatedMemberYet").'<br>'; print $langs->trans("NoValidatedMemberYet").'<br>';
print '<br>'; print '<br>';
} else { } else {
if ($mode == 'memberbycountry') print '<span class="opacitymedium">'.$langs->trans("MembersByCountryDesc").'</span><br>'; if ($mode == 'memberbycountry') {
elseif ($mode == 'memberbystate') print '<span class="opacitymedium">'.$langs->trans("MembersByStateDesc").'</span><br>'; print '<span class="opacitymedium">'.$langs->trans("MembersByCountryDesc").'</span><br>';
elseif ($mode == 'memberbytown') print '<span class="opacitymedium">'.$langs->trans("MembersByTownDesc").'</span><br>'; } elseif ($mode == 'memberbystate') {
elseif ($mode == 'memberbyregion') print '<span class="opacitymedium">'.$langs->trans("MembersByRegion").'</span><br>'; //+ print '<span class="opacitymedium">'.$langs->trans("MembersByStateDesc").'</span><br>';
else { } elseif ($mode == 'memberbytown') {
print '<span class="opacitymedium">'.$langs->trans("MembersByTownDesc").'</span><br>';
} elseif ($mode == 'memberbyregion') {
print '<span class="opacitymedium">'.$langs->trans("MembersByRegion").'</span><br>'; //+
} else {
print '<span class="opacitymedium">'.$langs->trans("MembersStatisticsDesc").'</span><br>'; print '<span class="opacitymedium">'.$langs->trans("MembersStatisticsDesc").'</span><br>';
print '<br>'; print '<br>';
print '<a href="'.$_SERVER["PHP_SELF"].'?mode=memberbycountry">'.$langs->trans("MembersStatisticsByCountries").'</a><br>'; print '<a href="'.$_SERVER["PHP_SELF"].'?mode=memberbycountry">'.$langs->trans("MembersStatisticsByCountries").'</a><br>';
@ -229,7 +243,9 @@ if ($mode && !count($data)) {
// Show graphics // Show graphics
if (count($arrayjs) && $mode == 'memberbycountry') { if (count($arrayjs) && $mode == 'memberbycountry') {
$color_file = DOL_DOCUMENT_ROOT.'/theme/'.$conf->theme.'/theme_vars.inc.php'; $color_file = DOL_DOCUMENT_ROOT.'/theme/'.$conf->theme.'/theme_vars.inc.php';
if (is_readable($color_file)) include_once $color_file; if (is_readable($color_file)) {
include_once $color_file;
}
// Assume we've already included the proper headers so just call our script inline // Assume we've already included the proper headers so just call our script inline
// More doc: https://developers.google.com/chart/interactive/docs/gallery/geomap?hl=fr-FR // More doc: https://developers.google.com/chart/interactive/docs/gallery/geomap?hl=fr-FR
@ -248,11 +264,15 @@ if (count($arrayjs) && $mode == 'memberbycountry') {
foreach ($data as $val) { foreach ($data as $val) {
$valcountry = strtoupper($val['code']); // Should be ISO-3166 code (faster) $valcountry = strtoupper($val['code']); // Should be ISO-3166 code (faster)
//$valcountry=ucfirst($val['label_en']); //$valcountry=ucfirst($val['label_en']);
if ($valcountry == 'Great Britain') { $valcountry = 'United Kingdom'; } // fix case of uk (when we use labels) if ($valcountry == 'Great Britain') {
$valcountry = 'United Kingdom';
} // fix case of uk (when we use labels)
print "\tdata.setValue(".$i.", 0, \"".$valcountry."\");\n"; print "\tdata.setValue(".$i.", 0, \"".$valcountry."\");\n";
print "\tdata.setValue(".$i.", 1, ".$val['nb'].");\n"; print "\tdata.setValue(".$i.", 1, ".$val['nb'].");\n";
// Google's Geomap only supports up to 400 entries // Google's Geomap only supports up to 400 entries
if ($i >= 400) { break; } if ($i >= 400) {
break;
}
$i++; $i++;
} }
@ -279,7 +299,9 @@ if ($mode) {
print '<table class="liste centpercent">'; print '<table class="liste centpercent">';
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print '<td>'.$label.'</td>'; print '<td>'.$label.'</td>';
if ($label2) print '<td class="center">'.$label2.'</td>'; if ($label2) {
print '<td class="center">'.$label2.'</td>';
}
print '<td class="right">'.$langs->trans("NbOfMembers").' <span class="opacitymedium">('.$langs->trans("AllTime").')</span></td>'; print '<td class="right">'.$langs->trans("NbOfMembers").' <span class="opacitymedium">('.$langs->trans("AllTime").')</span></td>';
print '<td class="center">'.$langs->trans("LastMemberDate").'</td>'; print '<td class="center">'.$langs->trans("LastMemberDate").'</td>';
print '<td class="center">'.$langs->trans("LatestSubscriptionDate").'</td>'; print '<td class="center">'.$langs->trans("LatestSubscriptionDate").'</td>';
@ -289,7 +311,9 @@ if ($mode) {
$year = $val['year']; $year = $val['year'];
print '<tr class="oddeven">'; print '<tr class="oddeven">';
print '<td>'.$val['label'].'</td>'; print '<td>'.$val['label'].'</td>';
if ($label2) print '<td class="center">'.$val['label2'].'</td>'; if ($label2) {
print '<td class="center">'.$val['label2'].'</td>';
}
print '<td class="right">'.$val['nb'].'</td>'; print '<td class="right">'.$val['nb'].'</td>';
print '<td class="center">'.dol_print_date($val['lastdate'], 'dayhour').'</td>'; print '<td class="center">'.dol_print_date($val['lastdate'], 'dayhour').'</td>';
print '<td class="center">'.dol_print_date($val['lastsubscriptiondate'], 'dayhour').'</td>'; print '<td class="center">'.dol_print_date($val['lastsubscriptiondate'], 'dayhour').'</td>';

View File

@ -32,8 +32,12 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php';
$WIDTH = DolGraph::getDefaultGraphSizeForStats('width'); $WIDTH = DolGraph::getDefaultGraphSizeForStats('width');
$HEIGHT = DolGraph::getDefaultGraphSizeForStats('height'); $HEIGHT = DolGraph::getDefaultGraphSizeForStats('height');
$userid = GETPOST('userid', 'int'); if ($userid < 0) $userid = 0; $userid = GETPOST('userid', 'int'); if ($userid < 0) {
$socid = GETPOST('socid', 'int'); if ($socid < 0) $socid = 0; $userid = 0;
}
$socid = GETPOST('socid', 'int'); if ($socid < 0) {
$socid = 0;
}
// Security check // Security check
if ($user->socid > 0) { if ($user->socid > 0) {
@ -209,7 +213,9 @@ print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
// Show graphs // Show graphs
print '<table class="border centpercent"><tr class="pair nohover"><td class="center">'; print '<table class="border centpercent"><tr class="pair nohover"><td class="center">';
if ($mesg) { print $mesg; } else { if ($mesg) {
print $mesg;
} else {
print $px1->show(); print $px1->show();
print "<br>\n"; print "<br>\n";
print $px2->show(); print $px2->show();

View File

@ -50,14 +50,20 @@ $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit;
$sortfield = GETPOST('sortfield', 'aZ09comma'); $sortfield = GETPOST('sortfield', 'aZ09comma');
$sortorder = GETPOST('sortorder', 'aZ09comma'); $sortorder = GETPOST('sortorder', 'aZ09comma');
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 if (empty($page) || $page == -1) {
$page = 0;
} // If $page is not defined, or '' or -1
$offset = $limit * $page; $offset = $limit * $page;
$pageprev = $page - 1; $pageprev = $page - 1;
$pagenext = $page + 1; $pagenext = $page + 1;
// Default sort order (if not yet defined by previous GETPOST) // Default sort order (if not yet defined by previous GETPOST)
if (!$sortfield) $sortfield = "c.rowid"; if (!$sortfield) {
if (!$sortorder) $sortorder = "DESC"; $sortfield = "c.rowid";
}
if (!$sortorder) {
$sortorder = "DESC";
}
// Security check // Security check
@ -150,7 +156,9 @@ if (empty($reshook) && $action == 'setuserid' && ($user->rights->user->self->cre
if (!$error) { if (!$error) {
if ($_POST["userid"] != $object->user_id) { // If link differs from currently in database if ($_POST["userid"] != $object->user_id) { // If link differs from currently in database
$result = $object->setUserId($_POST["userid"]); $result = $object->setUserId($_POST["userid"]);
if ($result < 0) dol_print_error('', $object->error); if ($result < 0) {
dol_print_error('', $object->error);
}
$_POST['action'] = ''; $_POST['action'] = '';
$action = ''; $action = '';
} }
@ -178,7 +186,9 @@ if (empty($reshook) && $action == 'setsocid') {
if (!$error) { if (!$error) {
$result = $object->setThirdPartyId(GETPOST('socid', 'int')); $result = $object->setThirdPartyId(GETPOST('socid', 'int'));
if ($result < 0) dol_print_error('', $object->error); if ($result < 0) {
dol_print_error('', $object->error);
}
$_POST['action'] = ''; $_POST['action'] = '';
$action = ''; $action = '';
} }
@ -423,25 +433,37 @@ llxHeader("", $title, $helpurl);
$param = ''; $param = '';
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage); if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit); $param .= '&contextpage='.urlencode($contextpage);
}
if ($limit > 0 && $limit != $conf->liste_limit) {
$param .= '&limit='.urlencode($limit);
}
$param .= '&id='.$rowid; $param .= '&id='.$rowid;
if ($optioncss != '') $param .= '&optioncss='.urlencode($optioncss); if ($optioncss != '') {
$param .= '&optioncss='.urlencode($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';
if ($rowid > 0) { if ($rowid > 0) {
$res = $object->fetch($rowid); $res = $object->fetch($rowid);
if ($res < 0) { dol_print_error($db, $object->error); exit; } if ($res < 0) {
dol_print_error($db, $object->error); exit;
}
$adht->fetch($object->typeid); $adht->fetch($object->typeid);
$head = member_prepare_head($object); $head = member_prepare_head($object);
$rowspan = 10; $rowspan = 10;
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) $rowspan++; if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) {
if (!empty($conf->societe->enabled)) $rowspan++; $rowspan++;
}
if (!empty($conf->societe->enabled)) {
$rowspan++;
}
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">'; print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
print '<input type="hidden" name="token" value="'.newToken().'">'; print '<input type="hidden" name="token" value="'.newToken().'">';
@ -471,6 +493,12 @@ if ($rowid > 0) {
print '<tr><td>'.$langs->trans("MemberNature").'</td><td class="valeur" >'.$object->getmorphylib().'</td>'; print '<tr><td>'.$langs->trans("MemberNature").'</td><td class="valeur" >'.$object->getmorphylib().'</td>';
print '</tr>'; print '</tr>';
// Gender
print '<tr><td>'.$langs->trans("Gender").'</td>';
print '<td>';
if ($object->gender) print $langs->trans("Gender".$object->gender);
print '</td></tr>';
// Company // Company
print '<tr><td>'.$langs->trans("Company").'</td><td class="valeur">'.$object->company.'</td></tr>'; print '<tr><td>'.$langs->trans("Company").'</td><td class="valeur">'.$object->company.'</td></tr>';
@ -481,6 +509,15 @@ if ($rowid > 0) {
// Password // Password
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) { if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) {
print '<tr><td>'.$langs->trans("Password").'</td><td>'.preg_replace('/./i', '*', $object->pass); print '<tr><td>'.$langs->trans("Password").'</td><td>'.preg_replace('/./i', '*', $object->pass);
if ($object->pass) {
print preg_replace('/./i', '*', $object->pass);
} else {
if ($user->admin) {
print $langs->trans("Crypted").': '.$object->pass_indatabase_crypted;
} else {
print $langs->trans("Hidden");
}
}
if ((!empty($object->pass) || !empty($object->pass_crypted)) && empty($object->user_id)) { if ((!empty($object->pass) || !empty($object->pass_crypted)) && empty($object->user_id)) {
$langs->load("errors"); $langs->load("errors");
$htmltext = $langs->trans("WarningPasswordSetWithNoAccount"); $htmltext = $langs->trans("WarningPasswordSetWithNoAccount");
@ -489,6 +526,28 @@ if ($rowid > 0) {
print '</td></tr>'; print '</td></tr>';
} }
// Date end subscription
print '<tr><td>'.$langs->trans("SubscriptionEndDate").'</td><td class="valeur">';
if ($object->datefin) {
print dol_print_date($object->datefin, 'day');
if ($object->hasDelay()) {
print " ".img_warning($langs->trans("Late"));
}
} else {
if (!$adht->subscription) {
print $langs->trans("SubscriptionNotRecorded");
if ($object->statut > 0) {
print " ".img_warning($langs->trans("Late")); // Display a delay picto only if it is not a draft and is not canceled
}
} else {
print $langs->trans("SubscriptionNotReceived");
if ($object->statut > 0) {
print " ".img_warning($langs->trans("Late")); // Display a delay picto only if it is not a draft and is not canceled
}
}
}
print '</td></tr>';
print '</table>'; print '</table>';
print '</div>'; print '</div>';
@ -498,7 +557,7 @@ if ($rowid > 0) {
print '<table class="border tableforfield" width="100%">'; print '<table class="border tableforfield" width="100%">';
// Birthday // Birthday
print '<tr><td class="titlefield">'.$langs->trans("Birthday").'</td><td class="valeur">'.dol_print_date($object->birth, 'day').'</td></tr>'; print '<tr><td class="titlefield">'.$langs->trans("DateOfBirth").'</td><td class="valeur">'.dol_print_date($object->birth, 'day').'</td></tr>';
// Public // Public
print '<tr><td>'.$langs->trans("Public").'</td><td class="valeur">'.yn($object->public).'</td></tr>'; print '<tr><td>'.$langs->trans("Public").'</td><td class="valeur">'.yn($object->public).'</td></tr>';
@ -515,31 +574,15 @@ if ($rowid > 0) {
$cols = 2; $cols = 2;
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php'; include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php';
// Date end subscription
print '<tr><td>'.$langs->trans("SubscriptionEndDate").'</td><td class="valeur">';
if ($object->datefin) {
print dol_print_date($object->datefin, 'day');
if ($object->hasDelay()) {
print " ".img_warning($langs->trans("Late"));
}
} else {
if (!$adht->subscription) {
print $langs->trans("SubscriptionNotRecorded");
if ($object->statut > 0) print " ".img_warning($langs->trans("Late")); // Display a delay picto only if it is not a draft and is not canceled
} else {
print $langs->trans("SubscriptionNotReceived");
if ($object->statut > 0) print " ".img_warning($langs->trans("Late")); // Display a delay picto only if it is not a draft and is not canceled
}
}
print '</td></tr>';
// Third party Dolibarr // Third party Dolibarr
if (!empty($conf->societe->enabled)) { if (!empty($conf->societe->enabled)) {
print '<tr><td>'; print '<tr><td>';
print '<table class="nobordernopadding" width="100%"><tr><td>'; print '<table class="nobordernopadding" width="100%"><tr><td>';
print $langs->trans("LinkedToDolibarrThirdParty"); print $langs->trans("LinkedToDolibarrThirdParty");
print '</td>'; print '</td>';
if ($action != 'editthirdparty' && $user->rights->adherent->creer) print '<td class="right"><a class="editfielda" href="'.$_SERVER["PHP_SELF"].'?action=editthirdparty&amp;rowid='.$object->id.'">'.img_edit($langs->trans('SetLinkToThirdParty'), 1).'</a></td>'; if ($action != 'editthirdparty' && $user->rights->adherent->creer) {
print '<td class="right"><a class="editfielda" href="'.$_SERVER["PHP_SELF"].'?action=editthirdparty&amp;rowid='.$object->id.'">'.img_edit($langs->trans('SetLinkToThirdParty'), 1).'</a></td>';
}
print '</tr></table>'; print '</tr></table>';
print '</td><td colspan="2" class="valeur">'; print '</td><td colspan="2" class="valeur">';
if ($action == 'editthirdparty') { if ($action == 'editthirdparty') {
@ -585,7 +628,9 @@ if ($rowid > 0) {
} else { } else {
if ($object->user_id) { if ($object->user_id) {
$form->form_users($_SERVER['PHP_SELF'].'?rowid='.$object->id, $object->user_id, 'none'); $form->form_users($_SERVER['PHP_SELF'].'?rowid='.$object->id, $object->user_id, 'none');
} else print $langs->trans("NoDolibarrAccess"); } else {
print $langs->trans("NoDolibarrAccess");
}
} }
print '</td></tr>'; print '</td></tr>';
@ -608,8 +653,11 @@ if ($rowid > 0) {
if ($action != 'addsubscription' && $action != 'create_thirdparty') { if ($action != 'addsubscription' && $action != 'create_thirdparty') {
print '<div class="tabsAction">'; print '<div class="tabsAction">';
if ($object->statut > 0) print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?rowid='.$rowid.'&action=addsubscription">'.$langs->trans("AddSubscription")."</a></div>"; if ($object->statut > 0) {
else print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("ValidateBefore")).'">'.$langs->trans("AddSubscription").'</a></div>'; print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?rowid='.$rowid.'&action=addsubscription">'.$langs->trans("AddSubscription")."</a></div>";
} else {
print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("ValidateBefore")).'">'.$langs->trans("AddSubscription").'</a></div>';
}
print '</div>'; print '</div>';
} }
@ -712,7 +760,9 @@ if ($rowid > 0) {
if (empty($num)) { if (empty($num)) {
$colspan = 6; $colspan = 6;
if (!empty($conf->banque->enabled)) $colspan++; if (!empty($conf->banque->enabled)) {
$colspan++;
}
print '<tr><td colspan="'.$colspan.'"><span class="opacitymedium">'.$langs->trans("None").'</span></td></tr>'; print '<tr><td colspan="'.$colspan.'"><span class="opacitymedium">'.$langs->trans("None").'</span></td></tr>';
} }
@ -749,13 +799,23 @@ if ($rowid > 0) {
$invoiceonly = 0; // 1 means option by default is invoice only $invoiceonly = 0; // 1 means option by default is invoice only
$bankviainvoice = 0; // 1 means option by default is write to bank via invoice $bankviainvoice = 0; // 1 means option by default is write to bank via invoice
if (GETPOST('paymentsave')) { if (GETPOST('paymentsave')) {
if (GETPOST('paymentsave') == 'bankdirect') $bankdirect = 1; if (GETPOST('paymentsave') == 'bankdirect') {
if (GETPOST('paymentsave') == 'invoiceonly') $invoiceonly = 1; $bankdirect = 1;
if (GETPOST('paymentsave') == 'bankviainvoice') $bankviainvoice = 1; }
if (GETPOST('paymentsave') == 'invoiceonly') {
$invoiceonly = 1;
}
if (GETPOST('paymentsave') == 'bankviainvoice') {
$bankviainvoice = 1;
}
} else { } else {
if (!empty($conf->global->ADHERENT_BANK_USE) && $conf->global->ADHERENT_BANK_USE == 'bankviainvoice' && !empty($conf->banque->enabled) && !empty($conf->societe->enabled) && !empty($conf->facture->enabled)) $bankviainvoice = 1; if (!empty($conf->global->ADHERENT_BANK_USE) && $conf->global->ADHERENT_BANK_USE == 'bankviainvoice' && !empty($conf->banque->enabled) && !empty($conf->societe->enabled) && !empty($conf->facture->enabled)) {
elseif (!empty($conf->global->ADHERENT_BANK_USE) && $conf->global->ADHERENT_BANK_USE == 'bankdirect' && !empty($conf->banque->enabled)) $bankdirect = 1; $bankviainvoice = 1;
elseif (!empty($conf->global->ADHERENT_BANK_USE) && $conf->global->ADHERENT_BANK_USE == 'invoiceonly' && !empty($conf->banque->enabled) && !empty($conf->societe->enabled) && !empty($conf->facture->enabled)) $invoiceonly = 1; } elseif (!empty($conf->global->ADHERENT_BANK_USE) && $conf->global->ADHERENT_BANK_USE == 'bankdirect' && !empty($conf->banque->enabled)) {
$bankdirect = 1;
} elseif (!empty($conf->global->ADHERENT_BANK_USE) && $conf->global->ADHERENT_BANK_USE == 'invoiceonly' && !empty($conf->banque->enabled) && !empty($conf->societe->enabled) && !empty($conf->facture->enabled)) {
$invoiceonly = 1;
}
} }
print "\n\n<!-- Form add subscription -->\n"; print "\n\n<!-- Form add subscription -->\n";
@ -789,7 +849,9 @@ if ($rowid > 0) {
} }
}); });
'; ';
if (GETPOST('paymentsave')) print '$("#'.GETPOST('paymentsave').'").prop("checked",true);'; if (GETPOST('paymentsave')) {
print '$("#'.GETPOST('paymentsave').'").prop("checked",true);';
}
print '});'; print '});';
print '</script>'."\n"; print '</script>'."\n";
} }
@ -802,10 +864,14 @@ if ($rowid > 0) {
if ($object->morphy == 'mor') { if ($object->morphy == 'mor') {
$companyname = $object->company; $companyname = $object->company;
if (!empty($fullname)) $companyalias = $fullname; if (!empty($fullname)) {
$companyalias = $fullname;
}
} else { } else {
$companyname = $fullname; $companyname = $fullname;
if (!empty($object->company)) $companyalias = $object->company; if (!empty($object->company)) {
$companyalias = $object->company;
}
} }
// Create a form array // Create a form array
@ -886,7 +952,9 @@ if ($rowid > 0) {
// Label // Label
print '<tr><td>'.$langs->trans("Label").'</td>'; print '<tr><td>'.$langs->trans("Label").'</td>';
print '<td><input name="label" type="text" size="32" value="'; print '<td><input name="label" type="text" size="32" value="';
if (empty($conf->global->MEMBER_NO_DEFAULT_LABEL)) print $langs->trans("Subscription").' '.dol_print_date(($datefrom ? $datefrom : time()), "%Y"); if (empty($conf->global->MEMBER_NO_DEFAULT_LABEL)) {
print $langs->trans("Subscription").' '.dol_print_date(($datefrom ? $datefrom : time()), "%Y");
}
print '"></td></tr>'; print '"></td></tr>';
// Complementary action // Complementary action
@ -914,16 +982,21 @@ if ($rowid > 0) {
print '<input type="radio" class="moreaction" id="invoiceonly" name="paymentsave" value="invoiceonly"'.(!empty($invoiceonly) ? ' checked' : ''); print '<input type="radio" class="moreaction" id="invoiceonly" name="paymentsave" value="invoiceonly"'.(!empty($invoiceonly) ? ' checked' : '');
//if (empty($object->fk_soc)) print ' disabled'; //if (empty($object->fk_soc)) print ' disabled';
print '> '.$langs->trans("MoreActionInvoiceOnly"); print '> '.$langs->trans("MoreActionInvoiceOnly");
if ($object->fk_soc) print ' ('.$langs->trans("ThirdParty").': '.$company->getNomUrl(1).')'; if ($object->fk_soc) {
else { print ' ('.$langs->trans("ThirdParty").': '.$company->getNomUrl(1).')';
} else {
print ' ('; print ' (';
if (empty($object->fk_soc)) print img_warning($langs->trans("NoThirdPartyAssociatedToMember")); if (empty($object->fk_soc)) {
print img_warning($langs->trans("NoThirdPartyAssociatedToMember"));
}
print $langs->trans("NoThirdPartyAssociatedToMember"); print $langs->trans("NoThirdPartyAssociatedToMember");
print ' - <a href="'.$_SERVER["PHP_SELF"].'?rowid='.$object->id.'&amp;action=create_thirdparty">'; print ' - <a href="'.$_SERVER["PHP_SELF"].'?rowid='.$object->id.'&amp;action=create_thirdparty">';
print $langs->trans("CreateDolibarrThirdParty"); print $langs->trans("CreateDolibarrThirdParty");
print '</a>)'; print '</a>)';
} }
if (empty($conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS) || $conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS != 'defaultforfoundationcountry') print '. <span class="opacitymedium">'.$langs->trans("NoVatOnSubscription", 0).'</span>'; if (empty($conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS) || $conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS != 'defaultforfoundationcountry') {
print '. <span class="opacitymedium">'.$langs->trans("NoVatOnSubscription", 0).'</span>';
}
if (!empty($conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS) && (!empty($conf->product->enabled) || !empty($conf->service->enabled))) { if (!empty($conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS) && (!empty($conf->product->enabled) || !empty($conf->service->enabled))) {
$prodtmp = new Product($db); $prodtmp = new Product($db);
$result = $prodtmp->fetch($conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS); $result = $prodtmp->fetch($conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS);
@ -943,13 +1016,17 @@ if ($rowid > 0) {
print ' ('.$langs->trans("ThirdParty").': '.$company->getNomUrl(1).')'; print ' ('.$langs->trans("ThirdParty").': '.$company->getNomUrl(1).')';
} else { } else {
print ' ('; print ' (';
if (empty($object->fk_soc)) print img_warning($langs->trans("NoThirdPartyAssociatedToMember")); if (empty($object->fk_soc)) {
print img_warning($langs->trans("NoThirdPartyAssociatedToMember"));
}
print $langs->trans("NoThirdPartyAssociatedToMember"); print $langs->trans("NoThirdPartyAssociatedToMember");
print ' - <a href="'.$_SERVER["PHP_SELF"].'?rowid='.$object->id.'&amp;action=create_thirdparty">'; print ' - <a href="'.$_SERVER["PHP_SELF"].'?rowid='.$object->id.'&amp;action=create_thirdparty">';
print $langs->trans("CreateDolibarrThirdParty"); print $langs->trans("CreateDolibarrThirdParty");
print '</a>)'; print '</a>)';
} }
if (empty($conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS) || $conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS != 'defaultforfoundationcountry') print '. <span class="opacitymedium">'.$langs->trans("NoVatOnSubscription", 0).'</span>'; if (empty($conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS) || $conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS != 'defaultforfoundationcountry') {
print '. <span class="opacitymedium">'.$langs->trans("NoVatOnSubscription", 0).'</span>';
}
if (!empty($conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS) && (!empty($conf->product->enabled) || !empty($conf->service->enabled))) { if (!empty($conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS) && (!empty($conf->product->enabled) || !empty($conf->service->enabled))) {
$prodtmp = new Product($db); $prodtmp = new Product($db);
$result = $prodtmp->fetch($conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS); $result = $prodtmp->fetch($conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS);

View File

@ -48,8 +48,9 @@ $note = GETPOST('note', 'alpha');
$typeid = (int) GETPOST('typeid', 'int'); $typeid = (int) GETPOST('typeid', 'int');
$amount = price2num(GETPOST('amount', 'alpha'), 'MT'); $amount = price2num(GETPOST('amount', 'alpha'), 'MT');
if (!$user->rights->adherent->cotisation->lire) if (!$user->rights->adherent->cotisation->lire) {
accessforbidden(); accessforbidden();
}
$permissionnote = $user->rights->adherent->cotisation->creer; // Used by the include of actions_setnotes.inc.php $permissionnote = $user->rights->adherent->cotisation->creer; // Used by the include of actions_setnotes.inc.php
$permissiondellink = $user->rights->adherent->cotisation->creer; // Used by the include of actions_dellink.inc.php $permissiondellink = $user->rights->adherent->cotisation->creer; // Used by the include of actions_dellink.inc.php
@ -65,7 +66,9 @@ $result = restrictedArea($user, 'subscription', 0); // TODO Check on object id
* Actions * Actions
*/ */
if ($cancel) $action = ''; if ($cancel) {
$action = '';
}
//include DOL_DOCUMENT_ROOT.'/core/actions_setnotes.inc.php'; // Must be include, not include_once //include DOL_DOCUMENT_ROOT.'/core/actions_setnotes.inc.php'; // Must be include, not include_once
@ -122,7 +125,9 @@ if ($user->rights->adherent->cotisation->creer && $action == 'update' && !$cance
$errmsg = $object->error; $errmsg = $object->error;
} else { } else {
foreach ($object->errors as $error) { foreach ($object->errors as $error) {
if ($errmsg) $errmsg .= '<br>'; if ($errmsg) {
$errmsg .= '<br>';
}
$errmsg .= $error; $errmsg .= $error;
} }
} }
@ -269,7 +274,9 @@ if ($rowid && $action != 'edit') {
//$formquestion=array(); //$formquestion=array();
//$formquestion['text']='<b>'.$langs->trans("ThisWillAlsoDeleteBankRecord").'</b>'; //$formquestion['text']='<b>'.$langs->trans("ThisWillAlsoDeleteBankRecord").'</b>';
$text = $langs->trans("ConfirmDeleteSubscription"); $text = $langs->trans("ConfirmDeleteSubscription");
if (!empty($conf->banque->enabled) && !empty($conf->global->ADHERENT_BANK_USE)) $text .= '<br>'.img_warning().' '.$langs->trans("ThisWillAlsoDeleteBankRecord"); if (!empty($conf->banque->enabled) && !empty($conf->global->ADHERENT_BANK_USE)) {
$text .= '<br>'.img_warning().' '.$langs->trans("ThisWillAlsoDeleteBankRecord");
}
print $form->formconfirm($_SERVER["PHP_SELF"]."?rowid=".$object->id, $langs->trans("DeleteSubscription"), $text, "confirm_delete", $formquestion, 0, 1); print $form->formconfirm($_SERVER["PHP_SELF"]."?rowid=".$object->id, $langs->trans("DeleteSubscription"), $text, "confirm_delete", $formquestion, 0, 1);
} }

View File

@ -31,8 +31,9 @@ require_once DOL_DOCUMENT_ROOT.'/adherents/class/subscription.class.php';
// Load translation files required by the page // Load translation files required by the page
$langs->loadLangs(array("companies", "members", "bills", "users")); $langs->loadLangs(array("companies", "members", "bills", "users"));
if (!$user->rights->adherent->lire) if (!$user->rights->adherent->lire) {
accessforbidden(); accessforbidden();
}
$rowid = GETPOST("rowid", 'int'); $rowid = GETPOST("rowid", 'int');

View File

@ -55,12 +55,18 @@ $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit;
$sortfield = GETPOST("sortfield", 'alpha'); $sortfield = GETPOST("sortfield", 'alpha');
$sortorder = GETPOST("sortorder", 'alpha'); $sortorder = GETPOST("sortorder", 'alpha');
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 if (empty($page) || $page == -1) {
$page = 0;
} // If $page is not defined, or '' or -1
$offset = $limit * $page; $offset = $limit * $page;
$pageprev = $page - 1; $pageprev = $page - 1;
$pagenext = $page + 1; $pagenext = $page + 1;
if (!$sortorder) { $sortorder = "DESC"; } if (!$sortorder) {
if (!$sortfield) { $sortfield = "c.dateadh"; } $sortorder = "DESC";
}
if (!$sortfield) {
$sortfield = "c.dateadh";
}
$object = new Subscription($db); $object = new Subscription($db);
@ -102,12 +108,18 @@ $result = restrictedArea($user, 'adherent', '', '', 'cotisation');
* Actions * Actions
*/ */
if (GETPOST('cancel', 'alpha')) { $action = 'list'; $massaction = ''; } if (GETPOST('cancel', 'alpha')) {
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend' && $massaction != 'confirm_createbills') { $massaction = ''; } $action = 'list'; $massaction = '';
}
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend' && $massaction != 'confirm_createbills') {
$massaction = '';
}
$parameters = array('socid'=>$socid); $parameters = array('socid'=>$socid);
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); if ($reshook < 0) {
setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
}
if (empty($reshook)) { if (empty($reshook)) {
// Selection of new fields // Selection of new fields
@ -157,16 +169,33 @@ if (isset($date_select) && $date_select != '') {
$sql .= " AND c.dateadh < '".((int) $date_select + 1)."-01-01 00:00:00'"; $sql .= " AND c.dateadh < '".((int) $date_select + 1)."-01-01 00:00:00'";
} }
if ($search_ref) { if ($search_ref) {
if (is_numeric($search_ref)) $sql .= " AND (c.rowid = ".$db->escape($search_ref).")"; if (is_numeric($search_ref)) {
else $sql .= " AND 1 = 2"; // Always wrong $sql .= " AND (c.rowid = ".$db->escape($search_ref).")";
} else {
$sql .= " AND 1 = 2"; // Always wrong
}
}
if ($search_type) {
$sql .= natural_search(array('c.fk_type'), $search_type);
}
if ($search_lastname) {
$sql .= natural_search(array('d.lastname', 'd.societe'), $search_lastname);
}
if ($search_firstname) {
$sql .= natural_search(array('d.firstname'), $search_firstname);
}
if ($search_login) {
$sql .= natural_search('d.login', $search_login);
}
if ($search_note) {
$sql .= natural_search('c.note', $search_note);
}
if ($search_account > 0) {
$sql .= " AND b.fk_account = ".urldecode($search_account);
}
if ($search_amount) {
$sql .= natural_search('c.subscription', $search_amount, 1);
} }
if ($search_type) $sql .= natural_search(array('c.fk_type'), $search_type);
if ($search_lastname) $sql .= natural_search(array('d.lastname', 'd.societe'), $search_lastname);
if ($search_firstname) $sql .= natural_search(array('d.firstname'), $search_firstname);
if ($search_login) $sql .= natural_search('d.login', $search_login);
if ($search_note) $sql .= natural_search('c.note', $search_note);
if ($search_account > 0) $sql .= " AND b.fk_account = ".urldecode($search_account);
if ($search_amount) $sql .= natural_search('c.subscription', $search_amount, 1);
// Add where from extra fields // Add where from extra fields
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php'; include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php';
@ -182,8 +211,11 @@ $sql .= $db->order($sortfield, $sortorder);
$nbtotalofrecords = ''; $nbtotalofrecords = '';
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
$resql = $db->query($sql); $resql = $db->query($sql);
if ($resql) $nbtotalofrecords = $db->num_rows($resql); if ($resql) {
else dol_print_error($db); $nbtotalofrecords = $db->num_rows($resql);
} else {
dol_print_error($db);
}
if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0
$page = 0; $page = 0;
$offset = 0; $offset = 0;
@ -215,19 +247,41 @@ llxHeader('', $langs->trans("ListOfSubscriptions"), $help_url);
$i = 0; $i = 0;
$title = $langs->trans("ListOfSubscriptions"); $title = $langs->trans("ListOfSubscriptions");
if (!empty($date_select)) $title .= ' ('.$langs->trans("Year").' '.$date_select.')'; if (!empty($date_select)) {
$title .= ' ('.$langs->trans("Year").' '.$date_select.')';
}
$param = ''; $param = '';
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage); if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit); $param .= '&contextpage='.urlencode($contextpage);
if ($statut != '') $param .= "&statut=".urlencode($statut); }
if ($search_type) $param .= "&search_type=".urlencode($search_type); if ($limit > 0 && $limit != $conf->liste_limit) {
if ($date_select) $param .= "&date_select=".urlencode($date_select); $param .= '&limit='.urlencode($limit);
if ($search_lastname) $param .= "&search_lastname=".urlencode($search_lastname); }
if ($search_login) $param .= "&search_login=".urlencode($search_login); if ($statut != '') {
if ($search_account) $param .= "&search_account=".urlencode($search_account); $param .= "&statut=".urlencode($statut);
if ($search_amount) $param .= "&search_amount=".urlencode($search_amount); }
if ($optioncss != '') $param .= '&optioncss='.urlencode($optioncss); if ($search_type) {
$param .= "&search_type=".urlencode($search_type);
}
if ($date_select) {
$param .= "&date_select=".urlencode($date_select);
}
if ($search_lastname) {
$param .= "&search_lastname=".urlencode($search_lastname);
}
if ($search_login) {
$param .= "&search_login=".urlencode($search_login);
}
if ($search_account) {
$param .= "&search_account=".urlencode($search_account);
}
if ($search_amount) {
$param .= "&search_amount=".urlencode($search_amount);
}
if ($optioncss != '') {
$param .= '&optioncss='.urlencode($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';
@ -237,7 +291,9 @@ $arrayofmassactions = array(
//'builddoc'=>$langs->trans("PDFMerge"), //'builddoc'=>$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']='<span class="fa fa-trash paddingrightonly"></span>'.$langs->trans("Delete");
if (in_array($massaction, array('presend', 'predelete'))) $arrayofmassactions = array(); if (in_array($massaction, array('presend', 'predelete'))) {
$arrayofmassactions = array();
}
$massactionbutton = $form->selectMassAction('', $arrayofmassactions); $massactionbutton = $form->selectMassAction('', $arrayofmassactions);
$newcardbutton = ''; $newcardbutton = '';
@ -246,7 +302,9 @@ if ($user->rights->adherent->cotisation->creer) {
} }
print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">'; print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">'; if ($optioncss != '') {
print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
}
print '<input type="hidden" name="token" value="'.newToken().'">'; print '<input type="hidden" name="token" value="'.newToken().'">';
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">'; print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
print '<input type="hidden" name="action" value="list">'; print '<input type="hidden" name="action" value="list">';
@ -263,7 +321,9 @@ $trackid = 'sub'.$object->id;
include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php';
if ($sall) { if ($sall) {
foreach ($fieldstosearchall as $key => $val) $fieldstosearchall[$key] = $langs->trans($val); foreach ($fieldstosearchall as $key => $val) {
$fieldstosearchall[$key] = $langs->trans($val);
}
print '<div class="divsearchfieldfilter">'.$langs->trans("FilterOnInto", $sall).join(', ', $fieldstosearchall).'</div>'; print '<div class="divsearchfieldfilter">'.$langs->trans("FilterOnInto", $sall).join(', ', $fieldstosearchall).'</div>';
} }
@ -271,7 +331,9 @@ $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
if ($massactionbutton) $selectedfields .= $form->showCheckAddButtons('checkforselect', 1); if ($massactionbutton) {
$selectedfields .= $form->showCheckAddButtons('checkforselect', 1);
}
print '<div class="div-table-responsive">'; print '<div class="div-table-responsive">';
print '<table class="tagtable nobottomiftotal liste'.($moreforfilter ? " listwithfilterbefore" : "").'">'."\n"; print '<table class="tagtable nobottomiftotal liste'.($moreforfilter ? " listwithfilterbefore" : "").'">'."\n";
@ -366,16 +428,36 @@ print "</tr>\n";
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
if (!empty($arrayfields['d.ref']['checked'])) print_liste_field_titre($arrayfields['d.ref']['label'], $_SERVER["PHP_SELF"], "c.rowid", $param, "", "", $sortfield, $sortorder); if (!empty($arrayfields['d.ref']['checked'])) {
if (!empty($arrayfields['d.fk_type']['checked'])) print_liste_field_titre($arrayfields['d.fk_type']['label'], $_SERVER["PHP_SELF"], "c.fk_type", $param, "", "", $sortfield, $sortorder); print_liste_field_titre($arrayfields['d.ref']['label'], $_SERVER["PHP_SELF"], "c.rowid", $param, "", "", $sortfield, $sortorder);
if (!empty($arrayfields['d.lastname']['checked'])) print_liste_field_titre($arrayfields['d.lastname']['label'], $_SERVER["PHP_SELF"], "d.lastname", $param, "", "", $sortfield, $sortorder); }
if (!empty($arrayfields['d.firstname']['checked'])) print_liste_field_titre($arrayfields['d.firstname']['label'], $_SERVER["PHP_SELF"], "d.firstname", $param, "", "", $sortfield, $sortorder); if (!empty($arrayfields['d.fk_type']['checked'])) {
if (!empty($arrayfields['d.login']['checked'])) print_liste_field_titre($arrayfields['d.login']['label'], $_SERVER["PHP_SELF"], "d.login", $param, "", "", $sortfield, $sortorder); print_liste_field_titre($arrayfields['d.fk_type']['label'], $_SERVER["PHP_SELF"], "c.fk_type", $param, "", "", $sortfield, $sortorder);
if (!empty($arrayfields['t.libelle']['checked'])) print_liste_field_titre($arrayfields['t.libelle']['label'], $_SERVER["PHP_SELF"], "c.note", $param, "", '', $sortfield, $sortorder); }
if (!empty($arrayfields['d.bank']['checked'])) print_liste_field_titre($arrayfields['d.bank']['label'], $_SERVER["PHP_SELF"], "b.fk_account", $param, "", "", $sortfield, $sortorder); if (!empty($arrayfields['d.lastname']['checked'])) {
if (!empty($arrayfields['c.dateadh']['checked'])) print_liste_field_titre($arrayfields['c.dateadh']['label'], $_SERVER["PHP_SELF"], "c.dateadh", $param, "", '', $sortfield, $sortorder, 'center nowraponall '); print_liste_field_titre($arrayfields['d.lastname']['label'], $_SERVER["PHP_SELF"], "d.lastname", $param, "", "", $sortfield, $sortorder);
if (!empty($arrayfields['c.datef']['checked'])) print_liste_field_titre($arrayfields['c.datef']['label'], $_SERVER["PHP_SELF"], "c.datef", $param, "", '', $sortfield, $sortorder, 'center nowraponall '); }
if (!empty($arrayfields['d.amount']['checked'])) print_liste_field_titre($arrayfields['d.amount']['label'], $_SERVER["PHP_SELF"], "c.subscription", $param, "", '', $sortfield, $sortorder, 'right '); if (!empty($arrayfields['d.firstname']['checked'])) {
print_liste_field_titre($arrayfields['d.firstname']['label'], $_SERVER["PHP_SELF"], "d.firstname", $param, "", "", $sortfield, $sortorder);
}
if (!empty($arrayfields['d.login']['checked'])) {
print_liste_field_titre($arrayfields['d.login']['label'], $_SERVER["PHP_SELF"], "d.login", $param, "", "", $sortfield, $sortorder);
}
if (!empty($arrayfields['t.libelle']['checked'])) {
print_liste_field_titre($arrayfields['t.libelle']['label'], $_SERVER["PHP_SELF"], "c.note", $param, "", '', $sortfield, $sortorder);
}
if (!empty($arrayfields['d.bank']['checked'])) {
print_liste_field_titre($arrayfields['d.bank']['label'], $_SERVER["PHP_SELF"], "b.fk_account", $param, "", "", $sortfield, $sortorder);
}
if (!empty($arrayfields['c.dateadh']['checked'])) {
print_liste_field_titre($arrayfields['c.dateadh']['label'], $_SERVER["PHP_SELF"], "c.dateadh", $param, "", '', $sortfield, $sortorder, 'center nowraponall ');
}
if (!empty($arrayfields['c.datef']['checked'])) {
print_liste_field_titre($arrayfields['c.datef']['label'], $_SERVER["PHP_SELF"], "c.datef", $param, "", '', $sortfield, $sortorder, 'center nowraponall ');
}
if (!empty($arrayfields['d.amount']['checked'])) {
print_liste_field_titre($arrayfields['d.amount']['label'], $_SERVER["PHP_SELF"], "c.subscription", $param, "", '', $sortfield, $sortorder, 'right ');
}
// Extra fields // Extra fields
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php';
@ -384,8 +466,12 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php';
$parameters = array('arrayfields'=>$arrayfields, 'param'=>$param, 'sortfield'=>$sortfield, 'sortorder'=>$sortorder); $parameters = array('arrayfields'=>$arrayfields, 'param'=>$param, 'sortfield'=>$sortfield, 'sortorder'=>$sortorder);
$reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters); // Note that $action and $object may have been modified by hook $reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters); // Note that $action and $object may have been modified by hook
print $hookmanager->resPrint; print $hookmanager->resPrint;
if (!empty($arrayfields['c.datec']['checked'])) print_liste_field_titre($arrayfields['c.datec']['label'], $_SERVER["PHP_SELF"], "c.datec", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder); if (!empty($arrayfields['c.datec']['checked'])) {
if (!empty($arrayfields['c.tms']['checked'])) print_liste_field_titre($arrayfields['c.tms']['label'], $_SERVER["PHP_SELF"], "c.tms", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder); print_liste_field_titre($arrayfields['c.datec']['label'], $_SERVER["PHP_SELF"], "c.datec", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder);
}
if (!empty($arrayfields['c.tms']['checked'])) {
print_liste_field_titre($arrayfields['c.tms']['label'], $_SERVER["PHP_SELF"], "c.tms", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder);
}
print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], '', '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch '); print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], '', '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch ');
print "</tr>\n"; print "</tr>\n";
@ -420,7 +506,9 @@ while ($i < min($num, $limit)) {
// Ref // Ref
if (!empty($arrayfields['d.ref']['checked'])) { if (!empty($arrayfields['d.ref']['checked'])) {
print '<td>'.$subscription->getNomUrl(1).'</td>'; print '<td>'.$subscription->getNomUrl(1).'</td>';
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Type // Type
if (!empty($arrayfields['d.fk_type']['checked'])) { if (!empty($arrayfields['d.fk_type']['checked'])) {
@ -429,24 +517,32 @@ while ($i < min($num, $limit)) {
print $adht->getNomUrl(1); print $adht->getNomUrl(1);
} }
print '</td>'; print '</td>';
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Lastname // Lastname
if (!empty($arrayfields['d.lastname']['checked'])) { if (!empty($arrayfields['d.lastname']['checked'])) {
print '<td>'.$adherent->getNomUrl(-1, 0, 'card', 'lastname').'</td>'; print '<td>'.$adherent->getNomUrl(-1, 0, 'card', 'lastname').'</td>';
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Firstname // Firstname
if (!empty($arrayfields['d.firstname']['checked'])) { if (!empty($arrayfields['d.firstname']['checked'])) {
print '<td class="tdoverflowmax150" title="'.dol_escape_htmltag($adherent->firstname).'">'.$adherent->firstname.'</td>'; print '<td class="tdoverflowmax150" title="'.dol_escape_htmltag($adherent->firstname).'">'.$adherent->firstname.'</td>';
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Login // Login
if (!empty($arrayfields['d.login']['checked'])) { if (!empty($arrayfields['d.login']['checked'])) {
print '<td class="tdoverflowmax150" title="'.dol_escape_htmltag($adherent->login).'">'.$adherent->login.'</td>'; print '<td class="tdoverflowmax150" title="'.dol_escape_htmltag($adherent->login).'">'.$adherent->login.'</td>';
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Label // Label
@ -454,7 +550,9 @@ while ($i < min($num, $limit)) {
print '<td>'; print '<td>';
print dol_trunc($obj->note, 128); print dol_trunc($obj->note, 128);
print '</td>'; print '</td>';
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Banque // Banque
@ -467,24 +565,34 @@ while ($i < min($num, $limit)) {
print $accountstatic->getNomUrl(1); print $accountstatic->getNomUrl(1);
} }
print "</td>\n"; print "</td>\n";
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Date start // Date start
if (!empty($arrayfields['c.dateadh']['checked'])) { if (!empty($arrayfields['c.dateadh']['checked'])) {
print '<td class="center">'.dol_print_date($db->jdate($obj->dateadh), 'day')."</td>\n"; print '<td class="center">'.dol_print_date($db->jdate($obj->dateadh), 'day')."</td>\n";
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Date end // Date end
if (!empty($arrayfields['c.datef']['checked'])) { if (!empty($arrayfields['c.datef']['checked'])) {
print '<td class="center">'.dol_print_date($db->jdate($obj->datef), 'day')."</td>\n"; print '<td class="center">'.dol_print_date($db->jdate($obj->datef), 'day')."</td>\n";
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Price // Price
if (!empty($arrayfields['d.amount']['checked'])) { if (!empty($arrayfields['d.amount']['checked'])) {
print '<td class="right">'.price($obj->subscription).'</td>'; print '<td class="right">'.price($obj->subscription).'</td>';
if (!$i) $totalarray['nbfield']++; if (!$i) {
if (!$i) $totalarray['pos'][$totalarray['nbfield']] = 'd.amount'; $totalarray['nbfield']++;
}
if (!$i) {
$totalarray['pos'][$totalarray['nbfield']] = 'd.amount';
}
$totalarray['val']['d.amount'] += $obj->subscription; $totalarray['val']['d.amount'] += $obj->subscription;
} }
// Extra fields // Extra fields
@ -498,24 +606,32 @@ while ($i < min($num, $limit)) {
print '<td class="nowrap center">'; print '<td class="nowrap center">';
print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser'); print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser');
print '</td>'; print '</td>';
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Date modification // Date modification
if (!empty($arrayfields['c.tms']['checked'])) { if (!empty($arrayfields['c.tms']['checked'])) {
print '<td class="nowrap center">'; print '<td class="nowrap center">';
print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser'); print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser');
print '</td>'; print '</td>';
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
} }
// Action column // Action column
print '<td class="center">'; print '<td class="center">';
if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
$selected = 0; $selected = 0;
if (in_array($obj->rowid, $arrayofselected)) $selected = 1; if (in_array($obj->rowid, $arrayofselected)) {
$selected = 1;
}
print '<input id="cb'.$obj->rowid.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.'"'.($selected ? ' checked="checked"' : '').'>'; print '<input id="cb'.$obj->rowid.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.'"'.($selected ? ' checked="checked"' : '').'>';
} }
print '</td>'; print '</td>';
if (!$i) $totalarray['nbfield']++; if (!$i) {
$totalarray['nbfield']++;
}
print "</tr>\n"; print "</tr>\n";
$i++; $i++;
@ -528,7 +644,11 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/list_print_total.tpl.php';
// If no record found // If no record found
if ($num == 0) { if ($num == 0) {
$colspan = 1; $colspan = 1;
foreach ($arrayfields as $key => $val) { if (!empty($val['checked'])) $colspan++; } foreach ($arrayfields as $key => $val) {
if (!empty($val['checked'])) {
$colspan++;
}
}
print '<tr><td colspan="'.$colspan.'" class="opacitymedium">'.$langs->trans("NoRecordFound").'</td></tr>'; print '<tr><td colspan="'.$colspan.'" class="opacitymedium">'.$langs->trans("NoRecordFound").'</td></tr>';
} }

View File

@ -52,12 +52,18 @@ $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit;
$sortfield = GETPOST("sortfield", 'alpha'); $sortfield = GETPOST("sortfield", 'alpha');
$sortorder = GETPOST("sortorder", 'alpha'); $sortorder = GETPOST("sortorder", 'alpha');
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 if (empty($page) || $page == -1) {
$page = 0;
} // If $page is not defined, or '' or -1
$offset = $limit * $page; $offset = $limit * $page;
$pageprev = $page - 1; $pageprev = $page - 1;
$pagenext = $page + 1; $pagenext = $page + 1;
if (!$sortorder) { $sortorder = "DESC"; } if (!$sortorder) {
if (!$sortfield) { $sortfield = "d.lastname"; } $sortorder = "DESC";
}
if (!$sortfield) {
$sortfield = "d.lastname";
}
$label = GETPOST("label", "alpha"); $label = GETPOST("label", "alpha");
$morphy = GETPOST("morphy", "alpha"); $morphy = GETPOST("morphy", "alpha");
@ -118,7 +124,9 @@ if ($action == 'add' && $user->rights->adherent->configurer) {
// Fill array 'array_options' with data from add form // Fill array 'array_options' with data from add form
$ret = $extrafields->setOptionalsFromPost(null, $object); $ret = $extrafields->setOptionalsFromPost(null, $object);
if ($ret < 0) $error++; if ($ret < 0) {
$error++;
}
if (empty($object->label)) { if (empty($object->label)) {
$error++; $error++;
@ -167,7 +175,9 @@ if ($action == 'update' && $user->rights->adherent->configurer) {
// Fill array 'array_options' with data from add form // Fill array 'array_options' with data from add form
$ret = $extrafields->setOptionalsFromPost(null, $object); $ret = $extrafields->setOptionalsFromPost(null, $object);
if ($ret < 0) $error++; if ($ret < 0) {
$error++;
}
$ret = $object->update($user); $ret = $object->update($user);
@ -222,8 +232,12 @@ if (!$rowid && $action != 'create' && $action != 'edit') {
$i = 0; $i = 0;
$param = ''; $param = '';
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.$contextpage; if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.$limit; $param .= '&contextpage='.$contextpage;
}
if ($limit > 0 && $limit != $conf->liste_limit) {
$param .= '&limit='.$limit;
}
$newcardbutton = ''; $newcardbutton = '';
if ($user->rights->adherent->configurer) { if ($user->rights->adherent->configurer) {
@ -231,7 +245,9 @@ if (!$rowid && $action != 'create' && $action != 'edit') {
} }
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">'; print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">'; if ($optioncss != '') {
print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
}
print '<input type="hidden" name="token" value="'.newToken().'">'; print '<input type="hidden" name="token" value="'.newToken().'">';
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">'; print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
print '<input type="hidden" name="action" value="list">'; print '<input type="hidden" name="action" value="list">';
@ -273,14 +289,20 @@ if (!$rowid && $action != 'create' && $action != 'edit') {
print '</td>'; print '</td>';
print '<td>'.dol_escape_htmltag($objp->label).'</td>'; print '<td>'.dol_escape_htmltag($objp->label).'</td>';
print '<td class="center">'; print '<td class="center">';
if ($objp->morphy == 'phy') { print $langs->trans("Physical"); } elseif ($objp->morphy == 'mor') { print $langs->trans("Moral"); } else print $langs->trans("MorAndPhy"); if ($objp->morphy == 'phy') {
print $langs->trans("Physical");
} elseif ($objp->morphy == 'mor') {
print $langs->trans("Moral");
} else {
print $langs->trans("MorAndPhy");
}
print '</td>'; print '</td>';
print '<td class="center">'.yn($objp->subscription).'</td>'; print '<td class="center">'.yn($objp->subscription).'</td>';
print '<td class="center">'.yn($objp->vote).'</td>'; print '<td class="center">'.yn($objp->vote).'</td>';
print '<td class="center">'.$membertype->getLibStatut(5).'</td>'; print '<td class="center">'.$membertype->getLibStatut(5).'</td>';
if ($user->rights->adherent->configurer) if ($user->rights->adherent->configurer) {
print '<td class="right"><a class="editfielda" href="'.$_SERVER["PHP_SELF"].'?action=edit&rowid='.$objp->rowid.'">'.img_edit().'</a></td>'; print '<td class="right"><a class="editfielda" href="'.$_SERVER["PHP_SELF"].'?action=edit&rowid='.$objp->rowid.'">'.img_edit().'</a></td>';
else { } else {
print '<td class="right">&nbsp;</td>'; print '<td class="right">&nbsp;</td>';
} }
print "</tr>"; print "</tr>";
@ -510,8 +532,11 @@ if ($rowid > 0) {
$nbtotalofrecords = ''; $nbtotalofrecords = '';
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
$resql = $db->query($sql); $resql = $db->query($sql);
if ($resql) $nbtotalofrecords = $db->num_rows($result); if ($resql) {
else dol_print_error($db); $nbtotalofrecords = $db->num_rows($result);
} else {
dol_print_error($db);
}
if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0 if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0
$page = 0; $page = 0;
$offset = 0; $offset = 0;
@ -551,12 +576,24 @@ if ($rowid > 0) {
} }
$param = "&rowid=".$object->id; $param = "&rowid=".$object->id;
if (!empty($status)) $param .= "&status=".$status; if (!empty($status)) {
if (!empty($search_lastname)) $param .= "&search_lastname=".$search_lastname; $param .= "&status=".$status;
if (!empty($search_firstname)) $param .= "&search_firstname=".$search_firstname; }
if (!empty($search_login)) $param .= "&search_login=".$search_login; if (!empty($search_lastname)) {
if (!empty($search_email)) $param .= "&search_email=".$search_email; $param .= "&search_lastname=".$search_lastname;
if (!empty($filter)) $param .= "&filter=".$filter; }
if (!empty($search_firstname)) {
$param .= "&search_firstname=".$search_firstname;
}
if (!empty($search_login)) {
$param .= "&search_login=".$search_login;
}
if (!empty($search_email)) {
$param .= "&search_email=".$search_email;
}
if (!empty($filter)) {
$param .= "&filter=".$filter;
}
if ($sall) { if ($sall) {
print $langs->trans("Filter")." (".$langs->trans("Lastname").", ".$langs->trans("Firstname").", ".$langs->trans("EMail").", ".$langs->trans("Address")." ".$langs->trans("or")." ".$langs->trans("Town")."): ".$sall; print $langs->trans("Filter")." (".$langs->trans("Lastname").", ".$langs->trans("Firstname").", ".$langs->trans("EMail").", ".$langs->trans("Address")." ".$langs->trans("or")." ".$langs->trans("Town")."): ".$sall;
@ -663,7 +700,9 @@ if ($rowid > 0) {
print '<td class="nowrap left">'; print '<td class="nowrap left">';
if ($objp->subscription == 'yes') { if ($objp->subscription == 'yes') {
print $langs->trans("SubscriptionNotReceived"); print $langs->trans("SubscriptionNotReceived");
if ($objp->status > 0) print " ".img_warning(); if ($objp->status > 0) {
print " ".img_warning();
}
} else { } else {
print '&nbsp;'; print '&nbsp;';
} }

View File

@ -51,7 +51,9 @@ $hookmanager->initHooks(array('membertypeldapcard', 'globalcard'));
$parameters = array(); $parameters = array();
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); if ($reshook < 0) {
setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
}
if (empty($reshook)) { if (empty($reshook)) {
if ($action == 'dolibarr2ldap') { if ($action == 'dolibarr2ldap') {
@ -128,7 +130,9 @@ if ($conf->global->LDAP_MEMBER_TYPE_ACTIVE == 1) {
print "</div>\n"; print "</div>\n";
if ($conf->global->LDAP_MEMBER_TYPE_ACTIVE == 1) print "<br>\n"; if ($conf->global->LDAP_MEMBER_TYPE_ACTIVE == 1) {
print "<br>\n";
}

View File

@ -42,7 +42,9 @@ $ref = GETPOST('ref', 'alphanohtml');
// Security check // Security check
$fieldvalue = (!empty($id) ? $id : (!empty($ref) ? $ref : '')); $fieldvalue = (!empty($id) ? $id : (!empty($ref) ? $ref : ''));
$fieldtype = (!empty($ref) ? 'ref' : 'rowid'); $fieldtype = (!empty($ref) ? 'ref' : 'rowid');
if ($user->socid) $socid = $user->socid; if ($user->socid) {
$socid = $user->socid;
}
// Security check // Security check
$result = restrictedArea($user, 'adherent', $id, 'adherent_type'); $result = restrictedArea($user, 'adherent', $id, 'adherent_type');
@ -184,7 +186,9 @@ print "\n<div class=\"tabsAction\">\n";
if ($action == '') { if ($action == '') {
if ($user->rights->produit->creer || $user->rights->service->creer) { if ($user->rights->produit->creer || $user->rights->service->creer) {
print '<a class="butAction" href="'.DOL_URL_ROOT.'/adherents/type_translation.php?action=add&rowid='.$object->id.'">'.$langs->trans("Add").'</a>'; print '<a class="butAction" href="'.DOL_URL_ROOT.'/adherents/type_translation.php?action=add&rowid='.$object->id.'">'.$langs->trans("Add").'</a>';
if ($cnt_trans > 0) print '<a class="butAction" href="'.DOL_URL_ROOT.'/adherents/type_translation.php?action=edit&rowid='.$object->id.'">'.$langs->trans("Update").'</a>'; if ($cnt_trans > 0) {
print '<a class="butAction" href="'.DOL_URL_ROOT.'/adherents/type_translation.php?action=edit&rowid='.$object->id.'">'.$langs->trans("Update").'</a>';
}
} }
} }
@ -242,7 +246,9 @@ if ($action == 'edit') {
print '</div>'; print '</div>';
} }
} }
if (!$cnt_trans && $action != 'add') print '<div class="opacitymedium">'.$langs->trans('NoTranslation').'</div>'; if (!$cnt_trans && $action != 'add') {
print '<div class="opacitymedium">'.$langs->trans('NoTranslation').'</div>';
}
} }

View File

@ -30,6 +30,7 @@ require '../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/defaultvalues.class.php';
if (!$user->admin) { if (!$user->admin) {
accessforbidden(); accessforbidden();
@ -80,6 +81,30 @@ if ($action == 'set') {
dolibarr_set_const($db, 'AGENDA_DEFAULT_FILTER_TYPE', $defaultfilter, 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, 'AGENDA_DEFAULT_FILTER_TYPE', $defaultfilter, 'chaine', 0, '', $conf->entity);
dolibarr_set_const($db, 'AGENDA_DEFAULT_FILTER_STATUS', GETPOST('AGENDA_DEFAULT_FILTER_STATUS'), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, 'AGENDA_DEFAULT_FILTER_STATUS', GETPOST('AGENDA_DEFAULT_FILTER_STATUS'), 'chaine', 0, '', $conf->entity);
dolibarr_set_const($db, 'AGENDA_DEFAULT_VIEW', GETPOST('AGENDA_DEFAULT_VIEW'), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, 'AGENDA_DEFAULT_VIEW', GETPOST('AGENDA_DEFAULT_VIEW'), 'chaine', 0, '', $conf->entity);
$defaultValues = new DefaultValues($db);
$result = $defaultValues->fetchAll('', '', 0, 0, array('t.page'=>'comm/action/card.php', 't.param'=>'complete','t.user_id'=>'0', 't.type'=>'createform', 't.entity'=>$conf->entity));
if (!is_array($result) && $result<0) {
setEventMessages($defaultValues->error, $defaultValues->errors, 'errors');
} elseif (count($result)>0) {
foreach ($result as $defval) {
$defaultValues->id=$defval->id;
$resultDel = $defaultValues->delete($user);
if ($resultDel<0) {
setEventMessages($defaultValues->error, $defaultValues->errors, 'errors');
}
}
}
$defaultValues->type='createform';
$defaultValues->entity=$conf->entity;
$defaultValues->user_id=0;
$defaultValues->page='comm/action/card.php';
$defaultValues->param='complete';
$defaultValues->value=GETPOST('AGENDA_EVENT_DEFAULT_STATUS');
$resultCreat=$defaultValues->create($user);
if ($resultCreat<0) {
setEventMessages($defaultValues->error, $defaultValues->errors, 'errors');
}
} elseif ($action == 'specimen') { // For orders } elseif ($action == 'specimen') { // For orders
$modele = GETPOST('module', 'alpha'); $modele = GETPOST('module', 'alpha');
@ -325,6 +350,22 @@ if (!empty($conf->global->AGENDA_USE_EVENT_TYPE)) {
print '</td></tr>'."\n"; print '</td></tr>'."\n";
} }
// AGENDA_EVENT_DEFAULT_STATUS
print '<tr class="oddeven">'."\n";
print '<td>'.$langs->trans("AGENDA_EVENT_DEFAULT_STATUS").'</td>'."\n";
print '<td class="center">&nbsp;</td>'."\n";
print '<td class="right nowrap">'."\n";
$defval='na';
$defaultValues = new DefaultValues($db);
$result = $defaultValues->fetchAll('', '', 0, 0, array('t.page'=>'comm/action/card.php', 't.param'=>'complete','t.user_id'=>'0', 't.type'=>'createform', 't.entity'=>$conf->entity));
if (!is_array($result) && $result<0) {
setEventMessages($defaultValues->error, $defaultValues->errors, 'errors');
} elseif (count($result)>0) {
$defval=reset($result)->value;
}
$formactions->form_select_status_action('agenda', $defval, 1, "AGENDA_EVENT_DEFAULT_STATUS", 0, 1, 'maxwidth200');
print '</td></tr>'."\n";
// AGENDA_DEFAULT_FILTER_TYPE // AGENDA_DEFAULT_FILTER_TYPE
print '<tr class="oddeven">'."\n"; print '<tr class="oddeven">'."\n";
print '<td>'.$langs->trans("AGENDA_DEFAULT_FILTER_TYPE").'</td>'."\n"; print '<td>'.$langs->trans("AGENDA_DEFAULT_FILTER_TYPE").'</td>'."\n";

View File

@ -30,6 +30,7 @@ require '../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/defaultvalues.class.php';
// Load translation files required by the page // Load translation files required by the page
$langs->loadLangs(array('companies', 'products', 'admin', 'sms', 'other', 'errors')); $langs->loadLangs(array('companies', 'products', 'admin', 'sms', 'other', 'errors'));
@ -42,7 +43,7 @@ $id = GETPOST('rowid', 'int');
$action = GETPOST('action', 'aZ09'); $action = GETPOST('action', 'aZ09');
$optioncss = GETPOST('optionscss', 'alphanohtml'); $optioncss = GETPOST('optionscss', 'alphanohtml');
$mode = GETPOST('mode', 'aZ09') ?GETPOST('mode', 'aZ09') : 'createform'; // 'createform', 'filters', 'sortorder', 'focus' $mode = GETPOST('mode', 'aZ09') ? GETPOST('mode', 'aZ09') : 'createform'; // 'createform', 'filters', 'sortorder', 'focus'
$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit;
$sortfield = GETPOST("sortfield", 'alpha'); $sortfield = GETPOST("sortfield", 'alpha');
@ -75,6 +76,7 @@ $value = GETPOST('value', 'restricthtml');
$hookmanager->initHooks(array('admindefaultvalues', 'globaladmin')); $hookmanager->initHooks(array('admindefaultvalues', 'globaladmin'));
$object = new DefaultValues($db);
/* /*
* Actions * Actions
*/ */
@ -136,41 +138,54 @@ if (($action == 'add' || (GETPOST('add') && $action != 'update')) || GETPOST('ac
} }
if (!$error) { if (!$error) {
$db->begin();
if ($action == 'add' || (GETPOST('add') && $action != 'update')) { if ($action == 'add' || (GETPOST('add') && $action != 'update')) {
$sql = "INSERT INTO ".MAIN_DB_PREFIX."default_values(type, user_id, page, param, value, entity) VALUES ('".$db->escape($mode)."', 0, '".$db->escape($defaulturl)."','".$db->escape($defaultkey)."','".$db->escape($defaultvalue)."', ".$db->escape($conf->entity).")"; $object->type=$mode;
} $object->user_id=0;
if (GETPOST('actionmodify')) { $object->page=$defaulturl;
$sql = "UPDATE ".MAIN_DB_PREFIX."default_values SET page = '".$db->escape($urlpage)."', param = '".$db->escape($key)."', value = '".$db->escape($value)."'"; $object->param=$defaultkey;
$sql .= " WHERE rowid = ".$id; $object->value=$defaultvalue;
} $object->entity=$conf->entity;
$result=$object->create($user);
$result = $db->query($sql); if ($result<0) {
if ($result > 0) { $action = '';
$db->commit(); setEventMessages($object->error, $object->errors, 'errors');
} else {
setEventMessages($langs->trans("RecordSaved"), null, 'mesgs'); setEventMessages($langs->trans("RecordSaved"), null, 'mesgs');
$action = ""; $action = "";
$defaulturl = ''; $defaulturl = '';
$defaultkey = ''; $defaultkey = '';
$defaultvalue = ''; $defaultvalue = '';
} else { }
$db->rollback(); }
setEventMessages($db->lasterror(), null, 'errors'); if (GETPOST('actionmodify')) {
$object->id=$id;
$object->type=$mode;
$object->page=$urlpage;
$object->param=$key;
$object->value=$value;
$object->entity=$conf->entity;
$result=$object->update($user);
if ($result<0) {
$action = ''; $action = '';
setEventMessages($object->error, $object->errors, 'errors');
} else {
setEventMessages($langs->trans("RecordSaved"), null, 'mesgs');
$action = "";
$defaulturl = '';
$defaultkey = '';
$defaultvalue = '';
}
} }
} }
} }
// Delete line from delete picto // Delete line from delete picto
if ($action == 'delete') { if ($action == 'delete') {
$sql = "DELETE FROM ".MAIN_DB_PREFIX."default_values WHERE rowid = ".$db->escape($id); $object->id=$id;
// Delete const $result=$object->delete($user);
$result = $db->query($sql); if ($result<0) {
if ($result >= 0) { $action = '';
setEventMessages($langs->trans("RecordDeleted"), null, 'mesgs'); setEventMessages($object->error, $object->errors, 'errors');
} else {
dol_print_error($db);
} }
} }
@ -338,43 +353,26 @@ print '<input type="submit" class="button"'.$disabled.' value="'.$langs->trans("
print "</td>\n"; print "</td>\n";
print '</tr>'; print '</tr>';
$result=$object->fetchAll($sortorder, $sortfield, 0, 0, array('t.type'=>$mode,'t.entity'=>array($user->entity,$conf->entity)));
// Show constants if (!is_array($result) && $result<0) {
$sql = "SELECT rowid, entity, type, page, param, value"; setEventMessages($object->error, $object->errors, 'errors');
$sql .= " FROM ".MAIN_DB_PREFIX."default_values"; } elseif (count($result)>0) {
$sql .= " WHERE type = '".$db->escape($mode)."'"; foreach ($result as $key=>$defaultvalue) {
$sql .= " AND entity IN (".$user->entity.",".$conf->entity.")";
$sql .= $db->order($sortfield, $sortorder);
dol_syslog("translation::select from table", LOG_DEBUG);
$result = $db->query($sql);
if ($result) {
$num = $db->num_rows($result);
$i = 0;
while ($i < $num) {
$obj = $db->fetch_object($result);
print "\n"; print "\n";
print '<tr class="oddeven">'; print '<tr class="oddeven">';
// Page // Page
print '<td>'; print '<td>';
if ($action != 'edit' || GETPOST('rowid', 'int') != $obj->rowid) { if ($action != 'edit' || GETPOST('rowid', 'int') != $defaultvalue->id) print $defaultvalue->page;
print $obj->page; else print '<input type="text" name="urlpage" value="'.dol_escape_htmltag($defaultvalue->page).'">';
} else {
print '<input type="text" name="urlpage" value="'.dol_escape_htmltag($obj->page).'">';
}
print '</td>'."\n"; print '</td>'."\n";
// Field // Field
print '<td>'; print '<td>';
if ($action != 'edit' || GETPOST('rowid') != $obj->rowid) { if ($action != 'edit' || GETPOST('rowid') != $defaultvalue->id) print $defaultvalue->param;
print $obj->param; else print '<input type="text" name="key" value="'.dol_escape_htmltag($defaultvalue->param).'">';
} else {
print '<input type="text" name="key" value="'.dol_escape_htmltag($obj->param).'">';
}
print '</td>'."\n"; print '</td>'."\n";
// Value // Value
@ -385,11 +383,8 @@ if ($result) {
print '<input type="hidden" name="const['.$i.'][name]" value="'.$obj->transkey.'">'; print '<input type="hidden" name="const['.$i.'][name]" value="'.$obj->transkey.'">';
print '<input type="text" id="value_'.$i.'" class="flat inputforupdate" size="30" name="const['.$i.'][value]" value="'.dol_escape_htmltag($obj->transvalue).'">'; print '<input type="text" id="value_'.$i.'" class="flat inputforupdate" size="30" name="const['.$i.'][value]" value="'.dol_escape_htmltag($obj->transvalue).'">';
*/ */
if ($action != 'edit' || GETPOST('rowid') != $obj->rowid) { if ($action != 'edit' || GETPOST('rowid') != $defaultvalue->id) print dol_escape_htmltag($defaultvalue->value);
print dol_escape_htmltag($obj->value); else print '<input type="text" name="value" value="'.dol_escape_htmltag($defaultvalue->value).'">';
} else {
print '<input type="text" name="value" value="'.dol_escape_htmltag($obj->value).'">';
}
print '</td>'; print '</td>';
} }
@ -397,13 +392,13 @@ if ($result) {
// Actions // Actions
print '<td class="center">'; print '<td class="center">';
if ($action != 'edit' || GETPOST('rowid') != $obj->rowid) { if ($action != 'edit' || GETPOST('rowid') != $defaultvalue->id) {
print '<a class="editfielda marginleftonly marginrightonly" href="'.$_SERVER['PHP_SELF'].'?rowid='.$obj->rowid.'&entity='.$obj->entity.'&mode='.$mode.'&action=edit&token='.newToken().((empty($user->entity) && $debug) ? '&debug=1' : '').'">'.img_edit().'</a>'; print '<a class="editfielda marginleftonly marginrightonly" href="'.$_SERVER['PHP_SELF'].'?rowid='.$defaultvalue->id.'&entity='.$defaultvalue->entity.'&mode='.$mode.'&action=edit&token='.newToken().((empty($user->entity) && $debug) ? '&debug=1' : '').'">'.img_edit().'</a>';
print '<a class="marginleftonly marginrightonly" href="'.$_SERVER['PHP_SELF'].'?rowid='.$obj->rowid.'&entity='.$obj->entity.'&mode='.$mode.'&action=delete&token='.newToken().((empty($user->entity) && $debug) ? '&debug=1' : '').'">'.img_delete().'</a>'; print '<a class="marginleftonly marginrightonly" href="'.$_SERVER['PHP_SELF'].'?rowid='.$defaultvalue->id.'&entity='.$defaultvalue->entity.'&mode='.$mode.'&action=delete&token='.newToken().((empty($user->entity) && $debug) ? '&debug=1' : '').'">'.img_delete().'</a>';
} else { } else {
print '<input type="hidden" name="page" value="'.$page.'">'; print '<input type="hidden" name="page" value="'.$page.'">';
print '<input type="hidden" name="rowid" value="'.$id.'">'; print '<input type="hidden" name="rowid" value="'.$id.'">';
print '<div name="'.(!empty($obj->rowid) ? $obj->rowid : 'none').'"></div>'; print '<div name="'.(!empty($defaultvalue->id) ? $defaultvalue->id : 'none').'"></div>';
print '<input type="submit" class="button" name="actionmodify" value="'.$langs->trans("Modify").'">'; print '<input type="submit" class="button" name="actionmodify" value="'.$langs->trans("Modify").'">';
print '<input type="submit" class="button button-cancel" name="actioncancel" value="'.$langs->trans("Cancel").'">'; print '<input type="submit" class="button button-cancel" name="actioncancel" value="'.$langs->trans("Cancel").'">';
} }
@ -413,8 +408,6 @@ if ($result) {
print "\n"; print "\n";
$i++; $i++;
} }
} else {
dol_print_error($db);
} }
print '</table>'; print '</table>';

View File

@ -402,13 +402,13 @@ foreach ($dirmodels as $reldir) {
// Active // Active
if (in_array($name, $def)) { if (in_array($name, $def)) {
print '<td class="center">'."\n"; print '<td class="center">'."\n";
print '<a href="'.$_SERVER["PHP_SELF"].'?action=del&amp;token='.newToken().'&amp;value='.$name.'">'; print '<a class="reposition" href="'.$_SERVER["PHP_SELF"].'?action=del&amp;token='.newToken().'&amp;value='.$name.'">';
print img_picto($langs->trans("Enabled"), 'switch_on'); print img_picto($langs->trans("Enabled"), 'switch_on');
print '</a>'; print '</a>';
print '</td>'; print '</td>';
} else { } else {
print "<td align=\"center\">\n"; print "<td align=\"center\">\n";
print '<a href="'.$_SERVER["PHP_SELF"].'?action=set&amp;token='.newToken().'&amp;value='.$name.'&amp;scan_dir='.$module->scandir.'&amp;label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"), 'switch_off').'</a>'; print '<a class="reposition" href="'.$_SERVER["PHP_SELF"].'?action=set&amp;token='.newToken().'&amp;value='.$name.'&amp;scan_dir='.$module->scandir.'&amp;label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"), 'switch_off').'</a>';
print "</td>"; print "</td>";
} }
@ -417,7 +417,7 @@ foreach ($dirmodels as $reldir) {
if ($conf->global->PROPALE_ADDON_PDF == "$name") { if ($conf->global->PROPALE_ADDON_PDF == "$name") {
print img_picto($langs->trans("Default"), 'on'); print img_picto($langs->trans("Default"), 'on');
} else { } else {
print '<a href="'.$_SERVER["PHP_SELF"].'?action=setdoc&amp;token='.newToken().'&amp;value='.$name.'&amp;scan_dir='.$module->scandir.'&amp;label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"), 'off').'</a>'; print '<a class="reposition" href="'.$_SERVER["PHP_SELF"].'?action=setdoc&amp;token='.newToken().'&amp;value='.$name.'&amp;scan_dir='.$module->scandir.'&amp;label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"), 'off').'</a>';
} }
print '</td>'; print '</td>';

View File

@ -32,40 +32,35 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
// Load translation files required by the page // Load translation files required by the page
$langs->load("admin"); $langs->load("admin");
if (!$user->admin) if (!$user->admin) {
accessforbidden(); accessforbidden();
}
$action = GETPOST('action', 'aZ09'); $action = GETPOST('action', 'aZ09');
//Activate ProfId //Activate ProfId
if ($action == 'setproductionmode') if ($action == 'setproductionmode') {
{
$status = GETPOST('status', 'alpha'); $status = GETPOST('status', 'alpha');
if (dolibarr_set_const($db, 'API_PRODUCTION_MODE', $status, 'chaine', 0, '', 0) > 0) if (dolibarr_set_const($db, 'API_PRODUCTION_MODE', $status, 'chaine', 0, '', 0) > 0) {
{
$error = 0; $error = 0;
if ($status == 1) if ($status == 1) {
{
$result = dol_mkdir($conf->api->dir_temp); $result = dol_mkdir($conf->api->dir_temp);
if ($result < 0) if ($result < 0) {
{
setEventMessages($langs->trans("ErrorFailedToCreateDir", $conf->api->dir_temp), null, 'errors'); setEventMessages($langs->trans("ErrorFailedToCreateDir", $conf->api->dir_temp), null, 'errors');
$error++; $error++;
} }
} else { } else {
// Delete the cache file otherwise it does not update // Delete the cache file otherwise it does not update
$result = dol_delete_file($conf->api->dir_temp.'/routes.php'); $result = dol_delete_file($conf->api->dir_temp.'/routes.php');
if ($result < 0) if ($result < 0) {
{
setEventMessages($langs->trans("ErrorFailedToDeleteFile", $conf->api->dir_temp.'/routes.php'), null, 'errors'); setEventMessages($langs->trans("ErrorFailedToDeleteFile", $conf->api->dir_temp.'/routes.php'), null, 'errors');
$error++; $error++;
} }
} }
if (!$error) if (!$error) {
{
header("Location: ".$_SERVER["PHP_SELF"]); header("Location: ".$_SERVER["PHP_SELF"]);
exit; exit;
} }
@ -74,8 +69,7 @@ if ($action == 'setproductionmode')
} }
} }
if ($action == 'save') if ($action == 'save') {
{
dolibarr_set_const($db, 'API_RESTRICT_ON_IP', GETPOST('API_RESTRICT_ON_IP', 'alpha')); dolibarr_set_const($db, 'API_RESTRICT_ON_IP', GETPOST('API_RESTRICT_ON_IP', 'alpha'));
} }
@ -110,8 +104,7 @@ print "</tr>";
print '<tr class="oddeven">'; print '<tr class="oddeven">';
print '<td>'.$langs->trans("ApiProductionMode").'</td>'; print '<td>'.$langs->trans("ApiProductionMode").'</td>';
$production_mode = (empty($conf->global->API_PRODUCTION_MODE) ?false:true); $production_mode = (empty($conf->global->API_PRODUCTION_MODE) ?false:true);
if ($production_mode) if ($production_mode) {
{
print '<td><a class="reposition" href="'.$_SERVER['PHP_SELF'].'?action=setproductionmode&token='.newToken().'&value='.($i + 1).'&status=0">'; print '<td><a class="reposition" href="'.$_SERVER['PHP_SELF'].'?action=setproductionmode&token='.newToken().'&value='.($i + 1).'&status=0">';
print img_picto($langs->trans("Activated"), 'switch_on'); print img_picto($langs->trans("Activated"), 'switch_on');
print '</a></td>'; print '</a></td>';
@ -155,8 +148,7 @@ print '<br>';
// Explorer // Explorer
print '<u>'.$langs->trans("ApiExporerIs").':</u><br>'; print '<u>'.$langs->trans("ApiExporerIs").':</u><br>';
if (dol_is_dir(DOL_DOCUMENT_ROOT.'/includes/restler/framework/Luracast/Restler/explorer')) if (dol_is_dir(DOL_DOCUMENT_ROOT.'/includes/restler/framework/Luracast/Restler/explorer')) {
{
$url = DOL_MAIN_URL_ROOT.'/api/index.php/explorer'; $url = DOL_MAIN_URL_ROOT.'/api/index.php/explorer';
print img_picto('', 'globe').' <a href="'.$url.'" target="_blank">'.$url."</a><br>\n"; print img_picto('', 'globe').' <a href="'.$url.'" target="_blank">'.$url."</a><br>\n";
} else { } else {

View File

@ -30,7 +30,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
// Load translation files required by the page // Load translation files required by the page
$langs->loadLangs(array("admin", "other", "blockedlog")); $langs->loadLangs(array("admin", "other", "blockedlog"));
if (!$user->admin || empty($conf->blockedlog->enabled)) accessforbidden(); if (!$user->admin || empty($conf->blockedlog->enabled)) {
accessforbidden();
}
$action = GETPOST('action', 'aZ09'); $action = GETPOST('action', 'aZ09');
$backtopage = GETPOST('backtopage', 'alpha'); $backtopage = GETPOST('backtopage', 'alpha');
@ -43,14 +45,14 @@ $withtab = GETPOST('withtab', 'int');
*/ */
$reg = array(); $reg = array();
if (preg_match('/set_(.*)/', $action, $reg)) if (preg_match('/set_(.*)/', $action, $reg)) {
{
$code = $reg[1]; $code = $reg[1];
$values = GETPOST($code); $values = GETPOST($code);
if (is_array($values)) $values = implode(',', $values); if (is_array($values)) {
$values = implode(',', $values);
}
if (dolibarr_set_const($db, $code, $values, 'chaine', 0, '', $conf->entity) > 0) if (dolibarr_set_const($db, $code, $values, 'chaine', 0, '', $conf->entity) > 0) {
{
header("Location: ".$_SERVER["PHP_SELF"].($withtab ? '?withtab='.$withtab : '')); header("Location: ".$_SERVER["PHP_SELF"].($withtab ? '?withtab='.$withtab : ''));
exit; exit;
} else { } else {
@ -58,11 +60,9 @@ if (preg_match('/set_(.*)/', $action, $reg))
} }
} }
if (preg_match('/del_(.*)/', $action, $reg)) if (preg_match('/del_(.*)/', $action, $reg)) {
{
$code = $reg[1]; $code = $reg[1];
if (dolibarr_del_const($db, $code, 0) > 0) if (dolibarr_del_const($db, $code, 0) > 0) {
{
Header("Location: ".$_SERVER["PHP_SELF"].($withtab ? '?withtab='.$withtab : '')); Header("Location: ".$_SERVER["PHP_SELF"].($withtab ? '?withtab='.$withtab : ''));
exit; exit;
} else { } else {
@ -142,10 +142,8 @@ $sql .= " WHERE active > 0";
$countryArray = array(); $countryArray = array();
$resql = $db->query($sql); $resql = $db->query($sql);
if ($resql) if ($resql) {
{ while ($obj = $db->fetch_object($resql)) {
while ($obj = $db->fetch_object($resql))
{
$countryArray[$obj->code_iso] = ($obj->code_iso && $langs->transnoentitiesnoconv("Country".$obj->code_iso) != "Country".$obj->code_iso ? $langs->transnoentitiesnoconv("Country".$obj->code_iso) : ($obj->label != '-' ? $obj->label : '')); $countryArray[$obj->code_iso] = ($obj->code_iso && $langs->transnoentitiesnoconv("Country".$obj->code_iso) != "Country".$obj->code_iso ? $langs->transnoentitiesnoconv("Country".$obj->code_iso) : ($obj->label != '-' ? $obj->label : ''));
} }
} }
@ -163,8 +161,7 @@ print '<tr class="oddeven">';
print '<td class="titlefield">'; print '<td class="titlefield">';
print $langs->trans("ListOfTrackedEvents").'</td><td>'; print $langs->trans("ListOfTrackedEvents").'</td><td>';
$arrayoftrackedevents = $block_static->trackedevents; $arrayoftrackedevents = $block_static->trackedevents;
foreach ($arrayoftrackedevents as $key => $val) foreach ($arrayoftrackedevents as $key => $val) {
{
print $key.' - '.$langs->trans($val).'<br>'; print $key.' - '.$langs->trans($val).'<br>';
} }
@ -174,8 +171,7 @@ print '</tr>';
print '</table>'; print '</table>';
if ($withtab) if ($withtab) {
{
print dol_get_fiche_end(); print dol_get_fiche_end();
} }

View File

@ -33,7 +33,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
// Load translation files required by the page // Load translation files required by the page
$langs->loadLangs(array("admin", "other", "blockedlog", "bills")); $langs->loadLangs(array("admin", "other", "blockedlog", "bills"));
if ((!$user->admin && !$user->rights->blockedlog->read) || empty($conf->blockedlog->enabled)) accessforbidden(); if ((!$user->admin && !$user->rights->blockedlog->read) || empty($conf->blockedlog->enabled)) {
accessforbidden();
}
$action = GETPOST('action', 'aZ09'); $action = GETPOST('action', 'aZ09');
$contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'blockedloglist'; // To manage different context of search $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'blockedloglist'; // To manage different context of search
@ -41,32 +43,46 @@ $backtopage = GETPOST('backtopage', 'alpha'); // Go back to a dedicated page
$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') $optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print')
$search_showonlyerrors = GETPOST('search_showonlyerrors', 'int'); $search_showonlyerrors = GETPOST('search_showonlyerrors', 'int');
if ($search_showonlyerrors < 0) $search_showonlyerrors = 0; if ($search_showonlyerrors < 0) {
$search_showonlyerrors = 0;
}
$search_id = GETPOST('search_id', 'alpha'); $search_id = GETPOST('search_id', 'alpha');
$search_fk_user = GETPOST('search_fk_user', 'intcomma'); $search_fk_user = GETPOST('search_fk_user', 'intcomma');
$search_start = -1; $search_start = -1;
if (GETPOST('search_startyear') != '') $search_start = dol_mktime(0, 0, 0, GETPOST('search_startmonth'), GETPOST('search_startday'), GETPOST('search_startyear')); if (GETPOST('search_startyear') != '') {
$search_start = dol_mktime(0, 0, 0, GETPOST('search_startmonth'), GETPOST('search_startday'), GETPOST('search_startyear'));
}
$search_end = -1; $search_end = -1;
if (GETPOST('search_endyear') != '') $search_end = dol_mktime(23, 59, 59, GETPOST('search_endmonth'), GETPOST('search_endday'), GETPOST('search_endyear')); if (GETPOST('search_endyear') != '') {
$search_end = dol_mktime(23, 59, 59, GETPOST('search_endmonth'), GETPOST('search_endday'), GETPOST('search_endyear'));
}
$search_code = GETPOST('search_code', 'alpha'); $search_code = GETPOST('search_code', 'alpha');
$search_ref = GETPOST('search_ref', 'alpha'); $search_ref = GETPOST('search_ref', 'alpha');
$search_amount = GETPOST('search_amount', 'alpha'); $search_amount = GETPOST('search_amount', 'alpha');
if (($search_start == -1 || empty($search_start)) && !GETPOSTISSET('search_startmonth')) $search_start = dol_time_plus_duree(dol_now(), '-1', 'w'); if (($search_start == -1 || empty($search_start)) && !GETPOSTISSET('search_startmonth')) {
$search_start = dol_time_plus_duree(dol_now(), '-1', 'w');
}
// 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;
$sortfield = GETPOST('sortfield', 'aZ09comma'); $sortfield = GETPOST('sortfield', 'aZ09comma');
$sortorder = GETPOST('sortorder', 'aZ09comma'); $sortorder = GETPOST('sortorder', 'aZ09comma');
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 if (empty($page) || $page == -1) {
$page = 0;
} // If $page is not defined, or '' or -1
$offset = $limit * $page; $offset = $limit * $page;
$pageprev = $page - 1; $pageprev = $page - 1;
$pagenext = $page + 1; $pagenext = $page + 1;
if (empty($sortfield)) $sortfield = 'rowid'; if (empty($sortfield)) {
if (empty($sortorder)) $sortorder = 'DESC'; $sortfield = 'rowid';
}
if (empty($sortorder)) {
$sortorder = 'DESC';
}
$block_static = new BlockedLog($db); $block_static = new BlockedLog($db);
$block_static->loadTrackedEvents(); $block_static->loadTrackedEvents();
@ -76,8 +92,7 @@ $result = restrictedArea($user, 'blockedlog', 0, '');
$max_execution_time_for_importexport = (empty($conf->global->EXPORT_MAX_EXECUTION_TIME) ? 300 : $conf->global->EXPORT_MAX_EXECUTION_TIME); // 5mn if not defined $max_execution_time_for_importexport = (empty($conf->global->EXPORT_MAX_EXECUTION_TIME) ? 300 : $conf->global->EXPORT_MAX_EXECUTION_TIME); // 5mn if not defined
$max_time = @ini_get("max_execution_time"); $max_time = @ini_get("max_execution_time");
if ($max_time && $max_time < $max_execution_time_for_importexport) if ($max_time && $max_time < $max_execution_time_for_importexport) {
{
dol_syslog("max_execution_time=".$max_time." is lower than max_execution_time_for_importexport=".$max_execution_time_for_importexport.". We try to increase it dynamically."); dol_syslog("max_execution_time=".$max_time." is lower than max_execution_time_for_importexport=".$max_execution_time_for_importexport.". We try to increase it dynamically.");
@ini_set("max_execution_time", $max_execution_time_for_importexport); // This work only if safe mode is off. also web servers has timeout of 300 @ini_set("max_execution_time", $max_execution_time_for_importexport); // This work only if safe mode is off. also web servers has timeout of 300
} }
@ -88,8 +103,7 @@ if ($max_time && $max_time < $max_execution_time_for_importexport)
*/ */
// Purge search criteria // Purge search criteria
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) // All tests are required to be compatible with all browsers if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // All tests are required to be compatible with all browsers
{
$search_id = ''; $search_id = '';
$search_fk_user = ''; $search_fk_user = '';
$search_start = -1; $search_start = -1;
@ -120,14 +134,12 @@ if ($action === 'downloadblockchain') {
$previoushash = ''; $previoushash = '';
$firstid = ''; $firstid = '';
if (!$error) if (!$error) {
{
// Get ID of first line // Get ID of first line
$sql = "SELECT rowid,date_creation,tms,user_fullname,action,amounts,element,fk_object,date_object,ref_object,signature,fk_user,object_data"; $sql = "SELECT rowid,date_creation,tms,user_fullname,action,amounts,element,fk_object,date_object,ref_object,signature,fk_user,object_data";
$sql .= " FROM ".MAIN_DB_PREFIX."blockedlog"; $sql .= " FROM ".MAIN_DB_PREFIX."blockedlog";
$sql .= " WHERE entity = ".$conf->entity; $sql .= " WHERE entity = ".$conf->entity;
if (GETPOST('monthtoexport', 'int') > 0 || GETPOST('yeartoexport', 'int') > 0) if (GETPOST('monthtoexport', 'int') > 0 || GETPOST('yeartoexport', 'int') > 0) {
{
$dates = dol_get_first_day(GETPOST('yeartoexport', 'int'), GETPOST('monthtoexport', 'int') ?GETPOST('monthtoexport', 'int') : 1); $dates = dol_get_first_day(GETPOST('yeartoexport', 'int'), GETPOST('monthtoexport', 'int') ?GETPOST('monthtoexport', 'int') : 1);
$datee = dol_get_last_day(GETPOST('yeartoexport', 'int'), GETPOST('monthtoexport', 'int') ?GETPOST('monthtoexport', 'int') : 12); $datee = dol_get_last_day(GETPOST('yeartoexport', 'int'), GETPOST('monthtoexport', 'int') ?GETPOST('monthtoexport', 'int') : 12);
$sql .= " AND date_creation BETWEEN '".$db->idate($dates)."' AND '".$db->idate($datee)."'"; $sql .= " AND date_creation BETWEEN '".$db->idate($dates)."' AND '".$db->idate($datee)."'";
@ -136,12 +148,10 @@ if ($action === 'downloadblockchain') {
$sql .= $db->plimit(1); $sql .= $db->plimit(1);
$res = $db->query($sql); $res = $db->query($sql);
if ($res) if ($res) {
{
// Make the first fetch to get first line // Make the first fetch to get first line
$obj = $db->fetch_object($res); $obj = $db->fetch_object($res);
if ($obj) if ($obj) {
{
$previoushash = $block_static->getPreviousHash(0, $obj->rowid); $previoushash = $block_static->getPreviousHash(0, $obj->rowid);
$firstid = $obj->rowid; $firstid = $obj->rowid;
} else { // If not data found for filter, we do not need previoushash neither firstid } else { // If not data found for filter, we do not need previoushash neither firstid
@ -154,14 +164,12 @@ if ($action === 'downloadblockchain') {
} }
} }
if (!$error) if (!$error) {
{
// Now restart request with all data = no limit(1) in sql request // Now restart request with all data = no limit(1) in sql request
$sql = "SELECT rowid,date_creation,tms,user_fullname,action,amounts,element,fk_object,date_object,ref_object,signature,fk_user,object_data"; $sql = "SELECT rowid,date_creation,tms,user_fullname,action,amounts,element,fk_object,date_object,ref_object,signature,fk_user,object_data";
$sql .= " FROM ".MAIN_DB_PREFIX."blockedlog"; $sql .= " FROM ".MAIN_DB_PREFIX."blockedlog";
$sql .= " WHERE entity = ".$conf->entity; $sql .= " WHERE entity = ".$conf->entity;
if (GETPOST('monthtoexport', 'int') > 0 || GETPOST('yeartoexport', 'int') > 0) if (GETPOST('monthtoexport', 'int') > 0 || GETPOST('yeartoexport', 'int') > 0) {
{
$dates = dol_get_first_day(GETPOST('yeartoexport', 'int'), GETPOST('monthtoexport', 'int') ?GETPOST('monthtoexport', 'int') : 1); $dates = dol_get_first_day(GETPOST('yeartoexport', 'int'), GETPOST('monthtoexport', 'int') ?GETPOST('monthtoexport', 'int') : 1);
$datee = dol_get_last_day(GETPOST('yeartoexport', 'int'), GETPOST('monthtoexport', 'int') ?GETPOST('monthtoexport', 'int') : 12); $datee = dol_get_last_day(GETPOST('yeartoexport', 'int'), GETPOST('monthtoexport', 'int') ?GETPOST('monthtoexport', 'int') : 12);
$sql .= " AND date_creation BETWEEN '".$db->idate($dates)."' AND '".$db->idate($datee)."'"; $sql .= " AND date_creation BETWEEN '".$db->idate($dates)."' AND '".$db->idate($datee)."'";
@ -169,8 +177,7 @@ if ($action === 'downloadblockchain') {
$sql .= " ORDER BY rowid ASC"; // Required so later we can use the parameter $previoushash of checkSignature() $sql .= " ORDER BY rowid ASC"; // Required so later we can use the parameter $previoushash of checkSignature()
$res = $db->query($sql); $res = $db->query($sql);
if ($res) if ($res) {
{
header('Content-Type: application/octet-stream'); header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary"); header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"unalterable-log-archive-".$dolibarr_main_db_name."-".(GETPOST('yeartoexport', 'int') > 0 ? GETPOST('yeartoexport', 'int').(GETPOST('monthtoexport', 'int') > 0 ?sprintf("%02d", GETPOST('monthtoexport', 'int')) : '').'-' : '').$previoushash.".csv\""); header("Content-disposition: attachment; filename=\"unalterable-log-archive-".$dolibarr_main_db_name."-".(GETPOST('yeartoexport', 'int') > 0 ? GETPOST('yeartoexport', 'int').(GETPOST('monthtoexport', 'int') > 0 ?sprintf("%02d", GETPOST('monthtoexport', 'int')) : '').'-' : '').$previoushash.".csv\"");
@ -193,8 +200,7 @@ if ($action === 'downloadblockchain') {
$loweridinerror = 0; $loweridinerror = 0;
$i = 0; $i = 0;
while ($obj = $db->fetch_object($res)) while ($obj = $db->fetch_object($res)) {
{
// We set here all data used into signature calculation (see checkSignature method) and more // We set here all data used into signature calculation (see checkSignature method) and more
// IMPORTANT: We must have here, the same rule for transformation of data than into the fetch method (db->jdate for date, ...) // IMPORTANT: We must have here, the same rule for transformation of data than into the fetch method (db->jdate for date, ...)
$block_static->id = $obj->rowid; $block_static->id = $obj->rowid;
@ -213,19 +219,20 @@ if ($action === 'downloadblockchain') {
$checksignature = $block_static->checkSignature($previoushash); // If $previoushash is not defined, checkSignature will search it $checksignature = $block_static->checkSignature($previoushash); // If $previoushash is not defined, checkSignature will search it
if ($checksignature) if ($checksignature) {
{
$statusofrecord = 'Valid'; $statusofrecord = 'Valid';
if ($loweridinerror > 0) $statusofrecordnote = 'ValidButFoundAPreviousKO'; if ($loweridinerror > 0) {
else $statusofrecordnote = ''; $statusofrecordnote = 'ValidButFoundAPreviousKO';
} else {
$statusofrecordnote = '';
}
} else { } else {
$statusofrecord = 'KO'; $statusofrecord = 'KO';
$statusofrecordnote = 'LineCorruptedOrNotMatchingPreviousOne'; $statusofrecordnote = 'LineCorruptedOrNotMatchingPreviousOne';
$loweridinerror = $obj->rowid; $loweridinerror = $obj->rowid;
} }
if ($i == 0) if ($i == 0) {
{
$statusofrecordnote = $langs->trans("PreviousFingerprint").': '.$previoushash.($statusofrecordnote ? ' - '.$statusofrecordnote : ''); $statusofrecordnote = $langs->trans("PreviousFingerprint").': '.$previoushash.($statusofrecordnote ? ' - '.$statusofrecordnote : '');
} }
print $obj->rowid; print $obj->rowid;
@ -263,8 +270,7 @@ if ($action === 'downloadblockchain') {
$form = new Form($db); $form = new Form($db);
if (GETPOST('withtab', 'alpha')) if (GETPOST('withtab', 'alpha')) {
{
$title = $langs->trans("ModuleSetup").' '.$langs->trans('BlockedLog'); $title = $langs->trans("ModuleSetup").' '.$langs->trans('BlockedLog');
} else { } else {
$title = $langs->trans("BrowseBlockedLog"); $title = $langs->trans("BrowseBlockedLog");
@ -275,10 +281,8 @@ llxHeader('', $langs->trans("BrowseBlockedLog"));
$MAXLINES = 10000; $MAXLINES = 10000;
$blocks = $block_static->getLog('all', $search_id, $MAXLINES, $sortfield, $sortorder, $search_fk_user, $search_start, $search_end, $search_ref, $search_amount, $search_code); $blocks = $block_static->getLog('all', $search_id, $MAXLINES, $sortfield, $sortorder, $search_fk_user, $search_start, $search_end, $search_ref, $search_amount, $search_code);
if (!is_array($blocks)) if (!is_array($blocks)) {
{ if ($blocks == -2) {
if ($blocks == -2)
{
setEventMessages($langs->trans("TooManyRecordToScanRestrictFilters", $MAXLINES), null, 'errors'); setEventMessages($langs->trans("TooManyRecordToScanRestrictFilters", $MAXLINES), null, 'errors');
} else { } else {
dol_print_error($block_static->db, $block_static->error, $block_static->errors); dol_print_error($block_static->db, $block_static->error, $block_static->errors);
@ -287,15 +291,13 @@ if (!is_array($blocks))
} }
$linkback = ''; $linkback = '';
if (GETPOST('withtab', 'alpha')) if (GETPOST('withtab', 'alpha')) {
{
$linkback = '<a href="'.($backtopage ? $backtopage : DOL_URL_ROOT.'/admin/modules.php').'">'.$langs->trans("BackToModuleList").'</a>'; $linkback = '<a href="'.($backtopage ? $backtopage : DOL_URL_ROOT.'/admin/modules.php').'">'.$langs->trans("BackToModuleList").'</a>';
} }
print load_fiche_titre($title, $linkback); print load_fiche_titre($title, $linkback);
if (GETPOST('withtab', 'alpha')) if (GETPOST('withtab', 'alpha')) {
{
$head = blockedlogadmin_prepare_head(); $head = blockedlogadmin_prepare_head();
print dol_get_fiche_head($head, 'fingerprints', '', -1); print dol_get_fiche_head($head, 'fingerprints', '', -1);
} }
@ -305,19 +307,45 @@ print '<span class="opacitymedium hideonsmartphone">'.$langs->trans("Fingerprint
print '<br>'; print '<br>';
$param = ''; $param = '';
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage); if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit); $param .= '&contextpage='.urlencode($contextpage);
if ($search_id != '') $param .= '&search_id='.urlencode($search_id); }
if ($search_fk_user > 0) $param .= '&search_fk_user='.urlencode($search_fk_user); if ($limit > 0 && $limit != $conf->liste_limit) {
if ($search_startyear > 0) $param .= '&search_startyear='.urlencode(GETPOST('search_startyear', 'int')); $param .= '&limit='.urlencode($limit);
if ($search_startmonth > 0) $param .= '&search_startmonth='.urlencode(GETPOST('search_startmonth', 'int')); }
if ($search_startday > 0) $param .= '&search_startday='.urlencode(GETPOST('search_startday', 'int')); if ($search_id != '') {
if ($search_endyear > 0) $param .= '&search_endyear='.urlencode(GETPOST('search_endyear', 'int')); $param .= '&search_id='.urlencode($search_id);
if ($search_endmonth > 0) $param .= '&search_endmonth='.urlencode(GETPOST('search_endmonth', 'int')); }
if ($search_endday > 0) $param .= '&search_endday='.urlencode(GETPOST('search_endday', 'int')); if ($search_fk_user > 0) {
if ($search_showonlyerrors > 0) $param .= '&search_showonlyerrors='.urlencode($search_showonlyerrors); $param .= '&search_fk_user='.urlencode($search_fk_user);
if ($optioncss != '') $param .= '&optioncss='.urlencode($optioncss); }
if (GETPOST('withtab', 'alpha')) $param .= '&withtab='.urlencode(GETPOST('withtab', 'alpha')); if ($search_startyear > 0) {
$param .= '&search_startyear='.urlencode(GETPOST('search_startyear', 'int'));
}
if ($search_startmonth > 0) {
$param .= '&search_startmonth='.urlencode(GETPOST('search_startmonth', 'int'));
}
if ($search_startday > 0) {
$param .= '&search_startday='.urlencode(GETPOST('search_startday', 'int'));
}
if ($search_endyear > 0) {
$param .= '&search_endyear='.urlencode(GETPOST('search_endyear', 'int'));
}
if ($search_endmonth > 0) {
$param .= '&search_endmonth='.urlencode(GETPOST('search_endmonth', 'int'));
}
if ($search_endday > 0) {
$param .= '&search_endday='.urlencode(GETPOST('search_endday', 'int'));
}
if ($search_showonlyerrors > 0) {
$param .= '&search_showonlyerrors='.urlencode($search_showonlyerrors);
}
if ($optioncss != '') {
$param .= '&optioncss='.urlencode($optioncss);
}
if (GETPOST('withtab', 'alpha')) {
$param .= '&withtab='.urlencode(GETPOST('withtab', 'alpha'));
}
// 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';
@ -332,8 +360,7 @@ $smonth = GETPOST('monthtoexport', 'int');
$retstring = ''; $retstring = '';
$retstring .= '<select class="flat valignmiddle maxwidth75imp marginrightonly" id="monthtoexport" name="monthtoexport">'; $retstring .= '<select class="flat valignmiddle maxwidth75imp marginrightonly" id="monthtoexport" name="monthtoexport">';
$retstring .= '<option value="0" selected>&nbsp;</option>'; $retstring .= '<option value="0" selected>&nbsp;</option>';
for ($month = 1; $month <= 12; $month++) for ($month = 1; $month <= 12; $month++) {
{
$retstring .= '<option value="'.$month.'"'.($month == $smonth ? ' selected' : '').'>'; $retstring .= '<option value="'.$month.'"'.($month == $smonth ? ' selected' : '').'>';
$retstring .= dol_print_date(mktime(12, 0, 0, $month, 1, 2000), "%b"); $retstring .= dol_print_date(mktime(12, 0, 0, $month, 1, 2000), "%b");
$retstring .= "</option>"; $retstring .= "</option>";
@ -343,7 +370,9 @@ print $retstring;
print '<input type="text" name="yeartoexport" class="valignmiddle maxwidth50imp" value="'.GETPOST('yeartoexport', 'int').'">'; print '<input type="text" name="yeartoexport" class="valignmiddle maxwidth50imp" value="'.GETPOST('yeartoexport', 'int').'">';
print '<input type="hidden" name="withtab" value="'.GETPOST('withtab', 'alpha').'">'; print '<input type="hidden" name="withtab" value="'.GETPOST('withtab', 'alpha').'">';
print '<input type="submit" name="downloadcsv" class="button" value="'.$langs->trans('DownloadLogCSV').'">'; print '<input type="submit" name="downloadcsv" class="button" value="'.$langs->trans('DownloadLogCSV').'">';
if (!empty($conf->global->BLOCKEDLOG_USE_REMOTE_AUTHORITY)) print ' | <a href="?action=downloadblockchain'.(GETPOST('withtab', 'alpha') ? '&withtab='.GETPOST('withtab', 'alpha') : '').'">'.$langs->trans('DownloadBlockChain').'</a>'; if (!empty($conf->global->BLOCKEDLOG_USE_REMOTE_AUTHORITY)) {
print ' | <a href="?action=downloadblockchain'.(GETPOST('withtab', 'alpha') ? '&withtab='.GETPOST('withtab', 'alpha') : '').'">'.$langs->trans('DownloadBlockChain').'</a>';
}
print ' </div><br>'; print ' </div><br>';
print '</form>'; print '</form>';
@ -352,7 +381,9 @@ print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'"
print '<div class="div-table-responsive">'; // You can use div-table-responsive-no-min if you dont need reserved height for your table print '<div class="div-table-responsive">'; // You can use div-table-responsive-no-min if you dont need reserved height for your table
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">'; if ($optioncss != '') {
print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
}
print '<input type="hidden" name="token" value="'.newToken().'">'; print '<input type="hidden" name="token" value="'.newToken().'">';
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">'; print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
print '<input type="hidden" name="action" value="list">'; print '<input type="hidden" name="action" value="list">';
@ -446,10 +477,8 @@ if (!empty($conf->global->BLOCKEDLOG_SCAN_ALL_FOR_LOWERIDINERROR)) {
$loweridinerror = 0; $loweridinerror = 0;
$checkresult = array(); $checkresult = array();
$checkdetail = array(); $checkdetail = array();
if (is_array($blocks)) if (is_array($blocks)) {
{ foreach ($blocks as &$block) {
foreach ($blocks as &$block)
{
$tmpcheckresult = $block->checkSignature('', 1); // Note: this make a sql request at each call, we can't avoid this as the sorting order is various $tmpcheckresult = $block->checkSignature('', 1); // Note: this make a sql request at each call, we can't avoid this as the sorting order is various
$checksignature = $tmpcheckresult['checkresult']; $checksignature = $tmpcheckresult['checkresult'];
@ -457,26 +486,25 @@ if (!empty($conf->global->BLOCKEDLOG_SCAN_ALL_FOR_LOWERIDINERROR)) {
$checkresult[$block->id] = $checksignature; // false if error $checkresult[$block->id] = $checksignature; // false if error
$checkdetail[$block->id] = $tmpcheckresult; $checkdetail[$block->id] = $tmpcheckresult;
if (!$checksignature) if (!$checksignature) {
{ if (empty($loweridinerror)) {
if (empty($loweridinerror)) $loweridinerror = $block->id; $loweridinerror = $block->id;
else $loweridinerror = min($loweridinerror, $block->id); } else {
$loweridinerror = min($loweridinerror, $block->id);
}
} }
} }
} }
} }
if (is_array($blocks)) if (is_array($blocks)) {
{
$nbshown = 0; $nbshown = 0;
$MAXFORSHOWLINK = 100; $MAXFORSHOWLINK = 100;
$object_link = ''; $object_link = '';
foreach ($blocks as &$block) foreach ($blocks as &$block) {
{
//if (empty($search_showonlyerrors) || ! $checkresult[$block->id] || ($loweridinerror && $block->id >= $loweridinerror)) //if (empty($search_showonlyerrors) || ! $checkresult[$block->id] || ($loweridinerror && $block->id >= $loweridinerror))
if (empty($search_showonlyerrors) || !$checkresult[$block->id]) if (empty($search_showonlyerrors) || !$checkresult[$block->id]) {
{
$nbshown++; $nbshown++;
if ($nbshown < $MAXFORSHOWLINK) { // For performance and memory purpose, we get/show the link of objects only for the 100 first output if ($nbshown < $MAXFORSHOWLINK) { // For performance and memory purpose, we get/show the link of objects only for the 100 first output
@ -527,12 +555,10 @@ if (is_array($blocks))
// Status // Status
print '<td class="center">'; print '<td class="center">';
if (!$checkresult[$block->id] || ($loweridinerror && $block->id >= $loweridinerror)) // If error if (!$checkresult[$block->id] || ($loweridinerror && $block->id >= $loweridinerror)) { // If error
{
if ($checkresult[$block->id]) { if ($checkresult[$block->id]) {
print '<span class="badge badge-status4 badge-status" title="'.$langs->trans('OkCheckFingerprintValidityButChainIsKo').'">OK</span>'; print '<span class="badge badge-status4 badge-status" title="'.$langs->trans('OkCheckFingerprintValidityButChainIsKo').'">OK</span>';
} } else {
else {
print '<span class="badge badge-status8 badge-status" title="'.$langs->trans('KoCheckFingerprintValidity').'">KO</span>'; print '<span class="badge badge-status8 badge-status" title="'.$langs->trans('KoCheckFingerprintValidity').'">KO</span>';
} }
} else { } else {
@ -542,9 +568,10 @@ if (is_array($blocks))
// Note // Note
print '<td class="center">'; print '<td class="center">';
if (!$checkresult[$block->id] || ($loweridinerror && $block->id >= $loweridinerror)) // If error if (!$checkresult[$block->id] || ($loweridinerror && $block->id >= $loweridinerror)) { // If error
{ if ($checkresult[$block->id]) {
if ($checkresult[$block->id]) print $form->textwithpicto('', $langs->trans('OkCheckFingerprintValidityButChainIsKo')); print $form->textwithpicto('', $langs->trans('OkCheckFingerprintValidityButChainIsKo'));
}
} }
if (!empty($conf->global->BLOCKEDLOG_USE_REMOTE_AUTHORITY) && !empty($conf->global->BLOCKEDLOG_AUTHORITY_URL)) { if (!empty($conf->global->BLOCKEDLOG_USE_REMOTE_AUTHORITY) && !empty($conf->global->BLOCKEDLOG_AUTHORITY_URL)) {
@ -598,8 +625,7 @@ jQuery(document).ready(function () {
</script>'."\n"; </script>'."\n";
if (!empty($conf->global->BLOCKEDLOG_USE_REMOTE_AUTHORITY) && !empty($conf->global->BLOCKEDLOG_AUTHORITY_URL)) if (!empty($conf->global->BLOCKEDLOG_USE_REMOTE_AUTHORITY) && !empty($conf->global->BLOCKEDLOG_AUTHORITY_URL)) {
{
?> ?>
<script type="text/javascript"> <script type="text/javascript">
@ -621,8 +647,7 @@ if (!empty($conf->global->BLOCKEDLOG_USE_REMOTE_AUTHORITY) && !empty($conf->glob
<?php <?php
} }
if (GETPOST('withtab', 'alpha')) if (GETPOST('withtab', 'alpha')) {
{
print dol_get_fiche_end(); print dol_get_fiche_end();
} }

View File

@ -26,9 +26,15 @@
// This script is called with a POST method. // This script is called with a POST method.
// Directory to scan (full path) is inside POST['dir']. // Directory to scan (full path) is inside POST['dir'].
if (!defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', 1); // Disables token renewal if (!defined('NOTOKENRENEWAL')) {
if (!defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); define('NOTOKENRENEWAL', 1); // Disables token renewal
if (!defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); }
if (!defined('NOREQUIREMENU')) {
define('NOREQUIREMENU', '1');
}
if (!defined('NOREQUIREHTML')) {
define('NOREQUIREHTML', '1');
}
$res = require '../../master.inc.php'; $res = require '../../master.inc.php';

View File

@ -26,9 +26,15 @@
// This script is called with a POST method. // This script is called with a POST method.
// Directory to scan (full path) is inside POST['dir']. // Directory to scan (full path) is inside POST['dir'].
if (!defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', 1); // Disables token renewal if (!defined('NOTOKENRENEWAL')) {
if (!defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); define('NOTOKENRENEWAL', 1); // Disables token renewal
if (!defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); }
if (!defined('NOREQUIREMENU')) {
define('NOREQUIREMENU', '1');
}
if (!defined('NOREQUIREHTML')) {
define('NOREQUIREHTML', '1');
}
$res = require '../../main.inc.php'; $res = require '../../main.inc.php';

View File

@ -26,9 +26,15 @@
// This script is called with a POST method. // This script is called with a POST method.
// Directory to scan (full path) is inside POST['dir']. // Directory to scan (full path) is inside POST['dir'].
if (!defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', 1); // Disables token renewal if (!defined('NOTOKENRENEWAL')) {
if (!defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); define('NOTOKENRENEWAL', 1); // Disables token renewal
if (!defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); }
if (!defined('NOREQUIREMENU')) {
define('NOREQUIREMENU', '1');
}
if (!defined('NOREQUIREHTML')) {
define('NOREQUIREHTML', '1');
}
require '../../main.inc.php'; require '../../main.inc.php';
@ -37,7 +43,9 @@ require_once DOL_DOCUMENT_ROOT.'/blockedlog/class/blockedlog.class.php';
$id = GETPOST('id', 'int'); $id = GETPOST('id', 'int');
$block = new BlockedLog($db); $block = new BlockedLog($db);
if ((!$user->admin && !$user->rights->blockedlog->read) || empty($conf->blockedlog->enabled)) accessforbidden(); if ((!$user->admin && !$user->rights->blockedlog->read) || empty($conf->blockedlog->enabled)) {
accessforbidden();
}
$langs->loadLangs(array("admin")); $langs->loadLangs(array("admin"));
@ -49,8 +57,7 @@ $langs->loadLangs(array("admin"));
print '<div id="pop-info"><table width="100%" height="80%" class="border"><thead><th width="50%" class="left">'.$langs->trans('Field').'</th><th class="left">'.$langs->trans('Value').'</th></thead>'; print '<div id="pop-info"><table width="100%" height="80%" class="border"><thead><th width="50%" class="left">'.$langs->trans('Field').'</th><th class="left">'.$langs->trans('Value').'</th></thead>';
print '<tbody>'; print '<tbody>';
if ($block->fetch($id) > 0) if ($block->fetch($id) > 0) {
{
$objtoshow = $block->object_data; $objtoshow = $block->object_data;
print formatObject($objtoshow, ''); print formatObject($objtoshow, '');
} else { } else {
@ -77,18 +84,14 @@ function formatObject($objtoshow, $prefix)
$newobjtoshow = $objtoshow; $newobjtoshow = $objtoshow;
if (is_object($newobjtoshow) || is_array($newobjtoshow)) if (is_object($newobjtoshow) || is_array($newobjtoshow)) {
{
//var_dump($newobjtoshow); //var_dump($newobjtoshow);
foreach ($newobjtoshow as $key => $val) foreach ($newobjtoshow as $key => $val) {
{ if (!is_object($val) && !is_array($val)) {
if (!is_object($val) && !is_array($val))
{
// TODO $val can be '__PHP_Incomplete_Class', the is_object return false // TODO $val can be '__PHP_Incomplete_Class', the is_object return false
$s .= '<tr><td>'.($prefix ? $prefix.' > ' : '').$key.'</td>'; $s .= '<tr><td>'.($prefix ? $prefix.' > ' : '').$key.'</td>';
$s .= '<td>'; $s .= '<td>';
if (in_array($key, array('date', 'datef', 'dateh', 'datec', 'datem', 'datep'))) if (in_array($key, array('date', 'datef', 'dateh', 'datec', 'datem', 'datep'))) {
{
/*var_dump(is_object($val)); /*var_dump(is_object($val));
var_dump(is_array($val)); var_dump(is_array($val));
var_dump(is_array($val)); var_dump(is_array($val));
@ -99,11 +102,9 @@ function formatObject($objtoshow, $prefix)
$s .= $val; $s .= $val;
} }
$s .= '</td></tr>'; $s .= '</td></tr>';
} elseif (is_array($val)) } elseif (is_array($val)) {
{
$s .= formatObject($val, ($prefix ? $prefix.' > ' : '').$key); $s .= formatObject($val, ($prefix ? $prefix.' > ' : '').$key);
} elseif (is_object($val)) } elseif (is_object($val)) {
{
$s .= formatObject($val, ($prefix ? $prefix.' > ' : '').$key); $s .= formatObject($val, ($prefix ? $prefix.' > ' : '').$key);
} }
} }

View File

@ -26,14 +26,22 @@
// This script is called with a POST method. // This script is called with a POST method.
// Directory to scan (full path) is inside POST['dir']. // Directory to scan (full path) is inside POST['dir'].
if (!defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', 1); // Disables token renewal if (!defined('NOTOKENRENEWAL')) {
if (!defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); define('NOTOKENRENEWAL', 1); // Disables token renewal
if (!defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); }
if (!defined('NOREQUIREMENU')) {
define('NOREQUIREMENU', '1');
}
if (!defined('NOREQUIREHTML')) {
define('NOREQUIREHTML', '1');
}
require '../../main.inc.php'; require '../../main.inc.php';
if (empty($conf->global->BLOCKEDLOG_AUTHORITY_URL)) exit('BLOCKEDLOG_AUTHORITY_URL not set'); if (empty($conf->global->BLOCKEDLOG_AUTHORITY_URL)) {
exit('BLOCKEDLOG_AUTHORITY_URL not set');
}
require_once DOL_DOCUMENT_ROOT.'/blockedlog/class/blockedlog.class.php'; require_once DOL_DOCUMENT_ROOT.'/blockedlog/class/blockedlog.class.php';
require_once DOL_DOCUMENT_ROOT.'/blockedlog/class/authority.class.php'; require_once DOL_DOCUMENT_ROOT.'/blockedlog/class/authority.class.php';

View File

@ -122,7 +122,9 @@ class BlockedLogAuthority
public function checkBlock($block) public function checkBlock($block)
{ {
if (strlen($block) != 64) return false; if (strlen($block) != 64) {
return false;
}
$blocks = str_split($this->blockchain, 64); $blocks = str_split($this->blockchain, 64);
@ -148,8 +150,7 @@ class BlockedLogAuthority
dol_syslog(get_class($this)."::fetch id=".$id, LOG_DEBUG); dol_syslog(get_class($this)."::fetch id=".$id, LOG_DEBUG);
if (empty($id) && empty($signature)) if (empty($id) && empty($signature)) {
{
$this->error = 'BadParameter'; $this->error = 'BadParameter';
return -1; return -1;
} }
@ -159,14 +160,15 @@ class BlockedLogAuthority
$sql = "SELECT b.rowid, b.signature, b.blockchain, b.tms"; $sql = "SELECT b.rowid, b.signature, b.blockchain, b.tms";
$sql .= " FROM ".MAIN_DB_PREFIX."blockedlog_authority as b"; $sql .= " FROM ".MAIN_DB_PREFIX."blockedlog_authority as b";
if ($id) $sql .= " WHERE b.rowid = ".$id; if ($id) {
elseif ($signature)$sql .= " WHERE b.signature = '".$this->db->escape($signature)."'"; $sql .= " WHERE b.rowid = ".$id;
} elseif ($signature) {
$sql .= " WHERE b.signature = '".$this->db->escape($signature)."'";
}
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if ($resql) if ($resql) {
{ if ($this->db->num_rows($resql)) {
if ($this->db->num_rows($resql))
{
$obj = $this->db->fetch_object($resql); $obj = $this->db->fetch_object($resql);
$this->id = $obj->rowid; $this->id = $obj->rowid;
@ -216,12 +218,10 @@ class BlockedLogAuthority
$sql .= ")"; $sql .= ")";
$res = $this->db->query($sql); $res = $this->db->query($sql);
if ($res) if ($res) {
{
$id = $this->db->last_insert_id(MAIN_DB_PREFIX."blockedlog_authority"); $id = $this->db->last_insert_id(MAIN_DB_PREFIX."blockedlog_authority");
if ($id > 0) if ($id > 0) {
{
$this->id = $id; $this->id = $id;
$this->db->commit(); $this->db->commit();
@ -262,8 +262,7 @@ class BlockedLogAuthority
$sql .= " WHERE rowid=".$this->id; $sql .= " WHERE rowid=".$this->id;
$res = $this->db->query($sql); $res = $this->db->query($sql);
if ($res) if ($res) {
{
$this->db->commit(); $this->db->commit();
return 1; return 1;

View File

@ -319,11 +319,9 @@ class BlockedLog
} else { } else {
$this->error++; $this->error++;
} }
} elseif ($this->action == 'MODULE_SET') } elseif ($this->action == 'MODULE_SET') {
{
return '<i class="opacitymedium">System to track events into unalterable logs were enabled</i>'; return '<i class="opacitymedium">System to track events into unalterable logs were enabled</i>';
} elseif ($this->action == 'MODULE_RESET') } elseif ($this->action == 'MODULE_RESET') {
{
if ($this->signature == '0000000000') { if ($this->signature == '0000000000') {
return '<i class="opacitymedium">System to track events into unalterable logs were disabled after some recording were done. We saved a special Fingerprint to track the chain as broken.</i>'; return '<i class="opacitymedium">System to track events into unalterable logs were disabled after some recording were done. We saved a special Fingerprint to track the chain as broken.</i>';
} else { } else {
@ -342,7 +340,9 @@ class BlockedLog
{ {
global $langs, $cachedUser; global $langs, $cachedUser;
if (empty($cachedUser))$cachedUser = array(); if (empty($cachedUser)) {
$cachedUser = array();
}
if (empty($cachedUser[$this->fk_user])) { if (empty($cachedUser[$this->fk_user])) {
$u = new User($this->db); $u = new User($this->db);
@ -371,7 +371,9 @@ class BlockedLog
{ {
global $langs, $user, $mysoc; global $langs, $user, $mysoc;
if (is_object($fuser)) $user = $fuser; if (is_object($fuser)) {
$user = $fuser;
}
// Generic fields // Generic fields
@ -380,20 +382,15 @@ class BlockedLog
// amount // amount
$this->amounts = $amounts; $this->amounts = $amounts;
// date // date
if ($object->element == 'payment' || $object->element == 'payment_supplier') if ($object->element == 'payment' || $object->element == 'payment_supplier') {
{
$this->date_object = $object->datepaye; $this->date_object = $object->datepaye;
} elseif ($object->element == 'payment_salary') } elseif ($object->element == 'payment_salary') {
{
$this->date_object = $object->datev; $this->date_object = $object->datev;
} elseif ($object->element == 'payment_donation' || $object->element == 'payment_various') } elseif ($object->element == 'payment_donation' || $object->element == 'payment_various') {
{
$this->date_object = $object->datepaid ? $object->datepaid : $object->datep; $this->date_object = $object->datepaid ? $object->datepaid : $object->datep;
} elseif ($object->element == 'subscription') } elseif ($object->element == 'subscription') {
{
$this->date_object = $object->dateh; $this->date_object = $object->dateh;
} elseif ($object->element == 'cashcontrol') } elseif ($object->element == 'cashcontrol') {
{
$this->date_object = $object->date_creation; $this->date_object = $object->date_creation;
} else { } else {
$this->date_object = $object->date; $this->date_object = $object->date;
@ -424,70 +421,79 @@ class BlockedLog
'name', 'lastname', 'firstname', 'region', 'region_id', 'region_code', 'state', 'state_id', 'state_code', 'country', 'country_id', 'country_code', 'name', 'lastname', 'firstname', 'region', 'region_id', 'region_code', 'state', 'state_id', 'state_code', 'country', 'country_id', 'country_code',
'total_ht', 'total_tva', 'total_ttc', 'total_localtax1', 'total_localtax2', 'total_ht', 'total_tva', 'total_ttc', 'total_localtax1', 'total_localtax2',
'barcode_type', 'barcode_type_code', 'barcode_type_label', 'barcode_type_coder', 'mode_reglement_id', 'cond_reglement_id', 'mode_reglement', 'cond_reglement', 'shipping_method_id', 'barcode_type', 'barcode_type_code', 'barcode_type_label', 'barcode_type_coder', 'mode_reglement_id', 'cond_reglement_id', 'mode_reglement', 'cond_reglement', 'shipping_method_id',
'fk_incoterms', 'label_incoterms', 'location_incoterms', 'lines') 'fk_incoterms', 'label_incoterms', 'location_incoterms', 'lines'));
);
} }
// Add thirdparty info // Add thirdparty info
if (empty($object->thirdparty) && method_exists($object, 'fetch_thirdparty')) $object->fetch_thirdparty(); if (empty($object->thirdparty) && method_exists($object, 'fetch_thirdparty')) {
if (!empty($object->thirdparty)) $object->fetch_thirdparty();
{ }
if (!empty($object->thirdparty)) {
$this->object_data->thirdparty = new stdClass(); $this->object_data->thirdparty = new stdClass();
foreach ($object->thirdparty as $key=>$value) foreach ($object->thirdparty as $key => $value) {
{ if (in_array($key, $arrayoffieldstoexclude)) {
if (in_array($key, $arrayoffieldstoexclude)) continue; // Discard some properties continue; // Discard some properties
}
if (!in_array($key, array( if (!in_array($key, array(
'name', 'name_alias', 'ref_ext', 'address', 'zip', 'town', 'state_code', 'country_code', 'idprof1', 'idprof2', 'idprof3', 'idprof4', 'idprof5', 'idprof6', 'phone', 'fax', 'email', 'barcode', 'name', 'name_alias', 'ref_ext', 'address', 'zip', 'town', 'state_code', 'country_code', 'idprof1', 'idprof2', 'idprof3', 'idprof4', 'idprof5', 'idprof6', 'phone', 'fax', 'email', 'barcode',
'tva_intra', 'localtax1_assuj', 'localtax1_value', 'localtax2_assuj', 'localtax2_value', 'managers', 'capital', 'typent_code', 'forme_juridique_code', 'code_client', 'code_fournisseur' 'tva_intra', 'localtax1_assuj', 'localtax1_value', 'localtax2_assuj', 'localtax2_value', 'managers', 'capital', 'typent_code', 'forme_juridique_code', 'code_client', 'code_fournisseur'
))) continue; // Discard if not into a dedicated list ))) {
if (!is_object($value) && !is_null($value) && $value !== '') $this->object_data->thirdparty->{$key} = $value; continue; // Discard if not into a dedicated list
}
if (!is_object($value) && !is_null($value) && $value !== '') {
$this->object_data->thirdparty->{$key} = $value;
}
} }
} }
// Add company info // Add company info
if (!empty($mysoc)) if (!empty($mysoc)) {
{
$this->object_data->mycompany = new stdClass(); $this->object_data->mycompany = new stdClass();
foreach ($mysoc as $key=>$value) foreach ($mysoc as $key => $value) {
{ if (in_array($key, $arrayoffieldstoexclude)) {
if (in_array($key, $arrayoffieldstoexclude)) continue; // Discard some properties continue; // Discard some properties
}
if (!in_array($key, array( if (!in_array($key, array(
'name', 'name_alias', 'ref_ext', 'address', 'zip', 'town', 'state_code', 'country_code', 'idprof1', 'idprof2', 'idprof3', 'idprof4', 'idprof5', 'idprof6', 'phone', 'fax', 'email', 'barcode', 'name', 'name_alias', 'ref_ext', 'address', 'zip', 'town', 'state_code', 'country_code', 'idprof1', 'idprof2', 'idprof3', 'idprof4', 'idprof5', 'idprof6', 'phone', 'fax', 'email', 'barcode',
'tva_intra', 'localtax1_assuj', 'localtax1_value', 'localtax2_assuj', 'localtax2_value', 'managers', 'capital', 'typent_code', 'forme_juridique_code', 'code_client', 'code_fournisseur' 'tva_intra', 'localtax1_assuj', 'localtax1_value', 'localtax2_assuj', 'localtax2_value', 'managers', 'capital', 'typent_code', 'forme_juridique_code', 'code_client', 'code_fournisseur'
))) continue; // Discard if not into a dedicated list ))) {
if (!is_object($value) && !is_null($value) && $value !== '') $this->object_data->mycompany->{$key} = $value; continue; // Discard if not into a dedicated list
}
if (!is_object($value) && !is_null($value) && $value !== '') {
$this->object_data->mycompany->{$key} = $value;
}
} }
} }
// Add user info // Add user info
if (!empty($user)) if (!empty($user)) {
{
$this->fk_user = $user->id; $this->fk_user = $user->id;
$this->user_fullname = $user->getFullName($langs); $this->user_fullname = $user->getFullName($langs);
} }
// Field specific to object // Field specific to object
if ($this->element == 'facture') if ($this->element == 'facture') {
{ foreach ($object as $key => $value) {
foreach ($object as $key=>$value) if (in_array($key, $arrayoffieldstoexclude)) {
{ continue; // Discard some properties
if (in_array($key, $arrayoffieldstoexclude)) continue; // Discard some properties }
if (!in_array($key, array( if (!in_array($key, array(
'ref', 'ref_client', 'ref_supplier', 'date', 'datef', 'datev', 'type', 'total_ht', 'total_tva', 'total_ttc', 'localtax1', 'localtax2', 'revenuestamp', 'datepointoftax', 'note_public', 'lines' 'ref', 'ref_client', 'ref_supplier', 'date', 'datef', 'datev', 'type', 'total_ht', 'total_tva', 'total_ttc', 'localtax1', 'localtax2', 'revenuestamp', 'datepointoftax', 'note_public', 'lines'
))) continue; // Discard if not into a dedicated list ))) {
if ($key == 'lines') continue; // Discard if not into a dedicated list
{ }
if ($key == 'lines') {
$lineid = 0; $lineid = 0;
foreach ($value as $tmpline) // $tmpline is object FactureLine foreach ($value as $tmpline) { // $tmpline is object FactureLine
{
$lineid++; $lineid++;
foreach ($tmpline as $keyline => $valueline) foreach ($tmpline as $keyline => $valueline) {
{
if (!in_array($keyline, array( if (!in_array($keyline, array(
'ref', 'multicurrency_code', 'multicurrency_total_ht', 'multicurrency_total_tva', 'multicurrency_total_ttc', 'qty', 'product_type', 'vat_src_code', 'tva_tx', 'info_bits', 'localtax1_tx', 'localtax2_tx', 'total_ht', 'total_tva', 'total_ttc', 'total_localtax1', 'total_localtax2' 'ref', 'multicurrency_code', 'multicurrency_total_ht', 'multicurrency_total_tva', 'multicurrency_total_ttc', 'qty', 'product_type', 'vat_src_code', 'tva_tx', 'info_bits', 'localtax1_tx', 'localtax2_tx', 'total_ht', 'total_tva', 'total_ttc', 'total_localtax1', 'total_localtax2'
))) continue; // Discard if not into a dedicated list ))) {
continue; // Discard if not into a dedicated list
}
if (empty($this->object_data->invoiceline[$lineid]) || !is_object($this->object_data->invoiceline[$lineid])) { // To avoid warning if (empty($this->object_data->invoiceline[$lineid]) || !is_object($this->object_data->invoiceline[$lineid])) { // To avoid warning
$this->object_data->invoiceline[$lineid] = new stdClass(); $this->object_data->invoiceline[$lineid] = new stdClass();
@ -498,24 +504,33 @@ class BlockedLog
} }
} }
} }
} elseif (!is_object($value) && !is_null($value) && $value !== '') $this->object_data->{$key} = $value; } elseif (!is_object($value) && !is_null($value) && $value !== '') {
$this->object_data->{$key} = $value;
}
} }
if (!empty($object->newref)) $this->object_data->ref = $object->newref; if (!empty($object->newref)) {
} elseif ($this->element == 'invoice_supplier') $this->object_data->ref = $object->newref;
{ }
foreach ($object as $key => $value) } elseif ($this->element == 'invoice_supplier') {
{ foreach ($object as $key => $value) {
if (in_array($key, $arrayoffieldstoexclude)) continue; // Discard some properties if (in_array($key, $arrayoffieldstoexclude)) {
continue; // Discard some properties
}
if (!in_array($key, array( if (!in_array($key, array(
'ref', 'ref_client', 'ref_supplier', 'date', 'datef', 'type', 'total_ht', 'total_tva', 'total_ttc', 'localtax1', 'localtax2', 'revenuestamp', 'datepointoftax', 'note_public' 'ref', 'ref_client', 'ref_supplier', 'date', 'datef', 'type', 'total_ht', 'total_tva', 'total_ttc', 'localtax1', 'localtax2', 'revenuestamp', 'datepointoftax', 'note_public'
))) continue; // Discard if not into a dedicated list ))) {
if (!is_object($value) && !is_null($value) && $value !== '') $this->object_data->{$key} = $value; continue; // Discard if not into a dedicated list
}
if (!is_object($value) && !is_null($value) && $value !== '') {
$this->object_data->{$key} = $value;
}
} }
if (!empty($object->newref)) $this->object_data->ref = $object->newref; if (!empty($object->newref)) {
} elseif ($this->element == 'payment' || $this->element == 'payment_supplier' || $this->element == 'payment_donation' || $this->element == 'payment_various') $this->object_data->ref = $object->newref;
{ }
} elseif ($this->element == 'payment' || $this->element == 'payment_supplier' || $this->element == 'payment_donation' || $this->element == 'payment_various') {
$datepayment = $object->datepaye ? $object->datepaye : ($object->datepaid ? $object->datepaid : $object->datep); $datepayment = $object->datepaye ? $object->datepaye : ($object->datepaid ? $object->datepaid : $object->datep);
$paymenttypeid = $object->paiementid ? $object->paiementid : ($object->paymenttype ? $object->paymenttype : $object->type_payment); $paymenttypeid = $object->paiementid ? $object->paiementid : ($object->paymenttype ? $object->paymenttype : $object->type_payment);
@ -523,53 +538,51 @@ class BlockedLog
$this->object_data->date = $datepayment; $this->object_data->date = $datepayment;
$this->object_data->type_code = dol_getIdFromCode($this->db, $paymenttypeid, 'c_paiement', 'id', 'code'); $this->object_data->type_code = dol_getIdFromCode($this->db, $paymenttypeid, 'c_paiement', 'id', 'code');
if (!empty($object->num_payment)) $this->object_data->payment_num = $object->num_payment; if (!empty($object->num_payment)) {
if (!empty($object->note_private)) $this->object_data->note_private = $object->note_private; $this->object_data->payment_num = $object->num_payment;
}
if (!empty($object->note_private)) {
$this->object_data->note_private = $object->note_private;
}
//$this->object_data->fk_account = $object->fk_account; //$this->object_data->fk_account = $object->fk_account;
//var_dump($this->object_data);exit; //var_dump($this->object_data);exit;
$totalamount = 0; $totalamount = 0;
if (!is_array($object->amounts) && $object->amount) if (!is_array($object->amounts) && $object->amount) {
{
$object->amounts = array($object->id => $object->amount); $object->amounts = array($object->id => $object->amount);
} }
$paymentpartnumber = 0; $paymentpartnumber = 0;
foreach ($object->amounts as $objid => $amount) foreach ($object->amounts as $objid => $amount) {
{ if (empty($amount)) {
if (empty($amount)) continue; continue;
}
$totalamount += $amount; $totalamount += $amount;
$tmpobject = null; $tmpobject = null;
if ($this->element == 'payment_supplier') if ($this->element == 'payment_supplier') {
{
include_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; include_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php';
$tmpobject = new FactureFournisseur($this->db); $tmpobject = new FactureFournisseur($this->db);
} elseif ($this->element == 'payment') } elseif ($this->element == 'payment') {
{
include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
$tmpobject = new Facture($this->db); $tmpobject = new Facture($this->db);
} elseif ($this->element == 'payment_donation') } elseif ($this->element == 'payment_donation') {
{
include_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php'; include_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php';
$tmpobject = new Don($this->db); $tmpobject = new Don($this->db);
} elseif ($this->element == 'payment_various') } elseif ($this->element == 'payment_various') {
{
include_once DOL_DOCUMENT_ROOT.'/compta/bank/class/paymentvarious.class.php'; include_once DOL_DOCUMENT_ROOT.'/compta/bank/class/paymentvarious.class.php';
$tmpobject = new PaymentVarious($this->db); $tmpobject = new PaymentVarious($this->db);
} }
if (!is_object($tmpobject)) if (!is_object($tmpobject)) {
{
continue; continue;
} }
$result = $tmpobject->fetch($objid); $result = $tmpobject->fetch($objid);
if ($result <= 0) if ($result <= 0) {
{
$this->error = $tmpobject->error; $this->error = $tmpobject->error;
$this->errors = $tmpobject->errors; $this->errors = $tmpobject->errors;
dol_syslog("Failed to fetch object with id ".$objid, LOG_ERR); dol_syslog("Failed to fetch object with id ".$objid, LOG_ERR);
@ -579,50 +592,61 @@ class BlockedLog
$paymentpart = new stdClass(); $paymentpart = new stdClass();
$paymentpart->amount = $amount; $paymentpart->amount = $amount;
if (!in_array($this->element, array('payment_donation', 'payment_various'))) if (!in_array($this->element, array('payment_donation', 'payment_various'))) {
{
$result = $tmpobject->fetch_thirdparty(); $result = $tmpobject->fetch_thirdparty();
if ($result == 0) if ($result == 0) {
{
$this->error = 'Failed to fetch thirdparty for object with id '.$tmpobject->id; $this->error = 'Failed to fetch thirdparty for object with id '.$tmpobject->id;
$this->errors[] = $this->error; $this->errors[] = $this->error;
dol_syslog("Failed to fetch thirdparty for object with id ".$tmpobject->id, LOG_ERR); dol_syslog("Failed to fetch thirdparty for object with id ".$tmpobject->id, LOG_ERR);
return -1; return -1;
} elseif ($result < 0) } elseif ($result < 0) {
{
$this->error = $tmpobject->error; $this->error = $tmpobject->error;
$this->errors = $tmpobject->errors; $this->errors = $tmpobject->errors;
return -1; return -1;
} }
$paymentpart->thirdparty = new stdClass(); $paymentpart->thirdparty = new stdClass();
foreach ($tmpobject->thirdparty as $key=>$value) foreach ($tmpobject->thirdparty as $key => $value) {
{ if (in_array($key, $arrayoffieldstoexclude)) {
if (in_array($key, $arrayoffieldstoexclude)) continue; // Discard some properties continue; // Discard some properties
}
if (!in_array($key, array( if (!in_array($key, array(
'name', 'name_alias', 'ref_ext', 'address', 'zip', 'town', 'state_code', 'country_code', 'idprof1', 'idprof2', 'idprof3', 'idprof4', 'idprof5', 'idprof6', 'phone', 'fax', 'email', 'barcode', 'name', 'name_alias', 'ref_ext', 'address', 'zip', 'town', 'state_code', 'country_code', 'idprof1', 'idprof2', 'idprof3', 'idprof4', 'idprof5', 'idprof6', 'phone', 'fax', 'email', 'barcode',
'tva_intra', 'localtax1_assuj', 'localtax1_value', 'localtax2_assuj', 'localtax2_value', 'managers', 'capital', 'typent_code', 'forme_juridique_code', 'code_client', 'code_fournisseur' 'tva_intra', 'localtax1_assuj', 'localtax1_value', 'localtax2_assuj', 'localtax2_value', 'managers', 'capital', 'typent_code', 'forme_juridique_code', 'code_client', 'code_fournisseur'
))) continue; // Discard if not into a dedicated list ))) {
if (!is_object($value) && !is_null($value) && $value !== '') $paymentpart->thirdparty->{$key} = $value; continue; // Discard if not into a dedicated list
}
if (!is_object($value) && !is_null($value) && $value !== '') {
$paymentpart->thirdparty->{$key} = $value;
}
} }
} }
// Init object to avoid warnings // Init object to avoid warnings
if ($this->element == 'payment_donation') $paymentpart->donation = new stdClass(); if ($this->element == 'payment_donation') {
else $paymentpart->invoice = new stdClass(); $paymentpart->donation = new stdClass();
} else {
$paymentpart->invoice = new stdClass();
}
if ($this->element != 'payment_various') if ($this->element != 'payment_various') {
{ foreach ($tmpobject as $key => $value) {
foreach ($tmpobject as $key=>$value) if (in_array($key, $arrayoffieldstoexclude)) {
{ continue; // Discard some properties
if (in_array($key, $arrayoffieldstoexclude)) continue; // Discard some properties }
if (!in_array($key, array( if (!in_array($key, array(
'ref', 'ref_client', 'ref_supplier', 'date', 'datef', 'type', 'total_ht', 'total_tva', 'total_ttc', 'localtax1', 'localtax2', 'revenuestamp', 'datepointoftax', 'note_public' 'ref', 'ref_client', 'ref_supplier', 'date', 'datef', 'type', 'total_ht', 'total_tva', 'total_ttc', 'localtax1', 'localtax2', 'revenuestamp', 'datepointoftax', 'note_public'
))) continue; // Discard if not into a dedicated list ))) {
continue; // Discard if not into a dedicated list
}
if (!is_object($value) && !is_null($value) && $value !== '') { if (!is_object($value) && !is_null($value) && $value !== '') {
if ($this->element == 'payment_donation') $paymentpart->donation->{$key} = $value; if ($this->element == 'payment_donation') {
elseif ($this->element == 'payment_various') $paymentpart->various->{$key} = $value; $paymentpart->donation->{$key} = $value;
else $paymentpart->invoice->{$key} = $value; } elseif ($this->element == 'payment_various') {
$paymentpart->various->{$key} = $value;
} else {
$paymentpart->invoice->{$key} = $value;
}
} }
} }
@ -633,33 +657,47 @@ class BlockedLog
$this->object_data->amount = $totalamount; $this->object_data->amount = $totalamount;
if (!empty($object->newref)) $this->object_data->ref = $object->newref; if (!empty($object->newref)) {
} elseif ($this->element == 'payment_salary') $this->object_data->ref = $object->newref;
{ }
} elseif ($this->element == 'payment_salary') {
$this->object_data->amounts = array($object->amount); $this->object_data->amounts = array($object->amount);
if (!empty($object->newref)) $this->object_data->ref = $object->newref; if (!empty($object->newref)) {
} elseif ($this->element == 'subscription') $this->object_data->ref = $object->newref;
{ }
foreach ($object as $key=>$value) } elseif ($this->element == 'subscription') {
{ foreach ($object as $key => $value) {
if (in_array($key, $arrayoffieldstoexclude)) continue; // Discard some properties if (in_array($key, $arrayoffieldstoexclude)) {
continue; // Discard some properties
}
if (!in_array($key, array( if (!in_array($key, array(
'id', 'datec', 'dateh', 'datef', 'fk_adherent', 'amount', 'import_key', 'statut', 'note' 'id', 'datec', 'dateh', 'datef', 'fk_adherent', 'amount', 'import_key', 'statut', 'note'
))) continue; // Discard if not into a dedicated list ))) {
if (!is_object($value) && !is_null($value) && $value !== '') $this->object_data->{$key} = $value; continue; // Discard if not into a dedicated list
}
if (!is_object($value) && !is_null($value) && $value !== '') {
$this->object_data->{$key} = $value;
}
} }
if (!empty($object->newref)) $this->object_data->ref = $object->newref; if (!empty($object->newref)) {
$this->object_data->ref = $object->newref;
}
} else // Generic case } else // Generic case
{ {
foreach ($object as $key=>$value) foreach ($object as $key => $value) {
{ if (in_array($key, $arrayoffieldstoexclude)) {
if (in_array($key, $arrayoffieldstoexclude)) continue; // Discard some properties continue; // Discard some properties
if (!is_object($value) && !is_null($value) && $value !== '') $this->object_data->{$key} = $value; }
if (!is_object($value) && !is_null($value) && $value !== '') {
$this->object_data->{$key} = $value;
}
} }
if (!empty($object->newref)) $this->object_data->ref = $object->newref; if (!empty($object->newref)) {
$this->object_data->ref = $object->newref;
}
} }
return 1; return 1;
@ -675,8 +713,7 @@ class BlockedLog
{ {
global $langs; global $langs;
if (empty($id)) if (empty($id)) {
{
$this->error = 'BadParameter'; $this->error = 'BadParameter';
return -1; return -1;
} }
@ -684,11 +721,12 @@ class BlockedLog
$sql = "SELECT b.rowid, b.date_creation, b.signature, b.signature_line, b.amounts, b.action, b.element, b.fk_object, b.entity,"; $sql = "SELECT b.rowid, b.date_creation, b.signature, b.signature_line, b.amounts, b.action, b.element, b.fk_object, b.entity,";
$sql .= " b.certified, b.tms, b.fk_user, b.user_fullname, b.date_object, b.ref_object, b.object_data, b.object_version"; $sql .= " b.certified, b.tms, b.fk_user, b.user_fullname, b.date_object, b.ref_object, b.object_data, b.object_version";
$sql .= " FROM ".MAIN_DB_PREFIX."blockedlog as b"; $sql .= " FROM ".MAIN_DB_PREFIX."blockedlog as b";
if ($id) $sql .= " WHERE b.rowid = ".((int) $id); if ($id) {
$sql .= " WHERE b.rowid = ".((int) $id);
}
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if ($resql) if ($resql) {
{
$obj = $this->db->fetch_object($resql); $obj = $this->db->fetch_object($resql);
if ($obj) { if ($obj) {
$this->id = $obj->rowid; $this->id = $obj->rowid;
@ -759,7 +797,9 @@ class BlockedLog
{ {
$res = $this->db->query("UPDATE ".MAIN_DB_PREFIX."blockedlog SET certified=1 WHERE rowid=".$this->id); $res = $this->db->query("UPDATE ".MAIN_DB_PREFIX."blockedlog SET certified=1 WHERE rowid=".$this->id);
if ($res === false) return false; if ($res === false) {
return false;
}
return true; return true;
} }
@ -785,8 +825,7 @@ class BlockedLog
dol_syslog(get_class($this).'::create action='.$this->action.' fk_user='.$this->fk_user.' user_fullname='.$this->user_fullname, LOG_DEBUG); dol_syslog(get_class($this).'::create action='.$this->action.' fk_user='.$this->fk_user.' user_fullname='.$this->user_fullname, LOG_DEBUG);
// Check parameters/properties // Check parameters/properties
if (!isset($this->amounts)) // amount can be 0 for some events (like when module is disabled) if (!isset($this->amounts)) { // amount can be 0 for some events (like when module is disabled)
{
$this->error = $langs->trans("BlockLogNeedAmountsValue"); $this->error = $langs->trans("BlockLogNeedAmountsValue");
dol_syslog($this->error, LOG_WARNING); dol_syslog($this->error, LOG_WARNING);
return -1; return -1;
@ -803,7 +842,9 @@ class BlockedLog
dol_syslog($this->error, LOG_WARNING); dol_syslog($this->error, LOG_WARNING);
return -3; return -3;
} }
if (empty($this->fk_user)) $this->user_fullname = '(Anonymous)'; if (empty($this->fk_user)) {
$this->user_fullname = '(Anonymous)';
}
$this->date_creation = dol_now(); $this->date_creation = dol_now();
@ -817,7 +858,9 @@ class BlockedLog
$this->signature_line = dol_hash($keyforsignature, '5'); // Not really usefull $this->signature_line = dol_hash($keyforsignature, '5'); // Not really usefull
$this->signature = dol_hash($previoushash.$keyforsignature, '5'); $this->signature = dol_hash($previoushash.$keyforsignature, '5');
if ($forcesignature) $this->signature = $forcesignature; if ($forcesignature) {
$this->signature = $forcesignature;
}
//var_dump($keyforsignature);var_dump($previoushash);var_dump($this->signature_line);var_dump($this->signature); //var_dump($keyforsignature);var_dump($previoushash);var_dump($this->signature_line);var_dump($this->signature);
$sql = "INSERT INTO ".MAIN_DB_PREFIX."blockedlog ("; $sql = "INSERT INTO ".MAIN_DB_PREFIX."blockedlog (";
@ -855,12 +898,10 @@ class BlockedLog
$sql .= ")"; $sql .= ")";
$res = $this->db->query($sql); $res = $this->db->query($sql);
if ($res) if ($res) {
{
$id = $this->db->last_insert_id(MAIN_DB_PREFIX."blockedlog"); $id = $this->db->last_insert_id(MAIN_DB_PREFIX."blockedlog");
if ($id > 0) if ($id > 0) {
{
$this->id = $id; $this->id = $id;
$this->db->commit(); $this->db->commit();
@ -888,8 +929,7 @@ class BlockedLog
*/ */
public function checkSignature($previoushash = '', $returnarray = 0) public function checkSignature($previoushash = '', $returnarray = 0)
{ {
if (empty($previoushash)) if (empty($previoushash)) {
{
$previoushash = $this->getPreviousHash(0, $this->id); $previoushash = $this->getPreviousHash(0, $this->id);
} }
// Recalculate hash // Recalculate hash
@ -951,15 +991,16 @@ class BlockedLog
$sql = "SELECT rowid, signature FROM ".MAIN_DB_PREFIX."blockedlog"; $sql = "SELECT rowid, signature FROM ".MAIN_DB_PREFIX."blockedlog";
$sql .= " WHERE entity=".$conf->entity; $sql .= " WHERE entity=".$conf->entity;
if ($beforeid) $sql .= " AND rowid < ".(int) $beforeid; if ($beforeid) {
$sql .= " AND rowid < ".(int) $beforeid;
}
$sql .= " ORDER BY rowid DESC LIMIT 1"; $sql .= " ORDER BY rowid DESC LIMIT 1";
$sql .= ($withlock ? " FOR UPDATE " : ""); $sql .= ($withlock ? " FOR UPDATE " : "");
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if ($resql) { if ($resql) {
$obj = $this->db->fetch_object($resql); $obj = $this->db->fetch_object($resql);
if ($obj) if ($obj) {
{
$previoussignature = $obj->signature; $previoussignature = $obj->signature;
} }
} else { } else {
@ -967,8 +1008,7 @@ class BlockedLog
exit; exit;
} }
if (empty($previoussignature)) if (empty($previoussignature)) {
{
// First signature line (line 0) // First signature line (line 0)
$previoussignature = $this->getSignature(); $previoussignature = $this->getSignature();
} }
@ -1014,13 +1054,27 @@ class BlockedLog
WHERE entity=".$conf->entity." AND element='".$this->db->escape($element)."'"; WHERE entity=".$conf->entity." AND element='".$this->db->escape($element)."'";
} }
if ($fk_object) $sql .= natural_search("rowid", $fk_object, 1); if ($fk_object) {
if ($search_fk_user > 0) $sql .= natural_search("fk_user", $search_fk_user, 2); $sql .= natural_search("rowid", $fk_object, 1);
if ($search_start > 0) $sql .= " AND date_creation >= '".$this->db->idate($search_start)."'"; }
if ($search_end > 0) $sql .= " AND date_creation <= '".$this->db->idate($search_end)."'"; if ($search_fk_user > 0) {
if ($search_ref != '') $sql .= natural_search("ref_object", $search_ref); $sql .= natural_search("fk_user", $search_fk_user, 2);
if ($search_amount != '') $sql .= natural_search("amounts", $search_amount, 1); }
if ($search_code != '' && $search_code != '-1') $sql .= natural_search("action", $search_code, 3); if ($search_start > 0) {
$sql .= " AND date_creation >= '".$this->db->idate($search_start)."'";
}
if ($search_end > 0) {
$sql .= " AND date_creation <= '".$this->db->idate($search_end)."'";
}
if ($search_ref != '') {
$sql .= natural_search("ref_object", $search_ref);
}
if ($search_amount != '') {
$sql .= natural_search("amounts", $search_amount, 1);
}
if ($search_code != '' && $search_code != '-1') {
$sql .= natural_search("action", $search_code, 3);
}
$sql .= $this->db->order($sortfield, $sortorder); $sql .= $this->db->order($sortfield, $sortorder);
$sql .= $this->db->plimit($limit + 1); // We want more, because we will stop into loop later with error if we reach max $sql .= $this->db->plimit($limit + 1); // We want more, because we will stop into loop later with error if we reach max
@ -1030,11 +1084,9 @@ class BlockedLog
$results = array(); $results = array();
$i = 0; $i = 0;
while ($obj = $this->db->fetch_object($res)) while ($obj = $this->db->fetch_object($res)) {
{
$i++; $i++;
if ($i > $limit) if ($i > $limit) {
{
// Too many record, we will consume too much memory // Too many record, we will consume too much memory
return -2; return -2;
} }
@ -1096,15 +1148,20 @@ class BlockedLog
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."blockedlog"; $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."blockedlog";
$sql .= " WHERE entity = ".$conf->entity; $sql .= " WHERE entity = ".$conf->entity;
if ($ignoresystem) $sql .= " AND action not in ('MODULE_SET','MODULE_RESET')"; if ($ignoresystem) {
$sql .= " AND action not in ('MODULE_SET','MODULE_RESET')";
}
$sql .= $this->db->plimit(1); $sql .= $this->db->plimit(1);
$res = $this->db->query($sql); $res = $this->db->query($sql);
if ($res !== false) if ($res !== false) {
{
$obj = $this->db->fetch_object($res); $obj = $this->db->fetch_object($res);
if ($obj) $result = true; if ($obj) {
} else dol_print_error($this->db); $result = true;
}
} else {
dol_print_error($this->db);
}
dol_syslog("Module Blockedlog alreadyUsed with ignoresystem=".$ignoresystem." is ".$result); dol_syslog("Module Blockedlog alreadyUsed with ignoresystem=".$ignoresystem." is ".$result);

View File

@ -44,8 +44,7 @@ function blockedlogadmin_prepare_head()
require_once DOL_DOCUMENT_ROOT.'/blockedlog/class/blockedlog.class.php'; require_once DOL_DOCUMENT_ROOT.'/blockedlog/class/blockedlog.class.php';
$b = new BlockedLog($db); $b = new BlockedLog($db);
if ($b->alreadyUsed()) if ($b->alreadyUsed()) {
{
$head[$h][1] .= (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) ? '<span class="badge marginleftonlyshort">...</span>' : ''); $head[$h][1] .= (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) ? '<span class="badge marginleftonlyshort">...</span>' : '');
} }
$head[$h][2] = 'fingerprints'; $head[$h][2] = 'fingerprints';

View File

@ -52,8 +52,7 @@ $object = new Bookmark($db);
* Actions * Actions
*/ */
if ($action == 'add' || $action == 'addproduct' || $action == 'update') if ($action == 'add' || $action == 'addproduct' || $action == 'update') {
{
if ($action == 'update') { if ($action == 'update') {
$invertedaction = 'edit'; $invertedaction = 'edit';
} else { } else {
@ -62,14 +61,17 @@ if ($action == 'add' || $action == 'addproduct' || $action == 'update')
$error = 0; $error = 0;
if (GETPOST('cancel', 'alpha')) if (GETPOST('cancel', 'alpha')) {
{ if (empty($backtopage)) {
if (empty($backtopage)) $backtopage = ($urlsource ? $urlsource : ((!empty($url) && !preg_match('/^http/i', $url)) ? $url : DOL_URL_ROOT.'/bookmarks/list.php')); $backtopage = ($urlsource ? $urlsource : ((!empty($url) && !preg_match('/^http/i', $url)) ? $url : DOL_URL_ROOT.'/bookmarks/list.php'));
}
header("Location: ".$backtopage); header("Location: ".$backtopage);
exit; exit;
} }
if ($action == 'update') $object->fetch(GETPOST("id", 'int')); if ($action == 'update') {
$object->fetch(GETPOST("id", 'int'));
}
// Check if null because user not admin can't set an user and send empty value here. // Check if null because user not admin can't set an user and send empty value here.
if (!empty($userid)) { if (!empty($userid)) {
$object->fk_user = $userid; $object->fk_user = $userid;
@ -89,21 +91,23 @@ if ($action == 'add' || $action == 'addproduct' || $action == 'update')
setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->trans("UrlOrLink")), null, 'errors'); setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->trans("UrlOrLink")), null, 'errors');
} }
if (!$error) if (!$error) {
{
$object->favicon = 'none'; $object->favicon = 'none';
if ($action == 'update') $res = $object->update(); if ($action == 'update') {
else $res = $object->create(); $res = $object->update();
} else {
$res = $object->create();
}
if ($res > 0) if ($res > 0) {
{ if (empty($backtopage)) {
if (empty($backtopage)) $backtopage = ($urlsource ? $urlsource : ((!empty($url) && !preg_match('/^http/i', $url)) ? $url : DOL_URL_ROOT.'/bookmarks/list.php')); $backtopage = ($urlsource ? $urlsource : ((!empty($url) && !preg_match('/^http/i', $url)) ? $url : DOL_URL_ROOT.'/bookmarks/list.php'));
}
header("Location: ".$backtopage); header("Location: ".$backtopage);
exit; exit;
} else { } else {
if ($object->errno == 'DB_ERROR_RECORD_ALREADY_EXISTS') if ($object->errno == 'DB_ERROR_RECORD_ALREADY_EXISTS') {
{
$langs->load("errors"); $langs->load("errors");
setEventMessages($langs->transnoentities("WarningBookmarkAlreadyExists"), null, 'warnings'); setEventMessages($langs->transnoentities("WarningBookmarkAlreadyExists"), null, 'warnings');
} else { } else {
@ -137,8 +141,7 @@ $h++;
$hselected = 'card'; $hselected = 'card';
if ($action == 'create') if ($action == 'create') {
{
/* /*
* Fact bookmark creation mode * Fact bookmark creation mode
*/ */
@ -189,8 +192,7 @@ if ($action == 'create')
} }
if ($id > 0 && !preg_match('/^add/i', $action)) if ($id > 0 && !preg_match('/^add/i', $action)) {
{
/* /*
* Fact bookmark mode or visually edition * Fact bookmark mode or visually edition
*/ */
@ -205,8 +207,7 @@ if ($id > 0 && !preg_match('/^add/i', $action))
) )
); );
if ($action == 'edit') if ($action == 'edit') {
{
print '<form name="edit" method="POST" action="'.$_SERVER["PHP_SELF"].'" enctype="multipart/form-data">'; print '<form name="edit" method="POST" action="'.$_SERVER["PHP_SELF"].'" enctype="multipart/form-data">';
print '<input type="hidden" name="token" value="'.newToken().'">'; print '<input type="hidden" name="token" value="'.newToken().'">';
print '<input type="hidden" name="action" value="update">'; print '<input type="hidden" name="action" value="update">';
@ -239,8 +240,11 @@ if ($id > 0 && !preg_match('/^add/i', $action))
} }
print '</td><td>'; print '</td><td>';
if ($action == 'edit') print '<input class="flat minwidth300" name="title" value="'.(GETPOSTISSET("title") ? GETPOST("title", '', 2) : $object->title).'">'; if ($action == 'edit') {
else print $object->title; print '<input class="flat minwidth300" name="title" value="'.(GETPOSTISSET("title") ? GETPOST("title", '', 2) : $object->title).'">';
} else {
print $object->title;
}
print '</td></tr>'; print '</td></tr>';
print '<tr><td>'; print '<tr><td>';
@ -252,28 +256,32 @@ if ($id > 0 && !preg_match('/^add/i', $action))
print '</span>'; print '</span>';
} }
print '</td><td>'; print '</td><td>';
if ($action == 'edit') print '<input class="flat minwidth500 quatrevingtpercent" name="url" value="'.(GETPOSTISSET("url") ? GETPOST("url") : $object->url).'">'; if ($action == 'edit') {
else print '<a href="'.(preg_match('/^http/i', $object->url) ? $object->url : DOL_URL_ROOT.$object->url).'"'.($object->target ? ' target="_blank"' : '').'>'.$object->url.'</a>'; print '<input class="flat minwidth500 quatrevingtpercent" name="url" value="'.(GETPOSTISSET("url") ? GETPOST("url") : $object->url).'">';
} else {
print '<a href="'.(preg_match('/^http/i', $object->url) ? $object->url : DOL_URL_ROOT.$object->url).'"'.($object->target ? ' target="_blank"' : '').'>'.$object->url.'</a>';
}
print '</td></tr>'; print '</td></tr>';
print '<tr><td>'.$langs->trans("BehaviourOnClick").'</td><td>'; print '<tr><td>'.$langs->trans("BehaviourOnClick").'</td><td>';
if ($action == 'edit') if ($action == 'edit') {
{
$liste = array(1=>$langs->trans("OpenANewWindow"), 0=>$langs->trans("ReplaceWindow")); $liste = array(1=>$langs->trans("OpenANewWindow"), 0=>$langs->trans("ReplaceWindow"));
print $form->selectarray('target', $liste, GETPOSTISSET("target") ? GETPOST("target") : $object->target); print $form->selectarray('target', $liste, GETPOSTISSET("target") ? GETPOST("target") : $object->target);
} else { } else {
if ($object->target == 0) print $langs->trans("ReplaceWindow"); if ($object->target == 0) {
if ($object->target == 1) print $langs->trans("OpenANewWindow"); print $langs->trans("ReplaceWindow");
}
if ($object->target == 1) {
print $langs->trans("OpenANewWindow");
}
} }
print '</td></tr>'; print '</td></tr>';
print '<tr><td>'.$langs->trans("Owner").'</td><td>'; print '<tr><td>'.$langs->trans("Owner").'</td><td>';
if ($action == 'edit' && $user->admin) if ($action == 'edit' && $user->admin) {
{
print img_picto('', 'user').' '.$form->select_dolusers(GETPOSTISSET('userid') ? GETPOST('userid', 'int') : ($object->fk_user ? $object->fk_user : ''), 'userid', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300'); print img_picto('', 'user').' '.$form->select_dolusers(GETPOSTISSET('userid') ? GETPOST('userid', 'int') : ($object->fk_user ? $object->fk_user : ''), 'userid', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
} else { } else {
if ($object->fk_user > 0) if ($object->fk_user > 0) {
{
$fuser = new User($db); $fuser = new User($db);
$fuser->fetch($object->fk_user); $fuser->fetch($object->fk_user);
print $fuser->getNomUrl(1); print $fuser->getNomUrl(1);
@ -285,8 +293,11 @@ if ($id > 0 && !preg_match('/^add/i', $action))
// Position // Position
print '<tr><td>'.$langs->trans("Position").'</td><td>'; print '<tr><td>'.$langs->trans("Position").'</td><td>';
if ($action == 'edit') print '<input class="flat" name="position" size="5" value="'.(GETPOSTISSET("position") ? GETPOST("position", 'int') : $object->position).'">'; if ($action == 'edit') {
else print $object->position; print '<input class="flat" name="position" size="5" value="'.(GETPOSTISSET("position") ? GETPOST("position", 'int') : $object->position).'">';
} else {
print $object->position;
}
print '</td></tr>'; print '</td></tr>';
// Date creation // Date creation
@ -298,8 +309,7 @@ if ($id > 0 && !preg_match('/^add/i', $action))
print dol_get_fiche_end(); print dol_get_fiche_end();
if ($action == 'edit') if ($action == 'edit') {
{
print '<div align="center"><input class="button button-save" type="submit" name="save" value="'.$langs->trans("Save").'"> &nbsp; &nbsp; <input class="button button-cancel" type="submit" name="cancel" value="'.$langs->trans("Cancel").'"></div>'; print '<div align="center"><input class="button button-save" type="submit" name="save" value="'.$langs->trans("Save").'"> &nbsp; &nbsp; <input class="button button-cancel" type="submit" name="cancel" value="'.$langs->trans("Cancel").'"></div>';
print '</form>'; print '</form>';
} }
@ -310,14 +320,12 @@ if ($id > 0 && !preg_match('/^add/i', $action))
print "<div class=\"tabsAction\">\n"; print "<div class=\"tabsAction\">\n";
// Edit // Edit
if ($user->rights->bookmark->creer && $action != 'edit') if ($user->rights->bookmark->creer && $action != 'edit') {
{
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=edit&amp;token='.newToken().'">'.$langs->trans("Edit").'</a>'."\n"; print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=edit&amp;token='.newToken().'">'.$langs->trans("Edit").'</a>'."\n";
} }
// Remove // Remove
if ($user->rights->bookmark->supprimer && $action != 'edit') if ($user->rights->bookmark->supprimer && $action != 'edit') {
{
print '<a class="butActionDelete" href="list.php?bid='.$object->id.'&amp;action=delete&amp;token='.newToken().'">'.$langs->trans("Delete").'</a>'."\n"; print '<a class="butActionDelete" href="list.php?bid='.$object->id.'&amp;action=delete&amp;token='.newToken().'">'.$langs->trans("Delete").'</a>'."\n";
} }

View File

@ -45,12 +45,18 @@ $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit;
$sortfield = GETPOST('sortfield', 'aZ09comma'); $sortfield = GETPOST('sortfield', 'aZ09comma');
$sortorder = GETPOST('sortorder', 'aZ09comma'); $sortorder = GETPOST('sortorder', 'aZ09comma');
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
if (empty($page) || $page == -1 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha') || (empty($toselect) && $massaction === '0')) { $page = 0; } // If $page is not defined, or '' or -1 or if we click on clear filters or if we select empty mass action if (empty($page) || $page == -1 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha') || (empty($toselect) && $massaction === '0')) {
$page = 0;
} // If $page is not defined, or '' or -1 or if we click on clear filters or if we select empty mass action
$offset = $limit * $page; $offset = $limit * $page;
$pageprev = $page - 1; $pageprev = $page - 1;
$pagenext = $page + 1; $pagenext = $page + 1;
if (!$sortfield) $sortfield = 'position'; if (!$sortfield) {
if (!$sortorder) $sortorder = 'ASC'; $sortfield = 'position';
}
if (!$sortorder) {
$sortorder = 'ASC';
}
$id = GETPOST("id", 'int'); $id = GETPOST("id", 'int');
@ -65,11 +71,9 @@ $permissiontodelete = $user->rights->bookmark->delete;
* Actions * Actions
*/ */
if ($action == 'delete') if ($action == 'delete') {
{
$res = $object->remove($id); $res = $object->remove($id);
if ($res > 0) if ($res > 0) {
{
header("Location: ".$_SERVER["PHP_SELF"]); header("Location: ".$_SERVER["PHP_SELF"]);
exit; exit;
} else { } else {
@ -93,32 +97,30 @@ $sql .= " u.login, u.lastname, u.firstname";
$sql .= " FROM ".MAIN_DB_PREFIX."bookmark as b LEFT JOIN ".MAIN_DB_PREFIX."user as u ON b.fk_user=u.rowid"; $sql .= " FROM ".MAIN_DB_PREFIX."bookmark as b LEFT JOIN ".MAIN_DB_PREFIX."user as u ON b.fk_user=u.rowid";
$sql .= " WHERE 1=1"; $sql .= " WHERE 1=1";
$sql .= " AND b.entity IN (".getEntity('bookmark').")"; $sql .= " AND b.entity IN (".getEntity('bookmark').")";
if (!$user->admin) $sql .= " AND (b.fk_user = ".$user->id." OR b.fk_user is NULL OR b.fk_user = 0)"; if (!$user->admin) {
$sql .= " AND (b.fk_user = ".$user->id." OR b.fk_user is NULL OR b.fk_user = 0)";
}
$sql .= $db->order($sortfield.", position", $sortorder); $sql .= $db->order($sortfield.", position", $sortorder);
// Count total nb of records // Count total nb of records
$nbtotalofrecords = ''; $nbtotalofrecords = '';
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
{
$resql = $db->query($sql); $resql = $db->query($sql);
$nbtotalofrecords = $db->num_rows($resql); $nbtotalofrecords = $db->num_rows($resql);
if (($page * $limit) > $nbtotalofrecords) // if total of record found is smaller than page * limit, goto and load page 0 if (($page * $limit) > $nbtotalofrecords) { // if total of record found is smaller than page * limit, goto and load page 0
{
$page = 0; $page = 0;
$offset = 0; $offset = 0;
} }
} }
// if total of record found is smaller than limit, no need to do paging and to restart another select with limits set. // if total of record found is smaller than limit, no need to do paging and to restart another select with limits set.
if (is_numeric($nbtotalofrecords) && $limit > $nbtotalofrecords) if (is_numeric($nbtotalofrecords) && $limit > $nbtotalofrecords) {
{
$num = $nbtotalofrecords; $num = $nbtotalofrecords;
} else { } else {
$sql .= $db->plimit($limit + 1, $offset); $sql .= $db->plimit($limit + 1, $offset);
$resql = $db->query($sql); $resql = $db->query($sql);
if (!$resql) if (!$resql) {
{
dol_print_error($db); dol_print_error($db);
exit; exit;
} }
@ -127,9 +129,15 @@ if (is_numeric($nbtotalofrecords) && $limit > $nbtotalofrecords)
} }
$param = ""; $param = "";
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage); if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit); $param .= '&contextpage='.urlencode($contextpage);
if ($optioncss != '') $param = '&optioncss='.urlencode($optioncss); }
if ($limit > 0 && $limit != $conf->liste_limit) {
$param .= '&limit='.urlencode($limit);
}
if ($optioncss != '') {
$param = '&optioncss='.urlencode($optioncss);
}
$moreforfilter = ''; $moreforfilter = '';
@ -140,12 +148,18 @@ $arrayofmassactions = array(
//'builddoc'=>$langs->trans("PDFMerge"), //'builddoc'=>$langs->trans("PDFMerge"),
//'presend'=>$langs->trans("SendByMail"), //'presend'=>$langs->trans("SendByMail"),
); );
if ($permissiontodelete) $arrayofmassactions['predelete'] = '<span class="fa fa-trash paddingrightonly"></span>'.$langs->trans("Delete"); if ($permissiontodelete) {
if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'predelete'))) $arrayofmassactions = array(); $arrayofmassactions['predelete'] = '<span class="fa fa-trash paddingrightonly"></span>'.$langs->trans("Delete");
}
if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'predelete'))) {
$arrayofmassactions = array();
}
$massactionbutton = $form->selectMassAction('', $arrayofmassactions); $massactionbutton = $form->selectMassAction('', $arrayofmassactions);
print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">'; print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">'; if ($optioncss != '') {
print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
}
print '<input type="hidden" name="token" value="'.newToken().'">'; print '<input type="hidden" name="token" value="'.newToken().'">';
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">'; print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
print '<input type="hidden" name="action" value="list">'; print '<input type="hidden" name="action" value="list">';
@ -176,8 +190,7 @@ print "</tr>\n";
$cacheOfUsers = array(); $cacheOfUsers = array();
$i = 0; $i = 0;
while ($i < min($num, $limit)) while ($i < min($num, $limit)) {
{
$obj = $db->fetch_object($resql); $obj = $db->fetch_object($resql);
$object->id = $obj->rowid; $object->id = $obj->rowid;
@ -197,28 +210,39 @@ while ($i < min($num, $limit))
// Title // Title
print "<td>"; print "<td>";
$linkintern = 1; $linkintern = 1;
if ($linkintern) print '<a href="'.$obj->url.'">'; if ($linkintern) {
print '<a href="'.$obj->url.'">';
}
print $title; print $title;
if ($linkintern) print "</a>"; if ($linkintern) {
print "</a>";
}
print "</td>\n"; print "</td>\n";
// Url // Url
print '<td class="tdoverflowmax200">'; print '<td class="tdoverflowmax200">';
if (!$linkintern) print '<a href="'.$obj->url.'"'.($obj->target ? ' target="newlink" rel="noopener"' : '').'>'; if (!$linkintern) {
print '<a href="'.$obj->url.'"'.($obj->target ? ' target="newlink" rel="noopener"' : '').'>';
}
print $link; print $link;
if (!$linkintern) print '</a>'; if (!$linkintern) {
print '</a>';
}
print "</td>\n"; print "</td>\n";
// Target // Target
print '<td class="center">'; print '<td class="center">';
if ($obj->target == 0) print $langs->trans("BookmarkTargetReplaceWindowShort"); if ($obj->target == 0) {
if ($obj->target == 1) print $langs->trans("BookmarkTargetNewWindowShort"); print $langs->trans("BookmarkTargetReplaceWindowShort");
}
if ($obj->target == 1) {
print $langs->trans("BookmarkTargetNewWindowShort");
}
print "</td>\n"; print "</td>\n";
// Author // Author
print '<td class="center">'; print '<td class="center">';
if ($obj->fk_user) if ($obj->fk_user) {
{
if (empty($cacheOfUsers[$obj->fk_user])) { if (empty($cacheOfUsers[$obj->fk_user])) {
$tmpuser = new User($db); $tmpuser = new User($db);
$tmpuser->fetch($obj->fk_user); $tmpuser->fetch($obj->fk_user);
@ -239,12 +263,10 @@ while ($i < min($num, $limit))
// Actions // Actions
print '<td class="nowrap right">'; print '<td class="nowrap right">';
if ($user->rights->bookmark->creer) if ($user->rights->bookmark->creer) {
{
print '<a class="editfielda" href="'.DOL_URL_ROOT.'/bookmarks/card.php?action=edit&token='.newToken().'&id='.$obj->rowid.'&backtopage='.urlencode($_SERVER["PHP_SELF"]).'">'.img_edit()."</a>"; print '<a class="editfielda" href="'.DOL_URL_ROOT.'/bookmarks/card.php?action=edit&token='.newToken().'&id='.$obj->rowid.'&backtopage='.urlencode($_SERVER["PHP_SELF"]).'">'.img_edit()."</a>";
} }
if ($user->rights->bookmark->supprimer) if ($user->rights->bookmark->supprimer) {
{
print '<a class="marginleftonly" href="'.$_SERVER["PHP_SELF"].'?action=delete&token='.newToken().'&id='.$obj->rowid.'">'.img_delete().'</a>'; print '<a class="marginleftonly" href="'.$_SERVER["PHP_SELF"].'?action=delete&token='.newToken().'&id='.$obj->rowid.'">'.img_delete().'</a>';
} else { } else {
print "&nbsp;"; print "&nbsp;";

View File

@ -1072,7 +1072,7 @@ if ($action == 'create') {
// Status // Status
print '<tr><td>'.$langs->trans("Status").' / '.$langs->trans("Percentage").'</td>'; print '<tr><td>'.$langs->trans("Status").' / '.$langs->trans("Percentage").'</td>';
print '<td>'; print '<td>';
$percent = -1; $percent = GETPOST('complete')!=='' ? GETPOST('complete') : -1;
if (GETPOSTISSET('status')) { if (GETPOSTISSET('status')) {
$percent = GETPOST('status'); $percent = GETPOST('status');
} elseif (GETPOSTISSET('percentage')) { } elseif (GETPOSTISSET('percentage')) {

View File

@ -720,17 +720,17 @@ if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SU
/* /*
* Last actions * Last actions
*/ */
if ($user->rights->agenda->myactions->read) { /*if ($user->rights->agenda->myactions->read) {
show_array_last_actions_done($max); show_array_last_actions_done($max);
} }*/
/* /*
* Actions to do * Actions to do
*/ */
if ($user->rights->agenda->myactions->read) { /*if ($user->rights->agenda->myactions->read) {
show_array_actions_to_do($max); show_array_actions_to_do($max);
} }*/
/* /*

View File

@ -215,8 +215,8 @@ if (empty($reshook)) {
} }
} }
} }
} // Delete proposal } elseif ($action == 'confirm_delete' && $confirm == 'yes' && $usercandelete) {
elseif ($action == 'confirm_delete' && $confirm == 'yes' && $usercandelete) { // Delete proposal
$result = $object->delete($user); $result = $object->delete($user);
if ($result > 0) { if ($result > 0) {
header('Location: '.DOL_URL_ROOT.'/comm/propal/list.php?restore_lastsearch_values=1'); header('Location: '.DOL_URL_ROOT.'/comm/propal/list.php?restore_lastsearch_values=1');
@ -225,8 +225,8 @@ if (empty($reshook)) {
$langs->load("errors"); $langs->load("errors");
setEventMessages($object->error, $object->errors, 'errors'); setEventMessages($object->error, $object->errors, 'errors');
} }
} // Remove line } elseif ($action == 'confirm_deleteline' && $confirm == 'yes' && $usercancreate) {
elseif ($action == 'confirm_deleteline' && $confirm == 'yes' && $usercancreate) { // Remove line
$result = $object->deleteline($lineid); $result = $object->deleteline($lineid);
// reorder lines // reorder lines
if ($result) { if ($result) {
@ -250,8 +250,8 @@ if (empty($reshook)) {
header('Location: '.$_SERVER["PHP_SELF"].'?id='.$object->id); header('Location: '.$_SERVER["PHP_SELF"].'?id='.$object->id);
exit(); exit();
} // Validation } elseif ($action == 'confirm_validate' && $confirm == 'yes' && $usercanvalidate) {
elseif ($action == 'confirm_validate' && $confirm == 'yes' && $usercanvalidate) { // Validation
$idwarehouse = GETPOST('idwarehouse', 'int'); $idwarehouse = GETPOST('idwarehouse', 'int');
$result = $object->valid($user); $result = $object->valid($user);
if ($result >= 0) { if ($result >= 0) {
@ -308,17 +308,17 @@ if (empty($reshook)) {
if ($result < 0) { if ($result < 0) {
dol_print_error($db, $object->error); dol_print_error($db, $object->error);
} }
} // Positionne ref client } elseif ($action == 'setref_client' && $usercancreate) {
elseif ($action == 'setref_client' && $usercancreate) { // Positionne ref client
$result = $object->set_ref_client($user, GETPOST('ref_client')); $result = $object->set_ref_client($user, GETPOST('ref_client'));
if ($result < 0) { if ($result < 0) {
setEventMessages($object->error, $object->errors, 'errors'); setEventMessages($object->error, $object->errors, 'errors');
} }
} // Set incoterm } elseif ($action == 'set_incoterms' && !empty($conf->incoterm->enabled) && $usercancreate) {
elseif ($action == 'set_incoterms' && !empty($conf->incoterm->enabled) && $usercancreate) { // Set incoterm
$result = $object->setIncoterms(GETPOST('incoterm_id', 'int'), GETPOST('location_incoterms', 'alpha')); $result = $object->setIncoterms(GETPOST('incoterm_id', 'int'), GETPOST('location_incoterms', 'alpha'));
} // Create proposal } elseif ($action == 'add' && $usercancreate) {
elseif ($action == 'add' && $usercancreate) { // Create proposal
$object->socid = $socid; $object->socid = $socid;
$object->fetch_thirdparty(); $object->fetch_thirdparty();
@ -554,8 +554,8 @@ if (empty($reshook)) {
setEventMessages($object->error, $object->errors, 'errors'); setEventMessages($object->error, $object->errors, 'errors');
$error++; $error++;
} }
} // Standard creation } else {
else { // Standard creation
$id = $object->create($user); $id = $object->create($user);
} }
@ -616,8 +616,8 @@ if (empty($reshook)) {
} }
} }
} }
} // Classify billed } elseif ($action == 'classifybilled' && $usercanclose) {
elseif ($action == 'classifybilled' && $usercanclose) { // Classify billed
$db->begin(); $db->begin();
$result = $object->cloture($user, $object::STATUS_BILLED, ''); $result = $object->cloture($user, $object::STATUS_BILLED, '');
@ -631,8 +631,8 @@ if (empty($reshook)) {
} else { } else {
$db->rollback(); $db->rollback();
} }
} // Close proposal } elseif ($action == 'confirm_closeas' && $usercanclose && !GETPOST('cancel', 'alpha')) {
elseif ($action == 'confirm_closeas' && $usercanclose && !GETPOST('cancel', 'alpha')) { // Close proposal
if (!(GETPOST('statut', 'int') > 0)) { if (!(GETPOST('statut', 'int') > 0)) {
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("CloseAs")), null, 'errors'); setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("CloseAs")), null, 'errors');
$action = 'closeas'; $action = 'closeas';
@ -654,8 +654,8 @@ if (empty($reshook)) {
} }
} }
} }
} // Reopen proposal } elseif ($action == 'confirm_reopen' && $usercanclose && !GETPOST('cancel', 'alpha')) {
elseif ($action == 'confirm_reopen' && $usercanclose && !GETPOST('cancel', 'alpha')) { // Reopen proposal
// prevent browser refresh from reopening proposal several times // prevent browser refresh from reopening proposal several times
if ($object->statut == Propal::STATUS_SIGNED || $object->statut == Propal::STATUS_NOTSIGNED || $object->statut == Propal::STATUS_BILLED) { if ($object->statut == Propal::STATUS_SIGNED || $object->statut == Propal::STATUS_NOTSIGNED || $object->statut == Propal::STATUS_BILLED) {
$db->begin(); $db->begin();
@ -672,11 +672,11 @@ if (empty($reshook)) {
$db->rollback(); $db->rollback();
} }
} }
} // add lines from objectlinked } elseif ($action == 'import_lines_from_object'
elseif ($action == 'import_lines_from_object'
&& $user->rights->propal->creer && $user->rights->propal->creer
&& $object->statut == Propal::STATUS_DRAFT && $object->statut == Propal::STATUS_DRAFT
) { ) {
// add lines from objectlinked
$fromElement = GETPOST('fromelement'); $fromElement = GETPOST('fromelement');
$fromElementid = GETPOST('fromelementid'); $fromElementid = GETPOST('fromelementid');
$importLines = GETPOST('line_checkbox'); $importLines = GETPOST('line_checkbox');
@ -795,8 +795,8 @@ if (empty($reshook)) {
// Set if we used free entry or predefined product // Set if we used free entry or predefined product
$predef = ''; $predef = '';
$product_desc = (GETPOSTISSET('dp_desc') ? GETPOST('dp_desc', 'restricthtml') : ''); $product_desc = (GETPOSTISSET('dp_desc') ? GETPOST('dp_desc', 'restricthtml') : '');
$price_ht = price2num(GETPOST('price_ht')); $price_ht = price2num(GETPOST('price_ht'), 'MU', 2);
$price_ht_devise = price2num(GETPOST('multicurrency_price_ht')); $price_ht_devise = price2num(GETPOST('multicurrency_price_ht'), 'CU', 2);
$prod_entry_mode = GETPOST('prod_entry_mode'); $prod_entry_mode = GETPOST('prod_entry_mode');
if ($prod_entry_mode == 'free') { if ($prod_entry_mode == 'free') {
$idprod = 0; $idprod = 0;
@ -898,8 +898,8 @@ if (empty($reshook)) {
$tva_npr = $prod->multiprices_recuperableonly[$object->thirdparty->price_level]; $tva_npr = $prod->multiprices_recuperableonly[$object->thirdparty->price_level];
} }
} }
} // If price per customer } elseif (!empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
elseif (!empty($conf->global->PRODUIT_CUSTOMER_PRICES)) { // If price per customer
require_once DOL_DOCUMENT_ROOT.'/product/class/productcustomerprice.class.php'; require_once DOL_DOCUMENT_ROOT.'/product/class/productcustomerprice.class.php';
$prodcustprice = new Productcustomerprice($db); $prodcustprice = new Productcustomerprice($db);
@ -924,8 +924,8 @@ if (empty($reshook)) {
} }
} }
} }
} // If price per quantity } elseif (!empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY)) {
elseif (!empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY)) { // If price per quantity
if ($prod->prices_by_qty[0]) { // yes, this product has some prices per quantity if ($prod->prices_by_qty[0]) { // yes, this product has some prices per quantity
// Search the correct price into loaded array product_price_by_qty using id of array retrieved into POST['pqp']. // Search the correct price into loaded array product_price_by_qty using id of array retrieved into POST['pqp'].
$pqp = GETPOST('pbq', 'int'); $pqp = GETPOST('pbq', 'int');
@ -945,8 +945,8 @@ if (empty($reshook)) {
break; break;
} }
} }
} // If price per quantity and customer } elseif (!empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) {
elseif (!empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) { // If price per quantity and customer
if ($prod->prices_by_qty[$object->thirdparty->price_level]) { // yes, this product has some prices per quantity if ($prod->prices_by_qty[$object->thirdparty->price_level]) { // yes, this product has some prices per quantity
// Search the correct price into loaded array product_price_by_qty using id of array retrieved into POST['pqp']. // Search the correct price into loaded array product_price_by_qty using id of array retrieved into POST['pqp'].
$pqp = GETPOST('pbq', 'int'); $pqp = GETPOST('pbq', 'int');
@ -975,9 +975,9 @@ if (empty($reshook)) {
if (!empty($price_ht) || $price_ht === '0') { if (!empty($price_ht) || $price_ht === '0') {
$pu_ht = price2num($price_ht, 'MU'); $pu_ht = price2num($price_ht, 'MU');
$pu_ttc = price2num($pu_ht * (1 + ($tmpvat / 100)), 'MU'); $pu_ttc = price2num($pu_ht * (1 + ($tmpvat / 100)), 'MU');
} // On reevalue prix selon taux tva car taux tva transaction peut etre different } elseif ($tmpvat != $tmpprodvat) {
// On reevalue prix selon taux tva car taux tva transaction peut etre different
// de ceux du produit par defaut (par exemple si pays different entre vendeur et acheteur). // de ceux du produit par defaut (par exemple si pays different entre vendeur et acheteur).
elseif ($tmpvat != $tmpprodvat) {
if ($price_base_type != 'HT') { if ($price_base_type != 'HT') {
$pu_ht = price2num($pu_ttc / (1 + ($tmpvat / 100)), 'MU'); $pu_ht = price2num($pu_ttc / (1 + ($tmpvat / 100)), 'MU');
} else { } else {
@ -1167,8 +1167,8 @@ if (empty($reshook)) {
} }
} }
} }
} // Update a line within proposal } elseif ($action == 'updateline' && $usercancreate && GETPOST('save')) {
elseif ($action == 'updateline' && $usercancreate && GETPOST('save')) { // Update a line within proposal
// Define info_bits // Define info_bits
$info_bits = 0; $info_bits = 0;
if (preg_match('/\*/', GETPOST('tva_tx'))) { if (preg_match('/\*/', GETPOST('tva_tx'))) {
@ -1183,13 +1183,13 @@ if (empty($reshook)) {
$vat_rate = str_replace('*', '', $vat_rate); $vat_rate = str_replace('*', '', $vat_rate);
$localtax1_rate = get_localtax($vat_rate, 1, $object->thirdparty, $mysoc); $localtax1_rate = get_localtax($vat_rate, 1, $object->thirdparty, $mysoc);
$localtax2_rate = get_localtax($vat_rate, 2, $object->thirdparty, $mysoc); $localtax2_rate = get_localtax($vat_rate, 2, $object->thirdparty, $mysoc);
$pu_ht = GETPOST('price_ht'); $pu_ht = price2num(GETPOST('price_ht'), '', 2);
// Add buying price // Add buying price
$fournprice = price2num(GETPOST('fournprice') ? GETPOST('fournprice') : ''); $fournprice = price2num(GETPOST('fournprice') ? GETPOST('fournprice') : '');
$buyingprice = price2num(GETPOST('buying_price') != '' ? GETPOST('buying_price') : ''); // If buying_price is '0', we muste keep this value $buyingprice = price2num(GETPOST('buying_price') != '' ? GETPOST('buying_price') : ''); // If buying_price is '0', we muste keep this value
$pu_ht_devise = GETPOST('multicurrency_subprice'); $pu_ht_devise = price2num(GETPOST('multicurrency_subprice'), '', 2);
$date_start = dol_mktime(GETPOST('date_starthour'), GETPOST('date_startmin'), GETPOST('date_startsec'), GETPOST('date_startmonth'), GETPOST('date_startday'), GETPOST('date_startyear')); $date_start = dol_mktime(GETPOST('date_starthour'), GETPOST('date_startmin'), GETPOST('date_startsec'), GETPOST('date_startmonth'), GETPOST('date_startday'), GETPOST('date_startyear'));
$date_end = dol_mktime(GETPOST('date_endhour'), GETPOST('date_endmin'), GETPOST('date_endsec'), GETPOST('date_endmonth'), GETPOST('date_endday'), GETPOST('date_endyear')); $date_end = dol_mktime(GETPOST('date_endhour'), GETPOST('date_endmin'), GETPOST('date_endsec'), GETPOST('date_endmonth'), GETPOST('date_endday'), GETPOST('date_endyear'));
@ -1313,36 +1313,36 @@ if (empty($reshook)) {
} elseif ($action == 'classin' && $usercancreate) { } elseif ($action == 'classin' && $usercancreate) {
// Set project // Set project
$object->setProject(GETPOST('projectid', 'int')); $object->setProject(GETPOST('projectid', 'int'));
} // Delivery time } elseif ($action == 'setavailability' && $usercancreate) {
elseif ($action == 'setavailability' && $usercancreate) { // Delivery time
$result = $object->set_availability($user, GETPOST('availability_id', 'int')); $result = $object->set_availability($user, GETPOST('availability_id', 'int'));
} // Origin of the commercial proposal } elseif ($action == 'setdemandreason' && $usercancreate) {
elseif ($action == 'setdemandreason' && $usercancreate) { // Origin of the commercial proposal
$result = $object->set_demand_reason($user, GETPOST('demand_reason_id', 'int')); $result = $object->set_demand_reason($user, GETPOST('demand_reason_id', 'int'));
} // Terms of payment } elseif ($action == 'setconditions' && $usercancreate) {
elseif ($action == 'setconditions' && $usercancreate) { // Terms of payment
$result = $object->setPaymentTerms(GETPOST('cond_reglement_id', 'int')); $result = $object->setPaymentTerms(GETPOST('cond_reglement_id', 'int'));
} elseif ($action == 'setremisepercent' && $usercancreate) { } elseif ($action == 'setremisepercent' && $usercancreate) {
$result = $object->set_remise_percent($user, $_POST['remise_percent']); $result = $object->set_remise_percent($user, $_POST['remise_percent']);
} elseif ($action == 'setremiseabsolue' && $usercancreate) { } elseif ($action == 'setremiseabsolue' && $usercancreate) {
$result = $object->set_remise_absolue($user, $_POST['remise_absolue']); $result = $object->set_remise_absolue($user, $_POST['remise_absolue']);
} // Payment choice } elseif ($action == 'setmode' && $usercancreate) {
elseif ($action == 'setmode' && $usercancreate) { // Payment choice
$result = $object->setPaymentMethods(GETPOST('mode_reglement_id', 'int')); $result = $object->setPaymentMethods(GETPOST('mode_reglement_id', 'int'));
} // Multicurrency Code } elseif ($action == 'setmulticurrencycode' && $usercancreate) {
elseif ($action == 'setmulticurrencycode' && $usercancreate) { // Multicurrency Code
$result = $object->setMulticurrencyCode(GETPOST('multicurrency_code', 'alpha')); $result = $object->setMulticurrencyCode(GETPOST('multicurrency_code', 'alpha'));
} // Multicurrency rate } elseif ($action == 'setmulticurrencyrate' && $usercancreate) {
elseif ($action == 'setmulticurrencyrate' && $usercancreate) { // Multicurrency rate
$result = $object->setMulticurrencyRate(price2num(GETPOST('multicurrency_tx'))); $result = $object->setMulticurrencyRate(price2num(GETPOST('multicurrency_tx')), GETPOST('calculation_mode', 'int'));
} // bank account } elseif ($action == 'setbankaccount' && $usercancreate) {
elseif ($action == 'setbankaccount' && $usercancreate) { // bank account
$result = $object->setBankAccount(GETPOST('fk_account', 'int')); $result = $object->setBankAccount(GETPOST('fk_account', 'int'));
} // shipping method } elseif ($action == 'setshippingmethod' && $usercancreate) {
elseif ($action == 'setshippingmethod' && $usercancreate) { // shipping method
$result = $object->setShippingMethod(GETPOST('shipping_method_id', 'int')); $result = $object->setShippingMethod(GETPOST('shipping_method_id', 'int'));
}// warehouse } elseif ($action == 'setwarehouse' && $usercancreate) {
elseif ($action == 'setwarehouse' && $usercancreate) { // warehouse
$result = $object->setWarehouse(GETPOST('warehouse_id', 'int')); $result = $object->setWarehouse(GETPOST('warehouse_id', 'int'));
} elseif ($action == 'update_extras') { } elseif ($action == 'update_extras') {
$object->oldcopy = dol_clone($object); $object->oldcopy = dol_clone($object);
@ -1383,15 +1383,15 @@ if (empty($reshook)) {
setEventMessages($object->error, $object->errors, 'errors'); setEventMessages($object->error, $object->errors, 'errors');
} }
} }
} // Toggle the status of a contact } elseif ($action == 'swapstatut') {
elseif ($action == 'swapstatut') { // Toggle the status of a contact
if ($object->fetch($id) > 0) { if ($object->fetch($id) > 0) {
$result = $object->swapContactStatus(GETPOST('ligne')); $result = $object->swapContactStatus(GETPOST('ligne'));
} else { } else {
dol_print_error($db); dol_print_error($db);
} }
} // Delete a contact } elseif ($action == 'deletecontact') {
elseif ($action == 'deletecontact') { // Delete a contact
$object->fetch($id); $object->fetch($id);
$result = $object->delete_contact($lineid); $result = $object->delete_contact($lineid);
@ -1570,7 +1570,8 @@ if ($action == 'create') {
console.log("We have changed the company - Reload page"); console.log("We have changed the company - Reload page");
var socid = $(this).val(); var socid = $(this).val();
// reload page // reload page
window.location.href = "'.$_SERVER["PHP_SELF"].'?action=create&socid="+socid+"&ref_client="+$("input[name=ref_client]").val(); $("input[name=action]").val("create");
$("form[name=addprop]").submit();
}); });
}); });
</script>'; </script>';
@ -1907,17 +1908,17 @@ if ($action == 'create') {
} }
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('SetAcceptedRefused'), $text, 'confirm_closeas', $formquestion, '', 1, 250); $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('SetAcceptedRefused'), $text, 'confirm_closeas', $formquestion, '', 1, 250);
} // Confirm delete } elseif ($action == 'delete') {
elseif ($action == 'delete') { // Confirm delete
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('DeleteProp'), $langs->trans('ConfirmDeleteProp', $object->ref), 'confirm_delete', '', 0, 1); $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('DeleteProp'), $langs->trans('ConfirmDeleteProp', $object->ref), 'confirm_delete', '', 0, 1);
} // Confirm reopen } elseif ($action == 'reopen') {
elseif ($action == 'reopen') { // Confirm reopen
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ReOpen'), $langs->trans('ConfirmReOpenProp', $object->ref), 'confirm_reopen', '', 0, 1); $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ReOpen'), $langs->trans('ConfirmReOpenProp', $object->ref), 'confirm_reopen', '', 0, 1);
} // Confirmation delete product/service line } elseif ($action == 'ask_deleteline') {
elseif ($action == 'ask_deleteline') { // Confirmation delete product/service line
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&lineid='.$lineid, $langs->trans('DeleteProductLine'), $langs->trans('ConfirmDeleteProductLine'), 'confirm_deleteline', '', 0, 1); $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&lineid='.$lineid, $langs->trans('DeleteProductLine'), $langs->trans('ConfirmDeleteProductLine'), 'confirm_deleteline', '', 0, 1);
} // Confirm validate proposal } elseif ($action == 'validate') {
elseif ($action == 'validate') { // Confirm validate proposal
$error = 0; $error = 0;
// We verify whether the object is provisionally numbering // We verify whether the object is provisionally numbering
@ -2113,6 +2114,24 @@ if ($action == 'create') {
print '</td>'; print '</td>';
print '</tr>'; print '</tr>';
// Payment mode
print '<tr>';
print '<td class="valuefield">';
print '<table class="nobordernopadding" width="100%"><tr><td>';
print $langs->trans('PaymentMode');
print '</td>';
if ($action != 'editmode' && $object->statut == Propal::STATUS_DRAFT && $usercancreate) {
print '<td class="right"><a class="editfielda" href="'.$_SERVER["PHP_SELF"].'?action=editmode&amp;id='.$object->id.'">'.img_edit($langs->transnoentitiesnoconv('SetMode'), 1).'</a></td>';
}
print '</tr></table>';
print '</td><td class="valuefieldcreate">';
if ($object->statut == Propal::STATUS_DRAFT && $action == 'editmode' && $usercancreate) {
$form->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$object->id, $object->mode_reglement_id, 'mode_reglement_id', 'CRDT', 1, 1);
} else {
$form->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$object->id, $object->mode_reglement_id, 'none');
}
print '</td></tr>';
// Delivery date // Delivery date
$langs->load('deliveries'); $langs->load('deliveries');
print '<tr><td>'; print '<tr><td>';
@ -2200,24 +2219,6 @@ if ($action == 'create') {
print '</td>'; print '</td>';
print '</tr>'; print '</tr>';
// Payment mode
print '<tr>';
print '<td class="valuefield">';
print '<table class="nobordernopadding" width="100%"><tr><td>';
print $langs->trans('PaymentMode');
print '</td>';
if ($action != 'editmode' && $object->statut == Propal::STATUS_DRAFT && $usercancreate) {
print '<td class="right"><a class="editfielda" href="'.$_SERVER["PHP_SELF"].'?action=editmode&amp;id='.$object->id.'">'.img_edit($langs->transnoentitiesnoconv('SetMode'), 1).'</a></td>';
}
print '</tr></table>';
print '</td><td class="valuefieldcreate">';
if ($object->statut == Propal::STATUS_DRAFT && $action == 'editmode' && $usercancreate) {
$form->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$object->id, $object->mode_reglement_id, 'mode_reglement_id', 'CRDT', 1, 1);
} else {
$form->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$object->id, $object->mode_reglement_id, 'none');
}
print '</td></tr>';
// Multicurrency // Multicurrency
if (!empty($conf->multicurrency->enabled)) { if (!empty($conf->multicurrency->enabled)) {
// Multicurrency code // Multicurrency code
@ -2350,7 +2351,7 @@ if ($action == 'create') {
print '<table class="border tableforfield centpercent">'; print '<table class="border tableforfield centpercent">';
if (!empty($conf->multicurrency->enabled) && ($object->multicurrency_code != $conf->currency)) { if (!empty($conf->multicurrency->enabled) && ($object->multicurrency_code && $object->multicurrency_code != $conf->currency)) {
// Multicurrency Amount HT // Multicurrency Amount HT
print '<tr><td class="titlefieldmiddle">'.$form->editfieldkey('MulticurrencyAmountHT', 'multicurrency_total_ht', '', $object, 0).'</td>'; print '<tr><td class="titlefieldmiddle">'.$form->editfieldkey('MulticurrencyAmountHT', 'multicurrency_total_ht', '', $object, 0).'</td>';
print '<td class="nowrap">'.price($object->multicurrency_total_ht, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).'</td>'; print '<td class="nowrap">'.price($object->multicurrency_total_ht, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).'</td>';

View File

@ -1651,7 +1651,8 @@ class Propal extends CommonObject
dol_syslog(get_class($this)."::update", LOG_DEBUG); dol_syslog(get_class($this)."::update", LOG_DEBUG);
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if (!$resql) { if (!$resql) {
$error++; $this->errors[] = "Error ".$this->db->lasterror(); $error++;
$this->errors[] = "Error ".$this->db->lasterror();
} }
if (!$error) { if (!$error) {
@ -1891,7 +1892,8 @@ class Propal extends CommonObject
$sql .= " WHERE filename LIKE '".$this->db->escape($this->ref)."%' AND filepath = 'propale/".$this->db->escape($this->ref)."' and entity = ".$conf->entity; $sql .= " WHERE filename LIKE '".$this->db->escape($this->ref)."%' AND filepath = 'propale/".$this->db->escape($this->ref)."' and entity = ".$conf->entity;
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if (!$resql) { if (!$resql) {
$error++; $this->error = $this->db->lasterror(); $error++;
$this->error = $this->db->lasterror();
} }
// We rename directory ($this->ref = old ref, $num = new ref) in order not to lose the attachments // We rename directory ($this->ref = old ref, $num = new ref) in order not to lose the attachments
@ -2457,7 +2459,8 @@ class Propal extends CommonObject
dol_syslog(get_class($this)."::reopen", LOG_DEBUG); dol_syslog(get_class($this)."::reopen", LOG_DEBUG);
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if (!$resql) { if (!$resql) {
$error++; $this->errors[] = "Error ".$this->db->lasterror(); $error++;
$this->errors[] = "Error ".$this->db->lasterror();
} }
if (!$error) { if (!$error) {
if (!$notrigger) { if (!$notrigger) {

View File

@ -95,6 +95,7 @@ $search_availability = GETPOST('search_availability', 'int');
$search_categ_cus = GETPOST("search_categ_cus", 'int'); $search_categ_cus = GETPOST("search_categ_cus", 'int');
$search_fk_cond_reglement = GETPOST("search_fk_cond_reglement", 'int'); $search_fk_cond_reglement = GETPOST("search_fk_cond_reglement", 'int');
$search_fk_shipping_method = GETPOST("search_fk_shipping_method", 'int'); $search_fk_shipping_method = GETPOST("search_fk_shipping_method", 'int');
$search_fk_input_reason = GETPOST("search_fk_input_reason", 'int');
$search_fk_mode_reglement = GETPOST("search_fk_mode_reglement", 'int'); $search_fk_mode_reglement = GETPOST("search_fk_mode_reglement", 'int');
$search_btn = GETPOST('button_search', 'alpha'); $search_btn = GETPOST('button_search', 'alpha');
$search_remove_btn = GETPOST('button_removefilter', 'alpha'); $search_remove_btn = GETPOST('button_removefilter', 'alpha');
@ -189,6 +190,7 @@ $arrayfields = array(
'p.date_livraison'=>array('label'=>"DeliveryDate", 'checked'=>0), 'p.date_livraison'=>array('label'=>"DeliveryDate", 'checked'=>0),
'ava.rowid'=>array('label'=>"AvailabilityPeriod", 'checked'=>0), 'ava.rowid'=>array('label'=>"AvailabilityPeriod", 'checked'=>0),
'p.fk_shipping_method'=>array('label'=>"SendingMethod", 'checked'=>0, 'enabled'=>!empty($conf->expedition->enabled)), 'p.fk_shipping_method'=>array('label'=>"SendingMethod", 'checked'=>0, 'enabled'=>!empty($conf->expedition->enabled)),
'p.fk_input_reason'=>array('label'=>"Origin", 'checked'=>0, 'enabled'=>1),
'p.fk_cond_reglement'=>array('label'=>"PaymentConditionsShort", 'checked'=>0), 'p.fk_cond_reglement'=>array('label'=>"PaymentConditionsShort", 'checked'=>0),
'p.fk_mode_reglement'=>array('label'=>"PaymentMode", 'checked'=>0), 'p.fk_mode_reglement'=>array('label'=>"PaymentMode", 'checked'=>0),
'p.total_ht'=>array('label'=>"AmountHT", 'checked'=>1), 'p.total_ht'=>array('label'=>"AmountHT", 'checked'=>1),
@ -222,7 +224,8 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_array_fields.tpl.php';
*/ */
if (GETPOST('cancel', 'alpha')) { if (GETPOST('cancel', 'alpha')) {
$action = 'list'; $massaction = ''; $action = 'list';
$massaction = '';
} }
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') {
$massaction = ''; $massaction = '';
@ -277,6 +280,7 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x'
$search_categ_cus = 0; $search_categ_cus = 0;
$search_fk_cond_reglement = ''; $search_fk_cond_reglement = '';
$search_fk_shipping_method = ''; $search_fk_shipping_method = '';
$search_fk_input_reason = '';
$search_fk_mode_reglement = ''; $search_fk_mode_reglement = '';
} }
if ($object_statut != '') { if ($object_statut != '') {
@ -414,7 +418,7 @@ $sql .= ' p.rowid, p.entity, p.note_private, p.total_ht, p.total_tva, p.total_tt
$sql .= ' p.fk_multicurrency, p.multicurrency_code, p.multicurrency_tx, p.multicurrency_total_ht, p.multicurrency_total_tva, p.multicurrency_total_ttc,'; $sql .= ' p.fk_multicurrency, p.multicurrency_code, p.multicurrency_tx, p.multicurrency_total_ht, p.multicurrency_total_tva, p.multicurrency_total_ttc,';
$sql .= ' p.datec as date_creation, p.tms as date_update, p.date_cloture as date_cloture,'; $sql .= ' p.datec as date_creation, p.tms as date_update, p.date_cloture as date_cloture,';
$sql .= ' p.note_public, p.note_private,'; $sql .= ' p.note_public, p.note_private,';
$sql .= ' p.fk_cond_reglement,p.fk_mode_reglement,p.fk_shipping_method,'; $sql .= ' p.fk_cond_reglement,p.fk_mode_reglement,p.fk_shipping_method,p.fk_input_reason,';
$sql .= " pr.rowid as project_id, pr.ref as project_ref, pr.title as project_label,"; $sql .= " pr.rowid as project_id, pr.ref as project_ref, pr.title as project_label,";
$sql .= ' u.login'; $sql .= ' u.login';
if (!$user->rights->societe->client->voir && !$socid) { if (!$user->rights->societe->client->voir && !$socid) {
@ -547,6 +551,9 @@ if ($search_fk_cond_reglement > 0) {
if ($search_fk_shipping_method > 0) { if ($search_fk_shipping_method > 0) {
$sql .= " AND p.fk_shipping_method = ".$db->escape($search_fk_shipping_method); $sql .= " AND p.fk_shipping_method = ".$db->escape($search_fk_shipping_method);
} }
if ($search_fk_input_reason > 0) {
$sql .= " AND p.fk_input_reason = ".$db->escape($search_fk_input_reason);
}
if ($search_fk_mode_reglement > 0) { if ($search_fk_mode_reglement > 0) {
$sql .= " AND p.fk_mode_reglement = ".$db->escape($search_fk_mode_reglement); $sql .= " AND p.fk_mode_reglement = ".$db->escape($search_fk_mode_reglement);
} }
@ -735,6 +742,9 @@ if ($resql) {
if ($search_fk_shipping_method > 0) { if ($search_fk_shipping_method > 0) {
$param .= '&search_fk_shipping_method='.$search_fk_shipping_method; $param .= '&search_fk_shipping_method='.$search_fk_shipping_method;
} }
if ($search_fk_input_reason > 0) {
$param .= '&search_fk_input_reason='.$search_fk_input_reason;
}
if ($search_fk_mode_reglement > 0) { if ($search_fk_mode_reglement > 0) {
$param .= '&search_fk_mode_reglement='.$search_fk_mode_reglement; $param .= '&search_fk_mode_reglement='.$search_fk_mode_reglement;
} }
@ -983,6 +993,12 @@ if ($resql) {
$form->selectShippingMethod($search_fk_shipping_method, 'search_fk_shipping_method', '', 1, '', 1); $form->selectShippingMethod($search_fk_shipping_method, 'search_fk_shipping_method', '', 1, '', 1);
print '</td>'; print '</td>';
} }
// Source - Input reason
if (!empty($arrayfields['p.fk_input_reason']['checked'])) {
print '<td class="liste_titre">';
$form->selectInputReason($search_fk_input_reason, 'search_fk_input_reason', '', 1, 'maxwidth125', 1);
print '</td>';
}
// Payment term // Payment term
if (!empty($arrayfields['p.fk_cond_reglement']['checked'])) { if (!empty($arrayfields['p.fk_cond_reglement']['checked'])) {
print '<td class="liste_titre">'; print '<td class="liste_titre">';
@ -1169,6 +1185,9 @@ if ($resql) {
if (!empty($arrayfields['p.fk_shipping_method']['checked'])) { if (!empty($arrayfields['p.fk_shipping_method']['checked'])) {
print_liste_field_titre($arrayfields['p.fk_shipping_method']['label'], $_SERVER["PHP_SELF"], "p.fk_shipping_method", "", $param, '', $sortfield, $sortorder); print_liste_field_titre($arrayfields['p.fk_shipping_method']['label'], $_SERVER["PHP_SELF"], "p.fk_shipping_method", "", $param, '', $sortfield, $sortorder);
} }
if (!empty($arrayfields['p.fk_input_reason']['checked'])) {
print_liste_field_titre($arrayfields['p.fk_input_reason']['label'], $_SERVER["PHP_SELF"], "p.fk_input_reason", "", $param, '', $sortfield, $sortorder);
}
if (!empty($arrayfields['p.fk_cond_reglement']['checked'])) { if (!empty($arrayfields['p.fk_cond_reglement']['checked'])) {
print_liste_field_titre($arrayfields['p.fk_cond_reglement']['label'], $_SERVER["PHP_SELF"], "p.fk_cond_reglement", "", $param, '', $sortfield, $sortorder); print_liste_field_titre($arrayfields['p.fk_cond_reglement']['label'], $_SERVER["PHP_SELF"], "p.fk_cond_reglement", "", $param, '', $sortfield, $sortorder);
} }
@ -1182,7 +1201,7 @@ if ($resql) {
print_liste_field_titre($arrayfields['p.total_tva']['label'], $_SERVER["PHP_SELF"], 'p.total_tva', '', $param, 'class="right"', $sortfield, $sortorder); print_liste_field_titre($arrayfields['p.total_tva']['label'], $_SERVER["PHP_SELF"], 'p.total_tva', '', $param, 'class="right"', $sortfield, $sortorder);
} }
if (!empty($arrayfields['p.total_ttc']['checked'])) { if (!empty($arrayfields['p.total_ttc']['checked'])) {
print_liste_field_titre($arrayfields['p.total_ttc']['label'], $_SERVER["PHP_SELF"], 'p.total', '', $param, 'class="right"', $sortfield, $sortorder); print_liste_field_titre($arrayfields['p.total_ttc']['label'], $_SERVER["PHP_SELF"], 'p.total_ttc', '', $param, 'class="right"', $sortfield, $sortorder);
} }
if (!empty($arrayfields['p.total_ht_invoiced']['checked'])) { if (!empty($arrayfields['p.total_ht_invoiced']['checked'])) {
print_liste_field_titre($arrayfields['p.total_ht_invoiced']['label'], $_SERVER["PHP_SELF"], '', '', $param, 'class="right"', $sortfield, $sortorder); print_liste_field_titre($arrayfields['p.total_ht_invoiced']['label'], $_SERVER["PHP_SELF"], '', '', $param, 'class="right"', $sortfield, $sortorder);
@ -1473,7 +1492,7 @@ if ($resql) {
$totalarray['nbfield']++; $totalarray['nbfield']++;
} }
} }
//Shipping Method // Shipping Method
if (!empty($arrayfields['p.fk_shipping_method']['checked'])) { if (!empty($arrayfields['p.fk_shipping_method']['checked'])) {
print '<td>'; print '<td>';
$form->formSelectShippingMethod('', $obj->fk_shipping_method, 'none', 1); $form->formSelectShippingMethod('', $obj->fk_shipping_method, 'none', 1);
@ -1482,6 +1501,17 @@ if ($resql) {
$totalarray['nbfield']++; $totalarray['nbfield']++;
} }
} }
// Source - input reason
if (!empty($arrayfields['p.fk_input_reason']['checked'])) {
print '<td class="tdoverflowmax125" title="'.dol_escape_htmltag($form->cache_demand_reason[$obj->fk_input_reason]['label']).'">';
if ($obj->fk_input_reason > 0) {
print $form->cache_demand_reason[$obj->fk_input_reason]['label'];
}
print '</td>';
if (!$i) {
$totalarray['nbfield']++;
}
}
// Payment terms // Payment terms
if (!empty($arrayfields['p.fk_cond_reglement']['checked'])) { if (!empty($arrayfields['p.fk_cond_reglement']['checked'])) {
print '<td>'; print '<td>';

View File

@ -123,7 +123,8 @@ $px1 = new DolGraph();
$mesg = $px1->isGraphKo(); $mesg = $px1->isGraphKo();
if (!$mesg) { if (!$mesg) {
$px1->SetData($data); $px1->SetData($data);
$i = $startyear; $legend = array(); $i = $startyear;
$legend = array();
while ($i <= $endyear) { while ($i <= $endyear) {
$legend[] = $i; $legend[] = $i;
$i++; $i++;
@ -158,7 +159,8 @@ $px2 = new DolGraph();
$mesg = $px2->isGraphKo(); $mesg = $px2->isGraphKo();
if (!$mesg) { if (!$mesg) {
$px2->SetData($data); $px2->SetData($data);
$i = $startyear; $legend = array(); $i = $startyear;
$legend = array();
while ($i <= $endyear) { while ($i <= $endyear) {
$legend[] = $i; $legend[] = $i;
$i++; $i++;
@ -202,7 +204,8 @@ $px3 = new DolGraph();
$mesg = $px3->isGraphKo(); $mesg = $px3->isGraphKo();
if (!$mesg) { if (!$mesg) {
$px3->SetData($data); $px3->SetData($data);
$i = $startyear; $legend = array(); $i = $startyear;
$legend = array();
while ($i <= $endyear) { while ($i <= $endyear) {
$legend[] = $i; $legend[] = $i;
$i++; $i++;

View File

@ -490,7 +490,7 @@ if (empty($reshook)) {
setEventMessages($object->error, $object->errors, 'errors'); setEventMessages($object->error, $object->errors, 'errors');
} }
} elseif ($action == 'classifyunbilled' && $usercancreate) { } elseif ($action == 'classifyunbilled' && $usercancreate) {
$ret = $object->classifyUnBilled(); $ret = $object->classifyUnBilled($user);
if ($ret < 0) { if ($ret < 0) {
setEventMessages($object->error, $object->errors, 'errors'); setEventMessages($object->error, $object->errors, 'errors');
} }
@ -540,7 +540,7 @@ if (empty($reshook)) {
$result = $object->setMulticurrencyCode(GETPOST('multicurrency_code', 'alpha')); $result = $object->setMulticurrencyCode(GETPOST('multicurrency_code', 'alpha'));
} elseif ($action == 'setmulticurrencyrate' && $usercancreate) { } elseif ($action == 'setmulticurrencyrate' && $usercancreate) {
// Multicurrency rate // Multicurrency rate
$result = $object->setMulticurrencyRate(price2num(GETPOST('multicurrency_tx'))); $result = $object->setMulticurrencyRate(price2num(GETPOST('multicurrency_tx')), GETPOST('calculation_mode', 'int'));
} elseif ($action == 'setavailability' && $usercancreate) { } elseif ($action == 'setavailability' && $usercancreate) {
$result = $object->availability(GETPOST('availability_id')); $result = $object->availability(GETPOST('availability_id'));
if ($result < 0) { if ($result < 0) {
@ -616,8 +616,8 @@ if (empty($reshook)) {
// Set if we used free entry or predefined product // Set if we used free entry or predefined product
$predef = ''; $predef = '';
$product_desc = (GETPOSTISSET('dp_desc') ? GETPOST('dp_desc', 'restricthtml') : ''); $product_desc = (GETPOSTISSET('dp_desc') ? GETPOST('dp_desc', 'restricthtml') : '');
$price_ht = price2num(GETPOST('price_ht'), 'MU'); $price_ht = price2num(GETPOST('price_ht'), 'MU', 2);
$price_ht_devise = price2num(GETPOST('multicurrency_price_ht'), 'CU'); $price_ht_devise = price2num(GETPOST('multicurrency_price_ht'), 'CU', 2);
$prod_entry_mode = GETPOST('prod_entry_mode'); $prod_entry_mode = GETPOST('prod_entry_mode');
if ($prod_entry_mode == 'free') { if ($prod_entry_mode == 'free') {
$idprod = 0; $idprod = 0;
@ -984,9 +984,9 @@ if (empty($reshook)) {
$date_start = dol_mktime(GETPOST('date_starthour'), GETPOST('date_startmin'), GETPOST('date_startsec'), GETPOST('date_startmonth'), GETPOST('date_startday'), GETPOST('date_startyear')); $date_start = dol_mktime(GETPOST('date_starthour'), GETPOST('date_startmin'), GETPOST('date_startsec'), GETPOST('date_startmonth'), GETPOST('date_startday'), GETPOST('date_startyear'));
$date_end = dol_mktime(GETPOST('date_endhour'), GETPOST('date_endmin'), GETPOST('date_endsec'), GETPOST('date_endmonth'), GETPOST('date_endday'), GETPOST('date_endyear')); $date_end = dol_mktime(GETPOST('date_endhour'), GETPOST('date_endmin'), GETPOST('date_endsec'), GETPOST('date_endmonth'), GETPOST('date_endday'), GETPOST('date_endyear'));
$description = dol_htmlcleanlastbr(GETPOST('product_desc', 'restricthtml')); $description = dol_htmlcleanlastbr(GETPOST('product_desc', 'restricthtml'));
$pu_ht = GETPOST('price_ht'); $pu_ht = price2num(GETPOST('price_ht'), '', 2);
$vat_rate = (GETPOST('tva_tx') ?GETPOST('tva_tx') : 0); $vat_rate = (GETPOST('tva_tx') ?GETPOST('tva_tx') : 0);
$pu_ht_devise = GETPOST('multicurrency_subprice'); $pu_ht_devise = price2num(GETPOST('multicurrency_subprice'), '', 2);
// Define info_bits // Define info_bits
$info_bits = 0; $info_bits = 0;
@ -1580,7 +1580,8 @@ if ($action == 'create' && $usercancreate) {
console.log("We have changed the company - Reload page"); console.log("We have changed the company - Reload page");
var socid = $(this).val(); var socid = $(this).val();
// reload page // reload page
window.location.href = "'.$_SERVER["PHP_SELF"].'?action=create&socid="+socid+"&ref_client="+$("input[name=ref_client]").val(); $("input[name=action]").val("create");
$("form[name=crea_commande]").submit();
}); });
}); });
</script>'; </script>';

View File

@ -2962,11 +2962,12 @@ class Commande extends CommonOrder
/** /**
* Classify the order as not invoiced * Classify the order as not invoiced
* *
* @param User $user Object user making the change
* @param int $notrigger 1=Does not execute triggers, 0=execute triggers
* @return int <0 if ko, >0 if ok * @return int <0 if ko, >0 if ok
*/ */
public function classifyUnBilled() public function classifyUnBilled(User $user, $notrigger = 0)
{ {
global $conf, $user, $langs;
$error = 0; $error = 0;
$this->db->begin(); $this->db->begin();
@ -2981,12 +2982,14 @@ class Commande extends CommonOrder
$this->billed = 1; $this->billed = 1;
} }
if (!$notrigger && empty($error)) {
// Call trigger // Call trigger
$result = $this->call_trigger('ORDER_CLASSIFY_UNBILLED', $user); $result = $this->call_trigger('ORDER_CLASSIFY_UNBILLED', $user);
if ($result < 0) { if ($result < 0) {
$error++; $error++;
} }
// End call triggers // End call triggers
}
if (!$error) { if (!$error) {
$this->billed = 0; $this->billed = 0;

View File

@ -186,14 +186,14 @@ if ($id > 0 || !empty($ref)) {
$permission = $user->rights->banque->modifier; $permission = $user->rights->banque->modifier;
$permtoedit = $user->rights->banque->modifier; $permtoedit = $user->rights->banque->modifier;
$param = '&id='.$object->id.'&num='.urlencode($numref); $param = '&id='.$object->id.'&num='.urlencode($numref);
$moreparam = '&num='.urlencode($numref); ; $moreparam = '&num='.urlencode($numref);
$relativepathwithnofile = $id."/statement/".dol_sanitizeFileName($numref)."/"; $relativepathwithnofile = $id."/statement/".dol_sanitizeFileName($numref)."/";
include_once DOL_DOCUMENT_ROOT.'/core/tpl/document_actions_post_headers.tpl.php'; include_once DOL_DOCUMENT_ROOT.'/core/tpl/document_actions_post_headers.tpl.php';
} else { } else {
dol_print_error($db); dol_print_error($db);
} }
} else { } else {
Header('Location: index.php'); header('Location: index.php');
exit; exit;
} }

View File

@ -182,7 +182,8 @@ $arrayfields = dol_sort_array($arrayfields, 'position');
*/ */
if (GETPOST('cancel', 'alpha')) { if (GETPOST('cancel', 'alpha')) {
$action = 'list'; $massaction = ''; $action = 'list';
$massaction = '';
} }
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') {
$massaction = ''; $massaction = '';
@ -1188,8 +1189,8 @@ if ($resql) {
// If sort is desc,desc,desc then total of previous date + amount is the balancebefore of the previous line before the line to show // If sort is desc,desc,desc then total of previous date + amount is the balancebefore of the previous line before the line to show
if ($sortfield == 'b.datev,b.dateo,b.rowid' && $sortorder == 'desc,desc,desc') { if ($sortfield == 'b.datev,b.dateo,b.rowid' && $sortorder == 'desc,desc,desc') {
$balancebefore = $objforbalance->previoustotal + ($sign * $objp->amount); $balancebefore = $objforbalance->previoustotal + ($sign * $objp->amount);
} // If sort is asc,asc,asc then total of previous date is balance of line before the next line to show } else {
else { // If sort is asc,asc,asc then total of previous date is balance of line before the next line to show
$balance = $objforbalance->previoustotal; $balance = $objforbalance->previoustotal;
} }
} }

View File

@ -72,7 +72,9 @@ $sql .= " ORDER BY c.label";
$result = $db->query($sql); $result = $db->query($sql);
if ($result) { if ($result) {
$num = $db->num_rows($result); $num = $db->num_rows($result);
$i = 0; $total = 0; $totalnb = 0; $i = 0;
$total = 0;
$totalnb = 0;
while ($i < $num) { while ($i < $num) {
$objp = $db->fetch_object($result); $objp = $db->fetch_object($result);

View File

@ -126,7 +126,8 @@ $sql .= " ORDER BY rowid";
$result = $db->query($sql); $result = $db->query($sql);
if ($result) { if ($result) {
$num = $db->num_rows($result); $num = $db->num_rows($result);
$i = 0; $total = 0; $i = 0;
$total = 0;
while ($i < $num) { while ($i < $num) {
$objp = $db->fetch_object($result); $objp = $db->fetch_object($result);

View File

@ -1,5 +1,5 @@
<?php <?php
/* Copyright (C) 2017-2019 Alexandre Spangaro <aspangaro@open-dsi.fr> /* Copyright (C) 2017-2021 Alexandre Spangaro <aspangaro@open-dsi.fr>
* Copyright (C) 2018-2020 Frédéric France <frederic.france@netlogic.fr> * Copyright (C) 2018-2020 Frédéric France <frederic.france@netlogic.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
@ -70,6 +70,8 @@ class PaymentVarious extends CommonObject
public $amount; public $amount;
public $type_payment; public $type_payment;
public $num_payment; public $num_payment;
public $chqemetteur;
public $chqbank;
public $category_transaction; public $category_transaction;
/** /**
@ -504,8 +506,8 @@ class PaymentVarious extends CommonObject
$this->num_payment, $this->num_payment,
($this->category_transaction > 0 ? $this->category_transaction : 0), ($this->category_transaction > 0 ? $this->category_transaction : 0),
$user, $user,
'', $this->chqemetteur,
'', $this->chqbank,
'', '',
$this->datev $this->datev
); );

View File

@ -795,13 +795,17 @@ print '</table>';
// Graphs // Graphs
if ($mode == 'standard') { if ($mode == 'standard') {
$prevyear = $year; $nextyear = $year; $prevyear = $year;
$prevmonth = $month - 1; $nextmonth = $month + 1; $nextyear = $year;
$prevmonth = $month - 1;
$nextmonth = $month + 1;
if ($prevmonth < 1) { if ($prevmonth < 1) {
$prevmonth = 12; $prevyear--; $prevmonth = 12;
$prevyear--;
} }
if ($nextmonth > 12) { if ($nextmonth > 12) {
$nextmonth = 1; $nextyear++; $nextmonth = 1;
$nextyear++;
} }
// For month // For month
@ -818,7 +822,8 @@ if ($mode == 'standard') {
print '</div>'; print '</div>';
// For year // For year
$prevyear = $year - 1; $nextyear = $year + 1; $prevyear = $year - 1;
$nextyear = $year + 1;
$link = "<a href='".$_SERVER["PHP_SELF"]."?account=".$account.(GETPOST("option") != 'all' ? '' : '&option=all')."&year=".($prevyear)."'>".img_previous('', 'class="valignbottom"')."</a> ".$langs->trans("Year")." <a href='".$_SERVER["PHP_SELF"]."?account=".$account.(GETPOST("option") != 'all' ? '' : '&option=all')."&year=".($nextyear)."'>".img_next('', 'class="valignbottom"')."</a>"; $link = "<a href='".$_SERVER["PHP_SELF"]."?account=".$account.(GETPOST("option") != 'all' ? '' : '&option=all')."&year=".($prevyear)."'>".img_previous('', 'class="valignbottom"')."</a> ".$langs->trans("Year")." <a href='".$_SERVER["PHP_SELF"]."?account=".$account.(GETPOST("option") != 'all' ? '' : '&option=all')."&year=".($nextyear)."'>".img_next('', 'class="valignbottom"')."</a>";
print '<div class="right clearboth margintoponly">'.$link.'</div>'; print '<div class="right clearboth margintoponly">'.$link.'</div>';

View File

@ -272,7 +272,8 @@ $sql .= " WHERE rowid=".$rowid;
$sql .= " ORDER BY dateo ASC"; $sql .= " ORDER BY dateo ASC";
$result = $db->query($sql); $result = $db->query($sql);
if ($result) { if ($result) {
$i = 0; $total = 0; $i = 0;
$total = 0;
if ($db->num_rows($result)) { if ($db->num_rows($result)) {
$objp = $db->fetch_object($result); $objp = $db->fetch_object($result);

View File

@ -134,7 +134,8 @@ $arrayfields = dol_sort_array($arrayfields, 'position');
*/ */
if (GETPOST('cancel', 'alpha')) { if (GETPOST('cancel', 'alpha')) {
$action = 'list'; $massaction = ''; $action = 'list';
$massaction = '';
} }
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') {
$massaction = ''; $massaction = '';
@ -490,7 +491,10 @@ print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $
print "</tr>\n"; print "</tr>\n";
$totalarray = array(); $found = 0; $i = 0; $lastcurrencycode = ''; $totalarray = array();
$found = 0;
$i = 0;
$lastcurrencycode = '';
foreach ($accounts as $key => $type) { foreach ($accounts as $key => $type) {
if ($i >= $limit) { if ($i >= $limit) {

View File

@ -49,7 +49,7 @@ $accountid = GETPOST("accountid") > 0 ? GETPOST("accountid", "int") : 0;
$label = GETPOST("label", "alpha"); $label = GETPOST("label", "alpha");
$sens = GETPOST("sens", "int"); $sens = GETPOST("sens", "int");
$amount = price2num(GETPOST("amount", "alpha")); $amount = price2num(GETPOST("amount", "alpha"));
$paymenttype = GETPOST("paymenttype", "int"); $paymenttype = GETPOST("paymenttype", "aZ09");
$accountancy_code = GETPOST("accountancy_code", "alpha"); $accountancy_code = GETPOST("accountancy_code", "alpha");
$projectid = (GETPOST('projectid', 'int') ? GETPOST('projectid', 'int') : GETPOST('fk_project', 'int')); $projectid = (GETPOST('projectid', 'int') ? GETPOST('projectid', 'int') : GETPOST('fk_project', 'int'));
if (!empty($conf->accounting->enabled) && !empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX)) { if (!empty($conf->accounting->enabled) && !empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX)) {
@ -116,8 +116,10 @@ if (empty($reshook)) {
$object->amount = price2num(GETPOST("amount", 'alpha')); $object->amount = price2num(GETPOST("amount", 'alpha'));
$object->label = GETPOST("label", 'restricthtml'); $object->label = GETPOST("label", 'restricthtml');
$object->note = GETPOST("note", 'restricthtml'); $object->note = GETPOST("note", 'restricthtml');
$object->type_payment = GETPOST("paymenttype", 'int') > 0 ? GETPOST("paymenttype", "int") : 0; $object->type_payment = dol_getIdFromCode($db, GETPOST('paymenttype'), 'c_paiement', 'code', 'id', 1);
$object->num_payment = GETPOST("num_payment", 'alpha'); $object->num_payment = GETPOST("num_payment", 'alpha');
$object->chqemetteur = GETPOST("chqemetteur", 'alpha');
$object->chqbank = GETPOST("chqbank", 'alpha');
$object->fk_user_author = $user->id; $object->fk_user_author = $user->id;
$object->category_transaction = GETPOST("category_transaction", 'alpha'); $object->category_transaction = GETPOST("category_transaction", 'alpha');
@ -338,6 +340,42 @@ foreach ($bankcateg->fetchAll() as $bankcategory) {
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
if ($action == 'create') { if ($action == 'create') {
// Update fields properties in realtime
if (!empty($conf->use_javascript_ajax)) {
print "\n".'<script type="text/javascript" language="javascript">';
print '$(document).ready(function () {
setPaymentType();
$("#selectpaymenttype").change(function() {
setPaymentType();
});
function setPaymentType()
{
var code = $("#selectpaymenttype option:selected").val();
if (code == \'CHQ\' || code == \'VIR\')
{
if (code == \'CHQ\')
{
$(\'.fieldrequireddyn\').addClass(\'fieldrequired\');
}
if ($(\'#fieldchqemetteur\').val() == \'\')
{
var emetteur = jQuery(\'#thirdpartylabel\').val();
$(\'#fieldchqemetteur\').val(emetteur);
}
}
else
{
$(\'.fieldrequireddyn\').removeClass(\'fieldrequired\');
$(\'#fieldchqemetteur\').val(\'\');
}
}
';
print ' });'."\n";
print ' </script>'."\n";
}
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">'; print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
print '<input type="hidden" name="token" value="'.newToken().'">'; print '<input type="hidden" name="token" value="'.newToken().'">';
print '<input type="hidden" name="backtopage" value="'.$backtopage.'">'; print '<input type="hidden" name="backtopage" value="'.$backtopage.'">';
@ -382,18 +420,29 @@ if ($action == 'create') {
} }
// Type payment // Type payment
print '<tr><td>'; print '<tr><td><span class="fieldrequired">'.$langs->trans('PaymentMode').'</span></td><td>';
print $form->editfieldkey('PaymentMode', 'selectpaymenttype', '', $object, 0, 'string', '', 1).'</td><td>'; $form->select_types_paiements($paymenttype, 'paymenttype', '', 2);
$form->select_types_paiements($paymenttype, "paymenttype"); print "</td>\n";
print '</td></tr>'; print '</tr>';
// Number // Number
if (!empty($conf->banque->enabled)) { if (!empty($conf->banque->enabled)) {
// Number
print '<tr><td><label for="num_payment">'.$langs->trans('Numero'); print '<tr><td><label for="num_payment">'.$langs->trans('Numero');
print ' <em>('.$langs->trans("ChequeOrTransferNumber").')</em>'; print ' <em>('.$langs->trans("ChequeOrTransferNumber").')</em>';
print '</label></td>'; print '</label></td>';
print '<td><input name="num_payment" class="maxwidth150onsmartphone" id="num_payment" type="text" value="'.GETPOST("num_payment").'"></td></tr>'."\n"; print '<td><input name="num_payment" class="maxwidth150onsmartphone" id="num_payment" type="text" value="'.GETPOST("num_payment").'"></td></tr>'."\n";
// Check transmitter
print '<tr><td class="'.(GETPOST('paymenttype') == 'CHQ' ? 'fieldrequired ' : '').'fieldrequireddyn"><label for="fieldchqemetteur">'.$langs->trans('CheckTransmitter');
print ' <em>('.$langs->trans("ChequeMaker").')</em>';
print '</label></td>';
print '<td><input id="fieldchqemetteur" name="chqemetteur" size="30" type="text" value="'.GETPOST('chqemetteur', 'alphanohtml').'"></td></tr>';
// Bank name
print '<tr><td><label for="chqbank">'.$langs->trans('Bank');
print ' <em>('.$langs->trans("ChequeBank").')</em>';
print '</label></td>';
print '<td><input id="chqbank" name="chqbank" size="30" type="text" value="'.GETPOST('chqbank', 'alphanohtml').'"></td></tr>';
} }
// Accountancy account // Accountancy account

View File

@ -413,9 +413,11 @@ if ($action == "create" || $action == "start" || $action == 'close') {
for ($i = 1; $i <= $numterminals; $i++) { for ($i = 1; $i <= $numterminals; $i++) {
$array[$i] = $i; $array[$i] = $i;
} }
$selectedposnumber = 0; $showempty = 1; $selectedposnumber = 0;
$showempty = 1;
if ($conf->global->TAKEPOS_NUM_TERMINALS == '1') { if ($conf->global->TAKEPOS_NUM_TERMINALS == '1') {
$selectedposnumber = 1; $showempty = 0; $selectedposnumber = 1;
$showempty = 0;
} }
print $form->selectarray('posnumber', $array, GETPOSTISSET('posnumber') ?GETPOST('posnumber', 'int') : $selectedposnumber, $showempty); print $form->selectarray('posnumber', $array, GETPOSTISSET('posnumber') ?GETPOST('posnumber', 'int') : $selectedposnumber, $showempty);
//print '<input name="posnumber" type="text" class="maxwidth50" value="'.(GETPOSTISSET('posnumber')?GETPOST('posnumber', 'alpha'):'0').'">'; //print '<input name="posnumber" type="text" class="maxwidth50" value="'.(GETPOSTISSET('posnumber')?GETPOST('posnumber', 'alpha'):'0').'">';

View File

@ -140,7 +140,8 @@ $arrayfields = dol_sort_array($arrayfields, 'position');
*/ */
if (GETPOST('cancel', 'alpha')) { if (GETPOST('cancel', 'alpha')) {
$action = 'list'; $massaction = ''; $action = 'list';
$massaction = '';
} }
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') {
$massaction = ''; $massaction = '';

View File

@ -233,10 +233,9 @@ if ($resql) {
} else { } else {
if ($conf->global->$var1 == $bankaccount->id) { if ($conf->global->$var1 == $bankaccount->id) {
$cash += $objp->amount; $cash += $objp->amount;
} // } elseif ($conf->global->$var2 == $bankaccount->id) $bank+=$objp->amount;
//elseif ($conf->global->$var2 == $bankaccount->id) $bank+=$objp->amount;
//elseif ($conf->global->$var3 == $bankaccount->id) $cheque+=$objp->amount; //elseif ($conf->global->$var3 == $bankaccount->id) $cheque+=$objp->amount;
else { } else {
$other += $objp->amount; $other += $objp->amount;
} }
} }

View File

@ -134,8 +134,8 @@ if ($action == 'validate' && $user->rights->deplacement->creer) {
header("Location: index.php"); header("Location: index.php");
exit; exit;
} }
} // Update record } elseif ($action == 'update' && $user->rights->deplacement->creer) {
elseif ($action == 'update' && $user->rights->deplacement->creer) { // Update record
if (!GETPOST('cancel', 'alpha')) { if (!GETPOST('cancel', 'alpha')) {
$result = $object->fetch($id); $result = $object->fetch($id);
@ -159,15 +159,15 @@ elseif ($action == 'update' && $user->rights->deplacement->creer) {
header("Location: ".$_SERVER["PHP_SELF"]."?id=".$id); header("Location: ".$_SERVER["PHP_SELF"]."?id=".$id);
exit; exit;
} }
} // Set into a project } elseif ($action == 'classin' && $user->rights->deplacement->creer) {
elseif ($action == 'classin' && $user->rights->deplacement->creer) { // Set into a project
$object->fetch($id); $object->fetch($id);
$result = $object->setProject(GETPOST('projectid', 'int')); $result = $object->setProject(GETPOST('projectid', 'int'));
if ($result < 0) { if ($result < 0) {
dol_print_error($db, $object->error); dol_print_error($db, $object->error);
} }
} // Set fields } elseif ($action == 'setdated' && $user->rights->deplacement->creer) {
elseif ($action == 'setdated' && $user->rights->deplacement->creer) { // Set fields
$dated = dol_mktime(GETPOST('datedhour', 'int'), GETPOST('datedmin', 'int'), GETPOST('datedsec', 'int'), GETPOST('datedmonth', 'int'), GETPOST('datedday', 'int'), GETPOST('datedyear', 'int')); $dated = dol_mktime(GETPOST('datedhour', 'int'), GETPOST('datedmin', 'int'), GETPOST('datedsec', 'int'), GETPOST('datedmonth', 'int'), GETPOST('datedday', 'int'), GETPOST('datedyear', 'int'));
$object->fetch($id); $object->fetch($id);
$result = $object->setValueFrom('dated', $dated, '', '', 'date', '', $user, 'DEPLACEMENT_MODIFY'); $result = $object->setValueFrom('dated', $dated, '', '', 'date', '', $user, 'DEPLACEMENT_MODIFY');

View File

@ -110,7 +110,8 @@ $px1 = new DolGraph();
$mesg = $px1->isGraphKo(); $mesg = $px1->isGraphKo();
if (!$mesg) { if (!$mesg) {
$px1->SetData($data); $px1->SetData($data);
$i = $startyear; $legend = array(); $i = $startyear;
$legend = array();
while ($i <= $endyear) { while ($i <= $endyear) {
$legend[] = $i; $legend[] = $i;
$i++; $i++;
@ -140,7 +141,8 @@ $px2 = new DolGraph();
$mesg = $px2->isGraphKo(); $mesg = $px2->isGraphKo();
if (!$mesg) { if (!$mesg) {
$px2->SetData($data); $px2->SetData($data);
$i = $startyear; $legend = array(); $i = $startyear;
$legend = array();
while ($i <= $endyear) { while ($i <= $endyear) {
$legend[] = $i; $legend[] = $i;
$i++; $i++;
@ -184,7 +186,8 @@ $px3 = new DolGraph();
$mesg = $px3->isGraphKo(); $mesg = $px3->isGraphKo();
if (!$mesg) { if (!$mesg) {
$px3->SetData($data); $px3->SetData($data);
$i = $startyear; $legend = array(); $i = $startyear;
$legend = array();
while ($i <= $endyear) { while ($i <= $endyear) {
$legend[] = $i; $legend[] = $i;
$i++; $i++;

View File

@ -133,7 +133,8 @@ $error = 0;
*/ */
if (GETPOST('cancel', 'alpha')) { if (GETPOST('cancel', 'alpha')) {
$action = 'list'; $massaction = ''; $action = 'list';
$massaction = '';
} }
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') {
$massaction = ''; $massaction = '';
@ -279,14 +280,14 @@ if (empty($reshook)) {
// Set condition // Set condition
if ($action == 'setconditions' && $user->rights->facture->creer) { if ($action == 'setconditions' && $user->rights->facture->creer) {
$result = $object->setPaymentTerms(GETPOST('cond_reglement_id', 'int')); $result = $object->setPaymentTerms(GETPOST('cond_reglement_id', 'int'));
} // Set mode } elseif ($action == 'setmode' && $user->rights->facture->creer) {
elseif ($action == 'setmode' && $user->rights->facture->creer) { // Set mode
$result = $object->setPaymentMethods(GETPOST('mode_reglement_id', 'int')); $result = $object->setPaymentMethods(GETPOST('mode_reglement_id', 'int'));
} // Set project } elseif ($action == 'classin' && $user->rights->facture->creer) {
elseif ($action == 'classin' && $user->rights->facture->creer) { // Set project
$object->setProject(GETPOST('projectid', 'int')); $object->setProject(GETPOST('projectid', 'int'));
} // Set bank account } elseif ($action == 'setref' && $user->rights->facture->creer) {
elseif ($action == 'setref' && $user->rights->facture->creer) { // Set bank account
//var_dump(GETPOST('ref', 'alpha'));exit; //var_dump(GETPOST('ref', 'alpha'));exit;
$result = $object->setValueFrom('titre', $ref, '', null, 'text', '', $user, 'BILLREC_MODIFY'); $result = $object->setValueFrom('titre', $ref, '', null, 'text', '', $user, 'BILLREC_MODIFY');
if ($result > 0) { if ($result > 0) {
@ -302,32 +303,32 @@ if (empty($reshook)) {
setEventMessages($object->error, $object->errors, 'errors'); setEventMessages($object->error, $object->errors, 'errors');
} }
} }
} // Set bank account } elseif ($action == 'setbankaccount' && $user->rights->facture->creer) {
elseif ($action == 'setbankaccount' && $user->rights->facture->creer) { // Set bank account
$result = $object->setBankAccount(GETPOST('fk_account', 'int')); $result = $object->setBankAccount(GETPOST('fk_account', 'int'));
} // Set frequency and unit frequency } elseif ($action == 'setfrequency' && $user->rights->facture->creer) {
elseif ($action == 'setfrequency' && $user->rights->facture->creer) { // Set frequency and unit frequency
$object->setFrequencyAndUnit(GETPOST('frequency', 'int'), GETPOST('unit_frequency', 'alpha')); $object->setFrequencyAndUnit(GETPOST('frequency', 'int'), GETPOST('unit_frequency', 'alpha'));
} // Set next date of execution } elseif ($action == 'setdate_when' && $user->rights->facture->creer) {
elseif ($action == 'setdate_when' && $user->rights->facture->creer) { // Set next date of execution
$date = dol_mktime(GETPOST('date_whenhour'), GETPOST('date_whenmin'), 0, GETPOST('date_whenmonth'), GETPOST('date_whenday'), GETPOST('date_whenyear')); $date = dol_mktime(GETPOST('date_whenhour'), GETPOST('date_whenmin'), 0, GETPOST('date_whenmonth'), GETPOST('date_whenday'), GETPOST('date_whenyear'));
if (!empty($date)) { if (!empty($date)) {
$object->setNextDate($date); $object->setNextDate($date);
} }
} // Set max period } elseif ($action == 'setnb_gen_max' && $user->rights->facture->creer) {
elseif ($action == 'setnb_gen_max' && $user->rights->facture->creer) { // Set max period
$object->setMaxPeriod(GETPOST('nb_gen_max', 'int')); $object->setMaxPeriod(GETPOST('nb_gen_max', 'int'));
} // Set auto validate } elseif ($action == 'setauto_validate' && $user->rights->facture->creer) {
elseif ($action == 'setauto_validate' && $user->rights->facture->creer) { // Set auto validate
$object->setAutoValidate(GETPOST('auto_validate', 'int')); $object->setAutoValidate(GETPOST('auto_validate', 'int'));
} // Set generate pdf } elseif ($action == 'setgenerate_pdf' && $user->rights->facture->creer) {
elseif ($action == 'setgenerate_pdf' && $user->rights->facture->creer) { // Set generate pdf
$object->setGeneratepdf(GETPOST('generate_pdf', 'int')); $object->setGeneratepdf(GETPOST('generate_pdf', 'int'));
} // Set model pdf } elseif ($action == 'setmodelpdf' && $user->rights->facture->creer) {
elseif ($action == 'setmodelpdf' && $user->rights->facture->creer) { // Set model pdf
$object->setModelpdf(GETPOST('modelpdf', 'alpha')); $object->setModelpdf(GETPOST('modelpdf', 'alpha'));
} // Set status disabled } elseif ($action == 'disable' && $user->rights->facture->creer) {
elseif ($action == 'disable' && $user->rights->facture->creer) { // Set status disabled
$db->begin(); $db->begin();
$object->fetch($id); $object->fetch($id);
@ -343,8 +344,8 @@ if (empty($reshook)) {
$db->rollback(); $db->rollback();
setEventMessages($object->error, $object->errors, 'errors'); setEventMessages($object->error, $object->errors, 'errors');
} }
} // Set status enabled } elseif ($action == 'enable' && $user->rights->facture->creer) {
elseif ($action == 'enable' && $user->rights->facture->creer) { // Set status enabled
$db->begin(); $db->begin();
$object->fetch($id); $object->fetch($id);
@ -360,11 +361,11 @@ if (empty($reshook)) {
$db->rollback(); $db->rollback();
setEventMessages($object->error, $object->errors, 'errors'); setEventMessages($object->error, $object->errors, 'errors');
} }
} // Multicurrency Code } elseif ($action == 'setmulticurrencycode' && $usercancreate) {
elseif ($action == 'setmulticurrencycode' && $usercancreate) { // Multicurrency Code
$result = $object->setMulticurrencyCode(GETPOST('multicurrency_code', 'alpha')); $result = $object->setMulticurrencyCode(GETPOST('multicurrency_code', 'alpha'));
} // Multicurrency rate } elseif ($action == 'setmulticurrencyrate' && $usercancreate) {
elseif ($action == 'setmulticurrencyrate' && $usercancreate) { // Multicurrency rate
$result = $object->setMulticurrencyRate(price2num(GETPOST('multicurrency_tx')), GETPOST('calculation_mode', 'int')); $result = $object->setMulticurrencyRate(price2num(GETPOST('multicurrency_tx')), GETPOST('calculation_mode', 'int'));
} }
@ -420,8 +421,8 @@ if (empty($reshook)) {
// Set if we used free entry or predefined product // Set if we used free entry or predefined product
$predef = ''; $predef = '';
$product_desc = (GETPOSTISSET('dp_desc') ? GETPOST('dp_desc', 'restricthtml') : ''); $product_desc = (GETPOSTISSET('dp_desc') ? GETPOST('dp_desc', 'restricthtml') : '');
$price_ht = price2num(GETPOST('price_ht'), 'MU'); $price_ht = price2num(GETPOST('price_ht'), 'MU', 2);
$price_ht_devise = price2num(GETPOST('multicurrency_price_ht'), 'CU'); $price_ht_devise = price2num(GETPOST('multicurrency_price_ht'), 'CU', 2);
$prod_entry_mode = GETPOST('prod_entry_mode', 'alpha'); $prod_entry_mode = GETPOST('prod_entry_mode', 'alpha');
if ($prod_entry_mode == 'free') { if ($prod_entry_mode == 'free') {
$idprod = 0; $idprod = 0;
@ -525,9 +526,9 @@ if (empty($reshook)) {
if (!empty($price_ht)) { if (!empty($price_ht)) {
$pu_ht = price2num($price_ht, 'MU'); $pu_ht = price2num($price_ht, 'MU');
$pu_ttc = price2num($pu_ht * (1 + ($tmpvat / 100)), 'MU'); $pu_ttc = price2num($pu_ht * (1 + ($tmpvat / 100)), 'MU');
} // On reevalue prix selon taux tva car taux tva transaction peut etre different } elseif ($tmpvat != $tmpprodvat) {
// On reevalue prix selon taux tva car taux tva transaction peut etre different
// de ceux du produit par defaut (par exemple si pays different entre vendeur et acheteur). // de ceux du produit par defaut (par exemple si pays different entre vendeur et acheteur).
elseif ($tmpvat != $tmpprodvat) {
if ($price_base_type != 'HT') { if ($price_base_type != 'HT') {
$pu_ht = price2num($pu_ttc / (1 + ($tmpvat / 100)), 'MU'); $pu_ht = price2num($pu_ttc / (1 + ($tmpvat / 100)), 'MU');
} else { } else {
@ -718,10 +719,10 @@ if (empty($reshook)) {
//$date_start = dol_mktime(GETPOST('date_starthour'), GETPOST('date_startmin'), GETPOST('date_startsec'), GETPOST('date_startmonth'), GETPOST('date_startday'), GETPOST('date_startyear')); //$date_start = dol_mktime(GETPOST('date_starthour'), GETPOST('date_startmin'), GETPOST('date_startsec'), GETPOST('date_startmonth'), GETPOST('date_startday'), GETPOST('date_startyear'));
//$date_end = dol_mktime(GETPOST('date_endhour'), GETPOST('date_endmin'), GETPOST('date_endsec'), GETPOST('date_endmonth'), GETPOST('date_endday'), GETPOST('date_endyear')); //$date_end = dol_mktime(GETPOST('date_endhour'), GETPOST('date_endmin'), GETPOST('date_endsec'), GETPOST('date_endmonth'), GETPOST('date_endday'), GETPOST('date_endyear'));
$description = dol_htmlcleanlastbr(GETPOST('product_desc', 'restricthtml') ? GETPOST('product_desc', 'restricthtml') : GETPOST('desc', 'restricthtml')); $description = dol_htmlcleanlastbr(GETPOST('product_desc', 'restricthtml') ? GETPOST('product_desc', 'restricthtml') : GETPOST('desc', 'restricthtml'));
$pu_ht = GETPOST('price_ht'); $pu_ht = price2num(GETPOST('price_ht'), '', 2);
$vat_rate = (GETPOST('tva_tx') ? GETPOST('tva_tx') : 0); $vat_rate = (GETPOST('tva_tx') ? GETPOST('tva_tx') : 0);
$qty = GETPOST('qty'); $qty = GETPOST('qty');
$pu_ht_devise = GETPOST('multicurrency_subprice'); $pu_ht_devise = price2num(GETPOST('multicurrency_subprice'), '', 2);
// Define info_bits // Define info_bits
$info_bits = 0; $info_bits = 0;

View File

@ -233,8 +233,8 @@ if (empty($reshook)) {
$action = ''; $action = '';
} }
} }
} // Delete line } elseif ($action == 'confirm_deleteline' && $confirm == 'yes' && $usercancreate) {
elseif ($action == 'confirm_deleteline' && $confirm == 'yes' && $usercancreate) { // Delete line
$object->fetch($id); $object->fetch($id);
$object->fetch_thirdparty(); $object->fetch_thirdparty();
@ -386,7 +386,7 @@ if (empty($reshook)) {
} elseif ($action == 'setinvoicedate' && $usercancreate) { } elseif ($action == 'setinvoicedate' && $usercancreate) {
$object->fetch($id); $object->fetch($id);
$old_date_lim_reglement = $object->date_lim_reglement; $old_date_lim_reglement = $object->date_lim_reglement;
$date = dol_mktime(12, 0, 0, $_POST['invoicedatemonth'], $_POST['invoicedateday'], $_POST['invoicedateyear']); $date = dol_mktime(12, 0, 0, GETPOST('invoicedatemonth', 'int'), GETPOST('invoicedateday', 'int'), GETPOST('invoicedateyear', 'int'));
if (empty($date)) { if (empty($date)) {
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Date")), null, 'errors'); setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Date")), null, 'errors');
header('Location: '.$_SERVER["PHP_SELF"].'?facid='.$id.'&action=editinvoicedate'); header('Location: '.$_SERVER["PHP_SELF"].'?facid='.$id.'&action=editinvoicedate');
@ -563,8 +563,8 @@ if (empty($reshook)) {
} elseif ($action == 'setref_client' && $usercancreate) { } elseif ($action == 'setref_client' && $usercancreate) {
$object->fetch($id); $object->fetch($id);
$object->set_ref_client(GETPOST('ref_client')); $object->set_ref_client(GETPOST('ref_client'));
} // Classify to validated } elseif ($action == 'confirm_valid' && $confirm == 'yes' && $usercanvalidate) {
elseif ($action == 'confirm_valid' && $confirm == 'yes' && $usercanvalidate) { // Classify to validated
$idwarehouse = GETPOST('idwarehouse', 'int'); $idwarehouse = GETPOST('idwarehouse', 'int');
$object->fetch($id); $object->fetch($id);
@ -1955,8 +1955,8 @@ if (empty($reshook)) {
// Set if we used free entry or predefined product // Set if we used free entry or predefined product
$predef = ''; $predef = '';
$product_desc =(GETPOSTISSET('dp_desc') ? GETPOST('dp_desc', 'restricthtml') : ''); $product_desc =(GETPOSTISSET('dp_desc') ? GETPOST('dp_desc', 'restricthtml') : '');
$price_ht = price2num(GETPOST('price_ht')); $price_ht = price2num(GETPOST('price_ht'), 'MU', 2);
$price_ht_devise = price2num(GETPOST('multicurrency_price_ht')); $price_ht_devise = price2num(GETPOST('multicurrency_price_ht'), 'CU', 2);
$prod_entry_mode = GETPOST('prod_entry_mode', 'alpha'); $prod_entry_mode = GETPOST('prod_entry_mode', 'alpha');
if ($prod_entry_mode == 'free') { if ($prod_entry_mode == 'free') {
$idprod = 0; $idprod = 0;
@ -2299,10 +2299,10 @@ if (empty($reshook)) {
$date_start = dol_mktime(GETPOST('date_starthour'), GETPOST('date_startmin'), GETPOST('date_startsec'), GETPOST('date_startmonth'), GETPOST('date_startday'), GETPOST('date_startyear')); $date_start = dol_mktime(GETPOST('date_starthour'), GETPOST('date_startmin'), GETPOST('date_startsec'), GETPOST('date_startmonth'), GETPOST('date_startday'), GETPOST('date_startyear'));
$date_end = dol_mktime(GETPOST('date_endhour'), GETPOST('date_endmin'), GETPOST('date_endsec'), GETPOST('date_endmonth'), GETPOST('date_endday'), GETPOST('date_endyear')); $date_end = dol_mktime(GETPOST('date_endhour'), GETPOST('date_endmin'), GETPOST('date_endsec'), GETPOST('date_endmonth'), GETPOST('date_endday'), GETPOST('date_endyear'));
$description = dol_htmlcleanlastbr(GETPOST('product_desc', 'restricthtml') ? GETPOST('product_desc', 'restricthtml') : GETPOST('desc', 'restricthtml')); $description = dol_htmlcleanlastbr(GETPOST('product_desc', 'restricthtml') ? GETPOST('product_desc', 'restricthtml') : GETPOST('desc', 'restricthtml'));
$pu_ht = GETPOST('price_ht'); $pu_ht = price2num(GETPOST('price_ht'), '', 2);
$vat_rate = (GETPOST('tva_tx') ? GETPOST('tva_tx') : 0); $vat_rate = (GETPOST('tva_tx') ? GETPOST('tva_tx') : 0);
$qty = GETPOST('qty'); $qty = GETPOST('qty');
$pu_ht_devise = GETPOST('multicurrency_subprice'); $pu_ht_devise = price2num(GETPOST('multicurrency_subprice'), '', 2);
// Define info_bits // Define info_bits
$info_bits = 0; $info_bits = 0;
@ -2770,15 +2770,15 @@ if (empty($reshook)) {
setEventMessages($object->error, $object->errors, 'errors'); setEventMessages($object->error, $object->errors, 'errors');
} }
} }
} // bascule du statut d'un contact } elseif ($action == 'swapstatut') {
elseif ($action == 'swapstatut') { // bascule du statut d'un contact
if ($object->fetch($id)) { if ($object->fetch($id)) {
$result = $object->swapContactStatus(GETPOST('ligne')); $result = $object->swapContactStatus(GETPOST('ligne'));
} else { } else {
dol_print_error($db); dol_print_error($db);
} }
} // Efface un contact } elseif ($action == 'deletecontact') {
elseif ($action == 'deletecontact') { // Efface un contact
$object->fetch($id); $object->fetch($id);
$result = $object->delete_contact($lineid); $result = $object->delete_contact($lineid);

View File

@ -1181,6 +1181,7 @@ class Facture extends CommonInvoice
foreach ($object->lines as $i => $line) { foreach ($object->lines as $i => $line) {
if (($object->lines[$i]->info_bits & 0x02) == 0x02) { // We do not clone line of discounts if (($object->lines[$i]->info_bits & 0x02) == 0x02) { // We do not clone line of discounts
unset($object->lines[$i]); unset($object->lines[$i]);
continue;
} }
// Bloc to update dates of service (month by month only if previously filled and similare to start and end of month) // Bloc to update dates of service (month by month only if previously filled and similare to start and end of month)
@ -1972,7 +1973,8 @@ class Facture extends CommonInvoice
dol_syslog(get_class($this)."::update", LOG_DEBUG); dol_syslog(get_class($this)."::update", LOG_DEBUG);
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if (!$resql) { if (!$resql) {
$error++; $this->errors[] = "Error ".$this->db->lasterror(); $error++;
$this->errors[] = "Error ".$this->db->lasterror();
} }
if (!$error) { if (!$error) {
@ -2807,7 +2809,8 @@ class Facture extends CommonInvoice
$sql .= " WHERE filename LIKE '".$this->db->escape($this->ref)."%' AND filepath = 'facture/".$this->db->escape($this->ref)."' and entity = ".$conf->entity; $sql .= " WHERE filename LIKE '".$this->db->escape($this->ref)."%' AND filepath = 'facture/".$this->db->escape($this->ref)."' and entity = ".$conf->entity;
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if (!$resql) { if (!$resql) {
$error++; $this->error = $this->db->lasterror(); $error++;
$this->error = $this->db->lasterror();
} }
// We rename directory ($this->ref = old ref, $num = new ref) in order not to lose the attachments // We rename directory ($this->ref = old ref, $num = new ref) in order not to lose the attachments

View File

@ -145,7 +145,8 @@ class PaymentTerm // extends CommonObject
dol_syslog(get_class($this)."::create", LOG_DEBUG); dol_syslog(get_class($this)."::create", LOG_DEBUG);
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if (!$resql) { if (!$resql) {
$error++; $this->errors[] = "Error ".$this->db->lasterror(); $error++;
$this->errors[] = "Error ".$this->db->lasterror();
} }
if (!$error) { if (!$error) {
@ -317,7 +318,8 @@ class PaymentTerm // extends CommonObject
dol_syslog(get_class($this)."::update", LOG_DEBUG); dol_syslog(get_class($this)."::update", LOG_DEBUG);
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if (!$resql) { if (!$resql) {
$error++; $this->errors[] = "Error ".$this->db->lasterror(); $error++;
$this->errors[] = "Error ".$this->db->lasterror();
} }
// Commit or rollback // Commit or rollback
@ -355,7 +357,8 @@ class PaymentTerm // extends CommonObject
dol_syslog(get_class($this)."::delete", LOG_DEBUG); dol_syslog(get_class($this)."::delete", LOG_DEBUG);
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if (!$resql) { if (!$resql) {
$error++; $this->errors[] = "Error ".$this->db->lasterror(); $error++;
$this->errors[] = "Error ".$this->db->lasterror();
} }
// Commit or rollback // Commit or rollback

Some files were not shown because too many files have changed in this diff Show More