mirror of
https://github.com/Dolibarr/dolibarr.git
synced 2026-02-08 09:01:40 +01:00
Merge pull request #16490 from frederic34/cron_code_syntax
code syntax cron directory
This commit is contained in:
@@ -22,7 +22,9 @@
|
||||
* \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();
|
||||
$script_file = basename(__FILE__);
|
||||
@@ -30,8 +32,8 @@ $path=dirname(__FILE__).'/';
|
||||
|
||||
// Test if batch mode
|
||||
if (substr($sapi_type, 0, 3) == 'cgi') {
|
||||
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||
exit;
|
||||
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
require_once $path."../htdocs/master.inc.php";
|
||||
@@ -46,30 +48,32 @@ $includecustom=0;
|
||||
$includeconstants=array();
|
||||
|
||||
if (empty($argv[1])) {
|
||||
print "Usage: ".$script_file." release=autostable|auto[-mybuild]|x.y.z[-mybuild] [includecustom=1] [includeconstant=CC:MY_CONF_NAME:value]\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;
|
||||
print "Usage: ".$script_file." release=autostable|auto[-mybuild]|x.y.z[-mybuild] [includecustom=1] [includeconstant=CC:MY_CONF_NAME:value]\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;
|
||||
}
|
||||
parse_str($argv[1]);
|
||||
|
||||
$i=0;
|
||||
while ($i < $argc) {
|
||||
if (! empty($argv[$i])) parse_str($argv[$i]);
|
||||
if (preg_match('/includeconstant=/', $argv[$i])) {
|
||||
$tmp=explode(':', $includeconstant, 3);
|
||||
if (count($tmp) != 3) {
|
||||
print "Error: Bad parameter includeconstant ".$includeconstant."\n";
|
||||
exit -1;
|
||||
}
|
||||
$includeconstants[$tmp[0]][$tmp[1]] = $tmp[2];
|
||||
}
|
||||
$i++;
|
||||
if (! empty($argv[$i])) {
|
||||
parse_str($argv[$i]);
|
||||
}
|
||||
if (preg_match('/includeconstant=/', $argv[$i])) {
|
||||
$tmp=explode(':', $includeconstant, 3);
|
||||
if (count($tmp) != 3) {
|
||||
print "Error: Bad parameter includeconstant ".$includeconstant."\n";
|
||||
exit -1;
|
||||
}
|
||||
$includeconstants[$tmp[0]][$tmp[1]] = $tmp[2];
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
|
||||
if (empty($release)) {
|
||||
print "Error: Missing release paramater\n";
|
||||
print "Usage: ".$script_file." release=autostable|auto[-mybuild]|x.y.z[-mybuild] [includecustom=1] [includeconstant=CC:MY_CONF_NAME:value]\n";
|
||||
exit -1;
|
||||
print "Error: Missing release paramater\n";
|
||||
print "Usage: ".$script_file." release=autostable|auto[-mybuild]|x.y.z[-mybuild] [includecustom=1] [includeconstant=CC:MY_CONF_NAME:value]\n";
|
||||
exit -1;
|
||||
}
|
||||
|
||||
$savrelease = $release;
|
||||
@@ -77,32 +81,34 @@ $savrelease = $release;
|
||||
// If release is auto, we take current version
|
||||
$tmpver=explode('-', $release, 2);
|
||||
if ($tmpver[0] == 'auto' || $tmpver[0] == 'autostable') {
|
||||
$release=DOL_VERSION;
|
||||
if ($tmpver[1] && $tmpver[0] == 'auto') $release.='-'.$tmpver[1];
|
||||
$release=DOL_VERSION;
|
||||
if ($tmpver[1] && $tmpver[0] == 'auto') {
|
||||
$release.='-'.$tmpver[1];
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($includecustom)) {
|
||||
$tmpverbis=explode('-', $release, 2);
|
||||
if (empty($tmpverbis[1]) || $tmpver[0] == 'autostable') {
|
||||
if (DOL_VERSION != $tmpverbis[0] && $savrelease != 'auto') {
|
||||
print 'Error: When parameter "includecustom" is not set and there is no suffix in release parameter, version declared into filefunc.in.php ('.DOL_VERSION.') must be exact same value than "release" parameter ('.$tmpverbis[0].')'."\n";
|
||||
print "Usage: ".$script_file." release=autostable|auto[-mybuild]|x.y.z[-mybuild] [includecustom=1] [includeconstant=CC:MY_CONF_NAME:value]\n";
|
||||
exit -1;
|
||||
}
|
||||
} else {
|
||||
$tmpverter=explode('-', DOL_VERSION, 2);
|
||||
if ($tmpverter[0] != $tmpverbis[0]) {
|
||||
print 'Error: When parameter "includecustom" is not set, version declared into filefunc.in.php ('.DOL_VERSION.') must have value without prefix ('.$tmpverter[0].') that is exact same value than "release" parameter ('.$tmpverbis[0].')'."\n";
|
||||
print "Usage: ".$script_file." release=autostable|auto[-mybuild]|x.y.z[-mybuild] [includecustom=1] [includeconstant=CC:MY_CONF_NAME:value]\n";
|
||||
exit -1;
|
||||
}
|
||||
}
|
||||
$tmpverbis=explode('-', $release, 2);
|
||||
if (empty($tmpverbis[1]) || $tmpver[0] == 'autostable') {
|
||||
if (DOL_VERSION != $tmpverbis[0] && $savrelease != 'auto') {
|
||||
print 'Error: When parameter "includecustom" is not set and there is no suffix in release parameter, version declared into filefunc.in.php ('.DOL_VERSION.') must be exact same value than "release" parameter ('.$tmpverbis[0].')'."\n";
|
||||
print "Usage: ".$script_file." release=autostable|auto[-mybuild]|x.y.z[-mybuild] [includecustom=1] [includeconstant=CC:MY_CONF_NAME:value]\n";
|
||||
exit -1;
|
||||
}
|
||||
} else {
|
||||
$tmpverter=explode('-', DOL_VERSION, 2);
|
||||
if ($tmpverter[0] != $tmpverbis[0]) {
|
||||
print 'Error: When parameter "includecustom" is not set, version declared into filefunc.in.php ('.DOL_VERSION.') must have value without prefix ('.$tmpverter[0].') that is exact same value than "release" parameter ('.$tmpverbis[0].')'."\n";
|
||||
print "Usage: ".$script_file." release=autostable|auto[-mybuild]|x.y.z[-mybuild] [includecustom=1] [includeconstant=CC:MY_CONF_NAME:value]\n";
|
||||
exit -1;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (! preg_match('/'.preg_quote(DOL_VERSION, '/').'-/', $release)) {
|
||||
print 'Error: When parameter "includecustom" is set, version declared into filefunc.inc.php ('.DOL_VERSION.') must be used with a suffix into "release" parameter (ex: '.DOL_VERSION.'-mydistrib).'."\n";
|
||||
print "Usage: ".$script_file." release=autostable|auto[-mybuild]|x.y.z[-mybuild] [includecustom=1] [includeconstant=CC:MY_CONF_NAME:value]\n";
|
||||
exit -1;
|
||||
}
|
||||
if (! preg_match('/'.preg_quote(DOL_VERSION, '/').'-/', $release)) {
|
||||
print 'Error: When parameter "includecustom" is set, version declared into filefunc.inc.php ('.DOL_VERSION.') must be used with a suffix into "release" parameter (ex: '.DOL_VERSION.'-mydistrib).'."\n";
|
||||
print "Usage: ".$script_file." release=autostable|auto[-mybuild]|x.y.z[-mybuild] [includecustom=1] [includeconstant=CC:MY_CONF_NAME:value]\n";
|
||||
exit -1;
|
||||
}
|
||||
}
|
||||
|
||||
print "Working on files into : ".DOL_DOCUMENT_ROOT."\n";
|
||||
@@ -110,9 +116,9 @@ print "Release : ".$release."\n";
|
||||
print "Include custom in signature : ".$includecustom."\n";
|
||||
print "Include constants in signature : ";
|
||||
foreach ($includeconstants as $countrycode => $tmp) {
|
||||
foreach ($tmp as $constname => $constvalue) {
|
||||
print $constname.'='.$constvalue." ";
|
||||
}
|
||||
foreach ($tmp as $constname => $constvalue) {
|
||||
print $constname.'='.$constvalue." ";
|
||||
}
|
||||
}
|
||||
print "\n";
|
||||
|
||||
@@ -134,13 +140,13 @@ fputs($fp, '<?xml version="1.0" encoding="UTF-8" ?>'."\n");
|
||||
fputs($fp, '<checksum_list version="'.$release.'" date="'.dol_print_date(dol_now(), 'dayhourrfc').'" generator="'.$script_file.'">'."\n");
|
||||
|
||||
foreach ($includeconstants as $countrycode => $tmp) {
|
||||
fputs($fp, '<dolibarr_constants country="'.$countrycode.'">'."\n");
|
||||
foreach ($tmp as $constname => $constvalue) {
|
||||
$valueforchecksum=(empty($constvalue)?'0':$constvalue);
|
||||
$checksumconcat[]=$valueforchecksum;
|
||||
fputs($fp, ' <constant name="'.$constname.'">'.$valueforchecksum.'</constant>'."\n");
|
||||
}
|
||||
fputs($fp, '</dolibarr_constants>'."\n");
|
||||
fputs($fp, '<dolibarr_constants country="'.$countrycode.'">'."\n");
|
||||
foreach ($tmp as $constname => $constvalue) {
|
||||
$valueforchecksum=(empty($constvalue)?'0':$constvalue);
|
||||
$checksumconcat[]=$valueforchecksum;
|
||||
fputs($fp, ' <constant name="'.$constname.'">'.$valueforchecksum.'</constant>'."\n");
|
||||
}
|
||||
fputs($fp, '</dolibarr_constants>'."\n");
|
||||
}
|
||||
|
||||
fputs($fp, '<dolibarr_htdocs_dir includecustom="'.$includecustom.'">'."\n");
|
||||
@@ -157,22 +163,22 @@ $files = dol_dir_list(DOL_DOCUMENT_ROOT, 'files', 1, $regextoinclude, $regextoex
|
||||
$dir='';
|
||||
$needtoclose=0;
|
||||
foreach ($files as $filetmp) {
|
||||
$file = $filetmp['fullname'];
|
||||
//$newdir = str_replace(dirname(__FILE__).'/../htdocs', '', dirname($file));
|
||||
$newdir = str_replace(DOL_DOCUMENT_ROOT, '', dirname($file));
|
||||
if ($newdir!=$dir) {
|
||||
if ($needtoclose) {
|
||||
fputs($fp, ' </dir>'."\n");
|
||||
}
|
||||
fputs($fp, ' <dir name="'.$newdir.'">'."\n");
|
||||
$dir = $newdir;
|
||||
$needtoclose=1;
|
||||
}
|
||||
if (filetype($file)=="file") {
|
||||
$md5=md5_file($file);
|
||||
$checksumconcat[]=$md5;
|
||||
fputs($fp, ' <md5file name="'.basename($file).'" size="'.filesize($file).'">'.$md5.'</md5file>'."\n");
|
||||
}
|
||||
$file = $filetmp['fullname'];
|
||||
//$newdir = str_replace(dirname(__FILE__).'/../htdocs', '', dirname($file));
|
||||
$newdir = str_replace(DOL_DOCUMENT_ROOT, '', dirname($file));
|
||||
if ($newdir!=$dir) {
|
||||
if ($needtoclose) {
|
||||
fputs($fp, ' </dir>'."\n");
|
||||
}
|
||||
fputs($fp, ' <dir name="'.$newdir.'">'."\n");
|
||||
$dir = $newdir;
|
||||
$needtoclose=1;
|
||||
}
|
||||
if (filetype($file)=="file") {
|
||||
$md5=md5_file($file);
|
||||
$checksumconcat[]=$md5;
|
||||
fputs($fp, ' <md5file name="'.basename($file).'" size="'.filesize($file).'">'.$md5.'</md5file>'."\n");
|
||||
}
|
||||
}
|
||||
fputs($fp, ' </dir>'."\n");
|
||||
fputs($fp, '</dolibarr_htdocs_dir>'."\n");
|
||||
@@ -200,22 +206,23 @@ $files = dol_dir_list(dirname(__FILE__).'/../scripts/', 'files', 1, $regextoincl
|
||||
$dir='';
|
||||
$needtoclose=0;
|
||||
foreach ($files as $filetmp) {
|
||||
$file = $filetmp['fullname'];
|
||||
//$newdir = str_replace(dirname(__FILE__).'/../scripts', '', dirname($file));
|
||||
$newdir = str_replace(DOL_DOCUMENT_ROOT, '', dirname($file));
|
||||
$newdir = str_replace(dirname(__FILE__).'/../scripts', '', dirname($file));
|
||||
if ($newdir!=$dir) {
|
||||
if ($needtoclose)
|
||||
fputs($fp, ' </dir>'."\n");
|
||||
fputs($fp, ' <dir name="'.$newdir.'" >'."\n");
|
||||
$dir = $newdir;
|
||||
$needtoclose=1;
|
||||
}
|
||||
if (filetype($file)=="file") {
|
||||
$md5=md5_file($file);
|
||||
$checksumconcat[]=$md5;
|
||||
fputs($fp, ' <md5file name="'.basename($file).'" size="'.filesize($file).'">'.$md5.'</md5file>'."\n");
|
||||
}
|
||||
$file = $filetmp['fullname'];
|
||||
//$newdir = str_replace(dirname(__FILE__).'/../scripts', '', dirname($file));
|
||||
$newdir = str_replace(DOL_DOCUMENT_ROOT, '', dirname($file));
|
||||
$newdir = str_replace(dirname(__FILE__).'/../scripts', '', dirname($file));
|
||||
if ($newdir!=$dir) {
|
||||
if ($needtoclose) {
|
||||
fputs($fp, ' </dir>'."\n");
|
||||
}
|
||||
fputs($fp, ' <dir name="'.$newdir.'" >'."\n");
|
||||
$dir = $newdir;
|
||||
$needtoclose=1;
|
||||
}
|
||||
if (filetype($file)=="file") {
|
||||
$md5=md5_file($file);
|
||||
$checksumconcat[]=$md5;
|
||||
fputs($fp, ' <md5file name="'.basename($file).'" size="'.filesize($file).'">'.$md5.'</md5file>'."\n");
|
||||
}
|
||||
}
|
||||
fputs($fp, ' </dir>'."\n");
|
||||
fputs($fp, '</dolibarr_script_dir>'."\n");
|
||||
|
||||
@@ -30,8 +30,8 @@ $script_file = basename(__FILE__);
|
||||
|
||||
$path = dirname(__FILE__) . '/';
|
||||
if (substr($sapi_type, 0, 3) == 'cgi') {
|
||||
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||
exit;
|
||||
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
// Recupere root dolibarr
|
||||
@@ -62,40 +62,40 @@ $startlinenb = empty($argv[3]) ? 1 : (int) $argv[3];
|
||||
$endlinenb = empty($argv[4]) ? 0 : (int) $argv[4];
|
||||
|
||||
if (empty($filepath)) {
|
||||
print "Usage: php $script_file myfilepath.dbf [removeChatColumnName] [startlinenb] [endlinenb]\n";
|
||||
print "Example: php $script_file myfilepath.dbf 0 2 1002\n";
|
||||
print "\n";
|
||||
exit(-1);
|
||||
print "Usage: php $script_file myfilepath.dbf [removeChatColumnName] [startlinenb] [endlinenb]\n";
|
||||
print "Example: php $script_file myfilepath.dbf 0 2 1002\n";
|
||||
print "\n";
|
||||
exit(-1);
|
||||
}
|
||||
if (!file_exists($filepath)) {
|
||||
print "Error: File " . $filepath . " not found.\n";
|
||||
print "\n";
|
||||
exit(-1);
|
||||
print "Error: File " . $filepath . " not found.\n";
|
||||
print "\n";
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
$ret = $user->fetch('', 'admin');
|
||||
if (!$ret > 0) {
|
||||
print 'A user with login "admin" and all permissions must be created to use this script.' . "\n";
|
||||
exit;
|
||||
print 'A user with login "admin" and all permissions must be created to use this script.' . "\n";
|
||||
exit;
|
||||
}
|
||||
$user->getrights();
|
||||
|
||||
// Ask confirmation
|
||||
if (!$confirmed) {
|
||||
print "Hit Enter to continue or CTRL+C to stop...\n";
|
||||
$input = trim(fgets(STDIN));
|
||||
print "Hit Enter to continue or CTRL+C to stop...\n";
|
||||
$input = trim(fgets(STDIN));
|
||||
}
|
||||
|
||||
// Open input and output files
|
||||
$fhandle = dbase_open($filepath, 0);
|
||||
if (!$fhandle) {
|
||||
print 'Error: Failed to open file ' . $filepath . "\n";
|
||||
exit(1);
|
||||
print 'Error: Failed to open file ' . $filepath . "\n";
|
||||
exit(1);
|
||||
}
|
||||
$fhandleerr = fopen($filepatherr, 'w');
|
||||
if (!$fhandleerr) {
|
||||
print 'Error: Failed to open file ' . $filepatherr . "\n";
|
||||
exit(1);
|
||||
print 'Error: Failed to open file ' . $filepatherr . "\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$langs->setDefaultLang($defaultlang);
|
||||
@@ -105,23 +105,23 @@ $table_name = substr(basename($filepath), 0, strpos(basename($filepath), '.'));
|
||||
print 'Info: ' . $record_numbers . " lines in file \n";
|
||||
$header = dbase_get_header_info($fhandle);
|
||||
if ($deleteTable) {
|
||||
$db->query("DROP TABLE IF EXISTS `$table_name`");
|
||||
$db->query("DROP TABLE IF EXISTS `$table_name`");
|
||||
}
|
||||
$sqlCreate = "CREATE TABLE IF NOT EXISTS `$table_name` ( `id` INT(11) NOT NULL AUTO_INCREMENT ";
|
||||
$fieldArray = array("`id`");
|
||||
foreach ($header as $value) {
|
||||
$fieldName = substr(str_replace('_', '', $value['name']), $startchar);
|
||||
$fieldArray[] = "`$fieldName`";
|
||||
$sqlCreate .= ", `" . $fieldName . "` VARCHAR({$value['length']}) NULL DEFAULT NULL ";
|
||||
$fieldName = substr(str_replace('_', '', $value['name']), $startchar);
|
||||
$fieldArray[] = "`$fieldName`";
|
||||
$sqlCreate .= ", `" . $fieldName . "` VARCHAR({$value['length']}) NULL DEFAULT NULL ";
|
||||
}
|
||||
$sqlCreate .= ", PRIMARY KEY (`id`)) ENGINE = InnoDB";
|
||||
$resql = $db->query($sqlCreate);
|
||||
if ($resql !== false) {
|
||||
print "Table $table_name created\n";
|
||||
print "Table $table_name created\n";
|
||||
} else {
|
||||
var_dump($db->errno());
|
||||
print "Impossible : " . $sqlCreate . "\n";
|
||||
die();
|
||||
var_dump($db->errno());
|
||||
print "Impossible : " . $sqlCreate . "\n";
|
||||
die();
|
||||
}
|
||||
|
||||
$i = 0;
|
||||
@@ -131,30 +131,33 @@ $fields = implode(',', $fieldArray);
|
||||
//var_dump($fieldArray);die();
|
||||
$maxLength = 0;
|
||||
for ($i = 1; $i <= $record_numbers; $i++) {
|
||||
if ($startlinenb && $i < $startlinenb)
|
||||
continue;
|
||||
if ($endlinenb && $i > $endlinenb)
|
||||
continue;
|
||||
$row = dbase_get_record_with_names($fhandle, $i);
|
||||
if ($row === false || (isset($row["deleted"]) && $row["deleted"] == '1'))
|
||||
continue;
|
||||
$sqlInsert = "INSERT INTO `$table_name`($fields) VALUES (null,";
|
||||
array_shift($row); // remove delete column
|
||||
foreach ($row as $value) {
|
||||
$sqlInsert .= "'" . $db->escape(utf8_encode($value)) . "', ";
|
||||
}
|
||||
replaceable_echo(implode("\t", $row));
|
||||
$sqlInsert = rtrim($sqlInsert, ', ');
|
||||
$sqlInsert .= ")";
|
||||
$resql = $db->query($sqlInsert);
|
||||
if ($resql === false) {
|
||||
print "Impossible : " . $sqlInsert . "\n";
|
||||
var_dump($row, $db->errno());
|
||||
die();
|
||||
}
|
||||
if ($startlinenb && $i < $startlinenb) {
|
||||
continue;
|
||||
}
|
||||
if ($endlinenb && $i > $endlinenb) {
|
||||
continue;
|
||||
}
|
||||
$row = dbase_get_record_with_names($fhandle, $i);
|
||||
if ($row === false || (isset($row["deleted"]) && $row["deleted"] == '1')) {
|
||||
continue;
|
||||
}
|
||||
$sqlInsert = "INSERT INTO `$table_name`($fields) VALUES (null,";
|
||||
array_shift($row); // remove delete column
|
||||
foreach ($row as $value) {
|
||||
$sqlInsert .= "'" . $db->escape(utf8_encode($value)) . "', ";
|
||||
}
|
||||
replaceable_echo(implode("\t", $row));
|
||||
$sqlInsert = rtrim($sqlInsert, ', ');
|
||||
$sqlInsert .= ")";
|
||||
$resql = $db->query($sqlInsert);
|
||||
if ($resql === false) {
|
||||
print "Impossible : " . $sqlInsert . "\n";
|
||||
var_dump($row, $db->errno());
|
||||
die();
|
||||
}
|
||||
// $fields = (object) $row;
|
||||
// var_dump($fields);
|
||||
continue;
|
||||
continue;
|
||||
}
|
||||
die();
|
||||
|
||||
@@ -166,11 +169,11 @@ die();
|
||||
print "Nb of lines qualified: " . $nboflines . "\n";
|
||||
print "Nb of errors: " . $error . "\n";
|
||||
if ($mode != 'confirmforced' && ($error || $mode != 'confirm')) {
|
||||
print "Rollback any changes.\n";
|
||||
$db->rollback();
|
||||
print "Rollback any changes.\n";
|
||||
$db->rollback();
|
||||
} else {
|
||||
print "Commit all changes.\n";
|
||||
$db->commit();
|
||||
print "Commit all changes.\n";
|
||||
$db->commit();
|
||||
}
|
||||
|
||||
$db->close();
|
||||
@@ -189,43 +192,43 @@ exit($error);
|
||||
*/
|
||||
function replaceable_echo($message, $force_clear_lines = null)
|
||||
{
|
||||
static $last_lines = 0;
|
||||
static $last_lines = 0;
|
||||
|
||||
if (!is_null($force_clear_lines)) {
|
||||
$last_lines = $force_clear_lines;
|
||||
}
|
||||
if (!is_null($force_clear_lines)) {
|
||||
$last_lines = $force_clear_lines;
|
||||
}
|
||||
|
||||
$toss = array();
|
||||
$status = 0;
|
||||
$term_width = exec('tput cols', $toss, $status);
|
||||
if ($status) {
|
||||
$term_width = 64; // Arbitrary fall-back term width.
|
||||
}
|
||||
$toss = array();
|
||||
$status = 0;
|
||||
$term_width = exec('tput cols', $toss, $status);
|
||||
if ($status) {
|
||||
$term_width = 64; // Arbitrary fall-back term width.
|
||||
}
|
||||
|
||||
$line_count = 0;
|
||||
foreach (explode("\n", $message) as $line) {
|
||||
$line_count += count(str_split($line, $term_width));
|
||||
}
|
||||
$line_count = 0;
|
||||
foreach (explode("\n", $message) as $line) {
|
||||
$line_count += count(str_split($line, $term_width));
|
||||
}
|
||||
|
||||
// Erasure MAGIC: Clear as many lines as the last output had.
|
||||
for ($i = 0; $i < $last_lines; $i++) {
|
||||
// Return to the beginning of the line
|
||||
echo "\r";
|
||||
// Erase to the end of the line
|
||||
echo "\033[K";
|
||||
// Move cursor Up a line
|
||||
echo "\033[1A";
|
||||
// Return to the beginning of the line
|
||||
echo "\r";
|
||||
// Erase to the end of the line
|
||||
echo "\033[K";
|
||||
// Return to the beginning of the line
|
||||
echo "\r";
|
||||
// Can be consolodated into
|
||||
// echo "\r\033[K\033[1A\r\033[K\r";
|
||||
}
|
||||
// Erasure MAGIC: Clear as many lines as the last output had.
|
||||
for ($i = 0; $i < $last_lines; $i++) {
|
||||
// Return to the beginning of the line
|
||||
echo "\r";
|
||||
// Erase to the end of the line
|
||||
echo "\033[K";
|
||||
// Move cursor Up a line
|
||||
echo "\033[1A";
|
||||
// Return to the beginning of the line
|
||||
echo "\r";
|
||||
// Erase to the end of the line
|
||||
echo "\033[K";
|
||||
// Return to the beginning of the line
|
||||
echo "\r";
|
||||
// Can be consolodated into
|
||||
// echo "\r\033[K\033[1A\r\033[K\r";
|
||||
}
|
||||
|
||||
$last_lines = $line_count;
|
||||
$last_lines = $line_count;
|
||||
|
||||
echo $message . "\n";
|
||||
echo $message . "\n";
|
||||
}
|
||||
|
||||
@@ -29,8 +29,8 @@ $sapi_type = php_sapi_name();
|
||||
$script_file = basename(__FILE__);
|
||||
$path = dirname(__FILE__) . '/';
|
||||
if (substr($sapi_type, 0, 3) == 'cgi') {
|
||||
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||
exit;
|
||||
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
// Recupere root dolibarr
|
||||
@@ -50,18 +50,18 @@ $confirmed = 1;
|
||||
$error = 0;
|
||||
|
||||
$tvas = [
|
||||
'1' => "20.00",
|
||||
'2' => "5.50",
|
||||
'3' => "0.00",
|
||||
'4' => "20.60",
|
||||
'5' => "19.60",
|
||||
'1' => "20.00",
|
||||
'2' => "5.50",
|
||||
'3' => "0.00",
|
||||
'4' => "20.60",
|
||||
'5' => "19.60",
|
||||
];
|
||||
$tvasD = [
|
||||
'1' => "20",
|
||||
'2' => "5.5",
|
||||
'3' => "0",
|
||||
'4' => "20",
|
||||
'5' => "20",
|
||||
'1' => "20",
|
||||
'2' => "5.5",
|
||||
'3' => "0",
|
||||
'4' => "20",
|
||||
'5' => "20",
|
||||
];
|
||||
|
||||
/*
|
||||
@@ -75,159 +75,167 @@ dol_syslog($script_file . " launched with arg " . implode(',', $argv));
|
||||
$table = $argv[1];
|
||||
|
||||
if (empty($argv[1])) {
|
||||
print "Error: Which table ?\n";
|
||||
print "\n";
|
||||
exit(-1);
|
||||
print "Error: Which table ?\n";
|
||||
print "\n";
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
$ret = $user->fetch('', 'admin');
|
||||
if (!$ret > 0) {
|
||||
print 'A user with login "admin" and all permissions must be created to use this script.' . "\n";
|
||||
exit;
|
||||
print 'A user with login "admin" and all permissions must be created to use this script.' . "\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
$sql = "SELECT * FROM `$table` WHERE 1";
|
||||
$resql = $db->query($sql);
|
||||
if ($resql)
|
||||
while ($fields = $db->fetch_array($resql)) {
|
||||
$errorrecord = 0;
|
||||
if ($fields === false)
|
||||
continue;
|
||||
$nboflines++;
|
||||
|
||||
$produit = new Product($db);
|
||||
$produit->type = 0;
|
||||
$produit->status = 1;
|
||||
$produit->ref = trim($fields['REF']);
|
||||
if ($produit->ref == '')
|
||||
continue;
|
||||
print "Process line nb " . $j . ", ref " . $produit->ref;
|
||||
$produit->label = trim($fields['LIBELLE']);
|
||||
if ($produit->label == '')
|
||||
$produit->label = $produit->ref;
|
||||
if (empty($produit->label))
|
||||
continue;
|
||||
//$produit->description = trim($fields[4] . "\n" . ($fields[5] ? $fields[5] . ' x ' . $fields[6] . ' x ' . $fields[7] : ''));
|
||||
// $produit->volume = price2num($fields[8]);
|
||||
// $produit->volume_unit = 0;
|
||||
$produit->weight = price2num($fields['MASSE']);
|
||||
$produit->weight_units = 0; // -3 = g
|
||||
//$produit->customcode = $fields[10];
|
||||
$produit->barcode = str_pad($fields['CODE'], 12, "0", STR_PAD_LEFT);
|
||||
$produit->barcode_type = '2';
|
||||
$produit->import_key = $fields['CODE'];
|
||||
|
||||
$produit->status = 1;
|
||||
$produit->status_buy = 1;
|
||||
|
||||
$produit->finished = 1;
|
||||
|
||||
// $produit->multiprices[0] = price2num($fields['TARIF0']);
|
||||
// $produit->multiprices[1] = price2num($fields['TARIF1']);
|
||||
// $produit->multiprices[2] = price2num($fields['TARIF2']);
|
||||
// $produit->multiprices[3] = price2num($fields['TARIF3']);
|
||||
// $produit->multiprices[4] = price2num($fields['TARIF4']);
|
||||
// $produit->multiprices[5] = price2num($fields['TARIF5']);
|
||||
// $produit->multiprices[6] = price2num($fields['TARIF6']);
|
||||
// $produit->multiprices[7] = price2num($fields['TARIF7']);
|
||||
// $produit->multiprices[8] = price2num($fields['TARIF8']);
|
||||
// $produit->multiprices[9] = price2num($fields['TARIF9']);
|
||||
// $produit->price_min = null;
|
||||
// $produit->price_min_ttc = null;
|
||||
// $produit->price = price2num($fields[11]);
|
||||
// $produit->price_ttc = price2num($fields[12]);
|
||||
// $produit->price_base_type = 'TTC';
|
||||
// $produit->tva_tx = price2num($fields[13]);
|
||||
$produit->tva_tx = (int) ($tvas[$fields['CODTVA']]);
|
||||
$produit->tva_npr = 0;
|
||||
// $produit->cost_price = price2num($fields[16]);
|
||||
//compta
|
||||
|
||||
$produit->accountancy_code_buy = trim($fields['COMACH']);
|
||||
$produit->accountancy_code_sell = trim($fields['COMVEN']);
|
||||
// $produit->accountancy_code_sell_intra=trim($fields['COMVEN']);
|
||||
// $produit->accountancy_code_sell_export=trim($fields['COMVEN']);
|
||||
// Extrafields
|
||||
// $produit->array_options['options_ecotaxdeee'] = price2num($fields[17]);
|
||||
|
||||
$produit->seuil_stock_alerte = $fields['STALERTE'];
|
||||
$ret = $produit->create($user, 0);
|
||||
if ($ret < 0) {
|
||||
print " - Error in create result code = " . $ret . " - " . $produit->errorsToString();
|
||||
$errorrecord++;
|
||||
} else {
|
||||
print " - Creation OK with ref " . $produit->ref . " - id = " . $ret;
|
||||
}
|
||||
|
||||
dol_syslog("Add prices");
|
||||
|
||||
// If we use price level, insert price for each level
|
||||
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 = false;
|
||||
for ($i = 0; $i < 10; $i++) {
|
||||
if ($fields['TARIF' . ($i)] == 0)
|
||||
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;
|
||||
if ($resql) {
|
||||
while ($fields = $db->fetch_array($resql)) {
|
||||
$errorrecord = 0;
|
||||
if ($fields === false) {
|
||||
continue;
|
||||
}
|
||||
if ($ret1) {
|
||||
print " - Error in updatePrice result " . $produit->errorsToString();
|
||||
$nboflines++;
|
||||
|
||||
$produit = new Product($db);
|
||||
$produit->type = 0;
|
||||
$produit->status = 1;
|
||||
$produit->ref = trim($fields['REF']);
|
||||
if ($produit->ref == '') {
|
||||
continue;
|
||||
}
|
||||
print "Process line nb " . $j . ", ref " . $produit->ref;
|
||||
$produit->label = trim($fields['LIBELLE']);
|
||||
if ($produit->label == '') {
|
||||
$produit->label = $produit->ref;
|
||||
}
|
||||
if (empty($produit->label)) {
|
||||
continue;
|
||||
}
|
||||
//$produit->description = trim($fields[4] . "\n" . ($fields[5] ? $fields[5] . ' x ' . $fields[6] . ' x ' . $fields[7] : ''));
|
||||
// $produit->volume = price2num($fields[8]);
|
||||
// $produit->volume_unit = 0;
|
||||
$produit->weight = price2num($fields['MASSE']);
|
||||
$produit->weight_units = 0; // -3 = g
|
||||
//$produit->customcode = $fields[10];
|
||||
$produit->barcode = str_pad($fields['CODE'], 12, "0", STR_PAD_LEFT);
|
||||
$produit->barcode_type = '2';
|
||||
$produit->import_key = $fields['CODE'];
|
||||
|
||||
$produit->status = 1;
|
||||
$produit->status_buy = 1;
|
||||
|
||||
$produit->finished = 1;
|
||||
|
||||
// $produit->multiprices[0] = price2num($fields['TARIF0']);
|
||||
// $produit->multiprices[1] = price2num($fields['TARIF1']);
|
||||
// $produit->multiprices[2] = price2num($fields['TARIF2']);
|
||||
// $produit->multiprices[3] = price2num($fields['TARIF3']);
|
||||
// $produit->multiprices[4] = price2num($fields['TARIF4']);
|
||||
// $produit->multiprices[5] = price2num($fields['TARIF5']);
|
||||
// $produit->multiprices[6] = price2num($fields['TARIF6']);
|
||||
// $produit->multiprices[7] = price2num($fields['TARIF7']);
|
||||
// $produit->multiprices[8] = price2num($fields['TARIF8']);
|
||||
// $produit->multiprices[9] = price2num($fields['TARIF9']);
|
||||
// $produit->price_min = null;
|
||||
// $produit->price_min_ttc = null;
|
||||
// $produit->price = price2num($fields[11]);
|
||||
// $produit->price_ttc = price2num($fields[12]);
|
||||
// $produit->price_base_type = 'TTC';
|
||||
// $produit->tva_tx = price2num($fields[13]);
|
||||
$produit->tva_tx = (int) ($tvas[$fields['CODTVA']]);
|
||||
$produit->tva_npr = 0;
|
||||
// $produit->cost_price = price2num($fields[16]);
|
||||
//compta
|
||||
|
||||
$produit->accountancy_code_buy = trim($fields['COMACH']);
|
||||
$produit->accountancy_code_sell = trim($fields['COMVEN']);
|
||||
// $produit->accountancy_code_sell_intra=trim($fields['COMVEN']);
|
||||
// $produit->accountancy_code_sell_export=trim($fields['COMVEN']);
|
||||
// Extrafields
|
||||
// $produit->array_options['options_ecotaxdeee'] = price2num($fields[17]);
|
||||
|
||||
$produit->seuil_stock_alerte = $fields['STALERTE'];
|
||||
$ret = $produit->create($user, 0);
|
||||
if ($ret < 0) {
|
||||
print " - Error in create result code = " . $ret . " - " . $produit->errorsToString();
|
||||
$errorrecord++;
|
||||
} else {
|
||||
print " - updatePrice OK";
|
||||
print " - Creation OK with ref " . $produit->ref . " - id = " . $ret;
|
||||
}
|
||||
}
|
||||
|
||||
dol_syslog("Add prices");
|
||||
|
||||
// dol_syslog("Add multilangs");
|
||||
// Add alternative languages
|
||||
// if (!$errorrecord && 1) {
|
||||
// $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);
|
||||
//
|
||||
// $ret = $produit->setMultiLangs($user);
|
||||
// if ($ret < 0) {
|
||||
// print " - Error in setMultiLangs result code = " . $ret . " - " . $produit->errorsToString();
|
||||
// $errorrecord++;
|
||||
// } else {
|
||||
// print " - setMultiLangs OK";
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
dol_syslog("Add stocks");
|
||||
// stocks
|
||||
if (!$errorrecord && $fields['STOCK'] != 0) {
|
||||
$rets = $produit->correct_stock($user, 1, $fields['STOCK'], 0, 'Stock importé');
|
||||
if ($rets < 0) {
|
||||
print " - Error in correct_stock result " . $produit->errorsToString();
|
||||
$errorrecord++;
|
||||
} else {
|
||||
print " - correct_stock OK";
|
||||
// If we use price level, insert price for each level
|
||||
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 = false;
|
||||
for ($i = 0; $i < 10; $i++) {
|
||||
if ($fields['TARIF' . ($i)] == 0) {
|
||||
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;
|
||||
}
|
||||
if ($ret1) {
|
||||
print " - Error in updatePrice result " . $produit->errorsToString();
|
||||
$errorrecord++;
|
||||
} else {
|
||||
print " - updatePrice OK";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//update date créa
|
||||
if (!$errorrecord) {
|
||||
$date = substr($fields['DATCREA'], 0, 4) . '-' . substr($fields['DATCREA'], 4, 2) . '-' . substr($fields['DATCREA'], 6, 2);
|
||||
$retd = $db->query("UPDATE `llx_product` SET `datec` = '$date 00:00:00' WHERE `llx_product`.`rowid` = $produit->id");
|
||||
if ($retd < 1) {
|
||||
print " - Error in update date créa result " . $produit->errorsToString();
|
||||
$errorrecord++;
|
||||
} else {
|
||||
print " - update date créa OK";
|
||||
|
||||
// dol_syslog("Add multilangs");
|
||||
// Add alternative languages
|
||||
// if (!$errorrecord && 1) {
|
||||
// $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);
|
||||
//
|
||||
// $ret = $produit->setMultiLangs($user);
|
||||
// if ($ret < 0) {
|
||||
// print " - Error in setMultiLangs result code = " . $ret . " - " . $produit->errorsToString();
|
||||
// $errorrecord++;
|
||||
// } else {
|
||||
// print " - setMultiLangs OK";
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
dol_syslog("Add stocks");
|
||||
// stocks
|
||||
if (!$errorrecord && $fields['STOCK'] != 0) {
|
||||
$rets = $produit->correct_stock($user, 1, $fields['STOCK'], 0, 'Stock importé');
|
||||
if ($rets < 0) {
|
||||
print " - Error in correct_stock result " . $produit->errorsToString();
|
||||
$errorrecord++;
|
||||
} else {
|
||||
print " - correct_stock OK";
|
||||
}
|
||||
}
|
||||
}
|
||||
print "\n";
|
||||
|
||||
if ($errorrecord) {
|
||||
print( 'Error on record nb ' . $i . " - " . $produit->errorsToString() . "\n");
|
||||
var_dump($db);
|
||||
die();
|
||||
$error++; // $errorrecord will be reset
|
||||
//update date créa
|
||||
if (!$errorrecord) {
|
||||
$date = substr($fields['DATCREA'], 0, 4) . '-' . substr($fields['DATCREA'], 4, 2) . '-' . substr($fields['DATCREA'], 6, 2);
|
||||
$retd = $db->query("UPDATE `llx_product` SET `datec` = '$date 00:00:00' WHERE `llx_product`.`rowid` = $produit->id");
|
||||
if ($retd < 1) {
|
||||
print " - Error in update date créa result " . $produit->errorsToString();
|
||||
$errorrecord++;
|
||||
} else {
|
||||
print " - update date créa OK";
|
||||
}
|
||||
}
|
||||
print "\n";
|
||||
|
||||
if ($errorrecord) {
|
||||
print( 'Error on record nb ' . $i . " - " . $produit->errorsToString() . "\n");
|
||||
var_dump($db);
|
||||
die();
|
||||
$error++; // $errorrecord will be reset
|
||||
}
|
||||
$j++;
|
||||
}
|
||||
$j++;
|
||||
} else die("error : $sql");
|
||||
} else {
|
||||
die("error : $sql");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -29,8 +29,8 @@ $sapi_type = php_sapi_name();
|
||||
$script_file = basename(__FILE__);
|
||||
$path = dirname(__FILE__) . '/';
|
||||
if (substr($sapi_type, 0, 3) == 'cgi') {
|
||||
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||
exit;
|
||||
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
// Recupere root dolibarr
|
||||
@@ -50,73 +50,73 @@ $confirmed = 1;
|
||||
$error = 0;
|
||||
|
||||
$civilPrivate = array("MLLE",
|
||||
"MM",
|
||||
"MM/MADAME",
|
||||
"MME",
|
||||
"MME.",
|
||||
"MME²",
|
||||
"MMONSIEUR",
|
||||
"MMR",
|
||||
"MOBNSIEUR",
|
||||
"MOMSIEUR",
|
||||
"MON SIEUR",
|
||||
"MONDIAL",
|
||||
"MONIEUR",
|
||||
"MONJSIEUR",
|
||||
"MONNSIEUR",
|
||||
"MONRIEUR",
|
||||
"MONS",
|
||||
"MONSIEÕR",
|
||||
"MONSIER",
|
||||
"MONSIERU",
|
||||
"MONSIEU",
|
||||
"monsieue",
|
||||
"MONSIEUR",
|
||||
"Monsieur \"",
|
||||
"MONSIEUR \"",
|
||||
"MONSIEUR E",
|
||||
"MONSIEUR DENIS",
|
||||
"MONSIEUR ET MME",
|
||||
"MONSIEUR!",
|
||||
"MONSIEUR.",
|
||||
"MONSIEUR.MADAME",
|
||||
"MONSIEUR3",
|
||||
"MONSIEURN",
|
||||
"MONSIEURT",
|
||||
"MONSIEUR£",
|
||||
"MONSIEYR",
|
||||
"Monsigur",
|
||||
"MONSIIEUR",
|
||||
"MONSIUER",
|
||||
"MONSIZEUR",
|
||||
"MOPNSIEUR",
|
||||
"MOSIEUR",
|
||||
"MR",
|
||||
"Mr Mme",
|
||||
"Mr - MME",
|
||||
"MR BLANC",
|
||||
"MR ET MME",
|
||||
"mr mm",
|
||||
"MR OU MME",
|
||||
"Mr.",
|
||||
"MR/MME",
|
||||
"MRME",
|
||||
"MRR",
|
||||
"Mrs",
|
||||
"Mademoiselle",
|
||||
"MADAOME",
|
||||
"madamme",
|
||||
"MADAME",
|
||||
"M0NSIEUR",
|
||||
"M.et Madame",
|
||||
"M. ET MR",
|
||||
"M.",
|
||||
"M%",
|
||||
"M MME",
|
||||
"M ET MME",
|
||||
"M",
|
||||
"M CROCE",
|
||||
"M DIEVART",
|
||||
"MM",
|
||||
"MM/MADAME",
|
||||
"MME",
|
||||
"MME.",
|
||||
"MME²",
|
||||
"MMONSIEUR",
|
||||
"MMR",
|
||||
"MOBNSIEUR",
|
||||
"MOMSIEUR",
|
||||
"MON SIEUR",
|
||||
"MONDIAL",
|
||||
"MONIEUR",
|
||||
"MONJSIEUR",
|
||||
"MONNSIEUR",
|
||||
"MONRIEUR",
|
||||
"MONS",
|
||||
"MONSIEÕR",
|
||||
"MONSIER",
|
||||
"MONSIERU",
|
||||
"MONSIEU",
|
||||
"monsieue",
|
||||
"MONSIEUR",
|
||||
"Monsieur \"",
|
||||
"MONSIEUR \"",
|
||||
"MONSIEUR E",
|
||||
"MONSIEUR DENIS",
|
||||
"MONSIEUR ET MME",
|
||||
"MONSIEUR!",
|
||||
"MONSIEUR.",
|
||||
"MONSIEUR.MADAME",
|
||||
"MONSIEUR3",
|
||||
"MONSIEURN",
|
||||
"MONSIEURT",
|
||||
"MONSIEUR£",
|
||||
"MONSIEYR",
|
||||
"Monsigur",
|
||||
"MONSIIEUR",
|
||||
"MONSIUER",
|
||||
"MONSIZEUR",
|
||||
"MOPNSIEUR",
|
||||
"MOSIEUR",
|
||||
"MR",
|
||||
"Mr Mme",
|
||||
"Mr - MME",
|
||||
"MR BLANC",
|
||||
"MR ET MME",
|
||||
"mr mm",
|
||||
"MR OU MME",
|
||||
"Mr.",
|
||||
"MR/MME",
|
||||
"MRME",
|
||||
"MRR",
|
||||
"Mrs",
|
||||
"Mademoiselle",
|
||||
"MADAOME",
|
||||
"madamme",
|
||||
"MADAME",
|
||||
"M0NSIEUR",
|
||||
"M.et Madame",
|
||||
"M. ET MR",
|
||||
"M.",
|
||||
"M%",
|
||||
"M MME",
|
||||
"M ET MME",
|
||||
"M",
|
||||
"M CROCE",
|
||||
"M DIEVART",
|
||||
);
|
||||
|
||||
/*
|
||||
@@ -130,128 +130,134 @@ dol_syslog($script_file . " launched with arg " . implode(',', $argv));
|
||||
$table = $argv[1];
|
||||
|
||||
if (empty($argv[1])) {
|
||||
print "Error: Quelle table ?\n";
|
||||
print "\n";
|
||||
exit(-1);
|
||||
print "Error: Quelle table ?\n";
|
||||
print "\n";
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
$ret = $user->fetch('', 'admin');
|
||||
if (!$ret > 0) {
|
||||
print 'A user with login "admin" and all permissions must be created to use this script.' . "\n";
|
||||
exit;
|
||||
print 'A user with login "admin" and all permissions must be created to use this script.' . "\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
$sql = "SELECT * FROM `$table` WHERE 1 "; //ORDER BY REMISE DESC,`LCIVIL` DESC";
|
||||
$resql = $db->query($sql);
|
||||
//$db->begin();
|
||||
if ($resql)
|
||||
while ($fields = $db->fetch_array($resql)) {
|
||||
$i++;
|
||||
$errorrecord = 0;
|
||||
if ($resql) {
|
||||
while ($fields = $db->fetch_array($resql)) {
|
||||
$i++;
|
||||
$errorrecord = 0;
|
||||
|
||||
if ($startlinenb && $i < $startlinenb)
|
||||
continue;
|
||||
if ($endlinenb && $i > $endlinenb)
|
||||
continue;
|
||||
|
||||
$nboflines++;
|
||||
|
||||
$object = new Societe($db);
|
||||
$object->import_key = $fields['CODE'];
|
||||
$object->state = 1;
|
||||
$object->client = 3;
|
||||
$object->fournisseur = 0;
|
||||
|
||||
$object->name = $fields['FCIVIL'] . ' ' . $fields['FNOM'];
|
||||
//$object->name_alias = $fields[0] != $fields[13] ? trim($fields[0]) : '';
|
||||
|
||||
$date = $fields['DATCREA'] ? $fields['DATCREA'] : ($fields['DATMOD'] ? $fields['DATMOD'] : '20200101');
|
||||
$object->code_client = 'CU' . substr($date, 2, 2) . substr($date, 4, 2) . '-' . str_pad(substr($fields['CODE'], 0, 5), 5, "0", STR_PAD_LEFT);
|
||||
|
||||
|
||||
$object->address = trim($fields['FADR1']);
|
||||
if ($fields['FADR2'])
|
||||
$object->address .= "\n" . trim($fields['FADR2']);
|
||||
if ($fields['FADR3'])
|
||||
$object->address .= "\n" . trim($fields['FADR3']);
|
||||
|
||||
$object->zip = trim($fields['FPOSTE']);
|
||||
$object->town = trim($fields['FVILLE']);
|
||||
if ($fields['FPAYS'])
|
||||
$object->country_id = dol_getIdFromCode($db, trim(ucwords(strtolower($fields['FPAYS']))), 'c_country', 'label', 'rowid');
|
||||
else $object->country_id = 1;
|
||||
$object->phone = trim($fields['FTEL']) ? trim($fields['FTEL']) : trim($fields['FCONTACT']);
|
||||
$object->phone = substr($object->phone, 0, 20);
|
||||
$object->fax = trim($fields['FFAX']) ? trim($fields['FFAX']) : trim($fields['FCONTACT']);
|
||||
$object->fax = substr($object->fax, 0, 20);
|
||||
$object->email = trim($fields['FMAIL']);
|
||||
// $object->idprof2 = trim($fields[29]);
|
||||
$object->tva_intra = str_replace(['.', ' '], '', $fields['TVAINTRA']);
|
||||
$object->tva_intra = substr($object->tva_intra, 0, 20);
|
||||
$object->default_lang = 'fr_FR';
|
||||
|
||||
$object->cond_reglement_id = dol_getIdFromCode($db, 'PT_ORDER', 'c_payment_term', 'code', 'rowid', 1);
|
||||
$object->multicurrency_code = 'EUR';
|
||||
|
||||
if ($fields['REMISE'] != '0.00') {
|
||||
$object->remise_percent = abs($fields['REMISE']);
|
||||
}
|
||||
|
||||
// $object->code_client = $fields[9];
|
||||
// $object->code_fournisseur = $fields[10];
|
||||
|
||||
|
||||
if ($fields['FCIVIL']) {
|
||||
$labeltype = in_array($fields['FCIVIL'], $civilPrivate) ? 'TE_PRIVATE' : 'TE_SMALL';
|
||||
$object->typent_id = dol_getIdFromCode($db, $labeltype, 'c_typent', 'code');
|
||||
}
|
||||
|
||||
// Set price level
|
||||
$object->price_level = $fields['TARIF'] + 1;
|
||||
// if ($labeltype == 'Revendeur')
|
||||
// $object->price_level = 2;
|
||||
|
||||
print "Process line nb " . $i . ", code " . $fields['CODE'] . ", name " . $object->name;
|
||||
|
||||
|
||||
// Extrafields
|
||||
$object->array_options['options_banque'] = $fields['BANQUE'];
|
||||
$object->array_options['options_banque2'] = $fields['BANQUE2'];
|
||||
$object->array_options['options_banquevalid'] = $fields['VALID'];
|
||||
|
||||
if (!$errorrecord) {
|
||||
$ret = $object->create($user);
|
||||
if ($ret < 0) {
|
||||
print " - Error in create result code = " . $ret . " - " . $object->errorsToString();
|
||||
$errorrecord++;
|
||||
var_dump($object->code_client, $db);
|
||||
die();
|
||||
} else {
|
||||
print " - Creation OK with name " . $object->name . " - id = " . $ret;
|
||||
if ($startlinenb && $i < $startlinenb) {
|
||||
continue;
|
||||
}
|
||||
if ($endlinenb && $i > $endlinenb) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$errorrecord) {
|
||||
dol_syslog("Set price level");
|
||||
$object->set_price_level($object->price_level, $user);
|
||||
}
|
||||
if (!$errorrecord && @$object->remise_percent) {
|
||||
dol_syslog("Set remise client");
|
||||
$object->set_remise_client($object->remise_percent, 'Importé', $user);
|
||||
}
|
||||
$nboflines++;
|
||||
|
||||
dol_syslog("Add contact");
|
||||
// Insert an invoice contact if there is an invoice email != standard email
|
||||
if (!$errorrecord && ($fields['LCIVIL'] || $fields['LNOM'])) {
|
||||
$madame = array("MADAME",
|
||||
$object = new Societe($db);
|
||||
$object->import_key = $fields['CODE'];
|
||||
$object->state = 1;
|
||||
$object->client = 3;
|
||||
$object->fournisseur = 0;
|
||||
|
||||
$object->name = $fields['FCIVIL'] . ' ' . $fields['FNOM'];
|
||||
//$object->name_alias = $fields[0] != $fields[13] ? trim($fields[0]) : '';
|
||||
|
||||
$date = $fields['DATCREA'] ? $fields['DATCREA'] : ($fields['DATMOD'] ? $fields['DATMOD'] : '20200101');
|
||||
$object->code_client = 'CU' . substr($date, 2, 2) . substr($date, 4, 2) . '-' . str_pad(substr($fields['CODE'], 0, 5), 5, "0", STR_PAD_LEFT);
|
||||
|
||||
|
||||
$object->address = trim($fields['FADR1']);
|
||||
if ($fields['FADR2']) {
|
||||
$object->address .= "\n" . trim($fields['FADR2']);
|
||||
}
|
||||
if ($fields['FADR3']) {
|
||||
$object->address .= "\n" . trim($fields['FADR3']);
|
||||
}
|
||||
|
||||
$object->zip = trim($fields['FPOSTE']);
|
||||
$object->town = trim($fields['FVILLE']);
|
||||
if ($fields['FPAYS']) {
|
||||
$object->country_id = dol_getIdFromCode($db, trim(ucwords(strtolower($fields['FPAYS']))), 'c_country', 'label', 'rowid');
|
||||
} else {
|
||||
$object->country_id = 1;
|
||||
}
|
||||
$object->phone = trim($fields['FTEL']) ? trim($fields['FTEL']) : trim($fields['FCONTACT']);
|
||||
$object->phone = substr($object->phone, 0, 20);
|
||||
$object->fax = trim($fields['FFAX']) ? trim($fields['FFAX']) : trim($fields['FCONTACT']);
|
||||
$object->fax = substr($object->fax, 0, 20);
|
||||
$object->email = trim($fields['FMAIL']);
|
||||
// $object->idprof2 = trim($fields[29]);
|
||||
$object->tva_intra = str_replace(['.', ' '], '', $fields['TVAINTRA']);
|
||||
$object->tva_intra = substr($object->tva_intra, 0, 20);
|
||||
$object->default_lang = 'fr_FR';
|
||||
|
||||
$object->cond_reglement_id = dol_getIdFromCode($db, 'PT_ORDER', 'c_payment_term', 'code', 'rowid', 1);
|
||||
$object->multicurrency_code = 'EUR';
|
||||
|
||||
if ($fields['REMISE'] != '0.00') {
|
||||
$object->remise_percent = abs($fields['REMISE']);
|
||||
}
|
||||
|
||||
// $object->code_client = $fields[9];
|
||||
// $object->code_fournisseur = $fields[10];
|
||||
|
||||
|
||||
if ($fields['FCIVIL']) {
|
||||
$labeltype = in_array($fields['FCIVIL'], $civilPrivate) ? 'TE_PRIVATE' : 'TE_SMALL';
|
||||
$object->typent_id = dol_getIdFromCode($db, $labeltype, 'c_typent', 'code');
|
||||
}
|
||||
|
||||
// Set price level
|
||||
$object->price_level = $fields['TARIF'] + 1;
|
||||
// if ($labeltype == 'Revendeur')
|
||||
// $object->price_level = 2;
|
||||
|
||||
print "Process line nb " . $i . ", code " . $fields['CODE'] . ", name " . $object->name;
|
||||
|
||||
|
||||
// Extrafields
|
||||
$object->array_options['options_banque'] = $fields['BANQUE'];
|
||||
$object->array_options['options_banque2'] = $fields['BANQUE2'];
|
||||
$object->array_options['options_banquevalid'] = $fields['VALID'];
|
||||
|
||||
if (!$errorrecord) {
|
||||
$ret = $object->create($user);
|
||||
if ($ret < 0) {
|
||||
print " - Error in create result code = " . $ret . " - " . $object->errorsToString();
|
||||
$errorrecord++;
|
||||
var_dump($object->code_client, $db);
|
||||
die();
|
||||
} else {
|
||||
print " - Creation OK with name " . $object->name . " - id = " . $ret;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$errorrecord) {
|
||||
dol_syslog("Set price level");
|
||||
$object->set_price_level($object->price_level, $user);
|
||||
}
|
||||
if (!$errorrecord && @$object->remise_percent) {
|
||||
dol_syslog("Set remise client");
|
||||
$object->set_remise_client($object->remise_percent, 'Importé', $user);
|
||||
}
|
||||
|
||||
dol_syslog("Add contact");
|
||||
// Insert an invoice contact if there is an invoice email != standard email
|
||||
if (!$errorrecord && ($fields['LCIVIL'] || $fields['LNOM'])) {
|
||||
$madame = array("MADAME",
|
||||
"MADEMOISELLE",
|
||||
"MELLE",
|
||||
"MLLE",
|
||||
"MM",
|
||||
"Mme",
|
||||
"MNE",
|
||||
);
|
||||
$monsieur = array("M",
|
||||
);
|
||||
$monsieur = array("M",
|
||||
"M ET MME",
|
||||
"M MME",
|
||||
"M.",
|
||||
@@ -268,77 +274,84 @@ while ($fields = $db->fetch_array($resql)) {
|
||||
"MONSIUER",
|
||||
"MONSKIEUR",
|
||||
"MR",
|
||||
);
|
||||
$ret1 = $ret2 = 0;
|
||||
);
|
||||
$ret1 = $ret2 = 0;
|
||||
|
||||
$contact = new Contact($db);
|
||||
if (in_array($fields['LCIVIL'], $madame)) {
|
||||
// une dame
|
||||
$contact->civility_id = 'MME';
|
||||
$contact->lastname = $fields['LNOM'];
|
||||
} elseif (in_array($fields['LCIVIL'], $monsieur)) {
|
||||
// un monsieur
|
||||
$contact->civility_id = 'MR';
|
||||
$contact->lastname = $fields['LNOM'];
|
||||
} elseif (in_array($fields['LCIVIL'], ['DOCTEUR'])) {
|
||||
// un monsieur
|
||||
$contact->civility_id = 'DR';
|
||||
$contact->lastname = $fields['LNOM'];
|
||||
} else {
|
||||
// un a rattraper
|
||||
$contact->lastname = $fields['LCIVIL'] . " " . $fields['LNOM'];
|
||||
}
|
||||
$contact->address = trim($fields['LADR1']);
|
||||
if ($fields['LADR2'])
|
||||
$contact->address .= "\n" . trim($fields['LADR2']);
|
||||
if ($fields['LADR3'])
|
||||
$contact->address .= "\n" . trim($fields['LADR3']);
|
||||
$contact = new Contact($db);
|
||||
if (in_array($fields['LCIVIL'], $madame)) {
|
||||
// une dame
|
||||
$contact->civility_id = 'MME';
|
||||
$contact->lastname = $fields['LNOM'];
|
||||
} elseif (in_array($fields['LCIVIL'], $monsieur)) {
|
||||
// un monsieur
|
||||
$contact->civility_id = 'MR';
|
||||
$contact->lastname = $fields['LNOM'];
|
||||
} elseif (in_array($fields['LCIVIL'], ['DOCTEUR'])) {
|
||||
// un monsieur
|
||||
$contact->civility_id = 'DR';
|
||||
$contact->lastname = $fields['LNOM'];
|
||||
} else {
|
||||
// un a rattraper
|
||||
$contact->lastname = $fields['LCIVIL'] . " " . $fields['LNOM'];
|
||||
}
|
||||
$contact->address = trim($fields['LADR1']);
|
||||
if ($fields['LADR2']) {
|
||||
$contact->address .= "\n" . trim($fields['LADR2']);
|
||||
}
|
||||
if ($fields['LADR3']) {
|
||||
$contact->address .= "\n" . trim($fields['LADR3']);
|
||||
}
|
||||
|
||||
$contact->zip = trim($fields['LPOSTE']);
|
||||
$contact->town = trim($fields['LVILLE']);
|
||||
if ($fields['FPAYS'])
|
||||
$contact->country_id = dol_getIdFromCode($db, trim(ucwords(strtolower($fields['LPAYS']))), 'c_country', 'label', 'rowid');
|
||||
else $contact->country_id = 1;
|
||||
$contact->email = $fields['LMAIL'];
|
||||
$contact->phone = trim($fields['LTEL']) ? trim($fields['LTEL']) : trim($fields['LCONTACT']);
|
||||
$contact->fax = trim($fields['LFAX']) ? trim($fields['LFAX']) : trim($fields['LCONTACT']);
|
||||
$contact->socid = $object->id;
|
||||
$contact->zip = trim($fields['LPOSTE']);
|
||||
$contact->town = trim($fields['LVILLE']);
|
||||
if ($fields['FPAYS']) {
|
||||
$contact->country_id = dol_getIdFromCode($db, trim(ucwords(strtolower($fields['LPAYS']))), 'c_country', 'label', 'rowid');
|
||||
} else {
|
||||
$contact->country_id = 1;
|
||||
}
|
||||
$contact->email = $fields['LMAIL'];
|
||||
$contact->phone = trim($fields['LTEL']) ? trim($fields['LTEL']) : trim($fields['LCONTACT']);
|
||||
$contact->fax = trim($fields['LFAX']) ? trim($fields['LFAX']) : trim($fields['LCONTACT']);
|
||||
$contact->socid = $object->id;
|
||||
|
||||
$ret1 = $contact->create($user);
|
||||
if ($ret1 > 0) {
|
||||
//$ret2=$contact->add_contact($object->id, 'BILLING');
|
||||
$ret1 = $contact->create($user);
|
||||
if ($ret1 > 0) {
|
||||
//$ret2=$contact->add_contact($object->id, 'BILLING');
|
||||
}
|
||||
if ($ret1 < 0 || $ret2 < 0) {
|
||||
print " - Error in create contact result code = " . $ret1 . " " . $ret2 . " - " . $contact->errorsToString();
|
||||
$errorrecord++;
|
||||
} else {
|
||||
print " - create contact OK";
|
||||
}
|
||||
}
|
||||
if ($ret1 < 0 || $ret2 < 0) {
|
||||
print " - Error in create contact result code = " . $ret1 . " " . $ret2 . " - " . $contact->errorsToString();
|
||||
$errorrecord++;
|
||||
} else {
|
||||
print " - create contact OK";
|
||||
|
||||
|
||||
//update date créa
|
||||
if (!$errorrecord) {
|
||||
$datec = substr($date, 0, 4) . '-' . substr($date, 4, 2) . '-' . substr($date, 6, 2);
|
||||
$retd = $db->query("UPDATE `llx_societe` SET `datec` = '$datec 00:00:00' WHERE `rowid` = $object->id");
|
||||
if ($retd < 1) {
|
||||
print " - Error in update date créa result " . $object->errorsToString();
|
||||
$errorrecord++;
|
||||
} else {
|
||||
print " - update date créa OK";
|
||||
}
|
||||
}
|
||||
print "\n";
|
||||
|
||||
if ($errorrecord) {
|
||||
print( 'Error on record nb ' . $i . " - " . $object->errorsToString() . "\n");
|
||||
var_dump($db, $object, $contact);
|
||||
// $db->rollback();
|
||||
die();
|
||||
$error++; // $errorrecord will be reset
|
||||
}
|
||||
$j++;
|
||||
}
|
||||
|
||||
|
||||
//update date créa
|
||||
if (!$errorrecord) {
|
||||
$datec = substr($date, 0, 4) . '-' . substr($date, 4, 2) . '-' . substr($date, 6, 2);
|
||||
$retd = $db->query("UPDATE `llx_societe` SET `datec` = '$datec 00:00:00' WHERE `rowid` = $object->id");
|
||||
if ($retd < 1) {
|
||||
print " - Error in update date créa result " . $object->errorsToString();
|
||||
$errorrecord++;
|
||||
} else {
|
||||
print " - update date créa OK";
|
||||
}
|
||||
}
|
||||
print "\n";
|
||||
|
||||
if ($errorrecord) {
|
||||
print( 'Error on record nb ' . $i . " - " . $object->errorsToString() . "\n");
|
||||
var_dump($db, $object, $contact);
|
||||
// $db->rollback();
|
||||
die();
|
||||
$error++; // $errorrecord will be reset
|
||||
}
|
||||
$j++;
|
||||
} else die("error : $sql");
|
||||
} else {
|
||||
die("error : $sql");
|
||||
}
|
||||
|
||||
$db->commit();
|
||||
|
||||
|
||||
@@ -18,382 +18,582 @@ define('DBASE_TYPE_FOXPRO', 1);
|
||||
*/
|
||||
class DBase
|
||||
{
|
||||
private $fd;
|
||||
private $headerLength = 0;
|
||||
private $fields = array();
|
||||
private $fieldCount = 0;
|
||||
private $recordLength = 0;
|
||||
private $recordCount = 0;
|
||||
private $fd;
|
||||
private $headerLength = 0;
|
||||
private $fields = array();
|
||||
private $fieldCount = 0;
|
||||
private $recordLength = 0;
|
||||
private $recordCount = 0;
|
||||
|
||||
//resource dbase_open ( string $filename , int $mode )
|
||||
public static function open($filename, $mode)
|
||||
/**
|
||||
* resource dbase_open
|
||||
* @param string $filename filename
|
||||
* @param int $mode mode
|
||||
* @return DBase
|
||||
*/
|
||||
public static function open($filename, $mode)
|
||||
{
|
||||
if (!file_exists($filename))
|
||||
return false;
|
||||
$modes = array('r', 'w', 'r+');
|
||||
$mode = $modes[$mode];
|
||||
$fd = fopen($filename, $mode);
|
||||
if (!$fd)
|
||||
return false;
|
||||
return new DBase($fd);
|
||||
}
|
||||
if (!file_exists($filename)) {
|
||||
return false;
|
||||
}
|
||||
$modes = array('r', 'w', 'r+');
|
||||
$mode = $modes[$mode];
|
||||
$fd = fopen($filename, $mode);
|
||||
if (!$fd) {
|
||||
return false;
|
||||
}
|
||||
return new DBase($fd);
|
||||
}
|
||||
|
||||
//resource dbase_create ( string $filename , array $fields [, int $type = DBASE_TYPE_DBASE ] )
|
||||
public static function create($filename, $fields, $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)
|
||||
{
|
||||
if (file_exists($filename))
|
||||
return false;
|
||||
$fd = fopen($filename, 'c+');
|
||||
if (!$fd)
|
||||
return false;
|
||||
// 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
|
||||
// presence of a SQL table, bit 7 indicates the presence of any memo file
|
||||
// (either dBASE m PLUS or dBASE for DOS)
|
||||
self::putChar8($fd, 5);
|
||||
// Byte 1-3 (3 bytes): Date of last update; formatted as YYMMDD
|
||||
self::putChar8($fd, date('Y') - 1900);
|
||||
self::putChar8($fd, date('m'));
|
||||
self::putChar8($fd, date('d'));
|
||||
// Byte 4-7 (32-bit number): Number of records in the database file. Currently 0
|
||||
self::putInt32($fd, 0);
|
||||
// Byte 8-9 (16-bit number): Number of bytes in the header.
|
||||
self::putInt16($fd, 32 + (32 * count($fields)) + 1);
|
||||
// Byte 10-11 (16-bit number): Number of bytes in record.
|
||||
// Make sure the include the byte for deleted flag
|
||||
$len = 1;
|
||||
foreach ($fields as &$field)
|
||||
$len += self::length($field);
|
||||
self::putInt16($fd, $len);
|
||||
// Byte 12-13 (2 bytes): Reserved, 0 filled.
|
||||
self::putInt16($fd, 0);
|
||||
// Byte 14 (1 byte): Flag indicating incomplete transaction
|
||||
// The ISMARKEDO function checks this flag. BEGIN TRANSACTION sets it to 1, END TRANSACTION and ROLLBACK reset it to 0.
|
||||
self::putChar8($fd, 0);
|
||||
// Byte 15 (1 byte): Encryption flag. If this flag is set to 1, the message Database encrypted appears. Changing this flag to 0 removes the message, but does not decrypt the file.
|
||||
self::putChar8($fd, 0);
|
||||
// Byte 16-27 (12 bytes): Reserved for dBASE for DOS in a multi-user environment
|
||||
self::putInt32($fd, 0);
|
||||
self::putInt32($fd, 0);
|
||||
self::putInt32($fd, 0);
|
||||
// Byte 28 (1 byte): Production .mdx file flag; 0x01 if there is a production .mdx file, 0x00 if not
|
||||
self::putChar8($fd, 0);
|
||||
// Byte 29 (1 byte): Language driver ID
|
||||
// (no clue what this is)
|
||||
self::putChar8($fd, 0);
|
||||
// Byte 30-31 (2 bytes): Reserved, 0 filled.
|
||||
self::putInt16($fd, 0);
|
||||
// Byte 32 - n (32 bytes each): Field descriptor array
|
||||
foreach ($fields as &$field) {
|
||||
self::putString($fd, $field[0], 11); // Byte 0 - 10 (11 bytes): Field name in ASCII (zero-filled)
|
||||
self::putString($fd, $field[1], 1); // Byte 11 (1 byte): Field type in ASCII (C, D, F, L, M, or N)
|
||||
self::putInt32($fd, 0); // Byte 12 - 15 (4 bytes): Reserved
|
||||
self::putChar8($fd, self::length($field)); // Byte 16 (1 byte): Field length in binary. The maximum length of a field is 254 (0xFE).
|
||||
self::putChar8($fd, $field[3]); // Byte 17 (1 byte): Field decimal count in binary
|
||||
self::putInt16($fd, 0); // Byte 18 - 19 (2 bytes): Work area ID
|
||||
self::putChar8($fd, 0); // Byte 20 (1 byte): Example (??)
|
||||
self::putInt32($fd, 0); // Byte 21 - 30 (10 bytes): Reserved
|
||||
self::putInt32($fd, 0);
|
||||
self::putInt16($fd, 0);
|
||||
self::putChar8($fd, 0); // Byte 31 (1 byte): Production MDX field flag; 1 if field has an index tag in the production MDX file, 0 if not
|
||||
}
|
||||
// Byte n + 1 (1 byte): 0x0D as the field descriptor array terminator
|
||||
self::putChar8($fd, 0x0D);
|
||||
return new DBase($fd);
|
||||
}
|
||||
if (file_exists($filename)) {
|
||||
return false;
|
||||
}
|
||||
$fd = fopen($filename, 'c+');
|
||||
if (!$fd) {
|
||||
return false;
|
||||
}
|
||||
// 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
|
||||
// presence of a SQL table, bit 7 indicates the presence of any memo file
|
||||
// (either dBASE m PLUS or dBASE for DOS)
|
||||
self::putChar8($fd, 5);
|
||||
// Byte 1-3 (3 bytes): Date of last update; formatted as YYMMDD
|
||||
self::putChar8($fd, date('Y') - 1900);
|
||||
self::putChar8($fd, date('m'));
|
||||
self::putChar8($fd, date('d'));
|
||||
// Byte 4-7 (32-bit number): Number of records in the database file. Currently 0
|
||||
self::putInt32($fd, 0);
|
||||
// Byte 8-9 (16-bit number): Number of bytes in the header.
|
||||
self::putInt16($fd, 32 + (32 * count($fields)) + 1);
|
||||
// Byte 10-11 (16-bit number): Number of bytes in record.
|
||||
// Make sure the include the byte for deleted flag
|
||||
$len = 1;
|
||||
foreach ($fields as &$field) {
|
||||
$len += self::length($field);
|
||||
}
|
||||
self::putInt16($fd, $len);
|
||||
// Byte 12-13 (2 bytes): Reserved, 0 filled.
|
||||
self::putInt16($fd, 0);
|
||||
// Byte 14 (1 byte): Flag indicating incomplete transaction
|
||||
// The ISMARKEDO function checks this flag. BEGIN TRANSACTION sets it to 1, END TRANSACTION and ROLLBACK reset it to 0.
|
||||
self::putChar8($fd, 0);
|
||||
// Byte 15 (1 byte): Encryption flag. If this flag is set to 1, the message Database encrypted appears. Changing this flag to 0 removes the message, but does not decrypt the file.
|
||||
self::putChar8($fd, 0);
|
||||
// Byte 16-27 (12 bytes): Reserved for dBASE for DOS in a multi-user environment
|
||||
self::putInt32($fd, 0);
|
||||
self::putInt32($fd, 0);
|
||||
self::putInt32($fd, 0);
|
||||
// Byte 28 (1 byte): Production .mdx file flag; 0x01 if there is a production .mdx file, 0x00 if not
|
||||
self::putChar8($fd, 0);
|
||||
// Byte 29 (1 byte): Language driver ID
|
||||
// (no clue what this is)
|
||||
self::putChar8($fd, 0);
|
||||
// Byte 30-31 (2 bytes): Reserved, 0 filled.
|
||||
self::putInt16($fd, 0);
|
||||
// Byte 32 - n (32 bytes each): Field descriptor array
|
||||
foreach ($fields as &$field) {
|
||||
self::putString($fd, $field[0], 11); // Byte 0 - 10 (11 bytes): Field name in ASCII (zero-filled)
|
||||
self::putString($fd, $field[1], 1); // Byte 11 (1 byte): Field type in ASCII (C, D, F, L, M, or N)
|
||||
self::putInt32($fd, 0); // Byte 12 - 15 (4 bytes): Reserved
|
||||
self::putChar8($fd, self::length($field)); // Byte 16 (1 byte): Field length in binary. The maximum length of a field is 254 (0xFE).
|
||||
self::putChar8($fd, $field[3]); // Byte 17 (1 byte): Field decimal count in binary
|
||||
self::putInt16($fd, 0); // Byte 18 - 19 (2 bytes): Work area ID
|
||||
self::putChar8($fd, 0); // Byte 20 (1 byte): Example (??)
|
||||
self::putInt32($fd, 0); // Byte 21 - 30 (10 bytes): Reserved
|
||||
self::putInt32($fd, 0);
|
||||
self::putInt16($fd, 0);
|
||||
self::putChar8($fd, 0); // Byte 31 (1 byte): Production MDX field flag; 1 if field has an index tag in the production MDX file, 0 if not
|
||||
}
|
||||
// Byte n + 1 (1 byte): 0x0D as the field descriptor array terminator
|
||||
self::putChar8($fd, 0x0D);
|
||||
return new DBase($fd);
|
||||
}
|
||||
|
||||
// Create DBase instance
|
||||
private function __construct($fd)
|
||||
/**
|
||||
* Create DBase instance
|
||||
* @param mixed $fd file descriptor
|
||||
* @return void
|
||||
*/
|
||||
private function __construct($fd)
|
||||
{
|
||||
$this->fd = $fd;
|
||||
// Byte 4-7 (32-bit number): Number of records in the database file. Currently 0
|
||||
fseek($this->fd, 4, SEEK_SET);
|
||||
$this->recordCount = self::getInt32($fd);
|
||||
// Byte 8-9 (16-bit number): Number of bytes in the header.
|
||||
fseek($this->fd, 8, SEEK_SET);
|
||||
$this->headerLength = self::getInt16($fd);
|
||||
// Number of fields is (headerLength - 33) / 32)
|
||||
$this->fieldCount = ($this->headerLength - 33) / 32;
|
||||
// Byte 10-11 (16-bit number): Number of bytes in record.
|
||||
fseek($this->fd, 10, SEEK_SET);
|
||||
$this->recordLength = self::getInt16($fd);
|
||||
// Byte 32 - n (32 bytes each): Field descriptor array
|
||||
fseek($fd, 32, SEEK_SET);
|
||||
for ($i = 0; $i < $this->fieldCount; $i++) {
|
||||
$data = fread($this->fd, 32);
|
||||
$field = array_map('trim', unpack('a11name/a1type/c4/c1length/c1precision/s1workid/c1example/c10/c1production', $data));
|
||||
$this->fields[] = $field;
|
||||
}
|
||||
}
|
||||
$this->fd = $fd;
|
||||
// Byte 4-7 (32-bit number): Number of records in the database file. Currently 0
|
||||
fseek($this->fd, 4, SEEK_SET);
|
||||
$this->recordCount = self::getInt32($fd);
|
||||
// Byte 8-9 (16-bit number): Number of bytes in the header.
|
||||
fseek($this->fd, 8, SEEK_SET);
|
||||
$this->headerLength = self::getInt16($fd);
|
||||
// Number of fields is (headerLength - 33) / 32)
|
||||
$this->fieldCount = ($this->headerLength - 33) / 32;
|
||||
// Byte 10-11 (16-bit number): Number of bytes in record.
|
||||
fseek($this->fd, 10, SEEK_SET);
|
||||
$this->recordLength = self::getInt16($fd);
|
||||
// Byte 32 - n (32 bytes each): Field descriptor array
|
||||
fseek($fd, 32, SEEK_SET);
|
||||
for ($i = 0; $i < $this->fieldCount; $i++) {
|
||||
$data = fread($this->fd, 32);
|
||||
$field = array_map('trim', unpack('a11name/a1type/c4/c1length/c1precision/s1workid/c1example/c10/c1production', $data));
|
||||
$this->fields[] = $field;
|
||||
}
|
||||
}
|
||||
|
||||
//bool dbase_close ( resource $dbase_identifier )
|
||||
public function close()
|
||||
/**
|
||||
* dbase_close
|
||||
* @return void
|
||||
*/
|
||||
public function close()
|
||||
{
|
||||
fclose($this->fd);
|
||||
}
|
||||
fclose($this->fd);
|
||||
}
|
||||
|
||||
//array dbase_get_header_info ( resource $dbase_identifier )
|
||||
public function get_header_info()
|
||||
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||
/**
|
||||
* dbase_get_header_info
|
||||
* @return array
|
||||
*/
|
||||
public function get_header_info()
|
||||
{
|
||||
return $this->fields;
|
||||
}
|
||||
// phpcs:disable
|
||||
return $this->fields;
|
||||
}
|
||||
|
||||
//int dbase_numfields ( resource $dbase_identifier )
|
||||
public function numfields()
|
||||
/**
|
||||
* dbase_numfields
|
||||
* @return int
|
||||
*/
|
||||
public function numfields()
|
||||
{
|
||||
return $this->fieldCount;
|
||||
}
|
||||
return $this->fieldCount;
|
||||
}
|
||||
|
||||
//int dbase_numrecords ( resource $dbase_identifier )
|
||||
public function numrecords()
|
||||
/**
|
||||
* dbase_numrecords
|
||||
* @return int
|
||||
*/
|
||||
public function numrecords()
|
||||
{
|
||||
return $this->recordCount;
|
||||
}
|
||||
return $this->recordCount;
|
||||
}
|
||||
|
||||
//bool dbase_add_record ( resource $dbase_identifier , array $record )
|
||||
public function add_record($record)
|
||||
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||
/**
|
||||
* dbase_add_record
|
||||
* @param array $record record
|
||||
* @return bool
|
||||
*/
|
||||
public function add_record($record)
|
||||
{
|
||||
if (count($record) != $this->fieldCount)
|
||||
return false;
|
||||
// Seek to end of file, minus the end of file marker
|
||||
fseek($this->fd, 0, SEEK_END);
|
||||
// Put the deleted flag
|
||||
self::putChar8($this->fd, 0x20);
|
||||
// Put the record
|
||||
if (!$this->putRecord($record))
|
||||
return false;
|
||||
// Update the record count
|
||||
fseek($this->fd, 4);
|
||||
self::putInt32($this->fd, ++$this->recordCount);
|
||||
return true;
|
||||
}
|
||||
// phpcs:enable
|
||||
if (count($record) != $this->fieldCount) {
|
||||
return false;
|
||||
}
|
||||
// Seek to end of file, minus the end of file marker
|
||||
fseek($this->fd, 0, SEEK_END);
|
||||
// Put the deleted flag
|
||||
self::putChar8($this->fd, 0x20);
|
||||
// Put the record
|
||||
if (!$this->putRecord($record)) {
|
||||
return false;
|
||||
}
|
||||
// Update the record count
|
||||
fseek($this->fd, 4);
|
||||
self::putInt32($this->fd, ++$this->recordCount);
|
||||
return true;
|
||||
}
|
||||
|
||||
//bool dbase_replace_record ( resource $dbase_identifier , array $record , int $record_number )
|
||||
public function replace_record($record, $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)
|
||||
{
|
||||
if (count($record) != $this->fieldCount)
|
||||
return false;
|
||||
if ($record_number < 1 || $record_number > $this->recordCount)
|
||||
return false;
|
||||
// Skip to the record location, plus the 1 byte for the deleted flag
|
||||
fseek($this->fd, $this->headerLength + ($this->recordLength * ($record_number - 1)) + 1);
|
||||
return $this->putRecord($record);
|
||||
}
|
||||
// phpcs:enable
|
||||
if (count($record) != $this->fieldCount) {
|
||||
return false;
|
||||
}
|
||||
if ($record_number < 1 || $record_number > $this->recordCount) {
|
||||
return false;
|
||||
}
|
||||
// Skip to the record location, plus the 1 byte for the deleted flag
|
||||
fseek($this->fd, $this->headerLength + ($this->recordLength * ($record_number - 1)) + 1);
|
||||
return $this->putRecord($record);
|
||||
}
|
||||
|
||||
//bool dbase_delete_record ( resource $dbase_identifier , int $record_number )
|
||||
public function delete_record($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)
|
||||
{
|
||||
if ($record_number < 1 || $record_number > $this->recordCount)
|
||||
return false;
|
||||
fseek($this->fd, $this->headerLength + ($this->recordLength * ($record_number - 1)));
|
||||
self::putChar8($this->fd, 0x2A);
|
||||
return true;
|
||||
}
|
||||
// phpcs:enable
|
||||
if ($record_number < 1 || $record_number > $this->recordCount) {
|
||||
return false;
|
||||
}
|
||||
fseek($this->fd, $this->headerLength + ($this->recordLength * ($record_number - 1)));
|
||||
self::putChar8($this->fd, 0x2A);
|
||||
return true;
|
||||
}
|
||||
|
||||
//array dbase_get_record ( resource $dbase_identifier , int $record_number )
|
||||
public function get_record($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)
|
||||
{
|
||||
if ($record_number < 1 || $record_number > $this->recordCount)
|
||||
return false;
|
||||
fseek($this->fd, $this->headerLength + ($this->recordLength * ($record_number - 1)));
|
||||
$record = array(
|
||||
'deleted' => self::getChar8($this->fd) == 0x2A ? 1 : 0
|
||||
);
|
||||
foreach ($this->fields as $i => &$field) {
|
||||
$value = trim(fread($this->fd, $field['length']));
|
||||
if ($field['type'] == 'L') {
|
||||
$value = strtolower($value);
|
||||
if ($value == 't' || $value == 'y')
|
||||
$value = true;
|
||||
elseif ($value == 'f' || $value == 'n')
|
||||
$value = false;
|
||||
else $value = null;
|
||||
}
|
||||
$record[$i] = $value;
|
||||
}
|
||||
return $record;
|
||||
}
|
||||
// phpcs:enable
|
||||
if ($record_number < 1 || $record_number > $this->recordCount) {
|
||||
return false;
|
||||
}
|
||||
fseek($this->fd, $this->headerLength + ($this->recordLength * ($record_number - 1)));
|
||||
$record = array(
|
||||
'deleted' => self::getChar8($this->fd) == 0x2A ? 1 : 0
|
||||
);
|
||||
foreach ($this->fields as $i => &$field) {
|
||||
$value = trim(fread($this->fd, $field['length']));
|
||||
if ($field['type'] == 'L') {
|
||||
$value = strtolower($value);
|
||||
if ($value == 't' || $value == 'y') {
|
||||
$value = true;
|
||||
} elseif ($value == 'f' || $value == 'n') {
|
||||
$value = false;
|
||||
} else {
|
||||
$value = null;
|
||||
}
|
||||
}
|
||||
$record[$i] = $value;
|
||||
}
|
||||
return $record;
|
||||
}
|
||||
|
||||
//array dbase_get_record_with_names ( resource $dbase_identifier , int $record_number )
|
||||
public function get_record_with_names($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)
|
||||
{
|
||||
if ($record_number < 1 || $record_number > $this->recordCount)
|
||||
return false;
|
||||
$record = $this->get_record($record_number);
|
||||
foreach ($this->fields as $i => &$field) {
|
||||
$record[$field['name']] = $record[$i];
|
||||
unset($record[$i]);
|
||||
}
|
||||
return $record;
|
||||
}
|
||||
// phpcs:enable
|
||||
if ($record_number < 1 || $record_number > $this->recordCount) {
|
||||
return false;
|
||||
}
|
||||
$record = $this->get_record($record_number);
|
||||
foreach ($this->fields as $i => &$field) {
|
||||
$record[$field['name']] = $record[$i];
|
||||
unset($record[$i]);
|
||||
}
|
||||
return $record;
|
||||
}
|
||||
|
||||
//bool dbase_pack ( resource $dbase_identifier )
|
||||
public function pack()
|
||||
/**
|
||||
* dbase_pack
|
||||
* @return void
|
||||
*/
|
||||
public function pack()
|
||||
{
|
||||
$in_offset = $out_offset = $this->headerLength;
|
||||
$new_count = 0;
|
||||
$rec_count = $this->recordCount;
|
||||
while ($rec_count > 0) {
|
||||
fseek($this->fd, $in_offset, SEEK_SET);
|
||||
$record = fread($this->fd, $this->recordLength);
|
||||
$deleted = substr($record, 0, 1);
|
||||
if ($deleted != '*') {
|
||||
fseek($this->fd, $out_offset, SEEK_SET);
|
||||
fwrite($this->fd, $record);
|
||||
$out_offset += $this->recordLength;
|
||||
$new_count++;
|
||||
}
|
||||
$in_offset += $this->recordLength;
|
||||
$rec_count--;
|
||||
}
|
||||
ftruncate($this->fd, $out_offset);
|
||||
// Update the record count
|
||||
fseek($this->fd, 4);
|
||||
self::putInt32($this->fd, $new_count);
|
||||
}
|
||||
$in_offset = $out_offset = $this->headerLength;
|
||||
$new_count = 0;
|
||||
$rec_count = $this->recordCount;
|
||||
while ($rec_count > 0) {
|
||||
fseek($this->fd, $in_offset, SEEK_SET);
|
||||
$record = fread($this->fd, $this->recordLength);
|
||||
$deleted = substr($record, 0, 1);
|
||||
if ($deleted != '*') {
|
||||
fseek($this->fd, $out_offset, SEEK_SET);
|
||||
fwrite($this->fd, $record);
|
||||
$out_offset += $this->recordLength;
|
||||
$new_count++;
|
||||
}
|
||||
$in_offset += $this->recordLength;
|
||||
$rec_count--;
|
||||
}
|
||||
ftruncate($this->fd, $out_offset);
|
||||
// Update the record count
|
||||
fseek($this->fd, 4);
|
||||
self::putInt32($this->fd, $new_count);
|
||||
}
|
||||
|
||||
/*
|
||||
* A few utilitiy functions
|
||||
*/
|
||||
/*
|
||||
* A few utilitiy functions
|
||||
*/
|
||||
|
||||
private static function length($field)
|
||||
/**
|
||||
* @param string $field field
|
||||
* @return int
|
||||
*/
|
||||
private static function length($field)
|
||||
{
|
||||
switch ($field[1]) {
|
||||
case 'D': // Date: Numbers and a character to separate month, day, and year (stored internally as 8 digits in YYYYMMDD format)
|
||||
return 8;
|
||||
case 'T': // DateTime (YYYYMMDDhhmmss.uuu) (FoxPro)
|
||||
return 18;
|
||||
case 'M': // Memo (ignored): All ASCII characters (stored internally as 10 digits representing a .dbt block number, right justified, padded with whitespaces)
|
||||
case 'N': // Number: -.0123456789 (right justified, padded with whitespaces)
|
||||
case 'F': // Float: -.0123456789 (right justified, padded with whitespaces)
|
||||
case 'C': // String: All ASCII characters (padded with whitespaces up to the field's length)
|
||||
return $field[2];
|
||||
case 'L': // Boolean: YyNnTtFf? (? when not initialized)
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
switch ($field[1]) {
|
||||
case 'D': // Date: Numbers and a character to separate month, day, and year (stored internally as 8 digits in YYYYMMDD format)
|
||||
return 8;
|
||||
case 'T': // DateTime (YYYYMMDDhhmmss.uuu) (FoxPro)
|
||||
return 18;
|
||||
case 'M': // Memo (ignored): All ASCII characters (stored internally as 10 digits representing a .dbt block number, right justified, padded with whitespaces)
|
||||
case 'N': // Number: -.0123456789 (right justified, padded with whitespaces)
|
||||
case 'F': // Float: -.0123456789 (right justified, padded with whitespaces)
|
||||
case 'C': // String: All ASCII characters (padded with whitespaces up to the field's length)
|
||||
return $field[2];
|
||||
case 'L': // Boolean: YyNnTtFf? (? when not initialized)
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Functions for reading and writing bytes
|
||||
*/
|
||||
/*
|
||||
* Functions for reading and writing bytes
|
||||
*/
|
||||
|
||||
private static function getChar8($fd)
|
||||
/**
|
||||
* getChar8
|
||||
* @param mixed $fd file descriptor
|
||||
* @return int
|
||||
*/
|
||||
private static function getChar8($fd)
|
||||
{
|
||||
return ord(fread($fd, 1));
|
||||
}
|
||||
return ord(fread($fd, 1));
|
||||
}
|
||||
|
||||
private static function putChar8($fd, $value)
|
||||
/**
|
||||
* putChar8
|
||||
* @param mixed $fd file descriptor
|
||||
* @param mixed $value value
|
||||
* @return bool
|
||||
*/
|
||||
private static function putChar8($fd, $value)
|
||||
{
|
||||
return fwrite($fd, chr($value));
|
||||
}
|
||||
return fwrite($fd, chr($value));
|
||||
}
|
||||
|
||||
private static function getInt16($fd, $n = 1)
|
||||
/**
|
||||
* getInt16
|
||||
* @param mixed $fd file descriptor
|
||||
* @param int $n n
|
||||
* @return bool
|
||||
*/
|
||||
private static function getInt16($fd, $n = 1)
|
||||
{
|
||||
$data = fread($fd, 2 * $n);
|
||||
$i = unpack("S$n", $data);
|
||||
if ($n == 1)
|
||||
return (int) $i[1];
|
||||
else return array_merge($i);
|
||||
}
|
||||
$data = fread($fd, 2 * $n);
|
||||
$i = unpack("S$n", $data);
|
||||
if ($n == 1) {
|
||||
return (int) $i[1];
|
||||
} else {
|
||||
return array_merge($i);
|
||||
}
|
||||
}
|
||||
|
||||
private static function putInt16($fd, $value)
|
||||
/**
|
||||
* putInt16
|
||||
* @param mixed $fd file descriptor
|
||||
* @param mixed $value value
|
||||
* @return bool
|
||||
*/
|
||||
private static function putInt16($fd, $value)
|
||||
{
|
||||
return fwrite($fd, pack('S', $value));
|
||||
}
|
||||
return fwrite($fd, pack('S', $value));
|
||||
}
|
||||
|
||||
private static function getInt32($fd, $n = 1)
|
||||
/**
|
||||
* getInt32
|
||||
* @param mixed $fd file descriptor
|
||||
* @param int $n n
|
||||
* @return bool
|
||||
*/
|
||||
private static function getInt32($fd, $n = 1)
|
||||
{
|
||||
$data = fread($fd, 4 * $n);
|
||||
$i = unpack("L$n", $data);
|
||||
if ($n == 1)
|
||||
return (int) $i[1];
|
||||
else return array_merge($i);
|
||||
}
|
||||
$data = fread($fd, 4 * $n);
|
||||
$i = unpack("L$n", $data);
|
||||
if ($n == 1) {
|
||||
return (int) $i[1];
|
||||
} else {
|
||||
return array_merge($i);
|
||||
}
|
||||
}
|
||||
|
||||
private static function putInt32($fd, $value)
|
||||
/**
|
||||
* putint32
|
||||
* @param mixed $fd file descriptor
|
||||
* @param mixed $value value
|
||||
* @return bool
|
||||
*/
|
||||
private static function putInt32($fd, $value)
|
||||
{
|
||||
return fwrite($fd, pack('L', $value));
|
||||
}
|
||||
return fwrite($fd, pack('L', $value));
|
||||
}
|
||||
|
||||
private static function putString($fd, $value, $length = 254)
|
||||
/**
|
||||
* putString
|
||||
* @param mixed $fd file descriptor
|
||||
* @param mixed $value value
|
||||
* @param int $length length
|
||||
* @return bool
|
||||
*/
|
||||
private static function putString($fd, $value, $length = 254)
|
||||
{
|
||||
$ret = fwrite($fd, pack('A' . $length, $value));
|
||||
}
|
||||
$ret = fwrite($fd, pack('A' . $length, $value));
|
||||
}
|
||||
|
||||
private function putRecord($record)
|
||||
/**
|
||||
* putRecord
|
||||
* @param mixed $record record
|
||||
* @return bool
|
||||
*/
|
||||
private function putRecord($record)
|
||||
{
|
||||
foreach ($this->fields as $i => &$field) {
|
||||
$value = $record[$i];
|
||||
// Number types are right aligned with spaces
|
||||
if ($field['type'] == 'N' || $field['type'] == 'F' && strlen($value) < $field['length']) {
|
||||
$value = str_repeat(' ', $field['length'] - strlen($value)) . $value;
|
||||
}
|
||||
self::putString($this->fd, $value, $field['length']);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
foreach ($this->fields as $i => &$field) {
|
||||
$value = $record[$i];
|
||||
// Number types are right aligned with spaces
|
||||
if ($field['type'] == 'N' || $field['type'] == 'F' && strlen($value) < $field['length']) {
|
||||
$value = str_repeat(' ', $field['length'] - strlen($value)) . $value;
|
||||
}
|
||||
self::putString($this->fd, $value, $field['length']);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('dbase_open')) {
|
||||
|
||||
function dbase_open($filename, $mode)
|
||||
/**
|
||||
* dbase_open
|
||||
* @param string $filename filename
|
||||
* @param int $mode mode
|
||||
* @return DBase
|
||||
*/
|
||||
function dbase_open($filename, $mode)
|
||||
{
|
||||
return DBase::open($filename, $mode);
|
||||
}
|
||||
return DBase::open($filename, $mode);
|
||||
}
|
||||
|
||||
function dbase_create($filename, $fields, $type = DBASE_TYPE_DBASE)
|
||||
/**
|
||||
* 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)
|
||||
{
|
||||
return DBase::create($filename, $fields, $type);
|
||||
}
|
||||
return DBase::create($filename, $fields, $type);
|
||||
}
|
||||
|
||||
function dbase_close($dbase_identifier)
|
||||
/**
|
||||
* dbase_close
|
||||
* @param Resource $dbase_identifier dbase identifier
|
||||
* @return bool
|
||||
*/
|
||||
function dbase_close($dbase_identifier)
|
||||
{
|
||||
return $dbase_identifier->close();
|
||||
}
|
||||
return $dbase_identifier->close();
|
||||
}
|
||||
|
||||
function dbase_get_header_info($dbase_identifier)
|
||||
/**
|
||||
* dbase_get_header_info
|
||||
* @param Resource $dbase_identifier dbase identifier
|
||||
* @return string
|
||||
*/
|
||||
function dbase_get_header_info($dbase_identifier)
|
||||
{
|
||||
return $dbase_identifier->get_header_info();
|
||||
}
|
||||
return $dbase_identifier->get_header_info();
|
||||
}
|
||||
|
||||
function dbase_numfields($dbase_identifier)
|
||||
/**
|
||||
* dbase_numfields
|
||||
* @param Resource $dbase_identifier dbase identifier
|
||||
* @return int
|
||||
*/
|
||||
function dbase_numfields($dbase_identifier)
|
||||
{
|
||||
$dbase_identifier->numfields();
|
||||
}
|
||||
$dbase_identifier->numfields();
|
||||
}
|
||||
|
||||
function dbase_numrecords($dbase_identifier)
|
||||
/**
|
||||
* dbase_numrecords
|
||||
* @param Resource $dbase_identifier dbase identifier
|
||||
* @return int
|
||||
*/
|
||||
function dbase_numrecords($dbase_identifier)
|
||||
{
|
||||
return $dbase_identifier->numrecords();
|
||||
}
|
||||
return $dbase_identifier->numrecords();
|
||||
}
|
||||
|
||||
function dbase_add_record($dbase_identifier, $record)
|
||||
/**
|
||||
* dbase_add_record
|
||||
* @param Resource $dbase_identifier dbase identifier
|
||||
* @param array $record record
|
||||
* @return bool
|
||||
*/
|
||||
function dbase_add_record($dbase_identifier, $record)
|
||||
{
|
||||
return $dbase_identifier->add_record($record);
|
||||
}
|
||||
return $dbase_identifier->add_record($record);
|
||||
}
|
||||
|
||||
function dbase_delete_record($dbase_identifier, $record_number)
|
||||
/**
|
||||
* 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)
|
||||
{
|
||||
return $dbase_identifier->delete_record($record_number);
|
||||
}
|
||||
return $dbase_identifier->delete_record($record_number);
|
||||
}
|
||||
|
||||
function dbase_replace_record($dbase_identifier, $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)
|
||||
{
|
||||
return $dbase_identifier->replace_record($record, $record_number);
|
||||
}
|
||||
return $dbase_identifier->replace_record($record, $record_number);
|
||||
}
|
||||
|
||||
function dbase_get_record($dbase_identifier, $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)
|
||||
{
|
||||
return $dbase_identifier->get_record($record_number);
|
||||
}
|
||||
return $dbase_identifier->get_record($record_number);
|
||||
}
|
||||
|
||||
function dbase_get_record_with_names($dbase_identifier, $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)
|
||||
{
|
||||
return $dbase_identifier->get_record_with_names($record_number);
|
||||
}
|
||||
return $dbase_identifier->get_record_with_names($record_number);
|
||||
}
|
||||
|
||||
function dbase_pack($dbase_identifier)
|
||||
/**
|
||||
* dbase_pack
|
||||
* @param Resource $dbase_identifier dbase identifier
|
||||
* @return bool
|
||||
*/
|
||||
function dbase_pack($dbase_identifier)
|
||||
{
|
||||
return $dbase_identifier->pack();
|
||||
}
|
||||
return $dbase_identifier->pack();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,60 +48,59 @@ require_once DOL_DOCUMENT_ROOT."/societe/class/societe.class.php";
|
||||
define(GEN_NUMBER_FACTURE, 1);
|
||||
$year = 2016;
|
||||
$dates = array (mktime(12, 0, 0, 1, 3, $year),
|
||||
mktime(12, 0, 0, 1, 9, $year),
|
||||
mktime(12, 0, 0, 2, 13, $year),
|
||||
mktime(12, 0, 0, 2, 23, $year),
|
||||
mktime(12, 0, 0, 3, 30, $year),
|
||||
mktime(12, 0, 0, 4, 3, $year),
|
||||
mktime(12, 0, 0, 4, 3, $year),
|
||||
mktime(12, 0, 0, 5, 9, $year),
|
||||
mktime(12, 0, 0, 5, 1, $year),
|
||||
mktime(12, 0, 0, 5, 13, $year),
|
||||
mktime(12, 0, 0, 5, 19, $year),
|
||||
mktime(12, 0, 0, 5, 23, $year),
|
||||
mktime(12, 0, 0, 6, 3, $year),
|
||||
mktime(12, 0, 0, 6, 19, $year),
|
||||
mktime(12, 0, 0, 6, 24, $year),
|
||||
mktime(12, 0, 0, 7, 3, $year),
|
||||
mktime(12, 0, 0, 7, 9, $year),
|
||||
mktime(12, 0, 0, 7, 23, $year),
|
||||
mktime(12, 0, 0, 7, 30, $year),
|
||||
mktime(12, 0, 0, 8, 9, $year),
|
||||
mktime(12, 0, 0, 9, 23, $year),
|
||||
mktime(12, 0, 0, 10, 3, $year),
|
||||
mktime(12, 0, 0, 11, 12, $year),
|
||||
mktime(12, 0, 0, 11, 13, $year),
|
||||
mktime(12, 0, 0, 1, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 1, 9, ($year - 1)),
|
||||
mktime(12, 0, 0, 2, 13, ($year - 1)),
|
||||
mktime(12, 0, 0, 2, 23, ($year - 1)),
|
||||
mktime(12, 0, 0, 3, 30, ($year - 1)),
|
||||
mktime(12, 0, 0, 4, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 4, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 9, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 1, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 13, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 19, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 23, ($year - 1)),
|
||||
mktime(12, 0, 0, 6, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 6, 19, ($year - 1)),
|
||||
mktime(12, 0, 0, 6, 24, ($year - 1)),
|
||||
mktime(12, 0, 0, 7, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 7, 9, ($year - 1)),
|
||||
mktime(12, 0, 0, 7, 23, ($year - 1)),
|
||||
mktime(12, 0, 0, 7, 30, ($year - 1)),
|
||||
mktime(12, 0, 0, 8, 9, ($year - 1)),
|
||||
mktime(12, 0, 0, 9, 23, ($year - 1)),
|
||||
mktime(12, 0, 0, 10, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 11, 12, $year),
|
||||
mktime(12, 0, 0, 11, 13, $year),
|
||||
mktime(12, 0, 0, 12, 12, $year),
|
||||
mktime(12, 0, 0, 12, 13, $year),
|
||||
mktime(12, 0, 0, 1, 9, $year),
|
||||
mktime(12, 0, 0, 2, 13, $year),
|
||||
mktime(12, 0, 0, 2, 23, $year),
|
||||
mktime(12, 0, 0, 3, 30, $year),
|
||||
mktime(12, 0, 0, 4, 3, $year),
|
||||
mktime(12, 0, 0, 4, 3, $year),
|
||||
mktime(12, 0, 0, 5, 9, $year),
|
||||
mktime(12, 0, 0, 5, 1, $year),
|
||||
mktime(12, 0, 0, 5, 13, $year),
|
||||
mktime(12, 0, 0, 5, 19, $year),
|
||||
mktime(12, 0, 0, 5, 23, $year),
|
||||
mktime(12, 0, 0, 6, 3, $year),
|
||||
mktime(12, 0, 0, 6, 19, $year),
|
||||
mktime(12, 0, 0, 6, 24, $year),
|
||||
mktime(12, 0, 0, 7, 3, $year),
|
||||
mktime(12, 0, 0, 7, 9, $year),
|
||||
mktime(12, 0, 0, 7, 23, $year),
|
||||
mktime(12, 0, 0, 7, 30, $year),
|
||||
mktime(12, 0, 0, 8, 9, $year),
|
||||
mktime(12, 0, 0, 9, 23, $year),
|
||||
mktime(12, 0, 0, 10, 3, $year),
|
||||
mktime(12, 0, 0, 11, 12, $year),
|
||||
mktime(12, 0, 0, 11, 13, $year),
|
||||
mktime(12, 0, 0, 1, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 1, 9, ($year - 1)),
|
||||
mktime(12, 0, 0, 2, 13, ($year - 1)),
|
||||
mktime(12, 0, 0, 2, 23, ($year - 1)),
|
||||
mktime(12, 0, 0, 3, 30, ($year - 1)),
|
||||
mktime(12, 0, 0, 4, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 4, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 9, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 1, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 13, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 19, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 23, ($year - 1)),
|
||||
mktime(12, 0, 0, 6, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 6, 19, ($year - 1)),
|
||||
mktime(12, 0, 0, 6, 24, ($year - 1)),
|
||||
mktime(12, 0, 0, 7, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 7, 9, ($year - 1)),
|
||||
mktime(12, 0, 0, 7, 23, ($year - 1)),
|
||||
mktime(12, 0, 0, 7, 30, ($year - 1)),
|
||||
mktime(12, 0, 0, 8, 9, ($year - 1)),
|
||||
mktime(12, 0, 0, 9, 23, ($year - 1)),
|
||||
mktime(12, 0, 0, 10, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 11, 12, $year),
|
||||
mktime(12, 0, 0, 11, 13, $year),
|
||||
mktime(12, 0, 0, 12, 12, $year),
|
||||
mktime(12, 0, 0, 12, 13, $year),
|
||||
);
|
||||
|
||||
$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";
|
||||
exit;
|
||||
}
|
||||
@@ -111,12 +110,10 @@ $user->getrights();
|
||||
$socids = array();
|
||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe WHERE client in (1, 3)";
|
||||
$resql = $db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
if ($resql) {
|
||||
$num_thirdparties = $db->num_rows($resql);
|
||||
$i = 0;
|
||||
while ($i < $num_thirdparties)
|
||||
{
|
||||
while ($i < $num_thirdparties) {
|
||||
$i++;
|
||||
$row = $db->fetch_row($resql);
|
||||
$socids[$i] = $row[0];
|
||||
@@ -126,12 +123,10 @@ if ($resql)
|
||||
$prodids = array();
|
||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."product WHERE tosell=1";
|
||||
$resql = $db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
if ($resql) {
|
||||
$num_prods = $db->num_rows($resql);
|
||||
$i = 0;
|
||||
while ($i < $num_prods)
|
||||
{
|
||||
while ($i < $num_prods) {
|
||||
$i++;
|
||||
$row = $db->fetch_row($resql);
|
||||
$prodids[$i] = $row[0];
|
||||
@@ -140,8 +135,7 @@ if ($resql)
|
||||
|
||||
$i=0;
|
||||
$result=0;
|
||||
while ($i < GEN_NUMBER_FACTURE && $result >= 0)
|
||||
{
|
||||
while ($i < GEN_NUMBER_FACTURE && $result >= 0) {
|
||||
$i++;
|
||||
$socid = mt_rand(1, $num_thirdparties);
|
||||
|
||||
@@ -153,31 +147,27 @@ while ($i < GEN_NUMBER_FACTURE && $result >= 0)
|
||||
$object->cond_reglement_id = 3;
|
||||
$object->mode_reglement_id = 3;
|
||||
|
||||
$fuser = new User($db);
|
||||
$fuser->fetch(mt_rand(1, 2));
|
||||
$fuser->getRights();
|
||||
$fuser = new User($db);
|
||||
$fuser->fetch(mt_rand(1, 2));
|
||||
$fuser->getRights();
|
||||
|
||||
$result=$object->create($fuser);
|
||||
if ($result >= 0)
|
||||
{
|
||||
if ($result >= 0) {
|
||||
$nbp = mt_rand(2, 5);
|
||||
$xnbp = 0;
|
||||
while ($xnbp < $nbp)
|
||||
{
|
||||
while ($xnbp < $nbp) {
|
||||
$prodid = mt_rand(1, $num_prods);
|
||||
$product=new Product($db);
|
||||
$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);
|
||||
if ($result < 0)
|
||||
{
|
||||
dol_print_error($db, $propal->error);
|
||||
}
|
||||
$xnbp++;
|
||||
if ($result < 0) {
|
||||
dol_print_error($db, $propal->error);
|
||||
}
|
||||
$xnbp++;
|
||||
}
|
||||
|
||||
$result=$object->validate($fuser);
|
||||
if ($result)
|
||||
{
|
||||
$result=$object->validate($fuser);
|
||||
if ($result) {
|
||||
print " OK with ref ".$object->ref."\n";;
|
||||
} else {
|
||||
dol_print_error($db, $object->error);
|
||||
|
||||
@@ -31,8 +31,8 @@ $path=dirname(__FILE__).'/';
|
||||
// Test si mode batch
|
||||
$sapi_type = php_sapi_name();
|
||||
if (substr($sapi_type, 0, 3) == 'cgi') {
|
||||
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||
exit;
|
||||
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
// Recupere root dolibarr
|
||||
@@ -54,62 +54,61 @@ require_once DOL_DOCUMENT_ROOT."/commande/class/commande.class.php";
|
||||
define(GEN_NUMBER_COMMANDE, 10);
|
||||
$year = 2016;
|
||||
$dates = array (mktime(12, 0, 0, 1, 3, $year),
|
||||
mktime(12, 0, 0, 1, 9, $year),
|
||||
mktime(12, 0, 0, 2, 13, $year),
|
||||
mktime(12, 0, 0, 2, 23, $year),
|
||||
mktime(12, 0, 0, 3, 30, $year),
|
||||
mktime(12, 0, 0, 4, 3, $year),
|
||||
mktime(12, 0, 0, 4, 3, $year),
|
||||
mktime(12, 0, 0, 5, 9, $year),
|
||||
mktime(12, 0, 0, 5, 1, $year),
|
||||
mktime(12, 0, 0, 5, 13, $year),
|
||||
mktime(12, 0, 0, 5, 19, $year),
|
||||
mktime(12, 0, 0, 5, 23, $year),
|
||||
mktime(12, 0, 0, 6, 3, $year),
|
||||
mktime(12, 0, 0, 6, 19, $year),
|
||||
mktime(12, 0, 0, 6, 24, $year),
|
||||
mktime(12, 0, 0, 7, 3, $year),
|
||||
mktime(12, 0, 0, 7, 9, $year),
|
||||
mktime(12, 0, 0, 7, 23, $year),
|
||||
mktime(12, 0, 0, 7, 30, $year),
|
||||
mktime(12, 0, 0, 8, 9, $year),
|
||||
mktime(12, 0, 0, 9, 23, $year),
|
||||
mktime(12, 0, 0, 10, 3, $year),
|
||||
mktime(12, 0, 0, 11, 12, $year),
|
||||
mktime(12, 0, 0, 11, 13, $year),
|
||||
mktime(12, 0, 0, 1, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 1, 9, ($year - 1)),
|
||||
mktime(12, 0, 0, 2, 13, ($year - 1)),
|
||||
mktime(12, 0, 0, 2, 23, ($year - 1)),
|
||||
mktime(12, 0, 0, 3, 30, ($year - 1)),
|
||||
mktime(12, 0, 0, 4, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 4, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 9, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 1, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 13, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 19, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 23, ($year - 1)),
|
||||
mktime(12, 0, 0, 6, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 6, 19, ($year - 1)),
|
||||
mktime(12, 0, 0, 6, 24, ($year - 1)),
|
||||
mktime(12, 0, 0, 7, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 7, 9, ($year - 1)),
|
||||
mktime(12, 0, 0, 7, 23, ($year - 1)),
|
||||
mktime(12, 0, 0, 7, 30, ($year - 1)),
|
||||
mktime(12, 0, 0, 8, 9, ($year - 1)),
|
||||
mktime(12, 0, 0, 9, 23, ($year - 1)),
|
||||
mktime(12, 0, 0, 10, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 11, 12, $year),
|
||||
mktime(12, 0, 0, 11, 13, $year),
|
||||
mktime(12, 0, 0, 12, 12, $year),
|
||||
mktime(12, 0, 0, 12, 13, $year),
|
||||
mktime(12, 0, 0, 1, 9, $year),
|
||||
mktime(12, 0, 0, 2, 13, $year),
|
||||
mktime(12, 0, 0, 2, 23, $year),
|
||||
mktime(12, 0, 0, 3, 30, $year),
|
||||
mktime(12, 0, 0, 4, 3, $year),
|
||||
mktime(12, 0, 0, 4, 3, $year),
|
||||
mktime(12, 0, 0, 5, 9, $year),
|
||||
mktime(12, 0, 0, 5, 1, $year),
|
||||
mktime(12, 0, 0, 5, 13, $year),
|
||||
mktime(12, 0, 0, 5, 19, $year),
|
||||
mktime(12, 0, 0, 5, 23, $year),
|
||||
mktime(12, 0, 0, 6, 3, $year),
|
||||
mktime(12, 0, 0, 6, 19, $year),
|
||||
mktime(12, 0, 0, 6, 24, $year),
|
||||
mktime(12, 0, 0, 7, 3, $year),
|
||||
mktime(12, 0, 0, 7, 9, $year),
|
||||
mktime(12, 0, 0, 7, 23, $year),
|
||||
mktime(12, 0, 0, 7, 30, $year),
|
||||
mktime(12, 0, 0, 8, 9, $year),
|
||||
mktime(12, 0, 0, 9, 23, $year),
|
||||
mktime(12, 0, 0, 10, 3, $year),
|
||||
mktime(12, 0, 0, 11, 12, $year),
|
||||
mktime(12, 0, 0, 11, 13, $year),
|
||||
mktime(12, 0, 0, 1, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 1, 9, ($year - 1)),
|
||||
mktime(12, 0, 0, 2, 13, ($year - 1)),
|
||||
mktime(12, 0, 0, 2, 23, ($year - 1)),
|
||||
mktime(12, 0, 0, 3, 30, ($year - 1)),
|
||||
mktime(12, 0, 0, 4, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 4, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 9, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 1, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 13, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 19, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 23, ($year - 1)),
|
||||
mktime(12, 0, 0, 6, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 6, 19, ($year - 1)),
|
||||
mktime(12, 0, 0, 6, 24, ($year - 1)),
|
||||
mktime(12, 0, 0, 7, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 7, 9, ($year - 1)),
|
||||
mktime(12, 0, 0, 7, 23, ($year - 1)),
|
||||
mktime(12, 0, 0, 7, 30, ($year - 1)),
|
||||
mktime(12, 0, 0, 8, 9, ($year - 1)),
|
||||
mktime(12, 0, 0, 9, 23, ($year - 1)),
|
||||
mktime(12, 0, 0, 10, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 11, 12, $year),
|
||||
mktime(12, 0, 0, 11, 13, $year),
|
||||
mktime(12, 0, 0, 12, 12, $year),
|
||||
mktime(12, 0, 0, 12, 13, $year),
|
||||
);
|
||||
|
||||
$ret=$user->fetch('', 'admin');
|
||||
if ($ret <= 0)
|
||||
{
|
||||
print 'A user with login "admin" and all permissions must be created to use this script.'."\n";
|
||||
exit;
|
||||
if ($ret <= 0) {
|
||||
print 'A user with login "admin" and all permissions must be created to use this script.'."\n";
|
||||
exit;
|
||||
}
|
||||
$user->getrights();
|
||||
|
||||
@@ -117,101 +116,100 @@ $societesid = array();
|
||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe where client in (1, 3)";
|
||||
$resql=$db->query($sql);
|
||||
if ($resql) {
|
||||
$num_thirdparties = $db->num_rows($resql);
|
||||
$i = 0;
|
||||
while ($i < $num_thirdparties) {
|
||||
$i++;
|
||||
$row = $db->fetch_row($resql);
|
||||
$societesid[$i] = $row[0];
|
||||
}
|
||||
} else { print "err"; }
|
||||
$num_thirdparties = $db->num_rows($resql);
|
||||
$i = 0;
|
||||
while ($i < $num_thirdparties) {
|
||||
$i++;
|
||||
$row = $db->fetch_row($resql);
|
||||
$societesid[$i] = $row[0];
|
||||
}
|
||||
} else {
|
||||
print "err";
|
||||
}
|
||||
|
||||
$commandesid = array();
|
||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."commande";
|
||||
$resql=$db->query($sql);
|
||||
if ($resql) {
|
||||
$num = $db->num_rows($resql);
|
||||
$i = 0;
|
||||
while ($i < $num) {
|
||||
$i++;
|
||||
$row = $db->fetch_row($resql);
|
||||
$commandesid[$i] = $row[0];
|
||||
}
|
||||
} else { print "err"; }
|
||||
$num = $db->num_rows($resql);
|
||||
$i = 0;
|
||||
while ($i < $num) {
|
||||
$i++;
|
||||
$row = $db->fetch_row($resql);
|
||||
$commandesid[$i] = $row[0];
|
||||
}
|
||||
} else {
|
||||
print "err";
|
||||
}
|
||||
|
||||
$prodids = array();
|
||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."product WHERE tosell=1";
|
||||
$resql = $db->query($sql);
|
||||
if ($resql) {
|
||||
$num_prods = $db->num_rows($resql);
|
||||
$i = 0;
|
||||
while ($i < $num_prods) {
|
||||
$i++;
|
||||
$num_prods = $db->num_rows($resql);
|
||||
$i = 0;
|
||||
while ($i < $num_prods) {
|
||||
$i++;
|
||||
|
||||
$row = $db->fetch_row($resql);
|
||||
$prodids[$i] = $row[0];
|
||||
}
|
||||
$row = $db->fetch_row($resql);
|
||||
$prodids[$i] = $row[0];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
print "Build ".GEN_NUMBER_COMMANDE." orders\n";
|
||||
for ($s = 0 ; $s < GEN_NUMBER_COMMANDE ; $s++)
|
||||
{
|
||||
print "Process order ".$s."\n";
|
||||
for ($s = 0; $s < GEN_NUMBER_COMMANDE; $s++) {
|
||||
print "Process order ".$s."\n";
|
||||
|
||||
$object = new Commande($db);
|
||||
$object = new Commande($db);
|
||||
|
||||
$object->socid = $societesid[mt_rand(1, $num_thirdparties)];
|
||||
$object->date_commande = $dates[mt_rand(1, count($dates)-1)];
|
||||
$object->note = 'My small comment about this order. Hum. Nothing.';
|
||||
$object->source = 1;
|
||||
$object->fk_project = 0;
|
||||
$object->remise_percent = 0;
|
||||
$object->shipping_method_id = mt_rand(1, 2);
|
||||
$object->cond_reglement_id = mt_rand(0, 2);
|
||||
$object->more_reglement_id = mt_rand(0, 7);
|
||||
$object->availability_id = mt_rand(0, 1);
|
||||
$object->socid = $societesid[mt_rand(1, $num_thirdparties)];
|
||||
$object->date_commande = $dates[mt_rand(1, count($dates)-1)];
|
||||
$object->note = 'My small comment about this order. Hum. Nothing.';
|
||||
$object->source = 1;
|
||||
$object->fk_project = 0;
|
||||
$object->remise_percent = 0;
|
||||
$object->shipping_method_id = mt_rand(1, 2);
|
||||
$object->cond_reglement_id = mt_rand(0, 2);
|
||||
$object->more_reglement_id = mt_rand(0, 7);
|
||||
$object->availability_id = mt_rand(0, 1);
|
||||
|
||||
$listofuserid=array(12,13,16);
|
||||
$listofuserid=array(12,13,16);
|
||||
|
||||
$fuser = new User($db);
|
||||
$fuser->fetch($listofuserid[mt_rand(0, 2)]);
|
||||
$fuser->getRights();
|
||||
$fuser = new User($db);
|
||||
$fuser->fetch($listofuserid[mt_rand(0, 2)]);
|
||||
$fuser->getRights();
|
||||
|
||||
$db->begin();
|
||||
$db->begin();
|
||||
|
||||
$result=$object->create($fuser);
|
||||
if ($result >= 0)
|
||||
{
|
||||
$nbp = mt_rand(2, 5);
|
||||
$xnbp = 0;
|
||||
while ($xnbp < $nbp)
|
||||
{
|
||||
$prodid = mt_rand(1, $num_prods);
|
||||
$product=new Product($db);
|
||||
$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);
|
||||
if ($result <= 0)
|
||||
{
|
||||
dol_print_error($db, $object->error);
|
||||
}
|
||||
$xnbp++;
|
||||
}
|
||||
$result=$object->create($fuser);
|
||||
if ($result >= 0) {
|
||||
$nbp = mt_rand(2, 5);
|
||||
$xnbp = 0;
|
||||
while ($xnbp < $nbp) {
|
||||
$prodid = mt_rand(1, $num_prods);
|
||||
$product=new Product($db);
|
||||
$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);
|
||||
if ($result <= 0) {
|
||||
dol_print_error($db, $object->error);
|
||||
}
|
||||
$xnbp++;
|
||||
}
|
||||
|
||||
$result=$object->valid($fuser);
|
||||
if ($result > 0)
|
||||
{
|
||||
$db->commit();
|
||||
print " OK with ref ".$object->ref."\n";
|
||||
} else {
|
||||
print " KO\n";
|
||||
$db->rollback();
|
||||
dol_print_error($db, $object->error);
|
||||
}
|
||||
} else {
|
||||
print " KO\n";
|
||||
$db->rollback();
|
||||
dol_print_error($db, $object->error);
|
||||
}
|
||||
$result=$object->valid($fuser);
|
||||
if ($result > 0) {
|
||||
$db->commit();
|
||||
print " OK with ref ".$object->ref."\n";
|
||||
} else {
|
||||
print " KO\n";
|
||||
$db->rollback();
|
||||
dol_print_error($db, $object->error);
|
||||
}
|
||||
} else {
|
||||
print " KO\n";
|
||||
$db->rollback();
|
||||
dol_print_error($db, $object->error);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,8 +31,8 @@ $path=dirname(__FILE__).'/';
|
||||
// Test si mode batch
|
||||
$sapi_type = php_sapi_name();
|
||||
if (substr($sapi_type, 0, 3) == 'cgi') {
|
||||
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||
exit;
|
||||
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
// Recupere root dolibarr
|
||||
@@ -54,8 +54,7 @@ define(GEN_NUMBER_PRODUIT, 100000);
|
||||
|
||||
|
||||
$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";
|
||||
exit;
|
||||
}
|
||||
@@ -65,38 +64,50 @@ $user->getrights();
|
||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."product"; $productsid = array();
|
||||
$resql=$db->query($sql);
|
||||
if ($resql) {
|
||||
$num = $db->num_rows($resql); $i = 0;
|
||||
while ($i < $num) { $row = $db->fetch_row($resql); $productsid[$i] = $row[0]; $i++; }
|
||||
$num = $db->num_rows($resql); $i = 0;
|
||||
while ($i < $num) {
|
||||
$row = $db->fetch_row($resql); $productsid[$i] = $row[0]; $i++;
|
||||
}
|
||||
}
|
||||
|
||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe"; $societesid = array();
|
||||
$resql=$db->query($sql);
|
||||
if ($resql) {
|
||||
$num = $db->num_rows($resql); $i = 0;
|
||||
while ($i < $num) { $row = $db->fetch_row($resql); $societesid[$i] = $row[0]; $i++; }
|
||||
} else { print "err"; }
|
||||
while ($i < $num) {
|
||||
$row = $db->fetch_row($resql); $societesid[$i] = $row[0]; $i++;
|
||||
}
|
||||
} else {
|
||||
print "err";
|
||||
}
|
||||
|
||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."commande"; $commandesid = array();
|
||||
$resql=$db->query($sql);
|
||||
if ($resql) {
|
||||
$num = $db->num_rows($resql); $i = 0;
|
||||
while ($i < $num) { $row = $db->fetch_row($resql); $commandesid[$i] = $row[0]; $i++; }
|
||||
} else { print "err"; }
|
||||
while ($i < $num) {
|
||||
$row = $db->fetch_row($resql); $commandesid[$i] = $row[0]; $i++;
|
||||
}
|
||||
} else {
|
||||
print "err";
|
||||
}
|
||||
|
||||
|
||||
print "Generates ".GEN_NUMBER_PRODUIT." products\n";
|
||||
for ($s = 0 ; $s < GEN_NUMBER_PRODUIT ; $s++)
|
||||
{
|
||||
print "Product ".$s;
|
||||
$produit = new Product($db);
|
||||
$produit->type = mt_rand(0, 1);
|
||||
$produit->status = 1;
|
||||
$produit->ref = ($produit->type?'S':'P').time().$s;
|
||||
$produit->label = 'Label '.time().$s;
|
||||
$produit->description = 'Description '.time().$s;
|
||||
$produit->price = mt_rand(1, 1000);
|
||||
$produit->tva_tx = "19.6";
|
||||
$ret=$produit->create($user);
|
||||
if ($ret < 0) print "Error $ret - ".$produit->error."\n";
|
||||
else print " OK with ref ".$produit->ref."\n";
|
||||
for ($s = 0; $s < GEN_NUMBER_PRODUIT; $s++) {
|
||||
print "Product ".$s;
|
||||
$produit = new Product($db);
|
||||
$produit->type = mt_rand(0, 1);
|
||||
$produit->status = 1;
|
||||
$produit->ref = ($produit->type?'S':'P').time().$s;
|
||||
$produit->label = 'Label '.time().$s;
|
||||
$produit->description = 'Description '.time().$s;
|
||||
$produit->price = mt_rand(1, 1000);
|
||||
$produit->tva_tx = "19.6";
|
||||
$ret=$produit->create($user);
|
||||
if ($ret < 0) {
|
||||
print "Error $ret - ".$produit->error."\n";
|
||||
} else {
|
||||
print " OK with ref ".$produit->ref."\n";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,60 +50,59 @@ require_once DOL_DOCUMENT_ROOT."/societe/class/societe.class.php";
|
||||
define(GEN_NUMBER_PROPAL, 10);
|
||||
$year = 2016;
|
||||
$dates = array (mktime(12, 0, 0, 1, 3, $year),
|
||||
mktime(12, 0, 0, 1, 9, $year),
|
||||
mktime(12, 0, 0, 2, 13, $year),
|
||||
mktime(12, 0, 0, 2, 23, $year),
|
||||
mktime(12, 0, 0, 3, 30, $year),
|
||||
mktime(12, 0, 0, 4, 3, $year),
|
||||
mktime(12, 0, 0, 4, 3, $year),
|
||||
mktime(12, 0, 0, 5, 9, $year),
|
||||
mktime(12, 0, 0, 5, 1, $year),
|
||||
mktime(12, 0, 0, 5, 13, $year),
|
||||
mktime(12, 0, 0, 5, 19, $year),
|
||||
mktime(12, 0, 0, 5, 23, $year),
|
||||
mktime(12, 0, 0, 6, 3, $year),
|
||||
mktime(12, 0, 0, 6, 19, $year),
|
||||
mktime(12, 0, 0, 6, 24, $year),
|
||||
mktime(12, 0, 0, 7, 3, $year),
|
||||
mktime(12, 0, 0, 7, 9, $year),
|
||||
mktime(12, 0, 0, 7, 23, $year),
|
||||
mktime(12, 0, 0, 7, 30, $year),
|
||||
mktime(12, 0, 0, 8, 9, $year),
|
||||
mktime(12, 0, 0, 9, 23, $year),
|
||||
mktime(12, 0, 0, 10, 3, $year),
|
||||
mktime(12, 0, 0, 11, 12, $year),
|
||||
mktime(12, 0, 0, 11, 13, $year),
|
||||
mktime(12, 0, 0, 1, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 1, 9, ($year - 1)),
|
||||
mktime(12, 0, 0, 2, 13, ($year - 1)),
|
||||
mktime(12, 0, 0, 2, 23, ($year - 1)),
|
||||
mktime(12, 0, 0, 3, 30, ($year - 1)),
|
||||
mktime(12, 0, 0, 4, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 4, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 9, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 1, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 13, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 19, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 23, ($year - 1)),
|
||||
mktime(12, 0, 0, 6, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 6, 19, ($year - 1)),
|
||||
mktime(12, 0, 0, 6, 24, ($year - 1)),
|
||||
mktime(12, 0, 0, 7, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 7, 9, ($year - 1)),
|
||||
mktime(12, 0, 0, 7, 23, ($year - 1)),
|
||||
mktime(12, 0, 0, 7, 30, ($year - 1)),
|
||||
mktime(12, 0, 0, 8, 9, ($year - 1)),
|
||||
mktime(12, 0, 0, 9, 23, ($year - 1)),
|
||||
mktime(12, 0, 0, 10, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 11, 12, $year),
|
||||
mktime(12, 0, 0, 11, 13, $year),
|
||||
mktime(12, 0, 0, 12, 12, $year),
|
||||
mktime(12, 0, 0, 12, 13, $year),
|
||||
mktime(12, 0, 0, 1, 9, $year),
|
||||
mktime(12, 0, 0, 2, 13, $year),
|
||||
mktime(12, 0, 0, 2, 23, $year),
|
||||
mktime(12, 0, 0, 3, 30, $year),
|
||||
mktime(12, 0, 0, 4, 3, $year),
|
||||
mktime(12, 0, 0, 4, 3, $year),
|
||||
mktime(12, 0, 0, 5, 9, $year),
|
||||
mktime(12, 0, 0, 5, 1, $year),
|
||||
mktime(12, 0, 0, 5, 13, $year),
|
||||
mktime(12, 0, 0, 5, 19, $year),
|
||||
mktime(12, 0, 0, 5, 23, $year),
|
||||
mktime(12, 0, 0, 6, 3, $year),
|
||||
mktime(12, 0, 0, 6, 19, $year),
|
||||
mktime(12, 0, 0, 6, 24, $year),
|
||||
mktime(12, 0, 0, 7, 3, $year),
|
||||
mktime(12, 0, 0, 7, 9, $year),
|
||||
mktime(12, 0, 0, 7, 23, $year),
|
||||
mktime(12, 0, 0, 7, 30, $year),
|
||||
mktime(12, 0, 0, 8, 9, $year),
|
||||
mktime(12, 0, 0, 9, 23, $year),
|
||||
mktime(12, 0, 0, 10, 3, $year),
|
||||
mktime(12, 0, 0, 11, 12, $year),
|
||||
mktime(12, 0, 0, 11, 13, $year),
|
||||
mktime(12, 0, 0, 1, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 1, 9, ($year - 1)),
|
||||
mktime(12, 0, 0, 2, 13, ($year - 1)),
|
||||
mktime(12, 0, 0, 2, 23, ($year - 1)),
|
||||
mktime(12, 0, 0, 3, 30, ($year - 1)),
|
||||
mktime(12, 0, 0, 4, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 4, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 9, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 1, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 13, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 19, ($year - 1)),
|
||||
mktime(12, 0, 0, 5, 23, ($year - 1)),
|
||||
mktime(12, 0, 0, 6, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 6, 19, ($year - 1)),
|
||||
mktime(12, 0, 0, 6, 24, ($year - 1)),
|
||||
mktime(12, 0, 0, 7, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 7, 9, ($year - 1)),
|
||||
mktime(12, 0, 0, 7, 23, ($year - 1)),
|
||||
mktime(12, 0, 0, 7, 30, ($year - 1)),
|
||||
mktime(12, 0, 0, 8, 9, ($year - 1)),
|
||||
mktime(12, 0, 0, 9, 23, ($year - 1)),
|
||||
mktime(12, 0, 0, 10, 3, ($year - 1)),
|
||||
mktime(12, 0, 0, 11, 12, $year),
|
||||
mktime(12, 0, 0, 11, 13, $year),
|
||||
mktime(12, 0, 0, 12, 12, $year),
|
||||
mktime(12, 0, 0, 12, 13, $year),
|
||||
);
|
||||
|
||||
$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";
|
||||
exit;
|
||||
}
|
||||
@@ -113,12 +112,10 @@ $user->getrights();
|
||||
$socids = array();
|
||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe WHERE client in (1,3)";
|
||||
$resql = $db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
if ($resql) {
|
||||
$num_thirdparties = $db->num_rows($resql);
|
||||
$i = 0;
|
||||
while ($i < $num_thirdparties)
|
||||
{
|
||||
while ($i < $num_thirdparties) {
|
||||
$i++;
|
||||
$row = $db->fetch_row($resql);
|
||||
$socids[$i] = $row[0];
|
||||
@@ -128,12 +125,10 @@ if ($resql)
|
||||
$contids = array();
|
||||
$sql = "SELECT rowid, fk_soc FROM ".MAIN_DB_PREFIX."socpeople";
|
||||
$resql = $db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
if ($resql) {
|
||||
$num_conts = $db->num_rows($resql);
|
||||
$i = 0;
|
||||
while ($i < $num_conts)
|
||||
{
|
||||
while ($i < $num_conts) {
|
||||
$i++;
|
||||
$row = $db->fetch_row($resql);
|
||||
$contids[$row[1]][0] = $row[0]; // A ameliorer
|
||||
@@ -143,12 +138,10 @@ if ($resql)
|
||||
$prodids = array();
|
||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."product WHERE tosell=1";
|
||||
$resql = $db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
if ($resql) {
|
||||
$num_prods = $db->num_rows($resql);
|
||||
$i = 0;
|
||||
while ($i < $num_prods)
|
||||
{
|
||||
while ($i < $num_prods) {
|
||||
$i++;
|
||||
$row = $db->fetch_row($resql);
|
||||
$prodids[$i] = $row[0];
|
||||
@@ -159,15 +152,13 @@ $user->rights->propal->creer=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";
|
||||
}
|
||||
|
||||
$i=0;
|
||||
$result=0;
|
||||
while ($i < GEN_NUMBER_PROPAL && $result >= 0)
|
||||
{
|
||||
while ($i < GEN_NUMBER_PROPAL && $result >= 0) {
|
||||
$i++;
|
||||
$socid = mt_rand(1, $num_thirdparties);
|
||||
print "Proposal ".$i." for socid ".$socid;
|
||||
@@ -177,9 +168,9 @@ while ($i < GEN_NUMBER_PROPAL && $result >= 0)
|
||||
|
||||
$object = new Propal($db);
|
||||
|
||||
$fuser = new User($db);
|
||||
$fuser->fetch(mt_rand(1, 2));
|
||||
$fuser->getRights();
|
||||
$fuser = new User($db);
|
||||
$fuser->fetch(mt_rand(1, 2));
|
||||
$fuser->getRights();
|
||||
|
||||
$object->contactid = $contids[$socids[$socid]][0];
|
||||
$object->socid = $socids[$socid];
|
||||
@@ -188,32 +179,28 @@ while ($i < GEN_NUMBER_PROPAL && $result >= 0)
|
||||
$object->mode_reglement_id = 3;
|
||||
|
||||
$result=$object->create($fuser);
|
||||
if ($result >= 0)
|
||||
{
|
||||
if ($result >= 0) {
|
||||
$nbp = mt_rand(2, 5);
|
||||
$xnbp = 0;
|
||||
while ($xnbp < $nbp)
|
||||
{
|
||||
while ($xnbp < $nbp) {
|
||||
$prodid = mt_rand(1, $num_prods);
|
||||
$product=new Product($db);
|
||||
$result=$product->fetch($prodids[$prodid]);
|
||||
$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);
|
||||
}
|
||||
$xnbp++;
|
||||
}
|
||||
|
||||
$result=$object->valid($fuser);
|
||||
if ($result > 0)
|
||||
{
|
||||
$db->commit();
|
||||
print " OK with ref ".$object->ref."\n";
|
||||
if ($result > 0) {
|
||||
$db->commit();
|
||||
print " OK with ref ".$object->ref."\n";
|
||||
} else {
|
||||
print " KO\n";
|
||||
$db->rollback();
|
||||
dol_print_error($db, $object->error);
|
||||
print " KO\n";
|
||||
$db->rollback();
|
||||
dol_print_error($db, $object->error);
|
||||
}
|
||||
} else {
|
||||
dol_print_error($db, $object->error);
|
||||
|
||||
@@ -31,8 +31,8 @@ $path=dirname(__FILE__).'/';
|
||||
// Test si mode batch
|
||||
$sapi_type = php_sapi_name();
|
||||
if (substr($sapi_type, 0, 3) == 'cgi') {
|
||||
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||
exit;
|
||||
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
// Recupere root dolibarr
|
||||
@@ -57,8 +57,7 @@ define(GEN_NUMBER_SOCIETE, 10);
|
||||
|
||||
|
||||
$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";
|
||||
exit;
|
||||
}
|
||||
@@ -68,8 +67,8 @@ $user->getrights();
|
||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."product"; $productsid = array();
|
||||
$resql=$db->query($sql);
|
||||
if ($resql) {
|
||||
$num = $db->num_rows($resql); $i = 0;
|
||||
while ($i < $num) {
|
||||
$num = $db->num_rows($resql); $i = 0;
|
||||
while ($i < $num) {
|
||||
$row = $db->fetch_row($resql);
|
||||
$productsid[$i] = $row[0];
|
||||
$i++;
|
||||
@@ -80,63 +79,65 @@ $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe"; $societesid = array();
|
||||
$resql=$db->query($sql);
|
||||
if ($resql) {
|
||||
$num = $db->num_rows($resql); $i = 0;
|
||||
while ($i < $num) {
|
||||
while ($i < $num) {
|
||||
$row = $db->fetch_row($resql);
|
||||
$societesid[$i] = $row[0];
|
||||
$i++;
|
||||
}
|
||||
} else { print "err"; }
|
||||
} else {
|
||||
print "err";
|
||||
}
|
||||
|
||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."commande"; $commandesid = array();
|
||||
$resql=$db->query($sql);
|
||||
if ($resql) {
|
||||
$num = $db->num_rows($resql); $i = 0;
|
||||
while ($i < $num) {
|
||||
while ($i < $num) {
|
||||
$row = $db->fetch_row($resql);
|
||||
$commandesid[$i] = $row[0];
|
||||
$i++;
|
||||
}
|
||||
} else { print "err"; }
|
||||
} else {
|
||||
print "err";
|
||||
}
|
||||
|
||||
|
||||
|
||||
print "Generates ".GEN_NUMBER_SOCIETE." companies\n";
|
||||
for ($s = 0 ; $s < GEN_NUMBER_SOCIETE ; $s++)
|
||||
{
|
||||
print "Company $s\n";
|
||||
$soc = new Societe($db);
|
||||
$soc->name = "Company num ".time()."$s";
|
||||
$soc->town = $listoftown[mt_rand(0, count($listoftown)-1)];
|
||||
$soc->client = mt_rand(1, 2); // Une societe sur 2 est prospect, l'autre client
|
||||
$soc->fournisseur = mt_rand(0, 1); // Une societe sur 2 est fournisseur
|
||||
$soc->code_client='CU'.time()."$s";
|
||||
$soc->code_fournisseur='SU'.time()."$s";
|
||||
$soc->tva_assuj=1;
|
||||
$soc->country_id=1;
|
||||
$soc->country_code='FR';
|
||||
for ($s = 0; $s < GEN_NUMBER_SOCIETE; $s++) {
|
||||
print "Company $s\n";
|
||||
$soc = new Societe($db);
|
||||
$soc->name = "Company num ".time()."$s";
|
||||
$soc->town = $listoftown[mt_rand(0, count($listoftown)-1)];
|
||||
$soc->client = mt_rand(1, 2); // Une societe sur 2 est prospect, l'autre client
|
||||
$soc->fournisseur = mt_rand(0, 1); // Une societe sur 2 est fournisseur
|
||||
$soc->code_client='CU'.time()."$s";
|
||||
$soc->code_fournisseur='SU'.time()."$s";
|
||||
$soc->tva_assuj=1;
|
||||
$soc->country_id=1;
|
||||
$soc->country_code='FR';
|
||||
// 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";
|
||||
$soc->note_private = 'Company created by the script generate-societe.php';
|
||||
$socid = $soc->create();
|
||||
$soc->note_private = 'Company created by the script generate-societe.php';
|
||||
$socid = $soc->create();
|
||||
|
||||
if ($socid >= 0)
|
||||
{
|
||||
$rand = mt_rand(1, 4);
|
||||
print "> Generates $rand contact(s)\n";
|
||||
for ($c = 0 ; $c < $rand ; $c++)
|
||||
{
|
||||
$contact = new Contact($db);
|
||||
$contact->socid = $soc->id;
|
||||
$contact->lastname = "Lastname".$c;
|
||||
$contact->firstname = $listoflastname[mt_rand(0, count($listoflastname)-1)];
|
||||
if ( $contact->create($user) )
|
||||
{
|
||||
}
|
||||
}
|
||||
if ($socid >= 0) {
|
||||
$rand = mt_rand(1, 4);
|
||||
print "> Generates $rand contact(s)\n";
|
||||
for ($c = 0; $c < $rand; $c++) {
|
||||
$contact = new Contact($db);
|
||||
$contact->socid = $soc->id;
|
||||
$contact->lastname = "Lastname".$c;
|
||||
$contact->firstname = $listoflastname[mt_rand(0, count($listoflastname)-1)];
|
||||
if ($contact->create($user)) {
|
||||
}
|
||||
}
|
||||
|
||||
print "Company ".$s." created nom=".$soc->name."\n";
|
||||
} else {
|
||||
print "Error: ".$soc->error."\n";
|
||||
}
|
||||
print "Company ".$s." created nom=".$soc->name."\n";
|
||||
} else {
|
||||
print "Error: ".$soc->error."\n";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,8 +30,8 @@ $sapi_type = php_sapi_name();
|
||||
$script_file = basename(__FILE__);
|
||||
$path=dirname(__FILE__).'/';
|
||||
if (substr($sapi_type, 0, 3) == 'cgi') {
|
||||
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||
exit;
|
||||
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
// Recupere root dolibarr
|
||||
@@ -67,44 +67,40 @@ $startlinenb = empty($argv[4])?1:$argv[4];
|
||||
$endlinenb = empty($argv[5])?0:$argv[5];
|
||||
|
||||
if (empty($mode) || ! in_array($mode, array('test','confirm','confirmforced')) || empty($filepath)) {
|
||||
print "Usage: $script_file (test|confirm|confirmforced) filepath.csv [defaultlang] [startlinenb] [endlinenb]\n";
|
||||
print "Usage: $script_file test myfilepath.csv fr_FR 2 1002\n";
|
||||
print "\n";
|
||||
exit(-1);
|
||||
print "Usage: $script_file (test|confirm|confirmforced) filepath.csv [defaultlang] [startlinenb] [endlinenb]\n";
|
||||
print "Usage: $script_file test myfilepath.csv fr_FR 2 1002\n";
|
||||
print "\n";
|
||||
exit(-1);
|
||||
}
|
||||
if (! file_exists($filepath)) {
|
||||
print "Error: File ".$filepath." not found.\n";
|
||||
print "\n";
|
||||
exit(-1);
|
||||
print "Error: File ".$filepath." not found.\n";
|
||||
print "\n";
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
$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";
|
||||
exit;
|
||||
}
|
||||
$user->getrights();
|
||||
|
||||
// Ask confirmation
|
||||
if (! $confirmed)
|
||||
{
|
||||
print "Hit Enter to continue or CTRL+C to stop...\n";
|
||||
$input = trim(fgets(STDIN));
|
||||
if (! $confirmed) {
|
||||
print "Hit Enter to continue or CTRL+C to stop...\n";
|
||||
$input = trim(fgets(STDIN));
|
||||
}
|
||||
|
||||
// Open input and output files
|
||||
$fhandle = fopen($filepath, 'r');
|
||||
if (! $fhandle)
|
||||
{
|
||||
print 'Error: Failed to open file '.$filepath."\n";
|
||||
exit(1);
|
||||
if (! $fhandle) {
|
||||
print 'Error: Failed to open file '.$filepath."\n";
|
||||
exit(1);
|
||||
}
|
||||
$fhandleerr = fopen($filepatherr, 'w');
|
||||
if (! $fhandleerr)
|
||||
{
|
||||
print 'Error: Failed to open file '.$filepatherr."\n";
|
||||
exit(1);
|
||||
if (! $fhandleerr) {
|
||||
print 'Error: Failed to open file '.$filepatherr."\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$langs->setDefaultLang($defaultlang);
|
||||
@@ -114,99 +110,96 @@ $db->begin();
|
||||
|
||||
$i=0;
|
||||
$nboflines++;
|
||||
while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
|
||||
{
|
||||
$i++;
|
||||
$errorrecord=0;
|
||||
while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape)) {
|
||||
$i++;
|
||||
$errorrecord=0;
|
||||
|
||||
if ($startlinenb && $i < $startlinenb) continue;
|
||||
if ($endlinenb && $i > $endlinenb) continue;
|
||||
if ($startlinenb && $i < $startlinenb) {
|
||||
continue;
|
||||
}
|
||||
if ($endlinenb && $i > $endlinenb) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$nboflines++;
|
||||
$nboflines++;
|
||||
|
||||
$produit = new Product($db);
|
||||
$produit->type = 0;
|
||||
$produit->status = 1;
|
||||
$produit->ref = trim($fields[0]);
|
||||
$produit = new Product($db);
|
||||
$produit->type = 0;
|
||||
$produit->status = 1;
|
||||
$produit->ref = trim($fields[0]);
|
||||
|
||||
print "Process line nb ".$i.", ref ".$produit->ref;
|
||||
$produit->label = trim($fields[2]);
|
||||
$produit->description = trim($fields[4]."\n".($fields[5] ? $fields[5].' x '.$fields[6].' x '.$fields[7] : ''));
|
||||
$produit->volume = price2num($fields[8]);
|
||||
$produit->volume_unit = 0;
|
||||
$produit->weight = price2num($fields[9]);
|
||||
$produit->weight_units = 0; // -3 = g
|
||||
print "Process line nb ".$i.", ref ".$produit->ref;
|
||||
$produit->label = trim($fields[2]);
|
||||
$produit->description = trim($fields[4]."\n".($fields[5] ? $fields[5].' x '.$fields[6].' x '.$fields[7] : ''));
|
||||
$produit->volume = price2num($fields[8]);
|
||||
$produit->volume_unit = 0;
|
||||
$produit->weight = price2num($fields[9]);
|
||||
$produit->weight_units = 0; // -3 = g
|
||||
|
||||
$produit->customcode = $fields[10];
|
||||
$produit->barcode = $fields[1];
|
||||
$produit->customcode = $fields[10];
|
||||
$produit->barcode = $fields[1];
|
||||
|
||||
$produit->status = 1;
|
||||
$produit->status_buy = 1;
|
||||
$produit->status = 1;
|
||||
$produit->status_buy = 1;
|
||||
|
||||
$produit->finished = 1;
|
||||
$produit->finished = 1;
|
||||
|
||||
$produit->price_min = null;
|
||||
$produit->price_min_ttc = null;
|
||||
$produit->price = price2num($fields[11]);
|
||||
$produit->price_ttc = price2num($fields[12]);
|
||||
$produit->price_base_type = 'TTC';
|
||||
$produit->tva_tx = price2num($fields[13]);
|
||||
$produit->tva_npr = 0;
|
||||
$produit->price_min = null;
|
||||
$produit->price_min_ttc = null;
|
||||
$produit->price = price2num($fields[11]);
|
||||
$produit->price_ttc = price2num($fields[12]);
|
||||
$produit->price_base_type = 'TTC';
|
||||
$produit->tva_tx = price2num($fields[13]);
|
||||
$produit->tva_npr = 0;
|
||||
|
||||
$produit->cost_price = price2num($fields[16]);
|
||||
$produit->cost_price = price2num($fields[16]);
|
||||
|
||||
// Extrafields
|
||||
$produit->array_options['options_ecotaxdeee']=price2num($fields[17]);
|
||||
// Extrafields
|
||||
$produit->array_options['options_ecotaxdeee']=price2num($fields[17]);
|
||||
|
||||
$ret=$produit->create($user);
|
||||
if ($ret < 0)
|
||||
{
|
||||
print " - Error in create result code = ".$ret." - ".$produit->errorsToString();
|
||||
$errorrecord++;
|
||||
} else {
|
||||
print " - Creation OK with ref ".$produit->ref." - id = ".$ret;
|
||||
$ret=$produit->create($user);
|
||||
if ($ret < 0) {
|
||||
print " - Error in create result code = ".$ret." - ".$produit->errorsToString();
|
||||
$errorrecord++;
|
||||
} else {
|
||||
print " - Creation OK with ref ".$produit->ref." - id = ".$ret;
|
||||
}
|
||||
|
||||
dol_syslog("Add prices");
|
||||
|
||||
// If we use price level, insert price for each level
|
||||
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());
|
||||
$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)
|
||||
{
|
||||
print " - Error in updatePrice result code = ".$ret1." ".$ret2." - ".$produit->errorsToString();
|
||||
$errorrecord++;
|
||||
} else {
|
||||
print " - updatePrice OK";
|
||||
}
|
||||
// If we use price level, insert price for each level
|
||||
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());
|
||||
$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) {
|
||||
print " - Error in updatePrice result code = ".$ret1." ".$ret2." - ".$produit->errorsToString();
|
||||
$errorrecord++;
|
||||
} else {
|
||||
print " - updatePrice OK";
|
||||
}
|
||||
}
|
||||
|
||||
dol_syslog("Add multilangs");
|
||||
|
||||
// Add alternative languages
|
||||
if (! $errorrecord && 1)
|
||||
{
|
||||
$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);
|
||||
if (! $errorrecord && 1) {
|
||||
$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);
|
||||
|
||||
$ret=$produit->setMultiLangs($user);
|
||||
if ($ret < 0)
|
||||
{
|
||||
print " - Error in setMultiLangs result code = ".$ret." - ".$produit->errorsToString();
|
||||
$errorrecord++;
|
||||
} else {
|
||||
print " - setMultiLangs OK";
|
||||
}
|
||||
$ret=$produit->setMultiLangs($user);
|
||||
if ($ret < 0) {
|
||||
print " - Error in setMultiLangs result code = ".$ret." - ".$produit->errorsToString();
|
||||
$errorrecord++;
|
||||
} else {
|
||||
print " - setMultiLangs OK";
|
||||
}
|
||||
}
|
||||
|
||||
print "\n";
|
||||
|
||||
if ($errorrecord)
|
||||
{
|
||||
fwrite($fhandleerr, 'Error on record nb '.$i." - ".$produit->errorsToString()."\n");
|
||||
$error++; // $errorrecord will be reset
|
||||
if ($errorrecord) {
|
||||
fwrite($fhandleerr, 'Error on record nb '.$i." - ".$produit->errorsToString()."\n");
|
||||
$error++; // $errorrecord will be reset
|
||||
}
|
||||
}
|
||||
|
||||
@@ -217,13 +210,12 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
|
||||
// commit or rollback
|
||||
print "Nb of lines qualified: ".$nboflines."\n";
|
||||
print "Nb of errors: ".$error."\n";
|
||||
if ($mode != 'confirmforced' && ($error || $mode != 'confirm'))
|
||||
{
|
||||
print "Rollback any changes.\n";
|
||||
$db->rollback();
|
||||
if ($mode != 'confirmforced' && ($error || $mode != 'confirm')) {
|
||||
print "Rollback any changes.\n";
|
||||
$db->rollback();
|
||||
} else {
|
||||
print "Commit all changes.\n";
|
||||
$db->commit();
|
||||
print "Commit all changes.\n";
|
||||
$db->commit();
|
||||
}
|
||||
|
||||
$db->close();
|
||||
|
||||
@@ -30,8 +30,8 @@ $sapi_type = php_sapi_name();
|
||||
$script_file = basename(__FILE__);
|
||||
$path=dirname(__FILE__).'/';
|
||||
if (substr($sapi_type, 0, 3) == 'cgi') {
|
||||
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||
exit;
|
||||
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
// Recupere root dolibarr
|
||||
@@ -67,44 +67,40 @@ $startlinenb = empty($argv[3])?1:$argv[3];
|
||||
$endlinenb = empty($argv[4])?0:$argv[4];
|
||||
|
||||
if (empty($mode) || ! in_array($mode, array('test','confirm','confirmforced')) || empty($filepath)) {
|
||||
print "Usage: $script_file (test|confirm|confirmforced) filepath.csv [startlinenb] [endlinenb]\n";
|
||||
print "Usage: $script_file test myfilepath.csv 2 1002\n";
|
||||
print "\n";
|
||||
exit(-1);
|
||||
print "Usage: $script_file (test|confirm|confirmforced) filepath.csv [startlinenb] [endlinenb]\n";
|
||||
print "Usage: $script_file test myfilepath.csv 2 1002\n";
|
||||
print "\n";
|
||||
exit(-1);
|
||||
}
|
||||
if (! file_exists($filepath)) {
|
||||
print "Error: File ".$filepath." not found.\n";
|
||||
print "\n";
|
||||
exit(-1);
|
||||
print "Error: File ".$filepath." not found.\n";
|
||||
print "\n";
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
$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";
|
||||
exit;
|
||||
}
|
||||
$user->getrights();
|
||||
|
||||
// Ask confirmation
|
||||
if (! $confirmed)
|
||||
{
|
||||
print "Hit Enter to continue or CTRL+C to stop...\n";
|
||||
$input = trim(fgets(STDIN));
|
||||
if (! $confirmed) {
|
||||
print "Hit Enter to continue or CTRL+C to stop...\n";
|
||||
$input = trim(fgets(STDIN));
|
||||
}
|
||||
|
||||
// Open input and output files
|
||||
$fhandle = fopen($filepath, 'r');
|
||||
if (! $fhandle)
|
||||
{
|
||||
print 'Error: Failed to open file '.$filepath."\n";
|
||||
exit(1);
|
||||
if (! $fhandle) {
|
||||
print 'Error: Failed to open file '.$filepath."\n";
|
||||
exit(1);
|
||||
}
|
||||
$fhandleerr = fopen($filepatherr, 'w');
|
||||
if (! $fhandleerr)
|
||||
{
|
||||
print 'Error: Failed to open file '.$filepatherr."\n";
|
||||
exit(1);
|
||||
if (! $fhandleerr) {
|
||||
print 'Error: Failed to open file '.$filepatherr."\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
//$langs->setDefaultLang($defaultlang);
|
||||
@@ -114,175 +110,173 @@ $db->begin();
|
||||
|
||||
$i=0;
|
||||
$nboflines=0;
|
||||
while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
|
||||
{
|
||||
$i++;
|
||||
$errorrecord=0;
|
||||
while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape)) {
|
||||
$i++;
|
||||
$errorrecord=0;
|
||||
|
||||
if ($startlinenb && $i < $startlinenb) continue;
|
||||
if ($endlinenb && $i > $endlinenb) continue;
|
||||
if ($startlinenb && $i < $startlinenb) {
|
||||
continue;
|
||||
}
|
||||
if ($endlinenb && $i > $endlinenb) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$nboflines++;
|
||||
$nboflines++;
|
||||
|
||||
$object = new Societe($db);
|
||||
$object->state = $fields[6];
|
||||
$object->client = $fields[7];
|
||||
$object->fournisseur = $fields[8];
|
||||
$object = new Societe($db);
|
||||
$object->state = $fields[6];
|
||||
$object->client = $fields[7];
|
||||
$object->fournisseur = $fields[8];
|
||||
|
||||
$object->name = $fields[13]?trim($fields[13]):$fields[0];
|
||||
$object->name_alias = $fields[0]!=$fields[13]?trim($fields[0]):'';
|
||||
$object->name = $fields[13]?trim($fields[13]):$fields[0];
|
||||
$object->name_alias = $fields[0]!=$fields[13]?trim($fields[0]):'';
|
||||
|
||||
$object->address = trim($fields[14]);
|
||||
$object->zip = trim($fields[15]);
|
||||
$object->town = trim($fields[16]);
|
||||
$object->country_id = dol_getIdFromCode($db, trim($fields[21]), 'c_country', 'code', 'rowid');
|
||||
$object->phone = trim($fields[22]);
|
||||
$object->fax = trim($fields[23]);
|
||||
$object->email = trim($fields[26]);
|
||||
$object->idprof2 = trim($fields[29]);
|
||||
$object->tva_intra = trim($fields[34]);
|
||||
$object->default_lang = trim($fields[43]);
|
||||
$object->address = trim($fields[14]);
|
||||
$object->zip = trim($fields[15]);
|
||||
$object->town = trim($fields[16]);
|
||||
$object->country_id = dol_getIdFromCode($db, trim($fields[21]), 'c_country', 'code', 'rowid');
|
||||
$object->phone = trim($fields[22]);
|
||||
$object->fax = trim($fields[23]);
|
||||
$object->email = trim($fields[26]);
|
||||
$object->idprof2 = trim($fields[29]);
|
||||
$object->tva_intra = trim($fields[34]);
|
||||
$object->default_lang = trim($fields[43]);
|
||||
|
||||
//$condpayment = dol_string_unaccent(trim($fields[36]));
|
||||
if ($fields[36])
|
||||
{
|
||||
$condpayment = trim($fields[36]);
|
||||
if ($condpayment == 'A la commande') $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);
|
||||
if (empty($object->cond_reglement_id))
|
||||
{
|
||||
print " - Error cant find payment mode for ".$condpayment."\n";
|
||||
$errorrecord++;
|
||||
}
|
||||
}
|
||||
//$condpayment = dol_string_unaccent(trim($fields[36]));
|
||||
if ($fields[36]) {
|
||||
$condpayment = trim($fields[36]);
|
||||
if ($condpayment == 'A la commande') {
|
||||
$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);
|
||||
if (empty($object->cond_reglement_id)) {
|
||||
print " - Error cant find payment mode for ".$condpayment."\n";
|
||||
$errorrecord++;
|
||||
}
|
||||
}
|
||||
|
||||
$object->code_client = $fields[9];
|
||||
$object->code_fournisseur = $fields[10];
|
||||
$object->code_client = $fields[9];
|
||||
$object->code_fournisseur = $fields[10];
|
||||
|
||||
$labeltype = trim($fields[1]);
|
||||
$object->typent_id = dol_getIdFromCode($db, $labeltype, 'c_typent', 'libelle');
|
||||
$labeltype = trim($fields[1]);
|
||||
$object->typent_id = dol_getIdFromCode($db, $labeltype, 'c_typent', 'libelle');
|
||||
|
||||
// Set price level
|
||||
$object->price_level = 1;
|
||||
if ($labeltype == 'Revendeur') $object->price_level = 2;
|
||||
// Set price level
|
||||
$object->price_level = 1;
|
||||
if ($labeltype == 'Revendeur') {
|
||||
$object->price_level = 2;
|
||||
}
|
||||
|
||||
print "Process line nb ".$i.", name ".$object->name;
|
||||
print "Process line nb ".$i.", name ".$object->name;
|
||||
|
||||
|
||||
// Extrafields
|
||||
$object->array_options['options_anastate']=price2num($fields[20]);
|
||||
$object->array_options['options_anaregion']=price2num($fields[17]);
|
||||
// Extrafields
|
||||
$object->array_options['options_anastate']=price2num($fields[20]);
|
||||
$object->array_options['options_anaregion']=price2num($fields[17]);
|
||||
|
||||
if (! $errorrecord)
|
||||
{
|
||||
$ret=$object->create($user);
|
||||
if ($ret < 0)
|
||||
{
|
||||
print " - Error in create result code = ".$ret." - ".$object->errorsToString();
|
||||
$errorrecord++;
|
||||
} else {
|
||||
print " - Creation OK with name ".$object->name." - id = ".$ret;
|
||||
}
|
||||
}
|
||||
if (! $errorrecord) {
|
||||
$ret=$object->create($user);
|
||||
if ($ret < 0) {
|
||||
print " - Error in create result code = ".$ret." - ".$object->errorsToString();
|
||||
$errorrecord++;
|
||||
} else {
|
||||
print " - Creation OK with name ".$object->name." - id = ".$ret;
|
||||
}
|
||||
}
|
||||
|
||||
if (! $errorrecord)
|
||||
{
|
||||
dol_syslog("Set price level");
|
||||
$object->set_price_level($object->price_level, $user);
|
||||
}
|
||||
if (! $errorrecord) {
|
||||
dol_syslog("Set price level");
|
||||
$object->set_price_level($object->price_level, $user);
|
||||
}
|
||||
|
||||
// Assign sales representative
|
||||
if (! $errorrecord && $fields[3])
|
||||
{
|
||||
$salesrep=new User($db);
|
||||
if (! $errorrecord && $fields[3]) {
|
||||
$salesrep=new User($db);
|
||||
|
||||
$tmp=explode(' ', $fields[3], 2);
|
||||
$salesrep->firstname = trim($tmp[0]);
|
||||
$salesrep->lastname = trim($tmp[1]);
|
||||
if ($salesrep->lastname) $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->fetch(0, $salesrep->login);
|
||||
$tmp=explode(' ', $fields[3], 2);
|
||||
$salesrep->firstname = trim($tmp[0]);
|
||||
$salesrep->lastname = trim($tmp[1]);
|
||||
if ($salesrep->lastname) {
|
||||
$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->fetch(0, $salesrep->login);
|
||||
|
||||
$result = $object->add_commercial($user, $salesrep->id);
|
||||
if ($result < 0)
|
||||
{
|
||||
print " - Error in create link with sale representative result code = ".$result." - ".$object->errorsToString();
|
||||
$errorrecord++;
|
||||
} else {
|
||||
print " - create link sale representative OK";
|
||||
}
|
||||
$result = $object->add_commercial($user, $salesrep->id);
|
||||
if ($result < 0) {
|
||||
print " - Error in create link with sale representative result code = ".$result." - ".$object->errorsToString();
|
||||
$errorrecord++;
|
||||
} else {
|
||||
print " - create link sale representative OK";
|
||||
}
|
||||
}
|
||||
|
||||
dol_syslog("Add invoice contacts");
|
||||
// Insert an invoice contact if there is an invoice email != standard email
|
||||
if (! $errorrecord && $fields[27] && $fields[26] != $fields[27])
|
||||
{
|
||||
$ret1=$ret2=0;
|
||||
if (! $errorrecord && $fields[27] && $fields[26] != $fields[27]) {
|
||||
$ret1=$ret2=0;
|
||||
|
||||
$contact = new Contact($db);
|
||||
$contact->lastname = $object->name;
|
||||
$contact->address=$object->address;
|
||||
$contact->zip=$object->zip;
|
||||
$contact->town=$object->town;
|
||||
$contact->country_id=$object->country_id;
|
||||
$contact->email=$fields[27];
|
||||
$contact->socid=$object->id;
|
||||
$contact = new Contact($db);
|
||||
$contact->lastname = $object->name;
|
||||
$contact->address=$object->address;
|
||||
$contact->zip=$object->zip;
|
||||
$contact->town=$object->town;
|
||||
$contact->country_id=$object->country_id;
|
||||
$contact->email=$fields[27];
|
||||
$contact->socid=$object->id;
|
||||
|
||||
$ret1=$contact->create($user);
|
||||
if ($ret1 > 0)
|
||||
{
|
||||
//$ret2=$contact->add_contact($object->id, 'BILLING');
|
||||
}
|
||||
if ($ret1 < 0 || $ret2 < 0)
|
||||
{
|
||||
print " - Error in create contact result code = ".$ret1." ".$ret2." - ".$object->errorsToString();
|
||||
$errorrecord++;
|
||||
} else {
|
||||
print " - create contact OK";
|
||||
}
|
||||
$ret1=$contact->create($user);
|
||||
if ($ret1 > 0) {
|
||||
//$ret2=$contact->add_contact($object->id, 'BILLING');
|
||||
}
|
||||
if ($ret1 < 0 || $ret2 < 0) {
|
||||
print " - Error in create contact result code = ".$ret1." ".$ret2." - ".$object->errorsToString();
|
||||
$errorrecord++;
|
||||
} else {
|
||||
print " - create contact OK";
|
||||
}
|
||||
}
|
||||
|
||||
dol_syslog("Add delivery contacts");
|
||||
// Insert a delivery contact
|
||||
if (! $errorrecord && $fields[47])
|
||||
{
|
||||
$ret1=$ret2=0;
|
||||
if (! $errorrecord && $fields[47]) {
|
||||
$ret1=$ret2=0;
|
||||
|
||||
$contact2 = new Contact($db);
|
||||
$contact2->lastname = 'Service livraison - '.$fields[47];
|
||||
$contact2->address = $fields[48];
|
||||
$contact2->zip = $fields[50];
|
||||
$contact2->town = $fields[51];
|
||||
$contact2->country_id=dol_getIdFromCode($db, trim($fields[52]), 'c_country', 'code', 'rowid');
|
||||
$contact2->note_public=$fields[54];
|
||||
$contact2->socid=$object->id;
|
||||
$contact2 = new Contact($db);
|
||||
$contact2->lastname = 'Service livraison - '.$fields[47];
|
||||
$contact2->address = $fields[48];
|
||||
$contact2->zip = $fields[50];
|
||||
$contact2->town = $fields[51];
|
||||
$contact2->country_id=dol_getIdFromCode($db, trim($fields[52]), 'c_country', 'code', 'rowid');
|
||||
$contact2->note_public=$fields[54];
|
||||
$contact2->socid=$object->id;
|
||||
|
||||
// Extrafields
|
||||
$contact2->array_options['options_anazoneliv']=price2num($fields[53]);
|
||||
// Extrafields
|
||||
$contact2->array_options['options_anazoneliv']=price2num($fields[53]);
|
||||
|
||||
$ret1=$contact2->create($user);
|
||||
if ($ret1 > 0)
|
||||
{
|
||||
//$ret2=$contact2->add_contact($object->id, 'SHIPPING');
|
||||
}
|
||||
if ($ret1 < 0 || $ret2 < 0)
|
||||
{
|
||||
print " - Error in create contact result code = ".$ret1." ".$ret2." - ".$object->errorsToString();
|
||||
$errorrecord++;
|
||||
} else {
|
||||
print " - create contact OK";
|
||||
}
|
||||
$ret1=$contact2->create($user);
|
||||
if ($ret1 > 0) {
|
||||
//$ret2=$contact2->add_contact($object->id, 'SHIPPING');
|
||||
}
|
||||
if ($ret1 < 0 || $ret2 < 0) {
|
||||
print " - Error in create contact result code = ".$ret1." ".$ret2." - ".$object->errorsToString();
|
||||
$errorrecord++;
|
||||
} else {
|
||||
print " - create contact OK";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
print "\n";
|
||||
|
||||
if ($errorrecord)
|
||||
{
|
||||
fwrite($fhandleerr, 'Error on record nb '.$i." - ".$object->errorsToString()."\n");
|
||||
$error++; // $errorrecord will be reset
|
||||
if ($errorrecord) {
|
||||
fwrite($fhandleerr, 'Error on record nb '.$i." - ".$object->errorsToString()."\n");
|
||||
$error++; // $errorrecord will be reset
|
||||
}
|
||||
}
|
||||
|
||||
@@ -293,13 +287,12 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
|
||||
// commit or rollback
|
||||
print "Nb of lines qualified: ".$nboflines."\n";
|
||||
print "Nb of errors: ".$error."\n";
|
||||
if ($mode != 'confirmforced' && ($error || $mode != 'confirm'))
|
||||
{
|
||||
print "Rollback any changes.\n";
|
||||
$db->rollback();
|
||||
if ($mode != 'confirmforced' && ($error || $mode != 'confirm')) {
|
||||
print "Rollback any changes.\n";
|
||||
$db->rollback();
|
||||
} else {
|
||||
print "Commit all changes.\n";
|
||||
$db->commit();
|
||||
print "Commit all changes.\n";
|
||||
$db->commit();
|
||||
}
|
||||
|
||||
$db->close();
|
||||
|
||||
@@ -30,8 +30,8 @@ $sapi_type = php_sapi_name();
|
||||
$script_file = basename(__FILE__);
|
||||
$path=dirname(__FILE__).'/';
|
||||
if (substr($sapi_type, 0, 3) == 'cgi') {
|
||||
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||
exit;
|
||||
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
// Recupere root dolibarr
|
||||
@@ -67,44 +67,40 @@ $startlinenb = empty($argv[3])?1:$argv[3];
|
||||
$endlinenb = empty($argv[4])?0:$argv[4];
|
||||
|
||||
if (empty($mode) || ! in_array($mode, array('test','confirm','confirmforced')) || empty($filepath)) {
|
||||
print "Usage: $script_file (test|confirm|confirmforced) filepath.csv [startlinenb] [endlinenb]\n";
|
||||
print "Usage: $script_file test myfilepath.csv 2 1002\n";
|
||||
print "\n";
|
||||
exit(-1);
|
||||
print "Usage: $script_file (test|confirm|confirmforced) filepath.csv [startlinenb] [endlinenb]\n";
|
||||
print "Usage: $script_file test myfilepath.csv 2 1002\n";
|
||||
print "\n";
|
||||
exit(-1);
|
||||
}
|
||||
if (! file_exists($filepath)) {
|
||||
print "Error: File ".$filepath." not found.\n";
|
||||
print "\n";
|
||||
exit(-1);
|
||||
print "Error: File ".$filepath." not found.\n";
|
||||
print "\n";
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
$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";
|
||||
exit;
|
||||
}
|
||||
$user->getrights();
|
||||
|
||||
// Ask confirmation
|
||||
if (! $confirmed)
|
||||
{
|
||||
print "Hit Enter to continue or CTRL+C to stop...\n";
|
||||
$input = trim(fgets(STDIN));
|
||||
if (! $confirmed) {
|
||||
print "Hit Enter to continue or CTRL+C to stop...\n";
|
||||
$input = trim(fgets(STDIN));
|
||||
}
|
||||
|
||||
// Open input and output files
|
||||
$fhandle = fopen($filepath, 'r');
|
||||
if (! $fhandle)
|
||||
{
|
||||
print 'Error: Failed to open file '.$filepath."\n";
|
||||
exit(1);
|
||||
if (! $fhandle) {
|
||||
print 'Error: Failed to open file '.$filepath."\n";
|
||||
exit(1);
|
||||
}
|
||||
$fhandleerr = fopen($filepatherr, 'w');
|
||||
if (! $fhandleerr)
|
||||
{
|
||||
print 'Error: Failed to open file '.$filepatherr."\n";
|
||||
exit(1);
|
||||
if (! $fhandleerr) {
|
||||
print 'Error: Failed to open file '.$filepatherr."\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
//$langs->setDefaultLang($defaultlang);
|
||||
@@ -114,44 +110,48 @@ $db->begin();
|
||||
|
||||
$i=0;
|
||||
$nboflines=0;
|
||||
while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
|
||||
{
|
||||
$i++;
|
||||
$errorrecord=0;
|
||||
while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape)) {
|
||||
$i++;
|
||||
$errorrecord=0;
|
||||
|
||||
if ($startlinenb && $i < $startlinenb) continue;
|
||||
if ($endlinenb && $i > $endlinenb) continue;
|
||||
if ($startlinenb && $i < $startlinenb) {
|
||||
continue;
|
||||
}
|
||||
if ($endlinenb && $i > $endlinenb) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$nboflines++;
|
||||
$nboflines++;
|
||||
|
||||
$object = new User($db);
|
||||
$object->statut = 1;
|
||||
$object = new User($db);
|
||||
$object->statut = 1;
|
||||
|
||||
$tmp=explode(' ', $fields[3], 2);
|
||||
$object->firstname = trim($tmp[0]);
|
||||
$object->lastname = trim($tmp[1]);
|
||||
if ($object->lastname) $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->password = 'init';
|
||||
$tmp=explode(' ', $fields[3], 2);
|
||||
$object->firstname = trim($tmp[0]);
|
||||
$object->lastname = trim($tmp[1]);
|
||||
if ($object->lastname) {
|
||||
$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->password = 'init';
|
||||
|
||||
print "Process line nb ".$i.", login ".$object->login;
|
||||
print "Process line nb ".$i.", login ".$object->login;
|
||||
|
||||
$ret=$object->create($user);
|
||||
if ($ret < 0)
|
||||
{
|
||||
print " - Error in create result code = ".$ret." - ".$object->errorsToString();
|
||||
$errorrecord++;
|
||||
} else {
|
||||
print " - Creation OK with login ".$object->login." - id = ".$ret;
|
||||
$ret=$object->create($user);
|
||||
if ($ret < 0) {
|
||||
print " - Error in create result code = ".$ret." - ".$object->errorsToString();
|
||||
$errorrecord++;
|
||||
} else {
|
||||
print " - Creation OK with login ".$object->login." - id = ".$ret;
|
||||
}
|
||||
|
||||
print "\n";
|
||||
|
||||
if ($errorrecord)
|
||||
{
|
||||
fwrite($fhandleerr, 'Error on record nb '.$i." - ".$object->errorsToString()."\n");
|
||||
$error++; // $errorrecord will be reset
|
||||
if ($errorrecord) {
|
||||
fwrite($fhandleerr, 'Error on record nb '.$i." - ".$object->errorsToString()."\n");
|
||||
$error++; // $errorrecord will be reset
|
||||
}
|
||||
}
|
||||
|
||||
@@ -162,13 +162,12 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
|
||||
// commit or rollback
|
||||
print "Nb of lines qualified: ".$nboflines."\n";
|
||||
print "Nb of errors: ".$error."\n";
|
||||
if ($mode != 'confirmforced' && ($error || $mode != 'confirm'))
|
||||
{
|
||||
print "Rollback any changes.\n";
|
||||
$db->rollback();
|
||||
if ($mode != 'confirmforced' && ($error || $mode != 'confirm')) {
|
||||
print "Rollback any changes.\n";
|
||||
$db->rollback();
|
||||
} else {
|
||||
print "Commit all changes.\n";
|
||||
$db->commit();
|
||||
print "Commit all changes.\n";
|
||||
$db->commit();
|
||||
}
|
||||
|
||||
$db->close();
|
||||
|
||||
@@ -30,8 +30,8 @@ $path=__DIR__.'/';
|
||||
|
||||
// Test si mode batch
|
||||
if (substr($sapi_type, 0, 3) == 'cgi') {
|
||||
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||
exit(-1);
|
||||
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
// Recupere root dolibarr
|
||||
@@ -52,121 +52,121 @@ $error=0;
|
||||
|
||||
// List of sql to execute
|
||||
$sqls=array(
|
||||
'user'=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."user_rights WHERE fk_user IN (SELECT rowid FROM ".MAIN_DB_PREFIX."user WHERE admin = 0 and login != 'admin') AND fk_user IN (select rowid FROM ".MAIN_DB_PREFIX."user where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."user WHERE admin = 0 and login != 'admin' AND datec < '__DATE__'",
|
||||
),
|
||||
'event'=>array(
|
||||
//"DELETE FROM ".MAIN_DB_PREFIX."actioncomm WHERE lineid IN (SELECT rowid FROM ".MAIN_DB_PREFIX."bank WHERE datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."actioncomm WHERE datec < '__DATE__'",
|
||||
),
|
||||
'payment'=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."paiement_facture where fk_facture IN (select rowid FROM ".MAIN_DB_PREFIX."facture where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."paiement where rowid NOT IN (SELECT fk_paiement FROM ".MAIN_DB_PREFIX."paiement_facture)",
|
||||
),
|
||||
'supplier_payment'=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."paiementfourn_facturefourn where fk_facturefourn IN (select rowid FROM ".MAIN_DB_PREFIX."facture_fourn where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."paiementfourn where rowid NOT IN (SELECT fk_paiementfourn FROM ".MAIN_DB_PREFIX."paiementfourn_facturefourn)",
|
||||
),
|
||||
'bank'=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."bank_class WHERE lineid IN (SELECT rowid FROM ".MAIN_DB_PREFIX."bank WHERE datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."bank_url WHERE fk_bank IN (SELECT rowid FROM ".MAIN_DB_PREFIX."bank WHERE datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."bank WHERE datec < '__DATE__'",
|
||||
),
|
||||
'bankaccount'=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."bank_account WHERE datec < '__DATE__'",
|
||||
),
|
||||
'invoice'=>array(
|
||||
'@payment',
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."societe_remise_except where fk_facture_source IN (select rowid FROM ".MAIN_DB_PREFIX."facture where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."societe_remise_except where fk_facture IN (select rowid FROM ".MAIN_DB_PREFIX."facture where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."societe_remise_except where fk_facture_line IN (select rowid FROM ".MAIN_DB_PREFIX."facturedet as fd WHERE fd.fk_facture IN (select rowid from ".MAIN_DB_PREFIX."facture where datec < '__DATE__'))",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."facture_rec where datec < '__DATE__'",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."facturedet WHERE fk_facture IN (select rowid FROM ".MAIN_DB_PREFIX."facture where datec < '__DATE__')",
|
||||
"UPDATE ".MAIN_DB_PREFIX."facture SET fk_facture_source = NULL WHERE fk_facture_source IN (select f2.rowid FROM (select * from ".MAIN_DB_PREFIX."facture) as f2 where f2.datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."facture where datec < '__DATE__'",
|
||||
),
|
||||
'accounting'=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."accounting_bookkeeping where doc_date < '__DATE__'",
|
||||
),
|
||||
'proposal'=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."propaldet WHERE fk_propal IN (select rowid FROM ".MAIN_DB_PREFIX."propal where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."propal WHERE datec < '__DATE__'",
|
||||
),
|
||||
"supplier_proposal"=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."supplier_proposaldet WHERE fk_supplier_proposal IN (select rowid FROM ".MAIN_DB_PREFIX."propal where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."supplier_proposal where datec < '__DATE__'",
|
||||
),
|
||||
'order'=>array(
|
||||
'@shipment',
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."commandedet WHERE fk_commande IN (select rowid FROM ".MAIN_DB_PREFIX."commande where date_creation < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."commande where date_creation < '__DATE__'",
|
||||
),
|
||||
'supplier_order'=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."commande_fournisseurdet WHERE fk_commande IN (select rowid FROM ".MAIN_DB_PREFIX."commande_fournisseur where date_creation < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."commande_fournisseur where date_creation < '__DATE__'",
|
||||
),
|
||||
'user'=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."user_rights WHERE fk_user IN (SELECT rowid FROM ".MAIN_DB_PREFIX."user WHERE admin = 0 and login != 'admin') AND fk_user IN (select rowid FROM ".MAIN_DB_PREFIX."user where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."user WHERE admin = 0 and login != 'admin' AND datec < '__DATE__'",
|
||||
),
|
||||
'event'=>array(
|
||||
//"DELETE FROM ".MAIN_DB_PREFIX."actioncomm WHERE lineid IN (SELECT rowid FROM ".MAIN_DB_PREFIX."bank WHERE datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."actioncomm WHERE datec < '__DATE__'",
|
||||
),
|
||||
'payment'=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."paiement_facture where fk_facture IN (select rowid FROM ".MAIN_DB_PREFIX."facture where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."paiement where rowid NOT IN (SELECT fk_paiement FROM ".MAIN_DB_PREFIX."paiement_facture)",
|
||||
),
|
||||
'supplier_payment'=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."paiementfourn_facturefourn where fk_facturefourn IN (select rowid FROM ".MAIN_DB_PREFIX."facture_fourn where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."paiementfourn where rowid NOT IN (SELECT fk_paiementfourn FROM ".MAIN_DB_PREFIX."paiementfourn_facturefourn)",
|
||||
),
|
||||
'bank'=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."bank_class WHERE lineid IN (SELECT rowid FROM ".MAIN_DB_PREFIX."bank WHERE datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."bank_url WHERE fk_bank IN (SELECT rowid FROM ".MAIN_DB_PREFIX."bank WHERE datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."bank WHERE datec < '__DATE__'",
|
||||
),
|
||||
'bankaccount'=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."bank_account WHERE datec < '__DATE__'",
|
||||
),
|
||||
'invoice'=>array(
|
||||
'@payment',
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."societe_remise_except where fk_facture_source IN (select rowid FROM ".MAIN_DB_PREFIX."facture where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."societe_remise_except where fk_facture IN (select rowid FROM ".MAIN_DB_PREFIX."facture where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."societe_remise_except where fk_facture_line IN (select rowid FROM ".MAIN_DB_PREFIX."facturedet as fd WHERE fd.fk_facture IN (select rowid from ".MAIN_DB_PREFIX."facture where datec < '__DATE__'))",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."facture_rec where datec < '__DATE__'",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."facturedet WHERE fk_facture IN (select rowid FROM ".MAIN_DB_PREFIX."facture where datec < '__DATE__')",
|
||||
"UPDATE ".MAIN_DB_PREFIX."facture SET fk_facture_source = NULL WHERE fk_facture_source IN (select f2.rowid FROM (select * from ".MAIN_DB_PREFIX."facture) as f2 where f2.datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."facture where datec < '__DATE__'",
|
||||
),
|
||||
'accounting'=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."accounting_bookkeeping where doc_date < '__DATE__'",
|
||||
),
|
||||
'proposal'=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."propaldet WHERE fk_propal IN (select rowid FROM ".MAIN_DB_PREFIX."propal where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."propal WHERE datec < '__DATE__'",
|
||||
),
|
||||
"supplier_proposal"=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."supplier_proposaldet WHERE fk_supplier_proposal IN (select rowid FROM ".MAIN_DB_PREFIX."propal where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."supplier_proposal where datec < '__DATE__'",
|
||||
),
|
||||
'order'=>array(
|
||||
'@shipment',
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."commandedet WHERE fk_commande IN (select rowid FROM ".MAIN_DB_PREFIX."commande where date_creation < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."commande where date_creation < '__DATE__'",
|
||||
),
|
||||
'supplier_order'=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."commande_fournisseurdet WHERE fk_commande IN (select rowid FROM ".MAIN_DB_PREFIX."commande_fournisseur where date_creation < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."commande_fournisseur where date_creation < '__DATE__'",
|
||||
),
|
||||
'supplier_invoice'=>array(
|
||||
'@supplier_payment',
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."facture_fourn_det WHERE fk_facture_fourn IN (select rowid FROM ".MAIN_DB_PREFIX."facture_fourn where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."facture_fourn where datec < '__DATE__'",
|
||||
),
|
||||
'shipment'=>array(
|
||||
'@delivery',
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."expeditiondet_batch WHERE fk_expeditiondet IN (select rowid FROM ".MAIN_DB_PREFIX."expeditiondet WHERE fk_expedition IN (select rowid FROM ".MAIN_DB_PREFIX."expedition where date_creation < '__DATE__'))",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."expeditiondet_extrafields WHERE fk_object IN (select rowid FROM ".MAIN_DB_PREFIX."expeditiondet WHERE fk_expedition IN (select rowid FROM ".MAIN_DB_PREFIX."expedition where date_creation < '__DATE__'))",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."expeditiondet WHERE fk_expedition IN (select rowid FROM ".MAIN_DB_PREFIX."expedition where date_creation < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."expedition_extrafields WHERE fk_object IN (select rowid FROM ".MAIN_DB_PREFIX."expedition where date_creation < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."expedition where date_creation < '__DATE__'",
|
||||
),
|
||||
'delivery'=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."deliverydet WHERE fk_delivery IN (select rowid FROM ".MAIN_DB_PREFIX."delivery where date_creation < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."delivery where date_creation < '__DATE__'",
|
||||
),
|
||||
'contract'=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."contratdet_extrafields WHERE fk_object IN (select rowid FROM ".MAIN_DB_PREFIX."contratdet WHERE fk_contrat IN (select rowid FROM ".MAIN_DB_PREFIX."contrat where datec < '__DATE__'))",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."contratdet WHERE fk_contrat IN (select rowid FROM ".MAIN_DB_PREFIX."contrat where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."contrat_extrafields WHERE fk_object IN (select rowid FROM ".MAIN_DB_PREFIX."contrat where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."contrat WHERE datec < '__DATE__'",
|
||||
),
|
||||
'intervention'=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."fichinterdet WHERE fk_fichinter IN (select rowid FROM ".MAIN_DB_PREFIX."fichinter where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."fichinter where datec < '__DATE__'",
|
||||
),
|
||||
'stock'=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."stock_mouvement WHERE datem < '__DATE__'",
|
||||
),
|
||||
'product'=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."categorie_product WHERE fk_product IN (select rowid FROM ".MAIN_DB_PREFIX."product where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."product_lang WHERE fk_product IN (select rowid FROM ".MAIN_DB_PREFIX."product where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."product_price_by_qty WHERE fk_product_price IN (select rowid FROM ".MAIN_DB_PREFIX."product_price where fk_product IN (select rowid FROM ".MAIN_DB_PREFIX."product where datec < '__DATE__'))",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."product_price WHERE fk_product IN (select rowid FROM ".MAIN_DB_PREFIX."product where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."product_fournisseur_price WHERE fk_product IN (select rowid FROM ".MAIN_DB_PREFIX."product where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."product_batch WHERE fk_product_stock IN (select rowid FROM ".MAIN_DB_PREFIX."product_stock where fk_product IN (select rowid FROM ".MAIN_DB_PREFIX."product where datec < '__DATE__'))",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."product_stock WHERE fk_product IN (select rowid FROM ".MAIN_DB_PREFIX."product where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."product_lot WHERE fk_product IN (select rowid FROM ".MAIN_DB_PREFIX."product where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."product where datec < '__DATE__'",
|
||||
),
|
||||
'project'=>array(
|
||||
// TODO set fk_project to null on object that refer to project
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."projet_task_time WHERE fk_task IN (select rowid FROM ".MAIN_DB_PREFIX."projet_task WHERE fk_projet IN (select rowid FROM ".MAIN_DB_PREFIX."projet where datec < '__DATE__'))",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."projet_task WHERE fk_projet IN (select rowid FROM ".MAIN_DB_PREFIX."projet where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."projet where datec < '__DATE__'",
|
||||
),
|
||||
'contact'=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."categorie_contact WHERE fk_socpeople IN (select rowid FROM ".MAIN_DB_PREFIX."socpeople where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."socpeople where datec < '__DATE__'",
|
||||
),
|
||||
'thirdparty'=>array(
|
||||
'@contact',
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."cabinetmed_cons WHERE fk_soc IN (select rowid FROM ".MAIN_DB_PREFIX."societe where datec < '__DATE__')",
|
||||
"UPDATE ".MAIN_DB_PREFIX."adherent SET fk_soc = NULL WHERE fk_soc IN (select rowid FROM ".MAIN_DB_PREFIX."societe where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."categorie_fournisseur WHERE fk_soc IN (select rowid FROM ".MAIN_DB_PREFIX."societe where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."categorie_societe WHERE fk_soc IN (select rowid FROM ".MAIN_DB_PREFIX."societe where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."societe_remise_except WHERE fk_soc IN (select rowid FROM ".MAIN_DB_PREFIX."societe where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."societe_rib WHERE fk_soc IN (select rowid FROM ".MAIN_DB_PREFIX."societe where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."societe where datec < '__DATE__'",
|
||||
)
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."facture_fourn_det WHERE fk_facture_fourn IN (select rowid FROM ".MAIN_DB_PREFIX."facture_fourn where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."facture_fourn where datec < '__DATE__'",
|
||||
),
|
||||
'shipment'=>array(
|
||||
'@delivery',
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."expeditiondet_batch WHERE fk_expeditiondet IN (select rowid FROM ".MAIN_DB_PREFIX."expeditiondet WHERE fk_expedition IN (select rowid FROM ".MAIN_DB_PREFIX."expedition where date_creation < '__DATE__'))",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."expeditiondet_extrafields WHERE fk_object IN (select rowid FROM ".MAIN_DB_PREFIX."expeditiondet WHERE fk_expedition IN (select rowid FROM ".MAIN_DB_PREFIX."expedition where date_creation < '__DATE__'))",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."expeditiondet WHERE fk_expedition IN (select rowid FROM ".MAIN_DB_PREFIX."expedition where date_creation < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."expedition_extrafields WHERE fk_object IN (select rowid FROM ".MAIN_DB_PREFIX."expedition where date_creation < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."expedition where date_creation < '__DATE__'",
|
||||
),
|
||||
'delivery'=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."deliverydet WHERE fk_delivery IN (select rowid FROM ".MAIN_DB_PREFIX."delivery where date_creation < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."delivery where date_creation < '__DATE__'",
|
||||
),
|
||||
'contract'=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."contratdet_extrafields WHERE fk_object IN (select rowid FROM ".MAIN_DB_PREFIX."contratdet WHERE fk_contrat IN (select rowid FROM ".MAIN_DB_PREFIX."contrat where datec < '__DATE__'))",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."contratdet WHERE fk_contrat IN (select rowid FROM ".MAIN_DB_PREFIX."contrat where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."contrat_extrafields WHERE fk_object IN (select rowid FROM ".MAIN_DB_PREFIX."contrat where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."contrat WHERE datec < '__DATE__'",
|
||||
),
|
||||
'intervention'=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."fichinterdet WHERE fk_fichinter IN (select rowid FROM ".MAIN_DB_PREFIX."fichinter where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."fichinter where datec < '__DATE__'",
|
||||
),
|
||||
'stock'=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."stock_mouvement WHERE datem < '__DATE__'",
|
||||
),
|
||||
'product'=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."categorie_product WHERE fk_product IN (select rowid FROM ".MAIN_DB_PREFIX."product where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."product_lang WHERE fk_product IN (select rowid FROM ".MAIN_DB_PREFIX."product where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."product_price_by_qty WHERE fk_product_price IN (select rowid FROM ".MAIN_DB_PREFIX."product_price where fk_product IN (select rowid FROM ".MAIN_DB_PREFIX."product where datec < '__DATE__'))",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."product_price WHERE fk_product IN (select rowid FROM ".MAIN_DB_PREFIX."product where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."product_fournisseur_price WHERE fk_product IN (select rowid FROM ".MAIN_DB_PREFIX."product where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."product_batch WHERE fk_product_stock IN (select rowid FROM ".MAIN_DB_PREFIX."product_stock where fk_product IN (select rowid FROM ".MAIN_DB_PREFIX."product where datec < '__DATE__'))",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."product_stock WHERE fk_product IN (select rowid FROM ".MAIN_DB_PREFIX."product where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."product_lot WHERE fk_product IN (select rowid FROM ".MAIN_DB_PREFIX."product where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."product where datec < '__DATE__'",
|
||||
),
|
||||
'project'=>array(
|
||||
// TODO set fk_project to null on object that refer to project
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."projet_task_time WHERE fk_task IN (select rowid FROM ".MAIN_DB_PREFIX."projet_task WHERE fk_projet IN (select rowid FROM ".MAIN_DB_PREFIX."projet where datec < '__DATE__'))",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."projet_task WHERE fk_projet IN (select rowid FROM ".MAIN_DB_PREFIX."projet where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."projet where datec < '__DATE__'",
|
||||
),
|
||||
'contact'=>array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."categorie_contact WHERE fk_socpeople IN (select rowid FROM ".MAIN_DB_PREFIX."socpeople where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."socpeople where datec < '__DATE__'",
|
||||
),
|
||||
'thirdparty'=>array(
|
||||
'@contact',
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."cabinetmed_cons WHERE fk_soc IN (select rowid FROM ".MAIN_DB_PREFIX."societe where datec < '__DATE__')",
|
||||
"UPDATE ".MAIN_DB_PREFIX."adherent SET fk_soc = NULL WHERE fk_soc IN (select rowid FROM ".MAIN_DB_PREFIX."societe where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."categorie_fournisseur WHERE fk_soc IN (select rowid FROM ".MAIN_DB_PREFIX."societe where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."categorie_societe WHERE fk_soc IN (select rowid FROM ".MAIN_DB_PREFIX."societe where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."societe_remise_except WHERE fk_soc IN (select rowid FROM ".MAIN_DB_PREFIX."societe where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."societe_rib WHERE fk_soc IN (select rowid FROM ".MAIN_DB_PREFIX."societe where datec < '__DATE__')",
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."societe where datec < '__DATE__'",
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
@@ -183,44 +183,42 @@ $option = $argv[2];
|
||||
$date = $argv[3];
|
||||
|
||||
if (empty($mode) || ! in_array($mode, array('test','confirm'))) {
|
||||
print "Usage: $script_file (test|confirm) (all|option) (all|YYYY-MM-DD) [dbtype dbhost dbuser dbpassword dbname dbport]\n";
|
||||
print "\n";
|
||||
print "option can be ".implode(',', array_keys($sqls))."\n";
|
||||
exit(-1);
|
||||
print "Usage: $script_file (test|confirm) (all|option) (all|YYYY-MM-DD) [dbtype dbhost dbuser dbpassword dbname dbport]\n";
|
||||
print "\n";
|
||||
print "option can be ".implode(',', array_keys($sqls))."\n";
|
||||
exit(-1);
|
||||
}
|
||||
if (empty($option))
|
||||
{
|
||||
print "Usage: $script_file (test|confirm) (all|option) (all|YYYY-MM-DD) [dbtype dbhost dbuser dbpassword dbname dbport]\n";
|
||||
print "\n";
|
||||
print "option must be defined with a value in list ".implode(',', array_keys($sqls))."\n";
|
||||
exit(-1);
|
||||
if (empty($option)) {
|
||||
print "Usage: $script_file (test|confirm) (all|option) (all|YYYY-MM-DD) [dbtype dbhost dbuser dbpassword dbname dbport]\n";
|
||||
print "\n";
|
||||
print "option must be defined with a value in list ".implode(',', array_keys($sqls))."\n";
|
||||
exit(-1);
|
||||
}
|
||||
if ($option != 'all')
|
||||
{
|
||||
$listofoptions=explode(',', $option);
|
||||
foreach ($listofoptions as $cursoroption)
|
||||
{
|
||||
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 "\n";
|
||||
print "option '".$cursoroption."' must be in list ".implode(',', array_keys($sqls))."\n";
|
||||
exit(-1);
|
||||
}
|
||||
}
|
||||
if ($option != 'all') {
|
||||
$listofoptions=explode(',', $option);
|
||||
foreach ($listofoptions as $cursoroption) {
|
||||
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 "\n";
|
||||
print "option '".$cursoroption."' must be in list ".implode(',', array_keys($sqls))."\n";
|
||||
exit(-1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($date) || (! preg_match('/\d\d\d\d\-\d\d\-\d\d$/', $date) && $date != 'all')) {
|
||||
print "Usage: $script_file (test|confirm) (all|option) (all|YYYY-MM-DD) [dbtype dbhost dbuser dbpassword dbname dbport]\n";
|
||||
print "\n";
|
||||
print "date can be 'all' or 'YYYY-MM-DD' to delete record before YYYY-MM-DD\n";
|
||||
exit(-1);
|
||||
print "Usage: $script_file (test|confirm) (all|option) (all|YYYY-MM-DD) [dbtype dbhost dbuser dbpassword dbname dbport]\n";
|
||||
print "\n";
|
||||
print "date can be 'all' or 'YYYY-MM-DD' to delete record before YYYY-MM-DD\n";
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
if ($date == 'all') $date = '2199-01-01';
|
||||
if ($date == 'all') {
|
||||
$date = '2199-01-01';
|
||||
}
|
||||
|
||||
// Replace database handler
|
||||
if (! empty($argv[4]))
|
||||
{
|
||||
if (! empty($argv[4])) {
|
||||
$db->close();
|
||||
unset($db);
|
||||
$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);
|
||||
$ret=$user->fetch('', 'admin');
|
||||
if (! $ret > 0)
|
||||
{
|
||||
if (! $ret > 0) {
|
||||
print 'An admin user with login "admin" must exists to use this script.'."\n";
|
||||
exit;
|
||||
}
|
||||
@@ -245,10 +242,9 @@ print "Database port = ".$db->database_port."\n";
|
||||
print "User = ".$db->database_user."\n";
|
||||
print "\n";
|
||||
|
||||
if (! $confirmed)
|
||||
{
|
||||
print "Hit Enter to continue or CTRL+C to stop...\n";
|
||||
$input = trim(fgets(STDIN));
|
||||
if (! $confirmed) {
|
||||
print "Hit Enter to continue or CTRL+C to stop...\n";
|
||||
$input = trim(fgets(STDIN));
|
||||
}
|
||||
|
||||
|
||||
@@ -261,73 +257,71 @@ if (! $confirmed)
|
||||
*/
|
||||
function processfamily($family, $date)
|
||||
{
|
||||
global $db, $sqls;
|
||||
global $db, $sqls;
|
||||
|
||||
$error=0;
|
||||
foreach ($sqls[$family] as $sql)
|
||||
{
|
||||
if (preg_match('/^@/', $sql))
|
||||
{
|
||||
$newfamily=preg_replace('/@/', '', $sql);
|
||||
processfamily($newfamily, $date);
|
||||
continue;
|
||||
}
|
||||
$error=0;
|
||||
foreach ($sqls[$family] as $sql) {
|
||||
if (preg_match('/^@/', $sql)) {
|
||||
$newfamily=preg_replace('/@/', '', $sql);
|
||||
processfamily($newfamily, $date);
|
||||
continue;
|
||||
}
|
||||
|
||||
$sql = preg_replace('/__DATE__/', $date, $sql);
|
||||
$sql = preg_replace('/__DATE__/', $date, $sql);
|
||||
|
||||
print "Run sql: ".$sql."\n";
|
||||
print "Run sql: ".$sql."\n";
|
||||
|
||||
$resql=$db->query($sql);
|
||||
if (! $resql)
|
||||
{
|
||||
if ($db->errno() != 'DB_ERROR_NOSUCHTABLE')
|
||||
{
|
||||
$error++;
|
||||
}
|
||||
}
|
||||
$resql=$db->query($sql);
|
||||
if (! $resql) {
|
||||
if ($db->errno() != 'DB_ERROR_NOSUCHTABLE') {
|
||||
$error++;
|
||||
}
|
||||
}
|
||||
|
||||
if ($error)
|
||||
{
|
||||
print $db->lasterror();
|
||||
$error++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($error) {
|
||||
print $db->lasterror();
|
||||
$error++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($error) return -1;
|
||||
else return 1;
|
||||
if ($error) {
|
||||
return -1;
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$db->begin();
|
||||
|
||||
$listofoptions=explode(',', $option);
|
||||
foreach ($listofoptions as $cursoroption)
|
||||
{
|
||||
$oldfamily='';
|
||||
foreach ($sqls as $family => $familysql)
|
||||
{
|
||||
if ($cursoroption && $cursoroption != 'all' && $cursoroption != $family) continue;
|
||||
foreach ($listofoptions as $cursoroption) {
|
||||
$oldfamily='';
|
||||
foreach ($sqls as $family => $familysql) {
|
||||
if ($cursoroption && $cursoroption != 'all' && $cursoroption != $family) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($family != $oldfamily) print "Process action for family ".$family."\n";
|
||||
$oldfamily = $family;
|
||||
if ($family != $oldfamily) {
|
||||
print "Process action for family ".$family."\n";
|
||||
}
|
||||
$oldfamily = $family;
|
||||
|
||||
$result=processfamily($family, $date);
|
||||
if ($result < 0)
|
||||
{
|
||||
$error++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
$result=processfamily($family, $date);
|
||||
if ($result < 0) {
|
||||
$error++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($error || $mode != 'confirm')
|
||||
{
|
||||
print "\nRollback any changes.\n";
|
||||
$db->rollback();
|
||||
if ($error || $mode != 'confirm') {
|
||||
print "\nRollback any changes.\n";
|
||||
$db->rollback();
|
||||
} else {
|
||||
print "Commit all changes.\n";
|
||||
$db->commit();
|
||||
print "Commit all changes.\n";
|
||||
$db->commit();
|
||||
}
|
||||
|
||||
$db->close();
|
||||
|
||||
@@ -41,14 +41,30 @@ $passwordbase=isset($argv[6])?$argv[6]:'';
|
||||
|
||||
// Include Dolibarr environment
|
||||
$res=0;
|
||||
if (! $res && file_exists($path."../../master.inc.php")) $res=@include $path."../../master.inc.php";
|
||||
if (! $res && file_exists($path."../../htdocs/master.inc.php")) $res=@include $path."../../htdocs/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("../../../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");
|
||||
if (! $res && file_exists($path."../../master.inc.php")) {
|
||||
$res=@include $path."../../master.inc.php";
|
||||
}
|
||||
if (! $res && file_exists($path."../../htdocs/master.inc.php")) {
|
||||
$res=@include $path."../../htdocs/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("../../../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';
|
||||
|
||||
|
||||
@@ -58,15 +74,13 @@ include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||
|
||||
$login='';
|
||||
$server='';
|
||||
if (preg_match('/^(.*)@(.*):(.*)$/', $sourceserver, $reg))
|
||||
{
|
||||
if (preg_match('/^(.*)@(.*):(.*)$/', $sourceserver, $reg)) {
|
||||
$login=$reg[1];
|
||||
$server=$reg[2];
|
||||
$sourcefile=$reg[3];
|
||||
$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 "Return code: 0 if success, <>0 if error\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);
|
||||
if ($connection)
|
||||
{
|
||||
if (! @ssh2_auth_password($connection, $login, $password))
|
||||
{
|
||||
if ($connection) {
|
||||
if (! @ssh2_auth_password($connection, $login, $password)) {
|
||||
dol_syslog("Could not authenticate with username ".$login." . and password ".preg_replace('/./', '*', $password), LOG_ERR);
|
||||
exit(-5);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
//$stream = ssh2_exec($connection, '/usr/bin/php -i');
|
||||
/*
|
||||
print "Generate dump ".$filesys1.'.bz2'."\n";
|
||||
@@ -111,12 +122,10 @@ if ($connection)
|
||||
ssh2_scp_recv($connection, $sourcefile, $targetdir.$targetfile);
|
||||
|
||||
$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;
|
||||
}
|
||||
if (preg_match('/\.gz$/', $targetfile))
|
||||
{
|
||||
if (preg_match('/\.gz$/', $targetfile)) {
|
||||
$fullcommand="gzip -d ".$targetdir.$targetfile." | mysql -h".$databaseserver." -u".$loginbase." -p".$passwordbase." -D ".$database;
|
||||
}
|
||||
print "Load dump with ".$fullcommand."\n";
|
||||
@@ -124,13 +133,14 @@ if ($connection)
|
||||
$return_var=0;
|
||||
print strftime("%Y%m%d-%H%M%S").' '.$fullcommand."\n";
|
||||
exec($fullcommand, $output, $return_var);
|
||||
foreach ($output as $line) print $line."\n";
|
||||
foreach ($output as $line) {
|
||||
print $line."\n";
|
||||
}
|
||||
|
||||
//ssh2_sftp_unlink($sftp, $fileinstalllock);
|
||||
//print $output;
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
print 'Failed to connect to ssh2 to '.$server;
|
||||
exit(-6);
|
||||
}
|
||||
|
||||
@@ -36,14 +36,30 @@ $confirm=isset($argv[1])?$argv[1]:'';
|
||||
|
||||
// Include Dolibarr environment
|
||||
$res=0;
|
||||
if (! $res && file_exists($path."../../master.inc.php")) $res=@include $path."../../master.inc.php";
|
||||
if (! $res && file_exists($path."../../htdocs/master.inc.php")) $res=@include $path."../../htdocs/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("../../../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");
|
||||
if (! $res && file_exists($path."../../master.inc.php")) {
|
||||
$res=@include $path."../../master.inc.php";
|
||||
}
|
||||
if (! $res && file_exists($path."../../htdocs/master.inc.php")) {
|
||||
$res=@include $path."../../htdocs/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("../../../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';
|
||||
|
||||
|
||||
@@ -53,8 +69,7 @@ include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||
|
||||
print "***** ".$script_file." *****\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 "Return code: 0 if success, <>0 if error\n";
|
||||
exit(-1);
|
||||
@@ -65,66 +80,64 @@ $tmp=dol_getdate(dol_now());
|
||||
|
||||
|
||||
$tables=array(
|
||||
'propal'=>array(0=>'datep', 1=>'fin_validite', 2=>'date_valid', 3=>'date_cloture'),
|
||||
'commande'=>array(0=>'date_commande', 1=>'date_valid', 2=>'date_cloture'),
|
||||
'propal'=>array(0=>'datep', 1=>'fin_validite', 2=>'date_valid', 3=>'date_cloture'),
|
||||
'commande'=>array(0=>'date_commande', 1=>'date_valid', 2=>'date_cloture'),
|
||||
'facture'=>array(0=>'datec', 0=>'datef', 1=>'date_valid', 2=>'date_lim_reglement'),
|
||||
'paiement'=>array(0=>'datep'),
|
||||
'bank'=>array(0=>'datev', 1=>'dateo'),
|
||||
'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'),
|
||||
'paiement'=>array(0=>'datep'),
|
||||
'bank'=>array(0=>'datev', 1=>'dateo'),
|
||||
'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'),
|
||||
'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')
|
||||
);
|
||||
|
||||
$year=2010;
|
||||
$currentyear=$tmp['year'];
|
||||
while ($year <= $currentyear)
|
||||
{
|
||||
//$year=2021;
|
||||
$delta1=($currentyear - $year);
|
||||
$delta2=($currentyear - $year - 1);
|
||||
//$delta=-1;
|
||||
while ($year <= $currentyear) {
|
||||
//$year=2021;
|
||||
$delta1=($currentyear - $year);
|
||||
$delta2=($currentyear - $year - 1);
|
||||
//$delta=-1;
|
||||
|
||||
if ($delta1)
|
||||
{
|
||||
foreach ($tables as $tablekey => $tableval)
|
||||
{
|
||||
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]." > NOW()";
|
||||
$resql = $db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$num = $db->num_rows($resql);
|
||||
$i=0;
|
||||
while ($i < $num)
|
||||
{
|
||||
$obj=$db->fetch_object($resql);
|
||||
if ($obj)
|
||||
{
|
||||
print ".";
|
||||
$sql2="UPDATE ".MAIN_DB_PREFIX.$tablekey." set ";
|
||||
$j=0;
|
||||
foreach ($tableval as $field)
|
||||
{
|
||||
if ($j) $sql2.=", ";
|
||||
$sql2.= $field." = ".$db->ifsql("DATE_ADD(".$field.", INTERVAL ".$delta1." YEAR) > NOW()", "DATE_ADD(".$field.", INTERVAL ".$delta2." YEAR)", "DATE_ADD(".$field.", INTERVAL ".$delta1." YEAR)");
|
||||
$j++;
|
||||
}
|
||||
$sql2.=" WHERE rowid = ".$obj->rowid;
|
||||
//print $sql2."\n";
|
||||
$resql2 = $db->query($sql2);
|
||||
if (! $resql2) dol_print_error($db);
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
else dol_print_error($db);
|
||||
print "\n";
|
||||
}
|
||||
}
|
||||
if ($delta1) {
|
||||
foreach ($tables as $tablekey => $tableval) {
|
||||
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]." > NOW()";
|
||||
$resql = $db->query($sql);
|
||||
if ($resql) {
|
||||
$num = $db->num_rows($resql);
|
||||
$i=0;
|
||||
while ($i < $num) {
|
||||
$obj=$db->fetch_object($resql);
|
||||
if ($obj) {
|
||||
print ".";
|
||||
$sql2="UPDATE ".MAIN_DB_PREFIX.$tablekey." set ";
|
||||
$j=0;
|
||||
foreach ($tableval as $field) {
|
||||
if ($j) {
|
||||
$sql2.=", ";
|
||||
}
|
||||
$sql2.= $field." = ".$db->ifsql("DATE_ADD(".$field.", INTERVAL ".$delta1." YEAR) > NOW()", "DATE_ADD(".$field.", INTERVAL ".$delta2." YEAR)", "DATE_ADD(".$field.", INTERVAL ".$delta1." YEAR)");
|
||||
$j++;
|
||||
}
|
||||
$sql2.=" WHERE rowid = ".$obj->rowid;
|
||||
//print $sql2."\n";
|
||||
$resql2 = $db->query($sql2);
|
||||
if (! $resql2) {
|
||||
dol_print_error($db);
|
||||
}
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
} else {
|
||||
dol_print_error($db);
|
||||
}
|
||||
print "\n";
|
||||
}
|
||||
}
|
||||
|
||||
$year++;
|
||||
$year++;
|
||||
}
|
||||
|
||||
print "\n";
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<exclude-pattern type="relative">build/html</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/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">htdocs/core/class/lessc.class.php</exclude-pattern>
|
||||
<exclude-pattern type="relative">htdocs/custom</exclude-pattern>
|
||||
@@ -104,9 +104,9 @@
|
||||
</rule>
|
||||
-->
|
||||
<!-- 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>
|
||||
</rule>
|
||||
</rule> -->
|
||||
|
||||
|
||||
<!-- 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>
|
||||
|
||||
<!-- Disallow usage of tab -->
|
||||
<!-- <rule ref="Generic.WhiteSpace.DisallowTabIndent" /> -->
|
||||
<!-- Disallow usage of space -->
|
||||
<rule ref="Generic.WhiteSpace.DisallowSpaceIndent" />
|
||||
|
||||
<!-- Check indent are done with spaces and with correct number -->
|
||||
<!-- Disabled as this does not support tab -->
|
||||
@@ -214,7 +214,7 @@
|
||||
<rule ref="Squiz.WhiteSpace.ControlStructureSpacing.SpacingAfterOpen" />
|
||||
<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.SpaceAfterKeyword" />
|
||||
|
||||
|
||||
@@ -48,8 +48,9 @@ if (! ($argv[1] && $argv[2])) {
|
||||
echo "Usage: php pg2mysql_cli.php <inputfilename> <outputfilename> [engine]\n";
|
||||
exit();
|
||||
} else {
|
||||
if (isset($argv[3]))
|
||||
if (isset($argv[3])) {
|
||||
$config['engine'] = $argv[3];
|
||||
}
|
||||
pg2mysql_large($argv[1], $argv[2]);
|
||||
|
||||
echo <<<XHTML
|
||||
@@ -74,14 +75,18 @@ function getfieldname($l)
|
||||
// first check if its in nice quotes for us
|
||||
$regs = array();
|
||||
if (preg_match("/`(.*)`/", $l, $regs)) {
|
||||
if ($regs[1])
|
||||
if ($regs[1]) {
|
||||
return $regs[1];
|
||||
else return null;
|
||||
} // if its not in quotes, then it should (we hope!) be the first "word" on the line, up to the first space.
|
||||
elseif (preg_match("/([^\ ]*)/", trim($l), $regs)) {
|
||||
if ($regs[1])
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
} 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];
|
||||
else return null;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,13 +99,15 @@ function getfieldname($l)
|
||||
*/
|
||||
function formatsize($s)
|
||||
{
|
||||
if ($s < pow(2, 14))
|
||||
if ($s < pow(2, 14)) {
|
||||
return "{$s}B";
|
||||
elseif ($s < pow(2, 20))
|
||||
} elseif ($s < pow(2, 20)) {
|
||||
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";
|
||||
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, "'");
|
||||
// we have an odd number of ' marks
|
||||
if ($c % 2 != 0) {
|
||||
if ($inquotes)
|
||||
if ($inquotes) {
|
||||
$inquotes = false;
|
||||
else $inquotes = true;
|
||||
} else {
|
||||
$inquotes = true;
|
||||
}
|
||||
}
|
||||
|
||||
if ($linenum % 10000 == 0) {
|
||||
@@ -323,9 +332,11 @@ function pg2mysql(&$input, &$arrayofprimaryalreadyintabledef, $header = true)
|
||||
$line = str_replace(" bool DEFAULT false", " bool DEFAULT 0", $line);
|
||||
if (preg_match("/ character varying\(([0-9]*)\)/", $line, $regs)) {
|
||||
$num = $regs[1];
|
||||
if ($num <= 255)
|
||||
if ($num <= 255) {
|
||||
$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)
|
||||
if (preg_match("/ character varying/", $line)) {
|
||||
@@ -345,9 +356,11 @@ function pg2mysql(&$input, &$arrayofprimaryalreadyintabledef, $header = true)
|
||||
$line = preg_replace("/::.*$/", "\n", $line);
|
||||
if (preg_match("/character\(([0-9]*)\)/", $line, $regs)) {
|
||||
$num = $regs[1];
|
||||
if ($num <= 255)
|
||||
if ($num <= 255) {
|
||||
$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
|
||||
$line = str_replace(" timestamp with time zone", " datetime", $line);
|
||||
@@ -457,9 +470,11 @@ function pg2mysql(&$input, &$arrayofprimaryalreadyintabledef, $header = true)
|
||||
$c = substr_count($line, "'");
|
||||
// we have an odd number of ' marks
|
||||
if ($c % 2 != 0) {
|
||||
if ($inquotes)
|
||||
if ($inquotes) {
|
||||
$inquotes = false;
|
||||
else $inquotes = true;
|
||||
} else {
|
||||
$inquotes = true;
|
||||
}
|
||||
// echo "inquotes=$inquotes\n";
|
||||
}
|
||||
} 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;
|
||||
}
|
||||
|
||||
if (substr($line, 0, 15) == 'CREATE DATABASE') {
|
||||
$matches = array();
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
use Dolibarr\Aaa as Aaa;
|
||||
use function Dolibarr\faaa as faaa; // Need php 5.6+
|
||||
|
||||
//use const Dolibarr\AAA;
|
||||
|
||||
//use Bbb as Bbb;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
/*spl_autoload_register(function ($class_name) {
|
||||
var_dump('class='.$class_name);
|
||||
require $class_name;
|
||||
var_dump('class='.$class_name);
|
||||
require $class_name;
|
||||
});
|
||||
*/
|
||||
|
||||
@@ -3,10 +3,11 @@
|
||||
$a = microtime(true);
|
||||
|
||||
$i = 0;
|
||||
while ($i < 1000000)
|
||||
{
|
||||
while ($i < 1000000) {
|
||||
$key = '1234567890111213141516171819'.$i;
|
||||
if ($i == 1000) $key = 'MAIN_MODULE_AAAAAiiiiiiiiiiiiiiiiiiiiiiiiiiiii';
|
||||
if ($i == 1000) {
|
||||
$key = 'MAIN_MODULE_AAAAAiiiiiiiiiiiiiiiiiiiiiiiiiiiii';
|
||||
}
|
||||
|
||||
//if (preg_match('/^MAIN_MODULE_/', $key)) {
|
||||
//if (substr($key, 0, 12) == 'MAIN_MODULE_') {
|
||||
|
||||
@@ -38,25 +38,25 @@ $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8',
|
||||
|
||||
/*
|
||||
The permission array is composed of values taken from the following ones (specify the ones you want to block):
|
||||
- print : Print the document;
|
||||
- modify : Modify the contents of the document by operations other than those controlled by 'fill-forms', 'extract' and 'assemble';
|
||||
- copy : Copy or otherwise extract text and graphics from the document;
|
||||
- annot-forms : Add or modify text annotations, fill in interactive form fields, and, if 'modify' is also set, create or modify interactive form fields (including signature fields);
|
||||
- fill-forms : Fill in existing interactive form fields (including signature fields), even if 'annot-forms' is not specified;
|
||||
- extract : Extract text and graphics (in support of accessibility to users with disabilities or for other purposes);
|
||||
- assemble : Assemble the document (insert, rotate, or delete pages and create bookmarks or thumbnail images), even if 'modify' is not set;
|
||||
- print-high : Print the document to a representation from which a faithful digital copy of the PDF content could be generated. When this is not set, printing is limited to a low-level representation of the appearance, possibly of degraded quality.
|
||||
- owner : (inverted logic - only for public-key) when set permits change of encryption and enables all other permissions.
|
||||
- print : Print the document;
|
||||
- modify : Modify the contents of the document by operations other than those controlled by 'fill-forms', 'extract' and 'assemble';
|
||||
- copy : Copy or otherwise extract text and graphics from the document;
|
||||
- annot-forms : Add or modify text annotations, fill in interactive form fields, and, if 'modify' is also set, create or modify interactive form fields (including signature fields);
|
||||
- fill-forms : Fill in existing interactive form fields (including signature fields), even if 'annot-forms' is not specified;
|
||||
- extract : Extract text and graphics (in support of accessibility to users with disabilities or for other purposes);
|
||||
- assemble : Assemble the document (insert, rotate, or delete pages and create bookmarks or thumbnail images), even if 'modify' is not set;
|
||||
- print-high : Print the document to a representation from which a faithful digital copy of the PDF content could be generated. When this is not set, printing is limited to a low-level representation of the appearance, possibly of degraded quality.
|
||||
- owner : (inverted logic - only for public-key) when set permits change of encryption and enables all other permissions.
|
||||
|
||||
If you don't set any password, the document will open as usual.
|
||||
If you set a user password, the PDF viewer will ask for it before displaying the document.
|
||||
The master (owner) password, if different from the user one, can be used to get full document access.
|
||||
|
||||
Possible encryption modes are:
|
||||
0 = RSA 40 bit
|
||||
1 = RSA 128 bit
|
||||
2 = AES 128 bit
|
||||
3 = AES 256 bit
|
||||
0 = RSA 40 bit
|
||||
1 = RSA 128 bit
|
||||
2 = AES 128 bit
|
||||
3 = AES 256 bit
|
||||
|
||||
NOTES:
|
||||
- To create self-signed signature: openssl req -x509 -nodes -days 365000 -newkey rsa:1024 -keyout tcpdf.crt -out tcpdf.crt
|
||||
@@ -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);
|
||||
|
||||
// set header and footer fonts
|
||||
$pdf->setHeaderFont(Array('helvetica', '', PDF_FONT_SIZE_MAIN));
|
||||
$pdf->setFooterFont(Array('helvetica', '', PDF_FONT_SIZE_DATA));
|
||||
$pdf->setHeaderFont(array('helvetica', '', PDF_FONT_SIZE_MAIN));
|
||||
$pdf->setFooterFont(array('helvetica', '', PDF_FONT_SIZE_DATA));
|
||||
|
||||
// set default monospaced font
|
||||
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
|
||||
|
||||
@@ -64,8 +64,8 @@ $pdf->SetKeywords('TCPDF, PDF, example, test, guide');
|
||||
$pdf->SetHeaderData('', PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 038', PDF_HEADER_STRING);
|
||||
|
||||
// set header and footer fonts
|
||||
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
|
||||
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
|
||||
$pdf->setHeaderFont(array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
|
||||
$pdf->setFooterFont(array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
|
||||
|
||||
// set default monospaced font
|
||||
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
|
||||
|
||||
@@ -40,18 +40,18 @@ class autoTranslator
|
||||
const DIR_SEPARATOR = '/';
|
||||
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param string $_destlang Destination lang
|
||||
* @param string $_refLang Ref lang
|
||||
* @param string $_langDir Dir lang
|
||||
* @param string $_limittofile Limit to file
|
||||
* @param string $_apikey Api key
|
||||
* @return void
|
||||
*/
|
||||
public function __construct($_destlang, $_refLang, $_langDir, $_limittofile, $_apikey)
|
||||
{
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param string $_destlang Destination lang
|
||||
* @param string $_refLang Ref lang
|
||||
* @param string $_langDir Dir lang
|
||||
* @param string $_limittofile Limit to file
|
||||
* @param string $_apikey Api key
|
||||
* @return void
|
||||
*/
|
||||
public function __construct($_destlang, $_refLang, $_langDir, $_limittofile, $_apikey)
|
||||
{
|
||||
|
||||
// Set enviorment variables
|
||||
$this->_destlang = $_destlang;
|
||||
@@ -59,7 +59,7 @@ class autoTranslator
|
||||
$this->_langDir = $_langDir.self::DIR_SEPARATOR;
|
||||
$this->_time = date('Y-m-d H:i:s');
|
||||
$this->_limittofile = $_limittofile;
|
||||
$this->_apikey = $_apikey;
|
||||
$this->_apikey = $_apikey;
|
||||
|
||||
// Translate
|
||||
//ini_set('default_charset','UTF-8');
|
||||
@@ -77,9 +77,10 @@ class autoTranslator
|
||||
|
||||
$files = $this->getTranslationFilesArray($this->_refLang);
|
||||
$counter = 1;
|
||||
foreach ($files as $file)
|
||||
{
|
||||
if ($this->_limittofile && $this->_limittofile != $file) continue;
|
||||
foreach ($files as $file) {
|
||||
if ($this->_limittofile && $this->_limittofile != $file) {
|
||||
continue;
|
||||
}
|
||||
$counter++;
|
||||
$fileContent = null;
|
||||
$refPath = $this->_langDir.$this->_refLang.self::DIR_SEPARATOR.$file;
|
||||
@@ -88,54 +89,66 @@ class autoTranslator
|
||||
|
||||
// Define target dirs
|
||||
$targetlangs=array($this->_destlang);
|
||||
if ($this->_destlang == 'all')
|
||||
{
|
||||
if ($this->_destlang == 'all') {
|
||||
$targetlangs=array();
|
||||
|
||||
// If we must process all languages
|
||||
$arraytmp=dol_dir_list($this->_langDir, 'directories', 0);
|
||||
foreach ($arraytmp as $dirtmp)
|
||||
{
|
||||
if ($dirtmp['name'] === $this->_refLang) continue; // We discard source language
|
||||
foreach ($arraytmp as $dirtmp) {
|
||||
if ($dirtmp['name'] === $this->_refLang) {
|
||||
continue; // We discard source language
|
||||
}
|
||||
$tmppart=explode('_', $dirtmp['name']);
|
||||
if (preg_match('/^en/i', $dirtmp['name'])) continue; // We discard en_* languages
|
||||
if (preg_match('/^fr/i', $dirtmp['name'])) continue; // We discard fr_* 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('/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
|
||||
if (preg_match('/^en/i', $dirtmp['name'])) {
|
||||
continue; // We discard en_* languages
|
||||
}
|
||||
if (preg_match('/^fr/i', $dirtmp['name'])) {
|
||||
continue; // We discard fr_* 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('/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'];
|
||||
}
|
||||
//var_dump($targetlangs);
|
||||
}
|
||||
|
||||
// Process translation of source file for each target languages
|
||||
foreach ($targetlangs as $my_destlang)
|
||||
{
|
||||
foreach ($targetlangs as $my_destlang) {
|
||||
$this->_translatedFiles = array();
|
||||
|
||||
$destPath = $this->_langDir.$my_destlang.self::DIR_SEPARATOR.$file;
|
||||
// Check destination file presence
|
||||
if (! file_exists($destPath))
|
||||
{
|
||||
if (! file_exists($destPath)) {
|
||||
// No file present, we generate file
|
||||
echo "File not found: " . $destPath . ". We generate it.<br>\n";
|
||||
$this->createTranslationFile($destPath, $my_destlang);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
echo "Updating file: " . $destPath . "<br>\n";
|
||||
}
|
||||
|
||||
// Translate lines
|
||||
$fileContentDest = file($destPath, FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
|
||||
$newlines=0;
|
||||
foreach ($fileContent as $line){
|
||||
foreach ($fileContent as $line) {
|
||||
$key = $this->getLineKey($line);
|
||||
$value = $this->getLineValue($line);
|
||||
if ($key && $value)
|
||||
{
|
||||
if ($key && $value) {
|
||||
$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');
|
||||
|
||||
if (isset($this->_translatedFiles[$file]) && count($this->_translatedFiles[$file])>0)
|
||||
{
|
||||
if (isset($this->_translatedFiles[$file]) && count($this->_translatedFiles[$file])>0) {
|
||||
$fp = fopen($destPath, 'a');
|
||||
fwrite($fp, "\n");
|
||||
fwrite($fp, "\n");
|
||||
@@ -213,27 +225,31 @@ class autoTranslator
|
||||
$destValue = $this->getLineValue($line);
|
||||
// If translated return
|
||||
//print "destKey=".$destKey."\n";
|
||||
if ( trim($destKey) == trim($key) )
|
||||
{ // Found already existing translation (key already exits in dest file)
|
||||
if (trim($destKey) == trim($key)) { // Found already existing translation (key already exits in dest file)
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if ($key == 'CHARSET') {
|
||||
$val=$this->_outputpagecode;
|
||||
} elseif (preg_match('/^Format/', $key)) {
|
||||
$val=$value;
|
||||
} elseif ($value=='-') {
|
||||
$val=$value;
|
||||
} else {
|
||||
$val=$this->_outputpagecode;
|
||||
} elseif (preg_match('/^Format/', $key)) {
|
||||
$val=$value;
|
||||
} elseif ($value=='-') {
|
||||
$val=$value;
|
||||
} else {
|
||||
// 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));
|
||||
else $val=utf8_decode($this->translateTexts(array($value), substr($this->_refLang, 0, 2), substr($my_destlang, 0, 2)));
|
||||
if ($this->_outputpagecode == 'UTF-8') {
|
||||
$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);
|
||||
|
||||
if (empty($val)) return 0;
|
||||
if (empty($val)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
$this->_translatedFiles[$file][] = $key . '=' . $val ;
|
||||
return 1;
|
||||
@@ -293,9 +309,13 @@ class autoTranslator
|
||||
{
|
||||
// We want to be sure that src_lang and dest_lang are using 2 chars only
|
||||
$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);
|
||||
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
|
||||
$lang_pair = $src_lang.'|'.$dest_lang;
|
||||
@@ -306,17 +326,16 @@ class autoTranslator
|
||||
// Define GET URL v1
|
||||
//$url = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=".urlencode($src_text_to_translate)."&langpair=".urlencode($lang_pair);
|
||||
// Example: http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=Setup%20area&langpair=en_US|fr_FR
|
||||
// Define GET URL v2
|
||||
// Define GET URL v2
|
||||
$url = "https://www.googleapis.com/language/translate/v2?key=".$this->_apikey."&q=".urlencode($src_text_to_translate)."&source=".urlencode($src_lang)."&target=".urlencode($dest_lang);
|
||||
// Example: https://www.googleapis.com/language/translate/v2?key=_apikey&q=Setup%20area&source=en_US&target=fr_FR
|
||||
|
||||
// Send request
|
||||
//print "Url to translate: ".$url."\n";
|
||||
|
||||
if (! function_exists("curl_init"))
|
||||
{
|
||||
print "Error, your PHP does not support curl functions.\n";
|
||||
die();
|
||||
if (! function_exists("curl_init")) {
|
||||
print "Error, your PHP does not support curl functions.\n";
|
||||
die();
|
||||
}
|
||||
|
||||
$ch = curl_init();
|
||||
@@ -331,9 +350,8 @@ class autoTranslator
|
||||
$json = json_decode($body, true);
|
||||
|
||||
if ((! empty($json['responseStatus']) && $json['responseStatus'] != 200)
|
||||
|| count($json['data']['translations']) == 0)
|
||||
{
|
||||
print "Error: ".$json['responseStatus']." ".$url."\n";
|
||||
|| count($json['data']['translations']) == 0) {
|
||||
print "Error: ".$json['responseStatus']." ".$url."\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -345,5 +363,5 @@ class autoTranslator
|
||||
//print "OK ".join('',$src_texts).' => '.$rep."\n";
|
||||
|
||||
return $rep;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,8 +32,8 @@ $path=dirname(__FILE__).'/';
|
||||
|
||||
// Test if batch mode
|
||||
if (substr($sapi_type, 0, 3) == 'cgi') {
|
||||
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||
exit;
|
||||
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
// Include Dolibarr environment
|
||||
@@ -56,10 +56,10 @@ $dir=DOL_DOCUMENT_ROOT."/langs";
|
||||
|
||||
// Check parameters
|
||||
if (! isset($argv[3])) {
|
||||
print "Usage: ".$script_file." lang_code_src lang_code_dest|all APIKEY [langfile.lang]\n";
|
||||
print "Example: ".$script_file." en_US pt_PT 123456\n";
|
||||
print "Rem: lang_code to use can be found on https://translate.google.com\n";
|
||||
exit;
|
||||
print "Usage: ".$script_file." lang_code_src lang_code_dest|all APIKEY [langfile.lang]\n";
|
||||
print "Example: ".$script_file." en_US pt_PT 123456\n";
|
||||
print "Rem: lang_code to use can be found on https://translate.google.com\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
// Show parameters
|
||||
@@ -67,21 +67,17 @@ print 'Argument 1='.$argv[1]."\n";
|
||||
print 'Argument 2='.$argv[2]."\n";
|
||||
print 'Argument 3='.$argv[3]."\n";
|
||||
$file='';
|
||||
if (isset($argv[4]))
|
||||
{
|
||||
if (isset($argv[4])) {
|
||||
$file=$argv[4];
|
||||
print 'Argument 4='.$argv[4]."\n";
|
||||
}
|
||||
print 'Files will be generated/updated in directory '.$dir."\n";
|
||||
|
||||
if ($argv[2] != 'all')
|
||||
{
|
||||
if (! is_dir($dir.'/'.$argv[2]))
|
||||
{
|
||||
if ($argv[2] != 'all') {
|
||||
if (! is_dir($dir.'/'.$argv[2])) {
|
||||
print 'Create directory '.$dir.'/'.$argv[2]."\n";
|
||||
$result=mkdir($dir.'/'.$argv[2]);
|
||||
if (! $result)
|
||||
{
|
||||
if (! $result) {
|
||||
$db->close();
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -25,18 +25,16 @@ $path=dirname(__FILE__).'/';
|
||||
$web=0;
|
||||
|
||||
// Test if batch mode
|
||||
if (substr($sapi_type, 0, 3) == 'cgi')
|
||||
{
|
||||
$web=1;
|
||||
if (substr($sapi_type, 0, 3) == 'cgi') {
|
||||
$web=1;
|
||||
}
|
||||
|
||||
|
||||
if ($web)
|
||||
{
|
||||
echo "<html>";
|
||||
echo "<head>";
|
||||
if ($web) {
|
||||
echo "<html>";
|
||||
echo "<head>";
|
||||
|
||||
echo "<STYLE type=\"text/css\">
|
||||
echo "<STYLE type=\"text/css\">
|
||||
|
||||
table {
|
||||
background: #f5f5f5;
|
||||
@@ -83,13 +81,17 @@ if ($web)
|
||||
|
||||
</STYLE>";
|
||||
|
||||
echo "<body>";
|
||||
echo "<body>";
|
||||
}
|
||||
|
||||
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";
|
||||
if ($web) print "<br>";
|
||||
if ($web) {
|
||||
print "<br>";
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -105,8 +107,7 @@ $workdir = $htdocs."langs/en_US/";
|
||||
|
||||
|
||||
$files = scandir($workdir);
|
||||
if (empty($files))
|
||||
{
|
||||
if (empty($files)) {
|
||||
echo "Can't scan workdir = ".$workdir;
|
||||
exit;
|
||||
}
|
||||
@@ -115,18 +116,17 @@ $dups=array();
|
||||
$exludefiles = array('.','..','README');
|
||||
$files = array_diff($files, $exludefiles);
|
||||
// To force a file: $files=array('myfile.lang');
|
||||
if (isset($argv[2]))
|
||||
{
|
||||
$files = array($argv[2]);
|
||||
if (isset($argv[2])) {
|
||||
$files = array($argv[2]);
|
||||
}
|
||||
$langstrings_3d = array();
|
||||
$langstrings_full = array();
|
||||
foreach ($files AS $file) {
|
||||
foreach ($files as $file) {
|
||||
$path_file = pathinfo($file);
|
||||
// we're only interested in .lang files
|
||||
if ($path_file['extension']=='lang') {
|
||||
$content = file($workdir.$file);
|
||||
foreach ($content AS $line => $row) {
|
||||
foreach ($content as $line => $row) {
|
||||
// don't want comment lines
|
||||
if (substr($row, 0, 1) !== '#') {
|
||||
// don't want lines without the separator (why should those even be here, anyway...)
|
||||
@@ -142,29 +142,29 @@ foreach ($files AS $file) {
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($langstrings_3d AS $filename => $file)
|
||||
{
|
||||
foreach ($file AS $linenum => $value)
|
||||
{
|
||||
foreach ($langstrings_3d as $filename => $file) {
|
||||
foreach ($file as $linenum => $value) {
|
||||
$keys = array_keys($langstrings_full, $value);
|
||||
if (count($keys)>1)
|
||||
{
|
||||
foreach ($keys AS $key) {
|
||||
if (count($keys)>1) {
|
||||
foreach ($keys as $key) {
|
||||
$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";
|
||||
if ($web) print "</h2>";
|
||||
if ($web) {
|
||||
print "</h2>";
|
||||
}
|
||||
|
||||
if ($web)
|
||||
{
|
||||
echo '<table border_bottom="1">'."\n";
|
||||
echo "<thead><tr><th align=\"center\">#</th><th>String</th><th>File and lines</th></thead>\n";
|
||||
echo "<tbody>\n";
|
||||
if ($web) {
|
||||
echo '<table border_bottom="1">'."\n";
|
||||
echo "<thead><tr><th align=\"center\">#</th><th>String</th><th>File and lines</th></thead>\n";
|
||||
echo "<tbody>\n";
|
||||
}
|
||||
|
||||
$sduplicateinsamefile='';
|
||||
@@ -173,216 +173,419 @@ $sininstallandadmin='';
|
||||
$sother='';
|
||||
|
||||
$count = 0;
|
||||
foreach ($dups as $string => $pages)
|
||||
{
|
||||
foreach ($dups as $string => $pages) {
|
||||
$count++;
|
||||
$s='';
|
||||
|
||||
// Keyword $string
|
||||
if ($web) $s.="<tr>";
|
||||
if ($web) $s.="<td align=\"center\">";
|
||||
if ($web) $s.=$count;
|
||||
if ($web) $s.="</td>";
|
||||
if ($web) $s.="<td>";
|
||||
if ($web) {
|
||||
$s.="<tr>";
|
||||
}
|
||||
if ($web) {
|
||||
$s.="<td align=\"center\">";
|
||||
}
|
||||
if ($web) {
|
||||
$s.=$count;
|
||||
}
|
||||
if ($web) {
|
||||
$s.="</td>";
|
||||
}
|
||||
if ($web) {
|
||||
$s.="<td>";
|
||||
}
|
||||
$s.=$string;
|
||||
if ($web) $s.="</td>";
|
||||
if ($web) $s.="<td>";
|
||||
if (! $web) $s.= ' : ';
|
||||
if ($web) {
|
||||
$s.="</td>";
|
||||
}
|
||||
if ($web) {
|
||||
$s.="<td>";
|
||||
}
|
||||
if (! $web) {
|
||||
$s.= ' : ';
|
||||
}
|
||||
|
||||
// Loop on each files keyword was found
|
||||
$duplicateinsamefile=0;
|
||||
$duplicateinsamefile=0;
|
||||
$inmain=0;
|
||||
$inadmin=0;
|
||||
foreach ($pages AS $file => $lines)
|
||||
{
|
||||
if ($file == 'main.lang') { $inmain=1; $inadmin=0; }
|
||||
if ($file == 'admin.lang' && ! $inmain) { $inadmin=1; }
|
||||
$inadmin=0;
|
||||
foreach ($pages as $file => $lines) {
|
||||
if ($file == 'main.lang') {
|
||||
$inmain=1; $inadmin=0;
|
||||
}
|
||||
if ($file == 'admin.lang' && ! $inmain) {
|
||||
$inadmin=1;
|
||||
}
|
||||
|
||||
$s.=$file." ";
|
||||
$s.=$file." ";
|
||||
|
||||
// Loop on each line keword was found into file.
|
||||
$listoffilesforthisentry=array();
|
||||
foreach ($lines as $line => $translatedvalue)
|
||||
{
|
||||
if (! empty($listoffilesforthisentry[$file])) $duplicateinsamefile=1;
|
||||
$listoffilesforthisentry[$file]=1;
|
||||
// Loop on each line keword was found into file.
|
||||
$listoffilesforthisentry=array();
|
||||
foreach ($lines as $line => $translatedvalue) {
|
||||
if (! empty($listoffilesforthisentry[$file])) {
|
||||
$duplicateinsamefile=1;
|
||||
}
|
||||
$listoffilesforthisentry[$file]=1;
|
||||
|
||||
$s.= "(".$line." - ".htmlentities($translatedvalue).") ";
|
||||
}
|
||||
if ($web) $s.="<br>";
|
||||
if ($web) {
|
||||
$s.="<br>";
|
||||
}
|
||||
}
|
||||
if ($web) {
|
||||
$s.="</td></tr>";
|
||||
}
|
||||
if ($web) $s.="</td></tr>";
|
||||
$s.="\n";
|
||||
|
||||
if ($duplicateinsamefile) $sduplicateinsamefile .= $s;
|
||||
elseif ($inmain) $sinmainandother .= $s;
|
||||
elseif ($inadmin) $sininstallandadmin .= $s;
|
||||
else $sother .= $s;
|
||||
if ($duplicateinsamefile) {
|
||||
$sduplicateinsamefile .= $s;
|
||||
} elseif ($inmain) {
|
||||
$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;
|
||||
if (! $web && empty($sduplicateinsamefile)) print "None\n";
|
||||
if (! $web) print "\n";
|
||||
if (! $web && empty($sduplicateinsamefile)) {
|
||||
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;
|
||||
if (! $web && empty($sinmainandother)) print "None\n";
|
||||
if (! $web) print "\n";
|
||||
if (! $web && empty($sinmainandother)) {
|
||||
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;
|
||||
if (! $web && empty($sininstallandadmin)) print "None\n";
|
||||
if (! $web) print "\n";
|
||||
if (! $web && empty($sininstallandadmin)) {
|
||||
print "None\n";
|
||||
}
|
||||
if (! $web) {
|
||||
print "\n";
|
||||
}
|
||||
|
||||
if (! $web) print "***** Other\n";
|
||||
if (! $web) {
|
||||
print "***** Other\n";
|
||||
}
|
||||
print $sother;
|
||||
if (! $web && empty($sother)) print "None\n";
|
||||
if (! $web) print "\n";
|
||||
if (! $web && empty($sother)) {
|
||||
print "None\n";
|
||||
}
|
||||
if (! $web) {
|
||||
print "\n";
|
||||
}
|
||||
|
||||
if ($web)
|
||||
{
|
||||
echo "</tbody>\n";
|
||||
echo "</table>\n";
|
||||
if ($web) {
|
||||
echo "</tbody>\n";
|
||||
echo "</table>\n";
|
||||
}
|
||||
|
||||
|
||||
// STEP 2 - Search key not used
|
||||
|
||||
if ((! empty($_REQUEST['unused']) && $_REQUEST['unused'] == 'true') || (isset($argv[1]) && $argv[1]=='unused=true'))
|
||||
{
|
||||
print "***** Strings in en_US that are never used:\n";
|
||||
if ((! empty($_REQUEST['unused']) && $_REQUEST['unused'] == 'true') || (isset($argv[1]) && $argv[1]=='unused=true')) {
|
||||
print "***** Strings in en_US that are never used:\n";
|
||||
|
||||
$unused=array();
|
||||
foreach ($langstrings_dist AS $value => $line)
|
||||
{
|
||||
$qualifiedforclean=1;
|
||||
// Check if we must keep this key to be into file for removal
|
||||
if (preg_match('/^Module\d+/', $value)) $qualifiedforclean=0;
|
||||
if (preg_match('/^Permission\d+/', $value)) $qualifiedforclean=0;
|
||||
if (preg_match('/^PermissionAdvanced\d+/', $value)) $qualifiedforclean=0;
|
||||
if (preg_match('/^ProfId\d+/', $value)) $qualifiedforclean=0;
|
||||
if (preg_match('/^Delays_/', $value)) $qualifiedforclean=0;
|
||||
if (preg_match('/^BarcodeDesc/', $value)) $qualifiedforclean=0;
|
||||
if (preg_match('/^Extrafield/', $value)) $qualifiedforclean=0;
|
||||
if (preg_match('/^LocalTax/', $value)) $qualifiedforclean=0;
|
||||
if (preg_match('/^Country/', $value)) $qualifiedforclean=0;
|
||||
if (preg_match('/^Civility/', $value)) $qualifiedforclean=0;
|
||||
if (preg_match('/^Currency/', $value)) $qualifiedforclean=0;
|
||||
if (preg_match('/^DemandReasonTypeSRC/', $value)) $qualifiedforclean=0;
|
||||
if (preg_match('/^PaperFormat/', $value)) $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
|
||||
if (preg_match('/^DAV_ALLOW_PUBLIC_DIR/i', $value)) $qualifiedforclean=0;
|
||||
if (preg_match('/^DAV_ALLOW_ECM_DIR/i', $value)) $qualifiedforclean=0;
|
||||
// boxes.lang
|
||||
if (preg_match('/^BoxTitleLast/', $value)) $qualifiedforclean=0;
|
||||
if (preg_match('/^BoxTitleLatest/', $value)) $qualifiedforclean=0;
|
||||
// install.lang
|
||||
if (preg_match('/^KeepDefaultValues/', $value)) $qualifiedforclean=0;
|
||||
$unused=array();
|
||||
foreach ($langstrings_dist as $value => $line) {
|
||||
$qualifiedforclean=1;
|
||||
// Check if we must keep this key to be into file for removal
|
||||
if (preg_match('/^Module\d+/', $value)) {
|
||||
$qualifiedforclean=0;
|
||||
}
|
||||
if (preg_match('/^Permission\d+/', $value)) {
|
||||
$qualifiedforclean=0;
|
||||
}
|
||||
if (preg_match('/^PermissionAdvanced\d+/', $value)) {
|
||||
$qualifiedforclean=0;
|
||||
}
|
||||
if (preg_match('/^ProfId\d+/', $value)) {
|
||||
$qualifiedforclean=0;
|
||||
}
|
||||
if (preg_match('/^Delays_/', $value)) {
|
||||
$qualifiedforclean=0;
|
||||
}
|
||||
if (preg_match('/^BarcodeDesc/', $value)) {
|
||||
$qualifiedforclean=0;
|
||||
}
|
||||
if (preg_match('/^Extrafield/', $value)) {
|
||||
$qualifiedforclean=0;
|
||||
}
|
||||
if (preg_match('/^LocalTax/', $value)) {
|
||||
$qualifiedforclean=0;
|
||||
}
|
||||
if (preg_match('/^Country/', $value)) {
|
||||
$qualifiedforclean=0;
|
||||
}
|
||||
if (preg_match('/^Civility/', $value)) {
|
||||
$qualifiedforclean=0;
|
||||
}
|
||||
if (preg_match('/^Currency/', $value)) {
|
||||
$qualifiedforclean=0;
|
||||
}
|
||||
if (preg_match('/^DemandReasonTypeSRC/', $value)) {
|
||||
$qualifiedforclean=0;
|
||||
}
|
||||
if (preg_match('/^PaperFormat/', $value)) {
|
||||
$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
|
||||
if (preg_match('/^DAV_ALLOW_PUBLIC_DIR/i', $value)) {
|
||||
$qualifiedforclean=0;
|
||||
}
|
||||
if (preg_match('/^DAV_ALLOW_ECM_DIR/i', $value)) {
|
||||
$qualifiedforclean=0;
|
||||
}
|
||||
// boxes.lang
|
||||
if (preg_match('/^BoxTitleLast/', $value)) {
|
||||
$qualifiedforclean=0;
|
||||
}
|
||||
if (preg_match('/^BoxTitleLatest/', $value)) {
|
||||
$qualifiedforclean=0;
|
||||
}
|
||||
// install.lang
|
||||
if (preg_match('/^KeepDefaultValues/', $value)) {
|
||||
$qualifiedforclean=0;
|
||||
}
|
||||
// mail.lang
|
||||
if (preg_match('/MailingModuleDesc/i', $value)) $qualifiedforclean=0;
|
||||
// main.lang
|
||||
if (preg_match('/^Duration/', $value)) $qualifiedforclean=0;
|
||||
if (preg_match('/^FormatDate/', $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;
|
||||
if (preg_match('/MailingModuleDesc/i', $value)) {
|
||||
$qualifiedforclean=0;
|
||||
}
|
||||
// main.lang
|
||||
if (preg_match('/^Duration/', $value)) {
|
||||
$qualifiedforclean=0;
|
||||
}
|
||||
if (preg_match('/^FormatDate/', $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
|
||||
if (preg_match('/^ModuleBuilderDesc/', $value)) $qualifiedforclean=0;
|
||||
// orders
|
||||
if (preg_match('/^OrderSource/', $value)) $qualifiedforclean=0;
|
||||
if (preg_match('/^TypeContact_/', $value)) $qualifiedforclean=0;
|
||||
// other.lang
|
||||
if (preg_match('/^Notify_/', $value)) $qualifiedforclean=0;
|
||||
if (preg_match('/^PredefinedMail/', $value)) $qualifiedforclean=0;
|
||||
if (preg_match('/^DemoCompany/', $value)) $qualifiedforclean=0;
|
||||
if (preg_match('/^WeightUnit/', $value)) $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
|
||||
if (preg_match('/PrintingDriverDesc$/', $value)) $qualifiedforclean=0;
|
||||
if (preg_match('/PrintTestDesc$/', $value)) $qualifiedforclean=0;
|
||||
// products
|
||||
if (preg_match('/GlobalVariableUpdaterType$/', $value)) $qualifiedforclean=0;
|
||||
if (preg_match('/GlobalVariableUpdaterHelp$/', $value)) $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('/^ModuleBuilderDesc/', $value)) {
|
||||
$qualifiedforclean=0;
|
||||
}
|
||||
// orders
|
||||
if (preg_match('/^OrderSource/', $value)) {
|
||||
$qualifiedforclean=0;
|
||||
}
|
||||
if (preg_match('/^TypeContact_/', $value)) {
|
||||
$qualifiedforclean=0;
|
||||
}
|
||||
// other.lang
|
||||
if (preg_match('/^Notify_/', $value)) {
|
||||
$qualifiedforclean=0;
|
||||
}
|
||||
if (preg_match('/^PredefinedMail/', $value)) {
|
||||
$qualifiedforclean=0;
|
||||
}
|
||||
if (preg_match('/^DemoCompany/', $value)) {
|
||||
$qualifiedforclean=0;
|
||||
}
|
||||
if (preg_match('/^WeightUnit/', $value)) {
|
||||
$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
|
||||
if (preg_match('/PrintingDriverDesc$/', $value)) {
|
||||
$qualifiedforclean=0;
|
||||
}
|
||||
if (preg_match('/PrintTestDesc$/', $value)) {
|
||||
$qualifiedforclean=0;
|
||||
}
|
||||
// products
|
||||
if (preg_match('/GlobalVariableUpdaterType$/', $value)) {
|
||||
$qualifiedforclean=0;
|
||||
}
|
||||
if (preg_match('/GlobalVariableUpdaterHelp$/', $value)) {
|
||||
$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('/TF_/i', $value)) $qualifiedforclean=0;
|
||||
if (preg_match('/WithBankUsing/i', $value)) $qualifiedforclean=0;
|
||||
if (preg_match('/descWORKFLOW_/i', $value)) $qualifiedforclean=0;
|
||||
if (preg_match('/sms/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)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (! $qualifiedforclean) {
|
||||
continue;
|
||||
}
|
||||
|
||||
//$search = '\'trans("'.$value.'")\'';
|
||||
$search = '-e "\''.$value.'\'" -e \'"'.$value.'"\' -e "('.$value.')" -e "('.$value.',"';
|
||||
//$search = '\'trans("'.$value.'")\'';
|
||||
$search = '-e "\''.$value.'\'" -e \'"'.$value.'"\' -e "('.$value.')" -e "('.$value.',"';
|
||||
$string = 'grep -R -m 1 -F --exclude=includes/* --include=*.php '.$search.' '.$htdocs.'* '.$scripts.'*';
|
||||
//print $string."<br>\n";
|
||||
exec($string, $output);
|
||||
if (empty($output)) {
|
||||
$unused[$value] = $line;
|
||||
echo $line; // $trad contains the \n
|
||||
}
|
||||
else {
|
||||
unset($output);
|
||||
//print 'X'.$output.'Y';
|
||||
$unused[$value] = $line;
|
||||
echo $line; // $trad contains the \n
|
||||
} else {
|
||||
unset($output);
|
||||
//print 'X'.$output.'Y';
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($unused)) print "No string not used found.\n";
|
||||
else {
|
||||
$filetosave='/tmp/'.($argv[2]?$argv[2]:"").'notused.lang';
|
||||
print "Strings in en_US that are never used are saved into file ".$filetosave.":\n";
|
||||
file_put_contents($filetosave, implode("", $unused));
|
||||
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; ";
|
||||
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 (empty($unused)) {
|
||||
print "No string not used found.\n";
|
||||
} else {
|
||||
$filetosave='/tmp/'.($argv[2]?$argv[2]:"").'notused.lang';
|
||||
print "Strings in en_US that are never used are saved into file ".$filetosave.":\n";
|
||||
file_put_contents($filetosave, implode("", $unused));
|
||||
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; ";
|
||||
}
|
||||
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";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo "\n";
|
||||
if ($web)
|
||||
{
|
||||
echo "</body>\n";
|
||||
echo "</html>\n";
|
||||
if ($web) {
|
||||
echo "</body>\n";
|
||||
echo "</html>\n";
|
||||
}
|
||||
|
||||
exit;
|
||||
|
||||
@@ -63,8 +63,7 @@ $lSecondary = isset($argv[2])?$argv[2]:'';
|
||||
$lEnglish = 'en_US';
|
||||
$filesToProcess = isset($argv[3])?$argv[3]:'';
|
||||
|
||||
if (empty($lPrimary) || empty($lSecondary) || empty($filesToProcess))
|
||||
{
|
||||
if (empty($lPrimary) || empty($lSecondary) || empty($filesToProcess)) {
|
||||
$rc = 1;
|
||||
$msg = '***** Script to clean language files *****'."\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();
|
||||
|
||||
// Define array $filesToProcess
|
||||
if ($filesToProcess == 'all')
|
||||
{
|
||||
if ($filesToProcess == 'all') {
|
||||
$dir = new DirectoryIterator('htdocs/langs/'.$lPrimary);
|
||||
while ($dir->valid()) {
|
||||
if (!$dir->isDot() && $dir->isFile() && ! preg_match('/^\./', $dir->getFilename())) {
|
||||
@@ -87,15 +85,15 @@ if ($filesToProcess == 'all')
|
||||
$dir->next();
|
||||
}
|
||||
$filesToProcess=$files;
|
||||
} else {
|
||||
$filesToProcess=explode(',', $filesToProcess);
|
||||
}
|
||||
else $filesToProcess=explode(',', $filesToProcess);
|
||||
|
||||
// Arguments should be OK here.
|
||||
|
||||
|
||||
// Loop on each file
|
||||
foreach ($filesToProcess as $fileToProcess)
|
||||
{
|
||||
foreach ($filesToProcess as $fileToProcess) {
|
||||
$lPrimaryFile = 'htdocs/langs/'.$lPrimary.'/'.$fileToProcess;
|
||||
$lSecondaryFile = 'htdocs/langs/'.$lSecondary.'/'.$fileToProcess;
|
||||
$lEnglishFile = 'htdocs/langs/'.$lEnglish.'/'.$fileToProcess;
|
||||
@@ -103,21 +101,21 @@ foreach ($filesToProcess as $fileToProcess)
|
||||
|
||||
print "---- Process language file ".$lSecondaryFile."\n";
|
||||
|
||||
if ( ! is_readable($lPrimaryFile) ) {
|
||||
if (! is_readable($lPrimaryFile)) {
|
||||
$rc = 2;
|
||||
$msg = "Cannot read primary language file $lPrimaryFile.";
|
||||
print $msg . " (rc=$rc).\n";
|
||||
exit($rc);
|
||||
}
|
||||
|
||||
if ( ! is_readable($lSecondaryFile) ) {
|
||||
if (! is_readable($lSecondaryFile)) {
|
||||
$rc = 3;
|
||||
$msg = "Cannot read secondary language file $lSecondaryFile. We discard this file.";
|
||||
print $msg . "\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( ! is_readable($lEnglishFile) ) {
|
||||
if (! is_readable($lEnglishFile)) {
|
||||
$rc = 3;
|
||||
$msg = "Cannot read english language file $lEnglishFile. We discard this file.";
|
||||
print $msg . "\n";
|
||||
@@ -126,25 +124,23 @@ foreach ($filesToProcess as $fileToProcess)
|
||||
|
||||
// Start reading and parsing Secondary
|
||||
|
||||
if ( $handle = fopen($lSecondaryFile, 'r') )
|
||||
{
|
||||
if ($handle = fopen($lSecondaryFile, 'r')) {
|
||||
print "Read Secondary File $lSecondaryFile:\n";
|
||||
$cnt = 0;
|
||||
while (($line = fgets($handle)) !== false)
|
||||
{
|
||||
while (($line = fgets($handle)) !== false) {
|
||||
$cnt++;
|
||||
|
||||
// strip comments
|
||||
if ( preg_match("/^\w*#/", $line) ) {
|
||||
if (preg_match("/^\w*#/", $line)) {
|
||||
continue;
|
||||
}
|
||||
// strip empty lines
|
||||
if ( preg_match("/^\w*$/", $line) ) {
|
||||
if (preg_match("/^\w*$/", $line)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$a = mb_split('=', trim($line), 2);
|
||||
if ( count($a) != 2 ) {
|
||||
if (count($a) != 2) {
|
||||
print "ERROR in file $lSecondaryFile, line $cnt: " . trim($line) . "\n";
|
||||
continue;
|
||||
}
|
||||
@@ -152,29 +148,27 @@ foreach ($filesToProcess as $fileToProcess)
|
||||
list($key, $value) = $a;
|
||||
|
||||
// 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";
|
||||
continue;
|
||||
}
|
||||
|
||||
// String has no value
|
||||
if ( $value == '' ) {
|
||||
if ($value == '') {
|
||||
print "Key $key has no value in file $lSecondaryFile (line: $cnt).\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
$aSecondary[$key] = trim($value);
|
||||
}
|
||||
if ( ! feof($handle) )
|
||||
{
|
||||
if (! feof($handle)) {
|
||||
$rc = 5;
|
||||
$msg = "Unexpected fgets() fail";
|
||||
print $msg . " (rc=$rc).\n";
|
||||
exit($rc);
|
||||
}
|
||||
fclose($handle);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$rc = 6;
|
||||
$msg = "Cannot open file $lSecondaryFile";
|
||||
print $msg . " (rc=$rc).\n";
|
||||
@@ -184,25 +178,23 @@ foreach ($filesToProcess as $fileToProcess)
|
||||
|
||||
// Start reading and parsing English
|
||||
|
||||
if ( $handle = fopen($lEnglishFile, 'r') )
|
||||
{
|
||||
if ($handle = fopen($lEnglishFile, 'r')) {
|
||||
print "Read English File $lEnglishFile:\n";
|
||||
$cnt = 0;
|
||||
while (($line = fgets($handle)) !== false)
|
||||
{
|
||||
while (($line = fgets($handle)) !== false) {
|
||||
$cnt++;
|
||||
|
||||
// strip comments
|
||||
if ( preg_match("/^\w*#/", $line) ) {
|
||||
if (preg_match("/^\w*#/", $line)) {
|
||||
continue;
|
||||
}
|
||||
// strip empty lines
|
||||
if ( preg_match("/^\w*$/", $line) ) {
|
||||
if (preg_match("/^\w*$/", $line)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$a = mb_split('=', trim($line), 2);
|
||||
if ( count($a) != 2 ) {
|
||||
if (count($a) != 2) {
|
||||
print "ERROR in file $lEnglishFile, line $cnt: " . trim($line) . "\n";
|
||||
continue;
|
||||
}
|
||||
@@ -210,29 +202,27 @@ foreach ($filesToProcess as $fileToProcess)
|
||||
list($key, $value) = $a;
|
||||
|
||||
// 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";
|
||||
continue;
|
||||
}
|
||||
|
||||
// String has no value
|
||||
if ( $value == '' ) {
|
||||
if ($value == '') {
|
||||
print "Key $key has no value in file $lEnglishFile (line: $cnt).\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
$aEnglish[$key] = trim($value);
|
||||
}
|
||||
if ( ! feof($handle) )
|
||||
{
|
||||
if (! feof($handle)) {
|
||||
$rc = 5;
|
||||
$msg = "Unexpected fgets() fail";
|
||||
print $msg . " (rc=$rc).\n";
|
||||
exit($rc);
|
||||
}
|
||||
fclose($handle);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$rc = 6;
|
||||
$msg = "Cannot open file $lEnglishFile";
|
||||
print $msg . " (rc=$rc).\n";
|
||||
@@ -246,10 +236,8 @@ foreach ($filesToProcess as $fileToProcess)
|
||||
$arrayofkeytoalwayskeep=array('DIRECTION','FONTFORPDF','FONTSIZEFORPDF','SeparatorDecimal','SeparatorThousand');
|
||||
|
||||
|
||||
if ( $handle = fopen($lPrimaryFile, 'r') )
|
||||
{
|
||||
if ( ! $oh = fopen($output, 'w') )
|
||||
{
|
||||
if ($handle = fopen($lPrimaryFile, 'r')) {
|
||||
if (! $oh = fopen($output, 'w')) {
|
||||
print "ERROR in writing to file ".$output."\n";
|
||||
exit;
|
||||
}
|
||||
@@ -259,21 +247,20 @@ foreach ($filesToProcess as $fileToProcess)
|
||||
fwrite($oh, "# Dolibarr language file - Source file is en_US - ".(preg_replace('/\.lang$/', '', $fileToProcess))."\n");
|
||||
|
||||
$cnt = 0;
|
||||
while (($line = fgets($handle)) !== false)
|
||||
{
|
||||
while (($line = fgets($handle)) !== false) {
|
||||
$cnt++;
|
||||
|
||||
// strip comments
|
||||
if ( preg_match("/^\w*#/", $line) ) {
|
||||
if (preg_match("/^\w*#/", $line)) {
|
||||
continue;
|
||||
}
|
||||
// strip empty lines
|
||||
if ( preg_match("/^\w*$/", $line) ) {
|
||||
if (preg_match("/^\w*$/", $line)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$a = mb_split('=', trim($line), 2);
|
||||
if ( count($a) != 2 ) {
|
||||
if (count($a) != 2) {
|
||||
print "ERROR in file $lPrimaryFile, line $cnt: " . trim($line) . "\n";
|
||||
continue;
|
||||
}
|
||||
@@ -281,17 +268,16 @@ foreach ($filesToProcess as $fileToProcess)
|
||||
list($key, $value) = $a;
|
||||
|
||||
// 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";
|
||||
continue;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$fileFirstFound[$key] = $fileToProcess;
|
||||
$lineFirstFound[$key] = $cnt;
|
||||
}
|
||||
|
||||
// String has no value
|
||||
if ( $value == '' ) {
|
||||
if ($value == '') {
|
||||
print "Key $key has no value in file $lPrimaryFile (line: $cnt).\n";
|
||||
continue;
|
||||
}
|
||||
@@ -305,28 +291,23 @@ foreach ($filesToProcess as $fileToProcess)
|
||||
//print "Found primary key = ".$key."\n";
|
||||
|
||||
// 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";
|
||||
}
|
||||
elseif ( ! array_key_exists($key, $aSecondary))
|
||||
{
|
||||
} elseif (! array_key_exists($key, $aSecondary)) {
|
||||
//print "Key $key does NOT exist in secondary language (line: $cnt).\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
// String exists in both files and value into alternative language differs from main language but also from english files
|
||||
if (
|
||||
(! empty($aSecondary[$key]) && $aSecondary[$key] != $aPrimary[$key]
|
||||
&& ! empty($aEnglish[$key]) && $aSecondary[$key] != $aEnglish[$key])
|
||||
if ((! empty($aSecondary[$key]) && $aSecondary[$key] != $aPrimary[$key]
|
||||
&& ! empty($aEnglish[$key]) && $aSecondary[$key] != $aEnglish[$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";
|
||||
fwrite($oh, $key."=".(empty($aSecondary[$key])?$aPrimary[$key]:$aSecondary[$key])."\n");
|
||||
}
|
||||
}
|
||||
if ( ! feof($handle) ) {
|
||||
if (! feof($handle)) {
|
||||
$rc = 7;
|
||||
$msg = "Unexpected fgets() fail";
|
||||
print $msg . " (rc=$rc).\n";
|
||||
@@ -334,8 +315,7 @@ foreach ($filesToProcess as $fileToProcess)
|
||||
}
|
||||
fclose($oh);
|
||||
fclose($handle);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$rc = 8;
|
||||
$msg = "Cannot open file $lPrimaryFile";
|
||||
print $msg . " (rc=$rc).\n";
|
||||
|
||||
@@ -542,17 +542,17 @@ class AccountancyExport
|
||||
|
||||
// Credit invoice - invert sens
|
||||
/*
|
||||
if ($data->montant < 0) {
|
||||
if ($data->sens == 'C') {
|
||||
$Tab['sens'] = 'D';
|
||||
} else {
|
||||
$Tab['sens'] = 'C';
|
||||
}
|
||||
$Tab['signe_montant'] = '-';
|
||||
} else {
|
||||
$Tab['sens'] = $data->sens; // C or D
|
||||
$Tab['signe_montant'] = '+';
|
||||
}*/
|
||||
if ($data->montant < 0) {
|
||||
if ($data->sens == 'C') {
|
||||
$Tab['sens'] = 'D';
|
||||
} else {
|
||||
$Tab['sens'] = 'C';
|
||||
}
|
||||
$Tab['signe_montant'] = '-';
|
||||
} else {
|
||||
$Tab['sens'] = $data->sens; // C or D
|
||||
$Tab['signe_montant'] = '+';
|
||||
}*/
|
||||
$Tab['sens'] = $data->sens; // C or D
|
||||
$Tab['signe_montant'] = '+';
|
||||
|
||||
@@ -856,8 +856,8 @@ class AccountancyExport
|
||||
|
||||
foreach ($objectLines as $line) {
|
||||
if ($line->debit == 0 && $line->credit == 0) {
|
||||
//unset($array[$line]);
|
||||
} else {
|
||||
//unset($array[$line]);
|
||||
} else {
|
||||
$date_creation = dol_print_date($line->date_creation, '%Y%m%d');
|
||||
$date_document = dol_print_date($line->doc_date, '%Y%m%d');
|
||||
$date_lettering = dol_print_date($line->date_lettering, '%Y%m%d');
|
||||
|
||||
@@ -37,7 +37,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php';
|
||||
// Load translation files required by the page
|
||||
$langs->loadLangs(array("admin", "members"));
|
||||
|
||||
if (!$user->admin) accessforbidden();
|
||||
if (!$user->admin) {
|
||||
accessforbidden();
|
||||
}
|
||||
|
||||
|
||||
$choices = array('yesno', 'texte', 'chaine');
|
||||
@@ -126,17 +128,24 @@ if ($action == 'update' || $action == 'add') {
|
||||
$constname = GETPOST('constname', 'alpha');
|
||||
$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 ($constvalue) $constvalue = 0;
|
||||
else $constvalue = 1;
|
||||
if ($constvalue) {
|
||||
$constvalue = 0;
|
||||
} else {
|
||||
$constvalue = 1;
|
||||
}
|
||||
}
|
||||
|
||||
$consttype = GETPOST('consttype', 'alpha');
|
||||
$constnote = GETPOST('constnote');
|
||||
$res = dolibarr_set_const($db, $constname, $constvalue, $choices[$consttype], 0, $constnote, $conf->entity);
|
||||
|
||||
if (!($res > 0)) $error++;
|
||||
if (!($res > 0)) {
|
||||
$error++;
|
||||
}
|
||||
|
||||
if (!$error) {
|
||||
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||
@@ -211,9 +220,15 @@ print "</td></tr>\n";
|
||||
// Insert subscription into bank account
|
||||
print '<tr class="oddeven"><td>'.$langs->trans("MoreActionsOnSubscription").'</td>';
|
||||
$arraychoices = array('0'=>$langs->trans("None"));
|
||||
if (!empty($conf->banque->enabled)) $arraychoices['bankdirect'] = $langs->trans("MoreActionBankDirect");
|
||||
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");
|
||||
if (!empty($conf->banque->enabled)) {
|
||||
$arraychoices['bankdirect'] = $langs->trans("MoreActionBankDirect");
|
||||
}
|
||||
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 $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') {
|
||||
@@ -349,7 +364,9 @@ foreach ($dirmodels as $reldir) {
|
||||
$module = new $classname($db);
|
||||
|
||||
$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) {
|
||||
$modulequalified = 0;
|
||||
}
|
||||
@@ -404,8 +421,7 @@ foreach ($dirmodels as $reldir) {
|
||||
|
||||
// Preview
|
||||
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>';
|
||||
} else {
|
||||
print img_object($langs->trans("PreviewNotAvailable"), 'generic');
|
||||
|
||||
@@ -36,7 +36,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php';
|
||||
// Load translation files required by the page
|
||||
$langs->loadLangs(array("admin", "members"));
|
||||
|
||||
if (!$user->admin) accessforbidden();
|
||||
if (!$user->admin) {
|
||||
accessforbidden();
|
||||
}
|
||||
|
||||
|
||||
$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);
|
||||
|
||||
if (!($res > 0)) $error++;
|
||||
if (!($res > 0)) {
|
||||
$error++;
|
||||
}
|
||||
|
||||
if (!$error) {
|
||||
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||
|
||||
@@ -37,13 +37,17 @@ $form = new Form($db);
|
||||
// List of supported format
|
||||
$tmptype2label = ExtraFields::$type2label;
|
||||
$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');
|
||||
$attrname = GETPOST('attrname', 'alpha');
|
||||
$elementtype = 'adherent'; //Must be the $table_element of the class that manage extrafield
|
||||
|
||||
if (!$user->admin) accessforbidden();
|
||||
if (!$user->admin) {
|
||||
accessforbidden();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
|
||||
@@ -40,13 +40,17 @@ $form = new Form($db);
|
||||
// List of supported format
|
||||
$tmptype2label = ExtraFields::$type2label;
|
||||
$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');
|
||||
$attrname = GETPOST('attrname', 'alpha');
|
||||
$elementtype = 'adherent_type'; //Must be the $table_element of the class that manage extrafield
|
||||
|
||||
if (!$user->admin) accessforbidden();
|
||||
if (!$user->admin) {
|
||||
accessforbidden();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
|
||||
@@ -35,7 +35,9 @@ $langs->loadLangs(array("admin", "members"));
|
||||
|
||||
$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 (GETPOST('value')) 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 (GETPOST('value')) {
|
||||
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') {
|
||||
@@ -58,14 +63,17 @@ if ($action == 'update') {
|
||||
$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_PAYONLINE", $payonline, 'chaine', 0, '', $conf->entity);
|
||||
if ($forcetype < 0) $res = dolibarr_del_const($db, "MEMBER_NEWFORM_FORCETYPE", $conf->entity);
|
||||
else {
|
||||
if ($forcetype < 0) {
|
||||
$res = dolibarr_del_const($db, "MEMBER_NEWFORM_FORCETYPE", $conf->entity);
|
||||
} else {
|
||||
$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');
|
||||
} else {
|
||||
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||
@@ -195,9 +203,15 @@ if (!empty($conf->global->MEMBER_ENABLE_PUBLIC)) {
|
||||
$listofval = array();
|
||||
$listofval['-1'] = $langs->trans('No');
|
||||
$listofval['all'] = $langs->trans('Yes').' ('.$langs->trans("VisitorCanChooseItsPaymentMode").')';
|
||||
if (!empty($conf->paybox->enabled)) $listofval['paybox'] = 'Paybox';
|
||||
if (!empty($conf->paypal->enabled)) $listofval['paypal'] = 'PayPal';
|
||||
if (!empty($conf->stripe->enabled)) $listofval['stripe'] = 'Stripe';
|
||||
if (!empty($conf->paybox->enabled)) {
|
||||
$listofval['paybox'] = 'Paybox';
|
||||
}
|
||||
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 "</td></tr>\n";
|
||||
|
||||
|
||||
@@ -42,16 +42,24 @@ $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit;
|
||||
$sortfield = GETPOST("sortfield", 'alpha');
|
||||
$sortorder = GETPOST("sortorder", 'alpha');
|
||||
$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;
|
||||
$pageprev = $page - 1;
|
||||
$pagenext = $page + 1;
|
||||
if (!$sortfield) $sortfield = 'a.datep,a.id';
|
||||
if (!$sortorder) $sortorder = 'DESC';
|
||||
if (!$sortfield) {
|
||||
$sortfield = 'a.datep,a.id';
|
||||
}
|
||||
if (!$sortorder) {
|
||||
$sortorder = 'DESC';
|
||||
}
|
||||
|
||||
if (GETPOST('actioncode', 'array')) {
|
||||
$actioncode = GETPOST('actioncode', 'array', 3);
|
||||
if (!count($actioncode)) $actioncode = '0';
|
||||
if (!count($actioncode)) {
|
||||
$actioncode = '0';
|
||||
}
|
||||
} 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));
|
||||
}
|
||||
@@ -76,7 +84,9 @@ if ($result > 0) {
|
||||
|
||||
$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
|
||||
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
||||
if ($reshook < 0) {
|
||||
setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
||||
}
|
||||
|
||||
if (empty($reshook)) {
|
||||
// Cancel
|
||||
@@ -115,7 +125,9 @@ if ($object->id > 0) {
|
||||
$helpurl = "EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros";
|
||||
llxHeader("", $title, $helpurl);
|
||||
|
||||
if (!empty($conf->notification->enabled)) $langs->load("mails");
|
||||
if (!empty($conf->notification->enabled)) {
|
||||
$langs->load("mails");
|
||||
}
|
||||
$head = member_prepare_head($object);
|
||||
|
||||
print dol_get_fiche_head($head, 'agenda', $langs->trans("Member"), -1, 'user');
|
||||
@@ -149,8 +161,12 @@ if ($object->id > 0) {
|
||||
print '<br>';
|
||||
|
||||
$param = '&id='.$id;
|
||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.$contextpage;
|
||||
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.$limit;
|
||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
|
||||
$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);
|
||||
|
||||
|
||||
@@ -64,13 +64,15 @@ abstract class ActionsAdherentCardCommon
|
||||
//$ret = $this->getInstanceDao();
|
||||
|
||||
/*if (is_object($this->object) && method_exists($this->object,'fetch'))
|
||||
{
|
||||
if (! empty($id)) $this->object->fetch($id);
|
||||
}
|
||||
else
|
||||
{*/
|
||||
{
|
||||
if (! empty($id)) $this->object->fetch($id);
|
||||
}
|
||||
else
|
||||
{*/
|
||||
$object = new Adherent($this->db);
|
||||
if (!empty($id)) $object->fetch($id);
|
||||
if (!empty($id)) {
|
||||
$object->fetch($id);
|
||||
}
|
||||
$this->object = $object;
|
||||
//}
|
||||
}
|
||||
@@ -89,7 +91,9 @@ abstract class ActionsAdherentCardCommon
|
||||
global $conf, $langs, $user, $canvas;
|
||||
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) {
|
||||
$this->tpl[$key] = $value;
|
||||
@@ -123,12 +127,24 @@ abstract class ActionsAdherentCardCommon
|
||||
|
||||
// Predefined with third party
|
||||
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->zip)) == 0) $this->object->zip = $objsoc->zip;
|
||||
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;
|
||||
if (dol_strlen(trim($this->object->address)) == 0) {
|
||||
$this->tpl['address'] = $objsoc->address;
|
||||
}
|
||||
if (dol_strlen(trim($this->object->zip)) == 0) {
|
||||
$this->object->zip = $objsoc->zip;
|
||||
}
|
||||
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
|
||||
@@ -137,17 +153,24 @@ abstract class ActionsAdherentCardCommon
|
||||
// Town
|
||||
$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
|
||||
$this->tpl['select_country'] = $form->select_country($this->object->country_id, 'country_id');
|
||||
$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
|
||||
if ($this->object->country_id) $this->tpl['select_state'] = $formcompany->select_state($this->object->state_id, $this->object->country_code);
|
||||
else $this->tpl['select_state'] = $countrynotdefined;
|
||||
if ($this->object->country_id) {
|
||||
$this->tpl['select_state'] = $formcompany->select_state($this->object->state_id, $this->object->country_code);
|
||||
} else {
|
||||
$this->tpl['select_state'] = $countrynotdefined;
|
||||
}
|
||||
|
||||
// Physical or Moral
|
||||
$selectarray = array('0'=>$langs->trans("Physical"), '1'=>$langs->trans("Moral"));
|
||||
@@ -166,7 +189,9 @@ abstract class ActionsAdherentCardCommon
|
||||
$dolibarr_user = new User($this->db);
|
||||
$result = $dolibarr_user->fetch($this->object->user_id);
|
||||
$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') {
|
||||
@@ -205,7 +230,7 @@ abstract class ActionsAdherentCardCommon
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php';
|
||||
$login = dol_buildlogin($this->object->lastname, $this->object->firstname);
|
||||
|
||||
$generated_password = getRandomPassword(false);
|
||||
$generated_password = getRandomPassword(false);
|
||||
$password = $generated_password;
|
||||
|
||||
// Create a form array
|
||||
|
||||
@@ -60,9 +60,15 @@ class ActionsAdherentCardDefault extends ActionsAdherentCardCommon
|
||||
|
||||
$out = '';
|
||||
|
||||
if ($action == 'view') $out .= (!empty($conf->global->ADHERENT_ADDRESSES_MANAGEMENT) ? $langs->trans("Adherent") : $langs->trans("ContactAddress"));
|
||||
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"));
|
||||
if ($action == 'view') {
|
||||
$out .= (!empty($conf->global->ADHERENT_ADDRESSES_MANAGEMENT) ? $langs->trans("Adherent") : $langs->trans("ContactAddress"));
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -29,8 +29,12 @@ echo "<!-- BEGIN PHP TEMPLATE ADHERENTCARD_VIEW.TPL.PHP DEFAULT -->\n";
|
||||
echo $this->control->tpl['showhead'];
|
||||
|
||||
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_delete'])) echo $this->control->tpl['action_delete']; ?>
|
||||
if (!empty($this->control->tpl['action_create_user'])) {
|
||||
echo $this->control->tpl['action_create_user'];
|
||||
}
|
||||
if (!empty($this->control->tpl['action_delete'])) {
|
||||
echo $this->control->tpl['action_delete'];
|
||||
} ?>
|
||||
|
||||
<table class="border allwidth">
|
||||
|
||||
|
||||
@@ -118,7 +118,9 @@ if ($id) {
|
||||
|
||||
$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
|
||||
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
||||
if ($reshook < 0) {
|
||||
setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
||||
}
|
||||
|
||||
if (empty($reshook)) {
|
||||
if ($cancel) {
|
||||
@@ -141,7 +143,9 @@ if (empty($reshook)) {
|
||||
if (!$error) {
|
||||
if ($userid != $object->user_id) { // If link differs from currently in database
|
||||
$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 = '';
|
||||
}
|
||||
}
|
||||
@@ -169,7 +173,9 @@ if (empty($reshook)) {
|
||||
|
||||
if (!$error) {
|
||||
$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 = '';
|
||||
}
|
||||
}
|
||||
@@ -221,8 +227,7 @@ if (empty($reshook)) {
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||
|
||||
$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'));
|
||||
}
|
||||
$lastname = GETPOST("lastname", 'alphanohtml');
|
||||
@@ -294,8 +299,11 @@ if (empty($reshook)) {
|
||||
//$object->note = trim(GETPOST("comment","alpha"));
|
||||
$object->morphy = GETPOST("morphy", 'alpha');
|
||||
|
||||
if (GETPOST('deletephoto', 'alpha')) $object->photo = '';
|
||||
elseif (!empty($_FILES['photo']['name'])) $object->photo = dol_sanitizeFileName($_FILES['photo']['name']);
|
||||
if (GETPOST('deletephoto', 'alpha')) {
|
||||
$object->photo = '';
|
||||
} elseif (!empty($_FILES['photo']['name'])) {
|
||||
$object->photo = dol_sanitizeFileName($_FILES['photo']['name']);
|
||||
}
|
||||
|
||||
// Get status and public property
|
||||
$object->statut = GETPOST("statut", 'alpha');
|
||||
@@ -303,18 +311,24 @@ if (empty($reshook)) {
|
||||
|
||||
// Fill array 'array_options' with data from add form
|
||||
$ret = $extrafields->setOptionalsFromPost(null, $object);
|
||||
if ($ret < 0) $error++;
|
||||
if ($ret < 0) {
|
||||
$error++;
|
||||
}
|
||||
|
||||
// Check if we need to also synchronize user information
|
||||
$nosyncuser = 0;
|
||||
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
|
||||
$nosyncuserpass = 0;
|
||||
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);
|
||||
@@ -380,7 +394,9 @@ if (empty($reshook)) {
|
||||
}
|
||||
|
||||
if ($action == 'add' && $user->rights->adherent->creer) {
|
||||
if ($canvas) $object->canvas = $canvas;
|
||||
if ($canvas) {
|
||||
$object->canvas = $canvas;
|
||||
}
|
||||
$birthdate = '';
|
||||
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'));
|
||||
@@ -461,7 +477,9 @@ if (empty($reshook)) {
|
||||
|
||||
// Fill array 'array_options' with data from add form
|
||||
$ret = $extrafields->setOptionalsFromPost(null, $object);
|
||||
if ($ret < 0) $error++;
|
||||
if ($ret < 0) {
|
||||
$error++;
|
||||
}
|
||||
|
||||
// Check parameters
|
||||
if (empty($morphy) || $morphy == "-1") {
|
||||
@@ -515,7 +533,9 @@ if (empty($reshook)) {
|
||||
setEventMessages($langs->trans("ErrorBadEMail", $email), null, 'errors');
|
||||
}
|
||||
$public = 0;
|
||||
if (isset($public)) $public = 1;
|
||||
if (isset($public)) {
|
||||
$public = 1;
|
||||
}
|
||||
|
||||
if (!$error) {
|
||||
$db->begin();
|
||||
@@ -590,7 +610,9 @@ if (empty($reshook)) {
|
||||
$arraydefaultmessage = null;
|
||||
$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) {
|
||||
$subject = $arraydefaultmessage->topic;
|
||||
@@ -659,7 +681,9 @@ if (empty($reshook)) {
|
||||
$arraydefaultmessage = null;
|
||||
$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) {
|
||||
$subject = $arraydefaultmessage->topic;
|
||||
@@ -757,9 +781,11 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
||||
if (empty($object->error) && $id) {
|
||||
$object = new Adherent($db);
|
||||
$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
|
||||
} else {
|
||||
// -----------------------------------------
|
||||
@@ -785,7 +811,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
||||
|
||||
if (!empty($socid)) {
|
||||
$object = new Societe($db);
|
||||
if ($socid > 0) $object->fetch($socid);
|
||||
if ($socid > 0) {
|
||||
$object->fetch($socid);
|
||||
}
|
||||
|
||||
if (!($object->id > 0)) {
|
||||
$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="action" value="add">';
|
||||
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('');
|
||||
|
||||
@@ -913,7 +943,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
||||
$object->country_id = $object->country_id ? $object->country_id : $mysoc->country_id;
|
||||
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');
|
||||
if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1);
|
||||
if ($user->admin) {
|
||||
print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1);
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
// State
|
||||
@@ -941,7 +973,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
||||
|
||||
if (!empty($conf->socialnetworks->enabled)) {
|
||||
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>';
|
||||
}
|
||||
}
|
||||
@@ -1057,7 +1091,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
||||
print '<input type="hidden" name="action" value="update" />';
|
||||
print '<input type="hidden" name="rowid" value="'.$id.'" />';
|
||||
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');
|
||||
|
||||
@@ -1121,9 +1157,13 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
||||
print '<td class="hideonsmartphone" valign="middle">';
|
||||
print $form->showphoto('memberphoto', $object)."\n";
|
||||
if ($caneditfieldmember) {
|
||||
if ($object->photo) print "<br>\n";
|
||||
if ($object->photo) {
|
||||
print "<br>\n";
|
||||
}
|
||||
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><input type="file" class="flat" name="photo" id="photoinput"></td></tr>';
|
||||
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
|
||||
print '<tr><td>'.$langs->trans('Country').'</td><td>';
|
||||
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>';
|
||||
|
||||
// State
|
||||
@@ -1174,7 +1216,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
||||
|
||||
if (!empty($conf->socialnetworks->enabled)) {
|
||||
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>';
|
||||
}
|
||||
}
|
||||
@@ -1223,7 +1267,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
||||
print '<tr><td>'.$langs->trans("LinkedToDolibarrUser").'</td><td colspan="2" class="valeur">';
|
||||
if ($object->user_id) {
|
||||
$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>';
|
||||
|
||||
// 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';
|
||||
$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
|
||||
$formquestion = array(
|
||||
@@ -1304,10 +1352,14 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
||||
|
||||
if ($object->morphy == 'mor') {
|
||||
$companyname = $object->company;
|
||||
if (!empty($fullname)) $companyalias = $fullname;
|
||||
if (!empty($fullname)) {
|
||||
$companyalias = $fullname;
|
||||
}
|
||||
} else {
|
||||
$companyname = $fullname;
|
||||
if (!empty($object->company)) $companyalias = $object->company;
|
||||
if (!empty($object->company)) {
|
||||
$companyalias = $object->company;
|
||||
}
|
||||
}
|
||||
|
||||
// Create a form array
|
||||
@@ -1341,7 +1393,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
||||
$arraydefaultmessage = null;
|
||||
$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) {
|
||||
$subject = $arraydefaultmessage->topic;
|
||||
@@ -1368,7 +1422,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
||||
|
||||
// Create form popup
|
||||
$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)) {
|
||||
$formquestion[] = array('type'=>'other', 'label'=>$langs->transnoentitiesnoconv("SynchroMailManEnabled"), 'value'=>'');
|
||||
}
|
||||
@@ -1400,7 +1456,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
||||
$arraydefaultmessage = null;
|
||||
$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) {
|
||||
$subject = $arraydefaultmessage->topic;
|
||||
@@ -1427,15 +1485,21 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
||||
|
||||
// Create an 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 ($backtopage) $formquestion[] = array('type' => 'hidden', 'name' => 'backtopage', 'value' => ($backtopage != '1' ? $backtopage : $_SERVER["HTTP_REFERER"]));
|
||||
if ($object->email) {
|
||||
$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);
|
||||
}
|
||||
|
||||
// Confirm remove member
|
||||
if ($action == 'delete') {
|
||||
$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);
|
||||
}
|
||||
|
||||
@@ -1449,8 +1513,12 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
||||
}
|
||||
|
||||
$rowspan = 17;
|
||||
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) $rowspan++;
|
||||
if (!empty($conf->societe->enabled)) $rowspan++;
|
||||
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) {
|
||||
$rowspan++;
|
||||
}
|
||||
if (!empty($conf->societe->enabled)) {
|
||||
$rowspan++;
|
||||
}
|
||||
|
||||
$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
|
||||
print '<tr><td>'.$langs->trans("Gender").'</td>';
|
||||
print '<td>';
|
||||
if ($object->gender) print $langs->trans("Gender".$object->gender);
|
||||
if ($object->gender) {
|
||||
print $langs->trans("Gender".$object->gender);
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
// Company
|
||||
@@ -1490,10 +1560,14 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
||||
// Password
|
||||
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) {
|
||||
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 ($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)) {
|
||||
$langs->load("errors");
|
||||
@@ -1515,10 +1589,14 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
||||
print $langs->trans("SubscriptionNotNeeded");
|
||||
} elseif (!$adht->subscription) {
|
||||
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 {
|
||||
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>';
|
||||
@@ -1687,8 +1765,11 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
||||
// Create third party
|
||||
if (!empty($conf->societe->enabled) && !$object->socid) {
|
||||
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.'&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>';
|
||||
if ($object->statut != -1) {
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?rowid='.$object->id.'&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 {
|
||||
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
|
||||
if (!$user->socid && !$object->user_id) {
|
||||
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.'&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>';
|
||||
if ($object->statut != -1) {
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?rowid='.$object->id.'&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 {
|
||||
print '<div class="inline-block divButAction"><font class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("CreateDolibarrLogin")."</font></div>";
|
||||
}
|
||||
|
||||
@@ -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 .= " AND d.entity IN (".getEntity('adherent').")";
|
||||
if (is_numeric($foruserid)) $sql .= " AND d.rowid=".(int) $foruserid;
|
||||
if ($foruserlogin) $sql .= " AND d.login='".$db->escape($foruserlogin)."'";
|
||||
if (is_numeric($foruserid)) {
|
||||
$sql .= " AND d.rowid=".(int) $foruserid;
|
||||
}
|
||||
if ($foruserlogin) {
|
||||
$sql .= " AND d.login='".$db->escape($foruserlogin)."'";
|
||||
}
|
||||
$sql .= " ORDER BY d.rowid ASC";
|
||||
|
||||
dol_syslog("Search members", LOG_DEBUG);
|
||||
@@ -92,7 +96,9 @@ if ((!empty($foruserid) || !empty($foruserlogin) || !empty($mode)) && !$mesg) {
|
||||
while ($i < $num) {
|
||||
$objp = $db->fetch_object($result);
|
||||
|
||||
if ($objp->country == '-') $objp->country = '';
|
||||
if ($objp->country == '-') {
|
||||
$objp->country = '';
|
||||
}
|
||||
|
||||
$adherentstatic->id = $objp->rowid;
|
||||
$adherentstatic->ref = $objp->ref;
|
||||
@@ -147,7 +153,9 @@ if ((!empty($foruserid) || !empty($foruserlogin) || !empty($mode)) && !$mesg) {
|
||||
|
||||
if (is_numeric($foruserid) || $foruserlogin) {
|
||||
$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++) {
|
||||
$arrayofmembers[] = array(
|
||||
@@ -175,7 +183,9 @@ if ((!empty($foruserid) || !empty($foruserlogin) || !empty($mode)) && !$mesg) {
|
||||
|
||||
// For labels
|
||||
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);
|
||||
$textheader = '';
|
||||
$textfooter = '';
|
||||
@@ -203,7 +213,9 @@ if ((!empty($foruserid) || !empty($foruserlogin) || !empty($mode)) && !$mesg) {
|
||||
if (empty($model) || $model == '-1') {
|
||||
$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') {
|
||||
if (!count($arrayofmembers)) {
|
||||
$mesg = $langs->trans("ErrorRecordNotFound");
|
||||
@@ -211,7 +223,9 @@ if ((!empty($foruserid) || !empty($foruserlogin) || !empty($mode)) && !$mesg) {
|
||||
if (empty($modellabel) || $modellabel == '-1') {
|
||||
$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) {
|
||||
|
||||
@@ -373,18 +373,24 @@ class Adherent extends CommonObject
|
||||
// Detect if message is HTML
|
||||
if ($msgishtml == -1) {
|
||||
$msgishtml = 0;
|
||||
if (dol_textishtml($text, 0)) $msgishtml = 1;
|
||||
if (dol_textishtml($text, 0)) {
|
||||
$msgishtml = 1;
|
||||
}
|
||||
}
|
||||
|
||||
dol_syslog('send_an_email msgishtml='.$msgishtml);
|
||||
|
||||
$texttosend = $this->makeSubstitution($text);
|
||||
$subjecttosend = $this->makeSubstitution($subject);
|
||||
if ($msgishtml) $texttosend = dol_htmlentitiesbr($texttosend);
|
||||
if ($msgishtml) {
|
||||
$texttosend = dol_htmlentitiesbr($texttosend);
|
||||
}
|
||||
|
||||
// Envoi mail confirmation
|
||||
$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;
|
||||
|
||||
@@ -413,10 +419,14 @@ class Adherent extends CommonObject
|
||||
$birthday = dol_print_date($this->birth, 'day');
|
||||
|
||||
$msgishtml = 0;
|
||||
if (dol_textishtml($text, 1)) $msgishtml = 1;
|
||||
if (dol_textishtml($text, 1)) {
|
||||
$msgishtml = 1;
|
||||
}
|
||||
|
||||
$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("ref").": ".$this->ref."\n";
|
||||
$infos .= $langs->transnoentities("Lastname").": ".$this->lastname."\n";
|
||||
@@ -514,7 +524,9 @@ class Adherent extends CommonObject
|
||||
$this->error = $langs->trans("ErrorBadEMail", $this->email);
|
||||
return -1;
|
||||
}
|
||||
if (!$this->datec) $this->datec = $now;
|
||||
if (!$this->datec) {
|
||||
$this->datec = $now;
|
||||
}
|
||||
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) {
|
||||
if (empty($this->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 .= ", morphy = '".$this->db->escape($this->morphy)."'";
|
||||
$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->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
|
||||
if ($this->socid) {
|
||||
$sql .= ", fk_soc = '".$this->db->escape($this->socid)."'"; // Must be modified only when creating from a third-party
|
||||
}
|
||||
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 .= " WHERE rowid = ".$this->id;
|
||||
|
||||
@@ -716,7 +734,9 @@ class Adherent extends CommonObject
|
||||
|
||||
// If password to set differs from the one found into database
|
||||
$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;
|
||||
|
||||
// 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->civility_id = $this->civility_id;
|
||||
@@ -925,14 +947,18 @@ class Adherent extends CommonObject
|
||||
$errorflag = 0;
|
||||
|
||||
// Check parameters
|
||||
if (empty($rowid)) $rowid = $this->id;
|
||||
if (empty($rowid)) {
|
||||
$rowid = $this->id;
|
||||
}
|
||||
|
||||
$this->db->begin();
|
||||
|
||||
if (!$error && !$notrigger) {
|
||||
// Call trigger
|
||||
$result = $this->call_trigger('MEMBER_DELETE', $user);
|
||||
if ($result < 0) $error++;
|
||||
if ($result < 0) {
|
||||
$error++;
|
||||
}
|
||||
// End call triggers
|
||||
}
|
||||
|
||||
@@ -1474,7 +1500,9 @@ class Adherent extends CommonObject
|
||||
$error = 0;
|
||||
|
||||
// Clean parameters
|
||||
if (!$amount) $amount = 0;
|
||||
if (!$amount) {
|
||||
$amount = 0;
|
||||
}
|
||||
|
||||
$this->db->begin();
|
||||
|
||||
@@ -1605,10 +1633,14 @@ class Adherent extends CommonObject
|
||||
|
||||
if ($this->morphy == 'mor') {
|
||||
$companyname = $this->company;
|
||||
if (!empty($fullname)) $companyalias = $fullname;
|
||||
if (!empty($fullname)) {
|
||||
$companyalias = $fullname;
|
||||
}
|
||||
} else {
|
||||
$companyname = $fullname;
|
||||
if (!empty($this->company)) $companyalias = $this->company;
|
||||
if (!empty($this->company)) {
|
||||
$companyalias = $this->company;
|
||||
}
|
||||
}
|
||||
|
||||
$result = $customer->create_from_member($this, $companyname, $companyalias);
|
||||
@@ -1671,7 +1703,9 @@ class Adherent extends CommonObject
|
||||
if (!$error) {
|
||||
// Add line to draft invoice
|
||||
$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;
|
||||
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;
|
||||
$newlang = '';
|
||||
$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)) $newlang = $customer->default_lang;
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && !empty($lang_id)) {
|
||||
$newlang = $lang_id;
|
||||
}
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang)) {
|
||||
$newlang = $customer->default_lang;
|
||||
}
|
||||
if (!empty($newlang)) {
|
||||
$outputlangs = new Translate("", $conf);
|
||||
$outputlangs->setDefaultLang($newlang);
|
||||
@@ -1901,7 +1939,9 @@ class Adherent extends CommonObject
|
||||
$result = $mailmanspip->add_to_mailman($this);
|
||||
|
||||
if ($result < 0) {
|
||||
if (!empty($mailmanspip->error)) $this->errors[] = $mailmanspip->error;
|
||||
if (!empty($mailmanspip->error)) {
|
||||
$this->errors[] = $mailmanspip->error;
|
||||
}
|
||||
$err += 1;
|
||||
}
|
||||
foreach ($mailmanspip->mladded_ko as $tmplist => $tmpemail) {
|
||||
@@ -1950,7 +1990,9 @@ class Adherent extends CommonObject
|
||||
if (!empty($conf->global->ADHERENT_USE_MAILMAN)) {
|
||||
$result = $mailmanspip->del_to_mailman($this);
|
||||
if ($result < 0) {
|
||||
if (!empty($mailmanspip->error)) $this->errors[] = $mailmanspip->error;
|
||||
if (!empty($mailmanspip->error)) {
|
||||
$this->errors[] = $mailmanspip->error;
|
||||
}
|
||||
$err += 1;
|
||||
}
|
||||
|
||||
@@ -1991,7 +2033,9 @@ class Adherent extends CommonObject
|
||||
$langs->load("dict");
|
||||
|
||||
$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);
|
||||
}
|
||||
|
||||
@@ -2012,7 +2056,9 @@ class Adherent extends CommonObject
|
||||
{
|
||||
global $conf, $langs;
|
||||
|
||||
if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) && $withpictoimg) $withpictoimg = 0;
|
||||
if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) && $withpictoimg) {
|
||||
$withpictoimg = 0;
|
||||
}
|
||||
|
||||
$result = '';
|
||||
$label = '';
|
||||
@@ -2028,9 +2074,15 @@ class Adherent extends CommonObject
|
||||
$label .= '<div class="centpercent">';
|
||||
$label .= img_picto('', $this->picto).' <u class="paddingrightonly">'.$langs->trans("Member").'</u>';
|
||||
$label .= ' '.$this->getLibStatut(4);
|
||||
if (!empty($this->ref)) $label .= '<br><b>'.$langs->trans('Ref').':</b> '.$this->ref;
|
||||
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;
|
||||
if (!empty($this->ref)) {
|
||||
$label .= '<br><b>'.$langs->trans('Ref').':</b> '.$this->ref;
|
||||
}
|
||||
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>';
|
||||
|
||||
$url = DOL_URL_ROOT.'/adherents/card.php?rowid='.$this->id;
|
||||
@@ -2041,8 +2093,12 @@ class Adherent extends CommonObject
|
||||
if ($option != 'nolink') {
|
||||
// Add param to save lastsearch_values or not
|
||||
$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 ($add_save_lastsearch_values) $url .= '&save_lastsearch_values=1';
|
||||
if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) {
|
||||
$add_save_lastsearch_values = 1;
|
||||
}
|
||||
if ($add_save_lastsearch_values) {
|
||||
$url .= '&save_lastsearch_values=1';
|
||||
}
|
||||
}
|
||||
|
||||
$linkstart .= '<a href="'.$url.'"';
|
||||
@@ -2061,16 +2117,20 @@ class Adherent extends CommonObject
|
||||
$linkend = '</a>';
|
||||
|
||||
$result .= $linkstart;
|
||||
if ($withpictoimg) $result .= '<div class="inline-block nopadding valignmiddle">';
|
||||
if ($withpictoimg) {
|
||||
$result .= '<div class="inline-block nopadding valignmiddle">';
|
||||
}
|
||||
if ($withpictoimg) {
|
||||
$paddafterimage = '';
|
||||
if (abs($withpictoimg) == 1) $paddafterimage = 'style="margin-right: 3px;"';
|
||||
if (abs($withpictoimg) == 1) {
|
||||
$paddafterimage = 'style="margin-right: 3px;"';
|
||||
}
|
||||
// Only picto
|
||||
if ($withpictoimg > 0)
|
||||
if ($withpictoimg > 0) {
|
||||
$picto = '<span class="nopadding'.($morecss ? ' userimg'.$morecss : '').'">'.
|
||||
img_object('', 'user', $paddafterimage.' '.($notooltip ? '' : 'class="classfortooltip"'), 0, 0, $notooltip ? 0 : 1).'</span>';
|
||||
// Picto must be a photo
|
||||
else {
|
||||
} else {
|
||||
// Picto must be a photo
|
||||
$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 .= '</span>';
|
||||
@@ -2078,8 +2138,10 @@ class Adherent extends CommonObject
|
||||
$result .= $picto;
|
||||
}
|
||||
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 : '').'">';
|
||||
}
|
||||
if ($mode == 'login') {
|
||||
$result .= dol_trunc($this->login, $maxlen);
|
||||
} elseif ($mode == 'ref') {
|
||||
@@ -2087,9 +2149,13 @@ class Adherent extends CommonObject
|
||||
} else {
|
||||
$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;
|
||||
|
||||
if ($addlinktonotes) {
|
||||
@@ -2214,7 +2280,9 @@ class Adherent extends CommonObject
|
||||
// phpcs:enable
|
||||
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();
|
||||
|
||||
@@ -2398,9 +2466,15 @@ class Adherent extends CommonObject
|
||||
// phpcs:enable
|
||||
global $conf;
|
||||
$dn = '';
|
||||
if ($mode == 0) $dn = $conf->global->LDAP_KEY_MEMBERS."=".$info[$conf->global->LDAP_KEY_MEMBERS].",".$conf->global->LDAP_MEMBER_DN;
|
||||
if ($mode == 1) $dn = $conf->global->LDAP_MEMBER_DN;
|
||||
if ($mode == 2) $dn = $conf->global->LDAP_KEY_MEMBERS."=".$info[$conf->global->LDAP_KEY_MEMBERS];
|
||||
if ($mode == 0) {
|
||||
$dn = $conf->global->LDAP_KEY_MEMBERS."=".$info[$conf->global->LDAP_KEY_MEMBERS].",".$conf->global->LDAP_MEMBER_DN;
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -2448,31 +2522,65 @@ class Adherent extends CommonObject
|
||||
|
||||
// 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($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->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;
|
||||
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->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) {
|
||||
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']];
|
||||
}
|
||||
}
|
||||
if ($this->phone && !empty($conf->global->LDAP_MEMBER_FIELD_PHONE)) $info[$conf->global->LDAP_MEMBER_FIELD_PHONE] = $this->phone;
|
||||
if ($this->phone_perso && !empty($conf->global->LDAP_MEMBER_FIELD_PHONE_PERSO)) $info[$conf->global->LDAP_MEMBER_FIELD_PHONE_PERSO] = $this->phone_perso;
|
||||
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->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');
|
||||
if ($this->phone && !empty($conf->global->LDAP_MEMBER_FIELD_PHONE)) {
|
||||
$info[$conf->global->LDAP_MEMBER_FIELD_PHONE] = $this->phone;
|
||||
}
|
||||
if ($this->phone_perso && !empty($conf->global->LDAP_MEMBER_FIELD_PHONE_PERSO)) {
|
||||
$info[$conf->global->LDAP_MEMBER_FIELD_PHONE_PERSO] = $this->phone_perso;
|
||||
}
|
||||
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->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
|
||||
if (!empty($this->pass)) {
|
||||
@@ -2482,8 +2590,9 @@ class Adherent extends CommonObject
|
||||
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)
|
||||
}
|
||||
} // Set LDAP password if possible
|
||||
elseif ($conf->global->LDAP_SERVER_PROTOCOLVERSION !== '3') { // If ldap key is modified and LDAPv3 we use ldap_rename function for avoid lose encrypt password
|
||||
} elseif ($conf->global->LDAP_SERVER_PROTOCOLVERSION !== '3') {
|
||||
// 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)) {
|
||||
// Just for the default MD5 !
|
||||
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));
|
||||
}
|
||||
}
|
||||
} // Use $this->pass_indatabase value if exists
|
||||
elseif (!empty($this->pass_indatabase)) {
|
||||
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_CRYPTED)) $info[$conf->global->LDAP_MEMBER_FIELD_PASSWORD_CRYPTED] = dol_hash($this->pass_indatabase, 4); // md5 for OpenLdap TODO add type of encryption
|
||||
} 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_CRYPTED)) {
|
||||
$info[$conf->global->LDAP_MEMBER_FIELD_PASSWORD_CRYPTED] = dol_hash($this->pass_indatabase, 4); // md5 for OpenLdap TODO add type of encryption
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 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 (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;
|
||||
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 (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;
|
||||
}
|
||||
@@ -2626,8 +2747,12 @@ class Adherent extends CommonObject
|
||||
global $conf;
|
||||
|
||||
//Only valid members
|
||||
if ($this->statut <= 0) return false;
|
||||
if (!$this->datefin) return false;
|
||||
if ($this->statut <= 0) {
|
||||
return false;
|
||||
}
|
||||
if (!$this->datefin) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$now = dol_now();
|
||||
|
||||
@@ -2720,7 +2845,9 @@ class Adherent extends CommonObject
|
||||
$arraydefaultmessage = null;
|
||||
$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) {
|
||||
$substitutionarray = getCommonSubstitutionArray($outputlangs, 0, null, $adherent);
|
||||
@@ -2763,7 +2890,9 @@ class Adherent extends CommonObject
|
||||
if ($message) {
|
||||
$actionmsg = $langs->transnoentities('MailFrom').': '.dol_escape_htmltag($from);
|
||||
$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('TextUsedInTheMessageBody').":");
|
||||
$actionmsg = dol_concatdesc($actionmsg, $message);
|
||||
@@ -2843,7 +2972,9 @@ class Adherent extends CommonObject
|
||||
$listofids .= $idmember;
|
||||
$i++;
|
||||
}
|
||||
if ($listofids) $listofids .= ']';
|
||||
if ($listofids) {
|
||||
$listofids .= ']';
|
||||
}
|
||||
$this->output .= $listofids;
|
||||
}
|
||||
if ($nbko) {
|
||||
@@ -2864,7 +2995,9 @@ class Adherent extends CommonObject
|
||||
$listofids .= $idmember;
|
||||
$i++;
|
||||
}
|
||||
if ($listofids) $listofids .= ']';
|
||||
if ($listofids) {
|
||||
$listofids .= ']';
|
||||
}
|
||||
$this->output .= $listofids;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,8 +74,8 @@ class AdherentType extends CommonObject
|
||||
public $duration;
|
||||
|
||||
/*
|
||||
* type expiration
|
||||
*/
|
||||
* type expiration
|
||||
*/
|
||||
public $duration_value;
|
||||
|
||||
/**
|
||||
@@ -241,12 +241,12 @@ class AdherentType extends CommonObject
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a language for this member type
|
||||
*
|
||||
* @param string $langtodelete Language code to delete
|
||||
* @param User $user Object user making delete
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
* Delete a language for this member type
|
||||
*
|
||||
* @param string $langtodelete Language code to delete
|
||||
* @param User $user Object user making delete
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function delMultiLangs($langtodelete, $user)
|
||||
{
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."adherent_type_lang";
|
||||
@@ -313,7 +313,9 @@ class AdherentType extends CommonObject
|
||||
if (!$notrigger) {
|
||||
// Call trigger
|
||||
$result = $this->call_trigger('MEMBER_TYPE_CREATE', $user);
|
||||
if ($result < 0) { $error++; }
|
||||
if ($result < 0) {
|
||||
$error++;
|
||||
}
|
||||
// End call triggers
|
||||
}
|
||||
|
||||
@@ -386,7 +388,9 @@ class AdherentType extends CommonObject
|
||||
if (!$error && !$notrigger) {
|
||||
// Call trigger
|
||||
$result = $this->call_trigger('MEMBER_TYPE_MODIFY', $user);
|
||||
if ($result < 0) { $error++; }
|
||||
if ($result < 0) {
|
||||
$error++;
|
||||
}
|
||||
// End call triggers
|
||||
}
|
||||
|
||||
@@ -423,7 +427,9 @@ class AdherentType extends CommonObject
|
||||
if ($resql) {
|
||||
// Call trigger
|
||||
$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
|
||||
|
||||
$this->db->commit();
|
||||
@@ -499,7 +505,9 @@ class AdherentType extends CommonObject
|
||||
$sql = "SELECT rowid, libelle as label";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."adherent_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);
|
||||
if ($resql) {
|
||||
@@ -539,7 +547,9 @@ class AdherentType extends CommonObject
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."adherent as a";
|
||||
$sql .= " WHERE a.entity IN (".getEntity('member').")";
|
||||
$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);
|
||||
$resql = $this->db->query($sql);
|
||||
@@ -554,7 +564,9 @@ class AdherentType extends CommonObject
|
||||
$memberstatic->fetch($obj->rowid);
|
||||
}
|
||||
$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 = '')
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -609,8 +627,12 @@ class AdherentType extends CommonObject
|
||||
$linkend = '</a>';
|
||||
|
||||
$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 != 2) $result .= ($maxlen ?dol_trunc($this->label, $maxlen) : $this->label);
|
||||
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 != 2) {
|
||||
$result .= ($maxlen ?dol_trunc($this->label, $maxlen) : $this->label);
|
||||
}
|
||||
$result .= $linkend;
|
||||
|
||||
return $result;
|
||||
@@ -642,7 +664,9 @@ class AdherentType extends CommonObject
|
||||
$langs->load('companies');
|
||||
|
||||
$statusType = 'status4';
|
||||
if ($status == 0) $statusType = 'status5';
|
||||
if ($status == 0) {
|
||||
$statusType = 'status5';
|
||||
}
|
||||
|
||||
if (empty($this->labelStatus) || empty($this->labelStatusShort)) {
|
||||
$this->labelStatus[0] = $langs->trans("ActivityCeased");
|
||||
@@ -670,9 +694,15 @@ class AdherentType extends CommonObject
|
||||
// phpcs:enable
|
||||
global $conf;
|
||||
$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 == 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];
|
||||
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 == 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;
|
||||
}
|
||||
|
||||
@@ -695,11 +725,15 @@ class AdherentType extends CommonObject
|
||||
$info["objectclass"] = explode(',', $conf->global->LDAP_MEMBER_TYPE_OBJECT_CLASS);
|
||||
|
||||
// Champs
|
||||
if ($this->label && !empty($conf->global->LDAP_MEMBER_TYPE_FIELD_FULLNAME)) $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 ($this->label && !empty($conf->global->LDAP_MEMBER_TYPE_FIELD_FULLNAME)) {
|
||||
$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)) {
|
||||
$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->fetch($val->id, '', '', '', false, false);
|
||||
$info2 = $member->_load_ldap_info();
|
||||
|
||||
@@ -36,7 +36,7 @@ class Members extends DolibarrApi
|
||||
/**
|
||||
* @var array $FIELDS Mandatory fields, checked when create and update object
|
||||
*/
|
||||
static $FIELDS = array(
|
||||
public static $FIELDS = array(
|
||||
'morphy',
|
||||
'typeid'
|
||||
);
|
||||
@@ -325,7 +325,9 @@ class Members extends DolibarrApi
|
||||
}
|
||||
|
||||
foreach ($request_data as $field => $value) {
|
||||
if ($field == 'id') continue;
|
||||
if ($field == 'id') {
|
||||
continue;
|
||||
}
|
||||
// Process the status separately because it must be updated using
|
||||
// the validate() and resiliate() methods of the class Adherent.
|
||||
if ($field == 'statut') {
|
||||
@@ -399,8 +401,9 @@ class Members extends DolibarrApi
|
||||
{
|
||||
$member = array();
|
||||
foreach (Members::$FIELDS as $field) {
|
||||
if (!isset($data[$field]))
|
||||
if (!isset($data[$field])) {
|
||||
throw new RestException(400, "$field field missing");
|
||||
}
|
||||
$member[$field] = $data[$field];
|
||||
}
|
||||
return $member;
|
||||
|
||||
@@ -30,7 +30,7 @@ class MembersTypes extends DolibarrApi
|
||||
/**
|
||||
* @var array $FIELDS Mandatory fields, checked when create and update object
|
||||
*/
|
||||
static $FIELDS = array(
|
||||
public static $FIELDS = array(
|
||||
'label',
|
||||
);
|
||||
|
||||
@@ -190,7 +190,9 @@ class MembersTypes extends DolibarrApi
|
||||
}
|
||||
|
||||
foreach ($request_data as $field => $value) {
|
||||
if ($field == 'id') continue;
|
||||
if ($field == 'id') {
|
||||
continue;
|
||||
}
|
||||
// Process the status separately because it must be updated using
|
||||
// the validate() and resiliate() methods of the class AdherentType.
|
||||
$membertype->$field = $value;
|
||||
@@ -250,8 +252,9 @@ class MembersTypes extends DolibarrApi
|
||||
{
|
||||
$membertype = array();
|
||||
foreach (MembersTypes::$FIELDS as $field) {
|
||||
if (!isset($data[$field]))
|
||||
if (!isset($data[$field])) {
|
||||
throw new RestException(400, "$field field missing");
|
||||
}
|
||||
$membertype[$field] = $data[$field];
|
||||
}
|
||||
return $membertype;
|
||||
|
||||
@@ -30,7 +30,7 @@ class Subscriptions extends DolibarrApi
|
||||
/**
|
||||
* @var array $FIELDS Mandatory fields, checked when create and update object
|
||||
*/
|
||||
static $FIELDS = array(
|
||||
public static $FIELDS = array(
|
||||
'fk_adherent',
|
||||
'dateh',
|
||||
'datef',
|
||||
|
||||
@@ -50,12 +50,18 @@ $limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit;
|
||||
$sortfield = GETPOST("sortfield", 'alpha');
|
||||
$sortorder = GETPOST("sortorder", 'alpha');
|
||||
$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;
|
||||
$pageprev = $page - 1;
|
||||
$pagenext = $page + 1;
|
||||
if (!$sortorder) $sortorder = "ASC";
|
||||
if (!$sortfield) $sortfield = "name";
|
||||
if (!$sortorder) {
|
||||
$sortorder = "ASC";
|
||||
}
|
||||
if (!$sortfield) {
|
||||
$sortfield = "name";
|
||||
}
|
||||
|
||||
|
||||
$form = new Form($db);
|
||||
@@ -96,8 +102,9 @@ if ($id > 0) {
|
||||
$totalsize += $file['size'];
|
||||
}
|
||||
|
||||
if (!empty($conf->notification->enabled))
|
||||
if (!empty($conf->notification->enabled)) {
|
||||
$langs->load("mails");
|
||||
}
|
||||
|
||||
$head = member_prepare_head($object);
|
||||
|
||||
@@ -125,8 +132,8 @@ if ($id > 0) {
|
||||
// Morphy
|
||||
print '<tr><td class="titlefield">'.$langs->trans("MemberNature").'</td><td class="valeur" >'.$object->getmorphylib().'</td>';
|
||||
/*print '<td rowspan="'.$rowspan.'" class="center" valign="middle" width="25%">';
|
||||
print $form->showphoto('memberphoto',$object);
|
||||
print '</td>';*/
|
||||
print $form->showphoto('memberphoto',$object);
|
||||
print '</td>';*/
|
||||
print '</tr>';
|
||||
|
||||
// Company
|
||||
|
||||
@@ -27,7 +27,9 @@ require '../main.inc.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php';
|
||||
|
||||
// Security check
|
||||
if (!$user->rights->adherent->export) accessforbidden();
|
||||
if (!$user->rights->adherent->export) {
|
||||
accessforbidden();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
@@ -38,8 +40,12 @@ llxHeader();
|
||||
|
||||
$now = dol_now();
|
||||
|
||||
if (empty($sortorder)) { $sortorder = "ASC"; }
|
||||
if (empty($sortfield)) { $sortfield = "d.login"; }
|
||||
if (empty($sortorder)) {
|
||||
$sortorder = "ASC";
|
||||
}
|
||||
if (empty($sortfield)) {
|
||||
$sortfield = "d.login";
|
||||
}
|
||||
if (!isset($statut)) {
|
||||
$statut = 1;
|
||||
}
|
||||
|
||||
@@ -257,7 +257,7 @@ print "</tr>\n";
|
||||
|
||||
krsort($Total);
|
||||
$i = 0;
|
||||
foreach ($Total as $key=>$value) {
|
||||
foreach ($Total as $key => $value) {
|
||||
if ($i >= 8) {
|
||||
print '<tr class="oddeven">';
|
||||
print "<td>...</td>";
|
||||
|
||||
@@ -142,7 +142,9 @@ if (!empty($conf->global->LDAP_MEMBER_ACTIVE) && $conf->global->LDAP_MEMBER_ACTI
|
||||
|
||||
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";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -69,24 +69,36 @@ $catid = GETPOST("catid", 'int');
|
||||
$optioncss = GETPOST('optioncss', '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');
|
||||
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'));
|
||||
|
||||
if ($search_status < -1) $search_status = '';
|
||||
if ($search_status < -1) {
|
||||
$search_status = '';
|
||||
}
|
||||
|
||||
$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit;
|
||||
$sortfield = GETPOST("sortfield", 'alpha');
|
||||
$sortorder = GETPOST("sortorder", 'alpha');
|
||||
$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;
|
||||
$pageprev = $page - 1;
|
||||
$pagenext = $page + 1;
|
||||
if (!$sortorder) { $sortorder = ($filter == 'outofdate' ? "DESC" : "ASC"); }
|
||||
if (!$sortfield) { $sortfield = ($filter == 'outofdate' ? "d.datefin" : "d.lastname"); }
|
||||
if (!$sortorder) {
|
||||
$sortorder = ($filter == 'outofdate' ? "DESC" : "ASC");
|
||||
}
|
||||
if (!$sortfield) {
|
||||
$sortfield = ($filter == 'outofdate' ? "d.datefin" : "d.lastname");
|
||||
}
|
||||
|
||||
$object = new Adherent($db);
|
||||
|
||||
@@ -117,7 +129,9 @@ $fieldstosearchall = array(
|
||||
'd.note_public'=>'NotePublic',
|
||||
'd.note_private'=>'NotePrivate',
|
||||
);
|
||||
if ($db->type == 'pgsql') unset($fieldstosearchall['d.rowid']);
|
||||
if ($db->type == 'pgsql') {
|
||||
unset($fieldstosearchall['d.rowid']);
|
||||
}
|
||||
$arrayfields = array(
|
||||
'd.ref'=>array('label'=>$langs->trans("Ref"), 'checked'=>1),
|
||||
'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
|
||||
*/
|
||||
|
||||
if (GETPOST('cancel', 'alpha')) { $action = 'list'; $massaction = ''; }
|
||||
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend' && $massaction != 'confirm_createbills') { $massaction = ''; }
|
||||
if (GETPOST('cancel', 'alpha')) {
|
||||
$action = 'list'; $massaction = '';
|
||||
}
|
||||
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend' && $massaction != 'confirm_createbills') {
|
||||
$massaction = '';
|
||||
}
|
||||
|
||||
$parameters = array('socid'=>$socid);
|
||||
$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)) {
|
||||
// Selection of new fields
|
||||
@@ -212,7 +232,9 @@ if (empty($reshook)) {
|
||||
if ($result < 0 && !count($tmpmember->errors)) {
|
||||
setEventMessages($tmpmember->error, $tmpmember->errors, 'errors');
|
||||
} else {
|
||||
if ($result > 0) $nbclose++;
|
||||
if ($result > 0) {
|
||||
$nbclose++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -256,8 +278,11 @@ $sql .= " s.nom,";
|
||||
$sql .= " t.libelle as type, t.subscription,";
|
||||
$sql .= " state.code_departement as state_code, state.nom as state_name,";
|
||||
// Add fields from extrafields
|
||||
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.', ' : '');
|
||||
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.', ' : '');
|
||||
}
|
||||
}
|
||||
// Add fields from hooks
|
||||
$parameters = array();
|
||||
$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 .= ", ".MAIN_DB_PREFIX."adherent_type as t";
|
||||
$sql .= " WHERE d.fk_adherent_type = t.rowid ";
|
||||
if ($catid > 0) $sql .= " AND cm.fk_categorie = ".$db->escape($catid);
|
||||
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";
|
||||
if ($catid > 0) {
|
||||
$sql .= " AND cm.fk_categorie = ".$db->escape($catid);
|
||||
}
|
||||
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').")";
|
||||
if ($sall) $sql .= natural_search(array_keys($fieldstosearchall), $sall);
|
||||
if ($search_type > 0) $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 ($sall) {
|
||||
$sql .= natural_search(array_keys($fieldstosearchall), $sall);
|
||||
}
|
||||
if ($search_type > 0) {
|
||||
$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 != '') {
|
||||
// Peut valoir un nombre ou liste de nombre separes par virgules
|
||||
$sql .= " AND d.statut in (".$db->sanitize($db->escape($search_status)).")";
|
||||
@@ -293,21 +336,51 @@ if ($search_status != '') {
|
||||
if ($search_ref) {
|
||||
$sql .= natural_search("d.ref", $search_ref);
|
||||
}
|
||||
if ($search_civility) $sql .= natural_search("d.civility", $search_civility);
|
||||
if ($search_firstname) $sql .= natural_search("d.firstname", $search_firstname);
|
||||
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_login) $sql .= natural_search("d.login", $search_login);
|
||||
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.')';
|
||||
if ($search_civility) {
|
||||
$sql .= natural_search("d.civility", $search_civility);
|
||||
}
|
||||
if ($search_firstname) {
|
||||
$sql .= natural_search("d.firstname", $search_firstname);
|
||||
}
|
||||
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_login) {
|
||||
$sql .= natural_search("d.login", $search_login);
|
||||
}
|
||||
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
|
||||
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php';
|
||||
@@ -323,8 +396,11 @@ $sql .= $db->order($sortfield, $sortorder);
|
||||
$nbtotalofrecords = '';
|
||||
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
|
||||
$resql = $db->query($sql);
|
||||
if ($resql) $nbtotalofrecords = $db->num_rows($resql);
|
||||
else dol_print_error($db);
|
||||
if ($resql) {
|
||||
$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
|
||||
$page = 0;
|
||||
$offset = 0;
|
||||
@@ -355,13 +431,27 @@ llxHeader('', $langs->trans("Member"), 'EN:Module_Foundations|FR:Module_Adh&eacu
|
||||
|
||||
$titre = $langs->trans("MembersList");
|
||||
if (GETPOSTISSET("search_status")) {
|
||||
if ($search_status == '-1,1') { $titre = $langs->trans("MembersListQualified"); }
|
||||
if ($search_status == '-1') { $titre = $langs->trans("MembersListToValid"); }
|
||||
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"); }
|
||||
if ($search_status == '-1,1') {
|
||||
$titre = $langs->trans("MembersListQualified");
|
||||
}
|
||||
if ($search_status == '-1') {
|
||||
$titre = $langs->trans("MembersListToValid");
|
||||
}
|
||||
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') {
|
||||
$titre = $langs->trans("MembersListQualified");
|
||||
}
|
||||
@@ -373,30 +463,78 @@ if ($search_type > 0) {
|
||||
}
|
||||
|
||||
$param = '';
|
||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage);
|
||||
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit);
|
||||
if ($sall != "") $param .= "&sall=".urlencode($sall);
|
||||
if ($search_ref) $param .= "&search_ref=".urlencode($search_ref);
|
||||
if ($search_civility) $param .= "&search_civility=".urlencode($search_civility);
|
||||
if ($search_firstname) $param .= "&search_firstname=".urlencode($search_firstname);
|
||||
if ($search_lastname) $param .= "&search_lastname=".urlencode($search_lastname);
|
||||
if ($search_gender) $param .= "&search_gender=".urlencode($search_gender);
|
||||
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);
|
||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
|
||||
$param .= '&contextpage='.urlencode($contextpage);
|
||||
}
|
||||
if ($limit > 0 && $limit != $conf->liste_limit) {
|
||||
$param .= '&limit='.urlencode($limit);
|
||||
}
|
||||
if ($sall != "") {
|
||||
$param .= "&sall=".urlencode($sall);
|
||||
}
|
||||
if ($search_ref) {
|
||||
$param .= "&search_ref=".urlencode($search_ref);
|
||||
}
|
||||
if ($search_civility) {
|
||||
$param .= "&search_civility=".urlencode($search_civility);
|
||||
}
|
||||
if ($search_firstname) {
|
||||
$param .= "&search_firstname=".urlencode($search_firstname);
|
||||
}
|
||||
if ($search_lastname) {
|
||||
$param .= "&search_lastname=".urlencode($search_lastname);
|
||||
}
|
||||
if ($search_gender) {
|
||||
$param .= "&search_gender=".urlencode($search_gender);
|
||||
}
|
||||
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
|
||||
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
|
||||
|
||||
@@ -405,10 +543,18 @@ $arrayofmassactions = array(
|
||||
//'presend'=>$langs->trans("SendByMail"),
|
||||
//'builddoc'=>$langs->trans("PDFMerge"),
|
||||
);
|
||||
if ($user->rights->adherent->creer) $arrayofmassactions['close'] = $langs->trans("Resiliate");
|
||||
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();
|
||||
if ($user->rights->adherent->creer) {
|
||||
$arrayofmassactions['close'] = $langs->trans("Resiliate");
|
||||
}
|
||||
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);
|
||||
|
||||
$newcardbutton = '';
|
||||
@@ -417,7 +563,9 @@ if ($user->rights->adherent->creer) {
|
||||
}
|
||||
|
||||
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="formfilteraction" id="formfilteraction" 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';
|
||||
|
||||
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>';
|
||||
}
|
||||
|
||||
@@ -448,8 +598,11 @@ if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) {
|
||||
}
|
||||
$parameters = array();
|
||||
$reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters); // Note that $action and $object may have been modified by hook
|
||||
if (empty($reshook)) $moreforfilter .= $hookmanager->resPrint;
|
||||
else $moreforfilter = $hookmanager->resPrint;
|
||||
if (empty($reshook)) {
|
||||
$moreforfilter .= $hookmanager->resPrint;
|
||||
} else {
|
||||
$moreforfilter = $hookmanager->resPrint;
|
||||
}
|
||||
if (!empty($moreforfilter)) {
|
||||
print '<div class="liste_titre liste_titre_bydiv centpercent">';
|
||||
print $moreforfilter;
|
||||
@@ -458,7 +611,9 @@ if (!empty($moreforfilter)) {
|
||||
|
||||
$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage;
|
||||
$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 '<table class="tagtable liste'.($moreforfilter ? " listwithfilterbefore" : "").'">'."\n";
|
||||
@@ -609,26 +764,66 @@ print '</td>';
|
||||
print "</tr>\n";
|
||||
|
||||
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($arrayfields['d.ref']['checked'])) print_liste_field_titre($arrayfields['d.ref']['label'], $_SERVER["PHP_SELF"], 'd.ref', '', $param, '', $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.lastname']['checked'])) print_liste_field_titre($arrayfields['d.lastname']['label'], $_SERVER["PHP_SELF"], 'd.lastname', '', $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.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);
|
||||
if (!empty($conf->global->MAIN_SHOW_TECHNICAL_ID)) {
|
||||
print_liste_field_titre("ID", $_SERVER["PHP_SELF"], '', '', $param, 'align="center"', $sortfield, $sortorder);
|
||||
}
|
||||
if (!empty($arrayfields['d.ref']['checked'])) {
|
||||
print_liste_field_titre($arrayfields['d.ref']['label'], $_SERVER["PHP_SELF"], 'd.ref', '', $param, '', $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.lastname']['checked'])) {
|
||||
print_liste_field_titre($arrayfields['d.lastname']['label'], $_SERVER["PHP_SELF"], 'd.lastname', '', $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.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
|
||||
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);
|
||||
$reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters); // Note that $action and $object may have been modified by hook
|
||||
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.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);
|
||||
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.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 "</tr>\n";
|
||||
|
||||
@@ -676,7 +879,9 @@ while ($i < min($num, $limit)) {
|
||||
|
||||
if (!empty($conf->global->MAIN_SHOW_TECHNICAL_ID)) {
|
||||
print '<td class="center">'.$obj->rowid.'</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
|
||||
// Ref
|
||||
@@ -684,35 +889,47 @@ while ($i < min($num, $limit)) {
|
||||
print "<td>";
|
||||
print $memberstatic->getNomUrl(-1, 0, 'card', 'ref', '', -1, 0, 1);
|
||||
print "</td>\n";
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
// Civility
|
||||
if (!empty($arrayfields['d.civility']['checked'])) {
|
||||
print "<td>";
|
||||
print $obj->civility;
|
||||
print "</td>\n";
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
// Firstname
|
||||
if (!empty($arrayfields['d.firstname']['checked'])) {
|
||||
print "<td>";
|
||||
print $obj->firstname;
|
||||
print "</td>\n";
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
// Lastname
|
||||
if (!empty($arrayfields['d.lastname']['checked'])) {
|
||||
print "<td>";
|
||||
print $obj->lastname;
|
||||
print "</td>\n";
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
// Gender
|
||||
if (!empty($arrayfields['d.gender']['checked'])) {
|
||||
print '<td>';
|
||||
if ($obj->gender) print $langs->trans("Gender".$obj->gender);
|
||||
if ($obj->gender) {
|
||||
print $langs->trans("Gender".$obj->gender);
|
||||
}
|
||||
print '</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
// Company
|
||||
if (!empty($arrayfields['d.company']['checked'])) {
|
||||
@@ -723,7 +940,9 @@ while ($i < min($num, $limit)) {
|
||||
// Login
|
||||
if (!empty($arrayfields['d.login']['checked'])) {
|
||||
print "<td>".$obj->login."</td>\n";
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
// Nature (Moral/Physical)
|
||||
if (!empty($arrayfields['d.morphy']['checked'])) {
|
||||
@@ -737,7 +956,9 @@ while ($i < min($num, $limit)) {
|
||||
}
|
||||
print $s;
|
||||
print "</td>\n";
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
// Type label
|
||||
if (!empty($arrayfields['t.libelle']['checked'])) {
|
||||
@@ -746,33 +967,43 @@ while ($i < min($num, $limit)) {
|
||||
print '<td class="nowrap">';
|
||||
print $membertypestatic->getNomUrl(1, 32);
|
||||
print '</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
// Address
|
||||
if (!empty($arrayfields['d.address']['checked'])) {
|
||||
print '<td class="nocellnopadd">';
|
||||
print $obj->address;
|
||||
print '</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
// Zip
|
||||
if (!empty($arrayfields['d.zip']['checked'])) {
|
||||
print '<td class="nocellnopadd">';
|
||||
print $obj->zip;
|
||||
print '</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
// Town
|
||||
if (!empty($arrayfields['d.town']['checked'])) {
|
||||
print '<td class="nocellnopadd">';
|
||||
print $obj->town;
|
||||
print '</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
// State
|
||||
if (!empty($arrayfields['state.nom']['checked'])) {
|
||||
print "<td>".$obj->state_name."</td>\n";
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
// Country
|
||||
if (!empty($arrayfields['country.code_iso']['checked'])) {
|
||||
@@ -780,28 +1011,36 @@ while ($i < min($num, $limit)) {
|
||||
$tmparray = getCountry($obj->country, 'all');
|
||||
print $tmparray['label'];
|
||||
print '</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
// Phone pro
|
||||
if (!empty($arrayfields['d.phone']['checked'])) {
|
||||
print '<td class="nocellnopadd">';
|
||||
print $obj->phone;
|
||||
print '</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
// Phone perso
|
||||
if (!empty($arrayfields['d.phone_perso']['checked'])) {
|
||||
print '<td class="nocellnopadd">';
|
||||
print $obj->phone_perso;
|
||||
print '</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
// Phone mobile
|
||||
if (!empty($arrayfields['d.phone_mobile']['checked'])) {
|
||||
print '<td class="nocellnopadd">';
|
||||
print $obj->phone_mobile;
|
||||
print '</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
// EMail
|
||||
if (!empty($arrayfields['d.email']['checked'])) {
|
||||
@@ -822,7 +1061,9 @@ while ($i < min($num, $limit)) {
|
||||
print '<td class="nowrap left">';
|
||||
if ($obj->subscription == 'yes') {
|
||||
print $langs->trans("SubscriptionNotReceived");
|
||||
if ($obj->statut > 0) print " ".img_warning();
|
||||
if ($obj->statut > 0) {
|
||||
print " ".img_warning();
|
||||
}
|
||||
} else {
|
||||
print ' ';
|
||||
}
|
||||
@@ -840,38 +1081,50 @@ while ($i < min($num, $limit)) {
|
||||
print '<td class="nowrap center">';
|
||||
print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser');
|
||||
print '</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
// Birth
|
||||
if (!empty($arrayfields['d.birth']['checked'])) {
|
||||
print '<td class="nowrap center">';
|
||||
print dol_print_date($db->jdate($obj->birth), 'day', 'tzuser');
|
||||
print '</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
// Date modification
|
||||
if (!empty($arrayfields['d.tms']['checked'])) {
|
||||
print '<td class="nowrap center">';
|
||||
print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser');
|
||||
print '</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
// Status
|
||||
if (!empty($arrayfields['d.statut']['checked'])) {
|
||||
print '<td class="nowrap right">';
|
||||
print $memberstatic->LibStatut($obj->statut, $obj->subscription, $datefin, 5);
|
||||
print '</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
// Action column
|
||||
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
|
||||
$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 '</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
|
||||
print "</tr>\n";
|
||||
$i++;
|
||||
@@ -884,7 +1137,11 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/list_print_total.tpl.php';
|
||||
// If no record found
|
||||
if ($num == 0) {
|
||||
$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>';
|
||||
}
|
||||
|
||||
|
||||
@@ -91,8 +91,8 @@ if ($id) {
|
||||
// Morphy
|
||||
print '<tr><td class="titlefield">'.$langs->trans("MemberNature").'</td><td class="valeur" >'.$object->getmorphylib().'</td>';
|
||||
/*print '<td rowspan="'.$rowspan.'" class="center" valign="middle" width="25%">';
|
||||
print $form->showphoto('memberphoto',$member);
|
||||
print '</td>';*/
|
||||
print $form->showphoto('memberphoto',$member);
|
||||
print '</td>';*/
|
||||
print '</tr>';
|
||||
|
||||
// Company
|
||||
|
||||
@@ -82,8 +82,12 @@ if ($resql) {
|
||||
while ($i < $num) {
|
||||
$obj = $db->fetch_object($resql);
|
||||
|
||||
if ($obj->code == 'phy') $foundphy++;
|
||||
if ($obj->code == 'mor') $foundmor++;
|
||||
if ($obj->code == 'phy') {
|
||||
$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));
|
||||
|
||||
@@ -113,8 +117,12 @@ if ($resql) {
|
||||
while ($i < $num) {
|
||||
$obj = $db->fetch_object($resql);
|
||||
|
||||
if ($obj->code == 'phy') $foundphy++;
|
||||
if ($obj->code == 'mor') $foundmor++;
|
||||
if ($obj->code == 'phy') {
|
||||
$foundphy++;
|
||||
}
|
||||
if ($obj->code == 'mor') {
|
||||
$foundmor++;
|
||||
}
|
||||
|
||||
$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 '</tr>';
|
||||
|
||||
if (!$foundphy) $data[] = array('label'=>'phy', 'nb'=>'0', 'nbactive'=>'0', 'lastdate'=>'', 'lastsubscriptiondate'=>'');
|
||||
if (!$foundmor) $data[] = array('label'=>'mor', 'nb'=>'0', 'nbactive'=>'0', 'lastdate'=>'', 'lastsubscriptiondate'=>'');
|
||||
if (!$foundphy) {
|
||||
$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) {
|
||||
$nb = $val['nb'];
|
||||
|
||||
@@ -56,13 +56,23 @@ $langs->loadLangs(array("companies", "members", "banks"));
|
||||
$memberstatic = new Adherent($db);
|
||||
|
||||
$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");
|
||||
if ($mode == 'memberbycountry') $title = $langs->trans("MembersStatisticsByCountries");
|
||||
if ($mode == 'memberbystate') $title = $langs->trans("MembersStatisticsByState");
|
||||
if ($mode == 'memberbytown') $title = $langs->trans("MembersStatisticsByTown");
|
||||
if ($mode == 'memberbyregion') $title = $langs->trans("MembersStatisticsByRegion");
|
||||
if ($mode == 'memberbycountry') {
|
||||
$title = $langs->trans("MembersStatisticsByCountries");
|
||||
}
|
||||
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);
|
||||
|
||||
@@ -207,11 +217,15 @@ if ($mode && !count($data)) {
|
||||
print $langs->trans("NoValidatedMemberYet").'<br>';
|
||||
print '<br>';
|
||||
} else {
|
||||
if ($mode == 'memberbycountry') print '<span class="opacitymedium">'.$langs->trans("MembersByCountryDesc").'</span><br>';
|
||||
elseif ($mode == 'memberbystate') print '<span class="opacitymedium">'.$langs->trans("MembersByStateDesc").'</span><br>';
|
||||
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 {
|
||||
if ($mode == 'memberbycountry') {
|
||||
print '<span class="opacitymedium">'.$langs->trans("MembersByCountryDesc").'</span><br>';
|
||||
} elseif ($mode == 'memberbystate') {
|
||||
print '<span class="opacitymedium">'.$langs->trans("MembersByStateDesc").'</span><br>';
|
||||
} 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 '<br>';
|
||||
print '<a href="'.$_SERVER["PHP_SELF"].'?mode=memberbycountry">'.$langs->trans("MembersStatisticsByCountries").'</a><br>';
|
||||
@@ -229,7 +243,9 @@ if ($mode && !count($data)) {
|
||||
// Show graphics
|
||||
if (count($arrayjs) && $mode == 'memberbycountry') {
|
||||
$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
|
||||
// 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) {
|
||||
$valcountry = strtoupper($val['code']); // Should be ISO-3166 code (faster)
|
||||
//$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.", 1, ".$val['nb'].");\n";
|
||||
// Google's Geomap only supports up to 400 entries
|
||||
if ($i >= 400) { break; }
|
||||
if ($i >= 400) {
|
||||
break;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
|
||||
@@ -279,7 +299,9 @@ if ($mode) {
|
||||
print '<table class="liste centpercent">';
|
||||
print '<tr class="liste_titre">';
|
||||
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="center">'.$langs->trans("LastMemberDate").'</td>';
|
||||
print '<td class="center">'.$langs->trans("LatestSubscriptionDate").'</td>';
|
||||
@@ -289,7 +311,9 @@ if ($mode) {
|
||||
$year = $val['year'];
|
||||
print '<tr class="oddeven">';
|
||||
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="center">'.dol_print_date($val['lastdate'], 'dayhour').'</td>';
|
||||
print '<td class="center">'.dol_print_date($val['lastsubscriptiondate'], 'dayhour').'</td>';
|
||||
|
||||
@@ -32,8 +32,12 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php';
|
||||
$WIDTH = DolGraph::getDefaultGraphSizeForStats('width');
|
||||
$HEIGHT = DolGraph::getDefaultGraphSizeForStats('height');
|
||||
|
||||
$userid = GETPOST('userid', 'int'); if ($userid < 0) $userid = 0;
|
||||
$socid = GETPOST('socid', 'int'); if ($socid < 0) $socid = 0;
|
||||
$userid = GETPOST('userid', 'int'); if ($userid < 0) {
|
||||
$userid = 0;
|
||||
}
|
||||
$socid = GETPOST('socid', 'int'); if ($socid < 0) {
|
||||
$socid = 0;
|
||||
}
|
||||
|
||||
// Security check
|
||||
if ($user->socid > 0) {
|
||||
@@ -209,7 +213,9 @@ print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
||||
|
||||
// Show graphs
|
||||
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 "<br>\n";
|
||||
print $px2->show();
|
||||
|
||||
@@ -50,14 +50,20 @@ $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit;
|
||||
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
||||
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
||||
$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;
|
||||
$pageprev = $page - 1;
|
||||
$pagenext = $page + 1;
|
||||
|
||||
// Default sort order (if not yet defined by previous GETPOST)
|
||||
if (!$sortfield) $sortfield = "c.rowid";
|
||||
if (!$sortorder) $sortorder = "DESC";
|
||||
if (!$sortfield) {
|
||||
$sortfield = "c.rowid";
|
||||
}
|
||||
if (!$sortorder) {
|
||||
$sortorder = "DESC";
|
||||
}
|
||||
|
||||
|
||||
// Security check
|
||||
@@ -150,7 +156,9 @@ if (empty($reshook) && $action == 'setuserid' && ($user->rights->user->self->cre
|
||||
if (!$error) {
|
||||
if ($_POST["userid"] != $object->user_id) { // If link differs from currently in database
|
||||
$result = $object->setUserId($_POST["userid"]);
|
||||
if ($result < 0) dol_print_error('', $object->error);
|
||||
if ($result < 0) {
|
||||
dol_print_error('', $object->error);
|
||||
}
|
||||
$_POST['action'] = '';
|
||||
$action = '';
|
||||
}
|
||||
@@ -178,7 +186,9 @@ if (empty($reshook) && $action == 'setsocid') {
|
||||
|
||||
if (!$error) {
|
||||
$result = $object->setThirdPartyId(GETPOST('socid', 'int'));
|
||||
if ($result < 0) dol_print_error('', $object->error);
|
||||
if ($result < 0) {
|
||||
dol_print_error('', $object->error);
|
||||
}
|
||||
$_POST['action'] = '';
|
||||
$action = '';
|
||||
}
|
||||
@@ -423,25 +433,37 @@ llxHeader("", $title, $helpurl);
|
||||
|
||||
|
||||
$param = '';
|
||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage);
|
||||
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit);
|
||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
|
||||
$param .= '&contextpage='.urlencode($contextpage);
|
||||
}
|
||||
if ($limit > 0 && $limit != $conf->liste_limit) {
|
||||
$param .= '&limit='.urlencode($limit);
|
||||
}
|
||||
$param .= '&id='.$rowid;
|
||||
if ($optioncss != '') $param .= '&optioncss='.urlencode($optioncss);
|
||||
if ($optioncss != '') {
|
||||
$param .= '&optioncss='.urlencode($optioncss);
|
||||
}
|
||||
// Add $param from extra fields
|
||||
//include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
|
||||
|
||||
|
||||
if ($rowid > 0) {
|
||||
$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);
|
||||
|
||||
$head = member_prepare_head($object);
|
||||
|
||||
$rowspan = 10;
|
||||
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) $rowspan++;
|
||||
if (!empty($conf->societe->enabled)) $rowspan++;
|
||||
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) {
|
||||
$rowspan++;
|
||||
}
|
||||
if (!empty($conf->societe->enabled)) {
|
||||
$rowspan++;
|
||||
}
|
||||
|
||||
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
|
||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||
@@ -525,10 +547,14 @@ if ($rowid > 0) {
|
||||
} 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
|
||||
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
|
||||
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>';
|
||||
@@ -539,7 +565,9 @@ if ($rowid > 0) {
|
||||
print '<table class="nobordernopadding" width="100%"><tr><td>';
|
||||
print $langs->trans("LinkedToDolibarrThirdParty");
|
||||
print '</td>';
|
||||
if ($action != 'editthirdparty' && $user->rights->adherent->creer) print '<td class="right"><a class="editfielda" href="'.$_SERVER["PHP_SELF"].'?action=editthirdparty&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&rowid='.$object->id.'">'.img_edit($langs->trans('SetLinkToThirdParty'), 1).'</a></td>';
|
||||
}
|
||||
print '</tr></table>';
|
||||
print '</td><td colspan="2" class="valeur">';
|
||||
if ($action == 'editthirdparty') {
|
||||
@@ -585,7 +613,9 @@ if ($rowid > 0) {
|
||||
} else {
|
||||
if ($object->user_id) {
|
||||
$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>';
|
||||
|
||||
@@ -608,8 +638,11 @@ if ($rowid > 0) {
|
||||
if ($action != 'addsubscription' && $action != 'create_thirdparty') {
|
||||
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>";
|
||||
else print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("ValidateBefore")).'">'.$langs->trans("AddSubscription").'</a></div>';
|
||||
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>";
|
||||
} 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>';
|
||||
}
|
||||
@@ -712,7 +745,9 @@ if ($rowid > 0) {
|
||||
|
||||
if (empty($num)) {
|
||||
$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>';
|
||||
}
|
||||
|
||||
@@ -749,13 +784,23 @@ if ($rowid > 0) {
|
||||
$invoiceonly = 0; // 1 means option by default is invoice only
|
||||
$bankviainvoice = 0; // 1 means option by default is write to bank via invoice
|
||||
if (GETPOST('paymentsave')) {
|
||||
if (GETPOST('paymentsave') == 'bankdirect') $bankdirect = 1;
|
||||
if (GETPOST('paymentsave') == 'invoiceonly') $invoiceonly = 1;
|
||||
if (GETPOST('paymentsave') == 'bankviainvoice') $bankviainvoice = 1;
|
||||
if (GETPOST('paymentsave') == 'bankdirect') {
|
||||
$bankdirect = 1;
|
||||
}
|
||||
if (GETPOST('paymentsave') == 'invoiceonly') {
|
||||
$invoiceonly = 1;
|
||||
}
|
||||
if (GETPOST('paymentsave') == 'bankviainvoice') {
|
||||
$bankviainvoice = 1;
|
||||
}
|
||||
} 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;
|
||||
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;
|
||||
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;
|
||||
} 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";
|
||||
@@ -789,7 +834,9 @@ if ($rowid > 0) {
|
||||
}
|
||||
});
|
||||
';
|
||||
if (GETPOST('paymentsave')) print '$("#'.GETPOST('paymentsave').'").prop("checked",true);';
|
||||
if (GETPOST('paymentsave')) {
|
||||
print '$("#'.GETPOST('paymentsave').'").prop("checked",true);';
|
||||
}
|
||||
print '});';
|
||||
print '</script>'."\n";
|
||||
}
|
||||
@@ -802,10 +849,14 @@ if ($rowid > 0) {
|
||||
|
||||
if ($object->morphy == 'mor') {
|
||||
$companyname = $object->company;
|
||||
if (!empty($fullname)) $companyalias = $fullname;
|
||||
if (!empty($fullname)) {
|
||||
$companyalias = $fullname;
|
||||
}
|
||||
} else {
|
||||
$companyname = $fullname;
|
||||
if (!empty($object->company)) $companyalias = $object->company;
|
||||
if (!empty($object->company)) {
|
||||
$companyalias = $object->company;
|
||||
}
|
||||
}
|
||||
|
||||
// Create a form array
|
||||
@@ -886,7 +937,9 @@ if ($rowid > 0) {
|
||||
// Label
|
||||
print '<tr><td>'.$langs->trans("Label").'</td>';
|
||||
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>';
|
||||
|
||||
// Complementary action
|
||||
@@ -914,16 +967,21 @@ if ($rowid > 0) {
|
||||
print '<input type="radio" class="moreaction" id="invoiceonly" name="paymentsave" value="invoiceonly"'.(!empty($invoiceonly) ? ' checked' : '');
|
||||
//if (empty($object->fk_soc)) print ' disabled';
|
||||
print '> '.$langs->trans("MoreActionInvoiceOnly");
|
||||
if ($object->fk_soc) print ' ('.$langs->trans("ThirdParty").': '.$company->getNomUrl(1).')';
|
||||
else {
|
||||
if ($object->fk_soc) {
|
||||
print ' ('.$langs->trans("ThirdParty").': '.$company->getNomUrl(1).')';
|
||||
} else {
|
||||
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 ' - <a href="'.$_SERVER["PHP_SELF"].'?rowid='.$object->id.'&action=create_thirdparty">';
|
||||
print $langs->trans("CreateDolibarrThirdParty");
|
||||
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))) {
|
||||
$prodtmp = new Product($db);
|
||||
$result = $prodtmp->fetch($conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS);
|
||||
@@ -943,13 +1001,17 @@ if ($rowid > 0) {
|
||||
print ' ('.$langs->trans("ThirdParty").': '.$company->getNomUrl(1).')';
|
||||
} else {
|
||||
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 ' - <a href="'.$_SERVER["PHP_SELF"].'?rowid='.$object->id.'&action=create_thirdparty">';
|
||||
print $langs->trans("CreateDolibarrThirdParty");
|
||||
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))) {
|
||||
$prodtmp = new Product($db);
|
||||
$result = $prodtmp->fetch($conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS);
|
||||
|
||||
@@ -48,8 +48,9 @@ $note = GETPOST('note', 'alpha');
|
||||
$typeid = (int) GETPOST('typeid', 'int');
|
||||
$amount = price2num(GETPOST('amount', 'alpha'), 'MT');
|
||||
|
||||
if (!$user->rights->adherent->cotisation->lire)
|
||||
if (!$user->rights->adherent->cotisation->lire) {
|
||||
accessforbidden();
|
||||
}
|
||||
|
||||
$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
|
||||
@@ -65,7 +66,9 @@ $result = restrictedArea($user, 'subscription', 0); // TODO Check on object id
|
||||
* Actions
|
||||
*/
|
||||
|
||||
if ($cancel) $action = '';
|
||||
if ($cancel) {
|
||||
$action = '';
|
||||
}
|
||||
|
||||
//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;
|
||||
} else {
|
||||
foreach ($object->errors as $error) {
|
||||
if ($errmsg) $errmsg .= '<br>';
|
||||
if ($errmsg) {
|
||||
$errmsg .= '<br>';
|
||||
}
|
||||
$errmsg .= $error;
|
||||
}
|
||||
}
|
||||
@@ -269,7 +274,9 @@ if ($rowid && $action != 'edit') {
|
||||
//$formquestion=array();
|
||||
//$formquestion['text']='<b>'.$langs->trans("ThisWillAlsoDeleteBankRecord").'</b>';
|
||||
$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);
|
||||
}
|
||||
|
||||
@@ -342,9 +349,9 @@ if ($rowid && $action != 'edit') {
|
||||
print dol_get_fiche_end();
|
||||
|
||||
/*
|
||||
* Barre d'actions
|
||||
*
|
||||
*/
|
||||
* Barre d'actions
|
||||
*
|
||||
*/
|
||||
print '<div class="tabsAction">';
|
||||
|
||||
if ($user->rights->adherent->cotisation->creer) {
|
||||
@@ -368,15 +375,15 @@ if ($rowid && $action != 'edit') {
|
||||
|
||||
// Documents generes
|
||||
/*
|
||||
$filename = dol_sanitizeFileName($object->ref);
|
||||
$filedir = $conf->facture->dir_output . '/' . dol_sanitizeFileName($object->ref);
|
||||
$urlsource = $_SERVER['PHP_SELF'] . '?facid=' . $object->id;
|
||||
$genallowed = $user->rights->facture->lire;
|
||||
$delallowed = $user->rights->facture->creer;
|
||||
$filename = dol_sanitizeFileName($object->ref);
|
||||
$filedir = $conf->facture->dir_output . '/' . dol_sanitizeFileName($object->ref);
|
||||
$urlsource = $_SERVER['PHP_SELF'] . '?facid=' . $object->id;
|
||||
$genallowed = $user->rights->facture->lire;
|
||||
$delallowed = $user->rights->facture->creer;
|
||||
|
||||
print $formfile->showdocuments('facture', $filename, $filedir, $urlsource, $genallowed, $delallowed, $object->model_pdf, 1, 0, 0, 28, 0, '', '', '', $soc->default_lang);
|
||||
$somethingshown = $formfile->numoffiles;
|
||||
*/
|
||||
print $formfile->showdocuments('facture', $filename, $filedir, $urlsource, $genallowed, $delallowed, $object->model_pdf, 1, 0, 0, 28, 0, '', '', '', $soc->default_lang);
|
||||
$somethingshown = $formfile->numoffiles;
|
||||
*/
|
||||
// Show links to link elements
|
||||
//$linktoelem = $form->showLinkToObjectBlock($object, null, array('subscription'));
|
||||
$somethingshown = $form->showLinkedObjectBlock($object, '');
|
||||
@@ -384,16 +391,16 @@ if ($rowid && $action != 'edit') {
|
||||
// Show links to link elements
|
||||
/*$linktoelem = $form->showLinkToObjectBlock($object,array('order'));
|
||||
if ($linktoelem) print ($somethingshown?'':'<br>').$linktoelem;
|
||||
*/
|
||||
*/
|
||||
|
||||
print '</div><div class="fichehalfright"><div class="ficheaddleft">';
|
||||
|
||||
// List of actions on element
|
||||
/*
|
||||
include_once DOL_DOCUMENT_ROOT . '/core/class/html.formactions.class.php';
|
||||
$formactions = new FormActions($db);
|
||||
$somethingshown = $formactions->showactions($object, 'invoice', $socid, 1);
|
||||
*/
|
||||
include_once DOL_DOCUMENT_ROOT . '/core/class/html.formactions.class.php';
|
||||
$formactions = new FormActions($db);
|
||||
$somethingshown = $formactions->showactions($object, 'invoice', $socid, 1);
|
||||
*/
|
||||
|
||||
print '</div></div></div>';
|
||||
}
|
||||
|
||||
@@ -31,8 +31,9 @@ require_once DOL_DOCUMENT_ROOT.'/adherents/class/subscription.class.php';
|
||||
// Load translation files required by the page
|
||||
$langs->loadLangs(array("companies", "members", "bills", "users"));
|
||||
|
||||
if (!$user->rights->adherent->lire)
|
||||
if (!$user->rights->adherent->lire) {
|
||||
accessforbidden();
|
||||
}
|
||||
|
||||
$rowid = GETPOST("rowid", 'int');
|
||||
|
||||
|
||||
@@ -55,12 +55,18 @@ $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit;
|
||||
$sortfield = GETPOST("sortfield", 'alpha');
|
||||
$sortorder = GETPOST("sortorder", 'alpha');
|
||||
$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;
|
||||
$pageprev = $page - 1;
|
||||
$pagenext = $page + 1;
|
||||
if (!$sortorder) { $sortorder = "DESC"; }
|
||||
if (!$sortfield) { $sortfield = "c.dateadh"; }
|
||||
if (!$sortorder) {
|
||||
$sortorder = "DESC";
|
||||
}
|
||||
if (!$sortfield) {
|
||||
$sortfield = "c.dateadh";
|
||||
}
|
||||
|
||||
$object = new Subscription($db);
|
||||
|
||||
@@ -102,12 +108,18 @@ $result = restrictedArea($user, 'adherent', '', '', 'cotisation');
|
||||
* Actions
|
||||
*/
|
||||
|
||||
if (GETPOST('cancel', 'alpha')) { $action = 'list'; $massaction = ''; }
|
||||
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend' && $massaction != 'confirm_createbills') { $massaction = ''; }
|
||||
if (GETPOST('cancel', 'alpha')) {
|
||||
$action = 'list'; $massaction = '';
|
||||
}
|
||||
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend' && $massaction != 'confirm_createbills') {
|
||||
$massaction = '';
|
||||
}
|
||||
|
||||
$parameters = array('socid'=>$socid);
|
||||
$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)) {
|
||||
// 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'";
|
||||
}
|
||||
if ($search_ref) {
|
||||
if (is_numeric($search_ref)) $sql .= " AND (c.rowid = ".$db->escape($search_ref).")";
|
||||
else $sql .= " AND 1 = 2"; // Always wrong
|
||||
if (is_numeric($search_ref)) {
|
||||
$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
|
||||
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php';
|
||||
@@ -182,8 +211,11 @@ $sql .= $db->order($sortfield, $sortorder);
|
||||
$nbtotalofrecords = '';
|
||||
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
|
||||
$resql = $db->query($sql);
|
||||
if ($resql) $nbtotalofrecords = $db->num_rows($resql);
|
||||
else dol_print_error($db);
|
||||
if ($resql) {
|
||||
$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
|
||||
$page = 0;
|
||||
$offset = 0;
|
||||
@@ -215,19 +247,41 @@ llxHeader('', $langs->trans("ListOfSubscriptions"), $help_url);
|
||||
$i = 0;
|
||||
|
||||
$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 = '';
|
||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage);
|
||||
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit);
|
||||
if ($statut != '') $param .= "&statut=".urlencode($statut);
|
||||
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);
|
||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
|
||||
$param .= '&contextpage='.urlencode($contextpage);
|
||||
}
|
||||
if ($limit > 0 && $limit != $conf->liste_limit) {
|
||||
$param .= '&limit='.urlencode($limit);
|
||||
}
|
||||
if ($statut != '') {
|
||||
$param .= "&statut=".urlencode($statut);
|
||||
}
|
||||
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
|
||||
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
|
||||
|
||||
@@ -237,7 +291,9 @@ $arrayofmassactions = array(
|
||||
//'builddoc'=>$langs->trans("PDFMerge"),
|
||||
);
|
||||
//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);
|
||||
|
||||
$newcardbutton = '';
|
||||
@@ -246,7 +302,9 @@ if ($user->rights->adherent->cotisation->creer) {
|
||||
}
|
||||
|
||||
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="formfilteraction" id="formfilteraction" 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';
|
||||
|
||||
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>';
|
||||
}
|
||||
|
||||
@@ -271,7 +331,9 @@ $moreforfilter = '';
|
||||
|
||||
$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage;
|
||||
$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 '<table class="tagtable nobottomiftotal liste'.($moreforfilter ? " listwithfilterbefore" : "").'">'."\n";
|
||||
@@ -366,16 +428,36 @@ print "</tr>\n";
|
||||
|
||||
|
||||
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.fk_type']['checked'])) print_liste_field_titre($arrayfields['d.fk_type']['label'], $_SERVER["PHP_SELF"], "c.fk_type", $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.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 ');
|
||||
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.fk_type']['checked'])) {
|
||||
print_liste_field_titre($arrayfields['d.fk_type']['label'], $_SERVER["PHP_SELF"], "c.fk_type", $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.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
|
||||
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);
|
||||
$reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters); // Note that $action and $object may have been modified by hook
|
||||
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.tms']['checked'])) print_liste_field_titre($arrayfields['c.tms']['label'], $_SERVER["PHP_SELF"], "c.tms", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder);
|
||||
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.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 "</tr>\n";
|
||||
|
||||
@@ -420,7 +506,9 @@ while ($i < min($num, $limit)) {
|
||||
// Ref
|
||||
if (!empty($arrayfields['d.ref']['checked'])) {
|
||||
print '<td>'.$subscription->getNomUrl(1).'</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
// Type
|
||||
if (!empty($arrayfields['d.fk_type']['checked'])) {
|
||||
@@ -429,24 +517,32 @@ while ($i < min($num, $limit)) {
|
||||
print $adht->getNomUrl(1);
|
||||
}
|
||||
print '</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
|
||||
// Lastname
|
||||
if (!empty($arrayfields['d.lastname']['checked'])) {
|
||||
print '<td>'.$adherent->getNomUrl(-1, 0, 'card', 'lastname').'</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
// Firstname
|
||||
if (!empty($arrayfields['d.firstname']['checked'])) {
|
||||
print '<td class="tdoverflowmax150" title="'.dol_escape_htmltag($adherent->firstname).'">'.$adherent->firstname.'</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
|
||||
// Login
|
||||
if (!empty($arrayfields['d.login']['checked'])) {
|
||||
print '<td class="tdoverflowmax150" title="'.dol_escape_htmltag($adherent->login).'">'.$adherent->login.'</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
|
||||
// Label
|
||||
@@ -454,7 +550,9 @@ while ($i < min($num, $limit)) {
|
||||
print '<td>';
|
||||
print dol_trunc($obj->note, 128);
|
||||
print '</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
|
||||
// Banque
|
||||
@@ -467,24 +565,34 @@ while ($i < min($num, $limit)) {
|
||||
print $accountstatic->getNomUrl(1);
|
||||
}
|
||||
print "</td>\n";
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
|
||||
// Date start
|
||||
if (!empty($arrayfields['c.dateadh']['checked'])) {
|
||||
print '<td class="center">'.dol_print_date($db->jdate($obj->dateadh), 'day')."</td>\n";
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
// Date end
|
||||
if (!empty($arrayfields['c.datef']['checked'])) {
|
||||
print '<td class="center">'.dol_print_date($db->jdate($obj->datef), 'day')."</td>\n";
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
// Price
|
||||
if (!empty($arrayfields['d.amount']['checked'])) {
|
||||
print '<td class="right">'.price($obj->subscription).'</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) $totalarray['pos'][$totalarray['nbfield']] = 'd.amount';
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
if (!$i) {
|
||||
$totalarray['pos'][$totalarray['nbfield']] = 'd.amount';
|
||||
}
|
||||
$totalarray['val']['d.amount'] += $obj->subscription;
|
||||
}
|
||||
// Extra fields
|
||||
@@ -498,24 +606,32 @@ while ($i < min($num, $limit)) {
|
||||
print '<td class="nowrap center">';
|
||||
print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser');
|
||||
print '</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
// Date modification
|
||||
if (!empty($arrayfields['c.tms']['checked'])) {
|
||||
print '<td class="nowrap center">';
|
||||
print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser');
|
||||
print '</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
}
|
||||
// Action column
|
||||
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
|
||||
$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 '</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
if (!$i) {
|
||||
$totalarray['nbfield']++;
|
||||
}
|
||||
|
||||
print "</tr>\n";
|
||||
$i++;
|
||||
@@ -528,7 +644,11 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/list_print_total.tpl.php';
|
||||
// If no record found
|
||||
if ($num == 0) {
|
||||
$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>';
|
||||
}
|
||||
|
||||
|
||||
@@ -52,12 +52,18 @@ $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit;
|
||||
$sortfield = GETPOST("sortfield", 'alpha');
|
||||
$sortorder = GETPOST("sortorder", 'alpha');
|
||||
$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;
|
||||
$pageprev = $page - 1;
|
||||
$pagenext = $page + 1;
|
||||
if (!$sortorder) { $sortorder = "DESC"; }
|
||||
if (!$sortfield) { $sortfield = "d.lastname"; }
|
||||
if (!$sortorder) {
|
||||
$sortorder = "DESC";
|
||||
}
|
||||
if (!$sortfield) {
|
||||
$sortfield = "d.lastname";
|
||||
}
|
||||
|
||||
$label = GETPOST("label", "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
|
||||
$ret = $extrafields->setOptionalsFromPost(null, $object);
|
||||
if ($ret < 0) $error++;
|
||||
if ($ret < 0) {
|
||||
$error++;
|
||||
}
|
||||
|
||||
if (empty($object->label)) {
|
||||
$error++;
|
||||
@@ -167,7 +175,9 @@ if ($action == 'update' && $user->rights->adherent->configurer) {
|
||||
|
||||
// Fill array 'array_options' with data from add form
|
||||
$ret = $extrafields->setOptionalsFromPost(null, $object);
|
||||
if ($ret < 0) $error++;
|
||||
if ($ret < 0) {
|
||||
$error++;
|
||||
}
|
||||
|
||||
$ret = $object->update($user);
|
||||
|
||||
@@ -222,8 +232,12 @@ if (!$rowid && $action != 'create' && $action != 'edit') {
|
||||
$i = 0;
|
||||
|
||||
$param = '';
|
||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.$contextpage;
|
||||
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.$limit;
|
||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
|
||||
$param .= '&contextpage='.$contextpage;
|
||||
}
|
||||
if ($limit > 0 && $limit != $conf->liste_limit) {
|
||||
$param .= '&limit='.$limit;
|
||||
}
|
||||
|
||||
$newcardbutton = '';
|
||||
if ($user->rights->adherent->configurer) {
|
||||
@@ -231,7 +245,9 @@ if (!$rowid && $action != 'create' && $action != 'edit') {
|
||||
}
|
||||
|
||||
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="formfilteraction" id="formfilteraction" value="list">';
|
||||
print '<input type="hidden" name="action" value="list">';
|
||||
@@ -273,14 +289,20 @@ if (!$rowid && $action != 'create' && $action != 'edit') {
|
||||
print '</td>';
|
||||
print '<td>'.dol_escape_htmltag($objp->label).'</td>';
|
||||
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 class="center">'.yn($objp->subscription).'</td>';
|
||||
print '<td class="center">'.yn($objp->vote).'</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>';
|
||||
else {
|
||||
} else {
|
||||
print '<td class="right"> </td>';
|
||||
}
|
||||
print "</tr>";
|
||||
@@ -318,19 +340,19 @@ if ($action == 'create') {
|
||||
print '<tr><td class="titlefieldcreate fieldrequired">'.$langs->trans("Label").'</td><td><input type="text" class="minwidth200" name="label" autofocus="autofocus"></td></tr>';
|
||||
|
||||
print '<tr><td>'.$langs->trans("Status").'</td><td>';
|
||||
print $form->selectarray('status', array('0'=>$langs->trans('ActivityCeased'), '1'=>$langs->trans('InActivity')), 1);
|
||||
print '</td></tr>';
|
||||
print $form->selectarray('status', array('0'=>$langs->trans('ActivityCeased'), '1'=>$langs->trans('InActivity')), 1);
|
||||
print '</td></tr>';
|
||||
|
||||
// Morphy
|
||||
$morphys = array();
|
||||
$morphys[""] = $langs->trans("MorAndPhy");
|
||||
$morphys["phy"] = $langs->trans("Physical");
|
||||
$morphys = array();
|
||||
$morphys[""] = $langs->trans("MorAndPhy");
|
||||
$morphys["phy"] = $langs->trans("Physical");
|
||||
$morphys["mor"] = $langs->trans("Moral");
|
||||
print '<tr><td><span>'.$langs->trans("MembersNature").'</span></td><td>';
|
||||
print $form->selectarray("morphy", $morphys, GETPOSTISSET("morphy") ? GETPOST("morphy", 'aZ09') : 'morphy');
|
||||
print "</td></tr>";
|
||||
|
||||
print '<tr><td>'.$langs->trans("SubscriptionRequired").'</td><td>';
|
||||
print '<tr><td>'.$langs->trans("SubscriptionRequired").'</td><td>';
|
||||
print $form->selectyesno("subscription", 1, 1);
|
||||
print '</td></tr>';
|
||||
|
||||
@@ -485,8 +507,8 @@ if ($rowid > 0) {
|
||||
}
|
||||
if ($action == 'search') {
|
||||
if (GETPOST('search', 'alpha')) {
|
||||
$sql .= natural_search(array("d.firstname", "d.lastname"), GETPOST('search', 'alpha'));
|
||||
}
|
||||
$sql .= natural_search(array("d.firstname", "d.lastname"), GETPOST('search', 'alpha'));
|
||||
}
|
||||
}
|
||||
if (!empty($search_lastname)) {
|
||||
$sql .= natural_search(array("d.firstname", "d.lastname"), $search_lastname);
|
||||
@@ -510,8 +532,11 @@ if ($rowid > 0) {
|
||||
$nbtotalofrecords = '';
|
||||
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
|
||||
$resql = $db->query($sql);
|
||||
if ($resql) $nbtotalofrecords = $db->num_rows($result);
|
||||
else dol_print_error($db);
|
||||
if ($resql) {
|
||||
$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
|
||||
$page = 0;
|
||||
$offset = 0;
|
||||
@@ -551,12 +576,24 @@ if ($rowid > 0) {
|
||||
}
|
||||
|
||||
$param = "&rowid=".$object->id;
|
||||
if (!empty($status)) $param .= "&status=".$status;
|
||||
if (!empty($search_lastname)) $param .= "&search_lastname=".$search_lastname;
|
||||
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 (!empty($status)) {
|
||||
$param .= "&status=".$status;
|
||||
}
|
||||
if (!empty($search_lastname)) {
|
||||
$param .= "&search_lastname=".$search_lastname;
|
||||
}
|
||||
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) {
|
||||
print $langs->trans("Filter")." (".$langs->trans("Lastname").", ".$langs->trans("Firstname").", ".$langs->trans("EMail").", ".$langs->trans("Address")." ".$langs->trans("or")." ".$langs->trans("Town")."): ".$sall;
|
||||
@@ -633,10 +670,10 @@ if ($rowid > 0) {
|
||||
|
||||
// Type
|
||||
/*print '<td class="nowrap">';
|
||||
$membertypestatic->id=$objp->type_id;
|
||||
$membertypestatic->label=$objp->type;
|
||||
print $membertypestatic->getNomUrl(1,12);
|
||||
print '</td>';
|
||||
$membertypestatic->id=$objp->type_id;
|
||||
$membertypestatic->label=$objp->type;
|
||||
print $membertypestatic->getNomUrl(1,12);
|
||||
print '</td>';
|
||||
*/
|
||||
|
||||
// Moral/Physique
|
||||
@@ -663,7 +700,9 @@ if ($rowid > 0) {
|
||||
print '<td class="nowrap left">';
|
||||
if ($objp->subscription == 'yes') {
|
||||
print $langs->trans("SubscriptionNotReceived");
|
||||
if ($objp->status > 0) print " ".img_warning();
|
||||
if ($objp->status > 0) {
|
||||
print " ".img_warning();
|
||||
}
|
||||
} else {
|
||||
print ' ';
|
||||
}
|
||||
|
||||
@@ -51,7 +51,9 @@ $hookmanager->initHooks(array('membertypeldapcard', 'globalcard'));
|
||||
|
||||
$parameters = array();
|
||||
$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 ($action == 'dolibarr2ldap') {
|
||||
@@ -128,7 +130,9 @@ if ($conf->global->LDAP_MEMBER_TYPE_ACTIVE == 1) {
|
||||
|
||||
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";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -42,7 +42,9 @@ $ref = GETPOST('ref', 'alphanohtml');
|
||||
// Security check
|
||||
$fieldvalue = (!empty($id) ? $id : (!empty($ref) ? $ref : ''));
|
||||
$fieldtype = (!empty($ref) ? 'ref' : 'rowid');
|
||||
if ($user->socid) $socid = $user->socid;
|
||||
if ($user->socid) {
|
||||
$socid = $user->socid;
|
||||
}
|
||||
// Security check
|
||||
$result = restrictedArea($user, 'adherent', $id, 'adherent_type');
|
||||
|
||||
@@ -184,7 +186,9 @@ print "\n<div class=\"tabsAction\">\n";
|
||||
if ($action == '') {
|
||||
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>';
|
||||
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>';
|
||||
}
|
||||
}
|
||||
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>';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -32,50 +32,44 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||
// Load translation files required by the page
|
||||
$langs->load("admin");
|
||||
|
||||
if (!$user->admin)
|
||||
if (!$user->admin) {
|
||||
accessforbidden();
|
||||
}
|
||||
|
||||
$action = GETPOST('action', 'aZ09');
|
||||
|
||||
//Activate ProfId
|
||||
if ($action == 'setproductionmode')
|
||||
{
|
||||
if ($action == 'setproductionmode') {
|
||||
$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;
|
||||
|
||||
if ($status == 1)
|
||||
{
|
||||
if ($status == 1) {
|
||||
$result = dol_mkdir($conf->api->dir_temp);
|
||||
if ($result < 0)
|
||||
{
|
||||
if ($result < 0) {
|
||||
setEventMessages($langs->trans("ErrorFailedToCreateDir", $conf->api->dir_temp), null, 'errors');
|
||||
$error++;
|
||||
}
|
||||
} else {
|
||||
// Delete the cache file otherwise it does not update
|
||||
$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');
|
||||
$error++;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$error)
|
||||
{
|
||||
if (!$error) {
|
||||
header("Location: ".$_SERVER["PHP_SELF"]);
|
||||
exit;
|
||||
exit;
|
||||
}
|
||||
} else {
|
||||
dol_print_error($db);
|
||||
}
|
||||
}
|
||||
|
||||
if ($action == 'save')
|
||||
{
|
||||
if ($action == 'save') {
|
||||
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 '<td>'.$langs->trans("ApiProductionMode").'</td>';
|
||||
$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 img_picto($langs->trans("Activated"), 'switch_on');
|
||||
print '</a></td>';
|
||||
@@ -155,8 +148,7 @@ print '<br>';
|
||||
|
||||
// Explorer
|
||||
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';
|
||||
print img_picto('', 'globe').' <a href="'.$url.'" target="_blank">'.$url."</a><br>\n";
|
||||
} else {
|
||||
|
||||
@@ -30,7 +30,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
||||
// Load translation files required by the page
|
||||
$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');
|
||||
$backtopage = GETPOST('backtopage', 'alpha');
|
||||
@@ -43,14 +45,14 @@ $withtab = GETPOST('withtab', 'int');
|
||||
*/
|
||||
|
||||
$reg = array();
|
||||
if (preg_match('/set_(.*)/', $action, $reg))
|
||||
{
|
||||
if (preg_match('/set_(.*)/', $action, $reg)) {
|
||||
$code = $reg[1];
|
||||
$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 : ''));
|
||||
exit;
|
||||
} 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];
|
||||
if (dolibarr_del_const($db, $code, 0) > 0)
|
||||
{
|
||||
if (dolibarr_del_const($db, $code, 0) > 0) {
|
||||
Header("Location: ".$_SERVER["PHP_SELF"].($withtab ? '?withtab='.$withtab : ''));
|
||||
exit;
|
||||
} else {
|
||||
@@ -142,10 +142,8 @@ $sql .= " WHERE active > 0";
|
||||
|
||||
$countryArray = array();
|
||||
$resql = $db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
while ($obj = $db->fetch_object($resql))
|
||||
{
|
||||
if ($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 : ''));
|
||||
}
|
||||
}
|
||||
@@ -163,8 +161,7 @@ print '<tr class="oddeven">';
|
||||
print '<td class="titlefield">';
|
||||
print $langs->trans("ListOfTrackedEvents").'</td><td>';
|
||||
$arrayoftrackedevents = $block_static->trackedevents;
|
||||
foreach ($arrayoftrackedevents as $key => $val)
|
||||
{
|
||||
foreach ($arrayoftrackedevents as $key => $val) {
|
||||
print $key.' - '.$langs->trans($val).'<br>';
|
||||
}
|
||||
|
||||
@@ -174,8 +171,7 @@ print '</tr>';
|
||||
|
||||
print '</table>';
|
||||
|
||||
if ($withtab)
|
||||
{
|
||||
if ($withtab) {
|
||||
print dol_get_fiche_end();
|
||||
}
|
||||
|
||||
|
||||
@@ -33,7 +33,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
||||
// Load translation files required by the page
|
||||
$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');
|
||||
$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')
|
||||
|
||||
$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_fk_user = GETPOST('search_fk_user', 'intcomma');
|
||||
$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;
|
||||
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_ref = GETPOST('search_ref', '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
|
||||
$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit;
|
||||
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
||||
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
||||
$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;
|
||||
$pageprev = $page - 1;
|
||||
$pagenext = $page + 1;
|
||||
|
||||
if (empty($sortfield)) $sortfield = 'rowid';
|
||||
if (empty($sortorder)) $sortorder = 'DESC';
|
||||
if (empty($sortfield)) {
|
||||
$sortfield = 'rowid';
|
||||
}
|
||||
if (empty($sortorder)) {
|
||||
$sortorder = 'DESC';
|
||||
}
|
||||
|
||||
$block_static = new BlockedLog($db);
|
||||
$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_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.");
|
||||
@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
|
||||
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_fk_user = '';
|
||||
$search_start = -1;
|
||||
@@ -120,14 +134,12 @@ if ($action === 'downloadblockchain') {
|
||||
$previoushash = '';
|
||||
$firstid = '';
|
||||
|
||||
if (!$error)
|
||||
{
|
||||
if (!$error) {
|
||||
// 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 .= " FROM ".MAIN_DB_PREFIX."blockedlog";
|
||||
$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);
|
||||
$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)."'";
|
||||
@@ -136,12 +148,10 @@ if ($action === 'downloadblockchain') {
|
||||
$sql .= $db->plimit(1);
|
||||
|
||||
$res = $db->query($sql);
|
||||
if ($res)
|
||||
{
|
||||
if ($res) {
|
||||
// Make the first fetch to get first line
|
||||
$obj = $db->fetch_object($res);
|
||||
if ($obj)
|
||||
{
|
||||
if ($obj) {
|
||||
$previoushash = $block_static->getPreviousHash(0, $obj->rowid);
|
||||
$firstid = $obj->rowid;
|
||||
} 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
|
||||
$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 .= " 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);
|
||||
$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)."'";
|
||||
@@ -169,8 +177,7 @@ if ($action === 'downloadblockchain') {
|
||||
$sql .= " ORDER BY rowid ASC"; // Required so later we can use the parameter $previoushash of checkSignature()
|
||||
|
||||
$res = $db->query($sql);
|
||||
if ($res)
|
||||
{
|
||||
if ($res) {
|
||||
header('Content-Type: application/octet-stream');
|
||||
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\"");
|
||||
@@ -193,8 +200,7 @@ if ($action === 'downloadblockchain') {
|
||||
$loweridinerror = 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
|
||||
// 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;
|
||||
@@ -213,19 +219,20 @@ if ($action === 'downloadblockchain') {
|
||||
|
||||
$checksignature = $block_static->checkSignature($previoushash); // If $previoushash is not defined, checkSignature will search it
|
||||
|
||||
if ($checksignature)
|
||||
{
|
||||
if ($checksignature) {
|
||||
$statusofrecord = 'Valid';
|
||||
if ($loweridinerror > 0) $statusofrecordnote = 'ValidButFoundAPreviousKO';
|
||||
else $statusofrecordnote = '';
|
||||
if ($loweridinerror > 0) {
|
||||
$statusofrecordnote = 'ValidButFoundAPreviousKO';
|
||||
} else {
|
||||
$statusofrecordnote = '';
|
||||
}
|
||||
} else {
|
||||
$statusofrecord = 'KO';
|
||||
$statusofrecordnote = 'LineCorruptedOrNotMatchingPreviousOne';
|
||||
$loweridinerror = $obj->rowid;
|
||||
}
|
||||
|
||||
if ($i == 0)
|
||||
{
|
||||
if ($i == 0) {
|
||||
$statusofrecordnote = $langs->trans("PreviousFingerprint").': '.$previoushash.($statusofrecordnote ? ' - '.$statusofrecordnote : '');
|
||||
}
|
||||
print $obj->rowid;
|
||||
@@ -263,8 +270,7 @@ if ($action === 'downloadblockchain') {
|
||||
|
||||
$form = new Form($db);
|
||||
|
||||
if (GETPOST('withtab', 'alpha'))
|
||||
{
|
||||
if (GETPOST('withtab', 'alpha')) {
|
||||
$title = $langs->trans("ModuleSetup").' '.$langs->trans('BlockedLog');
|
||||
} else {
|
||||
$title = $langs->trans("BrowseBlockedLog");
|
||||
@@ -275,10 +281,8 @@ llxHeader('', $langs->trans("BrowseBlockedLog"));
|
||||
$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);
|
||||
if (!is_array($blocks))
|
||||
{
|
||||
if ($blocks == -2)
|
||||
{
|
||||
if (!is_array($blocks)) {
|
||||
if ($blocks == -2) {
|
||||
setEventMessages($langs->trans("TooManyRecordToScanRestrictFilters", $MAXLINES), null, 'errors');
|
||||
} else {
|
||||
dol_print_error($block_static->db, $block_static->error, $block_static->errors);
|
||||
@@ -287,15 +291,13 @@ if (!is_array($blocks))
|
||||
}
|
||||
|
||||
$linkback = '';
|
||||
if (GETPOST('withtab', 'alpha'))
|
||||
{
|
||||
if (GETPOST('withtab', 'alpha')) {
|
||||
$linkback = '<a href="'.($backtopage ? $backtopage : DOL_URL_ROOT.'/admin/modules.php').'">'.$langs->trans("BackToModuleList").'</a>';
|
||||
}
|
||||
|
||||
print load_fiche_titre($title, $linkback);
|
||||
|
||||
if (GETPOST('withtab', 'alpha'))
|
||||
{
|
||||
if (GETPOST('withtab', 'alpha')) {
|
||||
$head = blockedlogadmin_prepare_head();
|
||||
print dol_get_fiche_head($head, 'fingerprints', '', -1);
|
||||
}
|
||||
@@ -305,19 +307,45 @@ print '<span class="opacitymedium hideonsmartphone">'.$langs->trans("Fingerprint
|
||||
print '<br>';
|
||||
|
||||
$param = '';
|
||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage);
|
||||
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit);
|
||||
if ($search_id != '') $param .= '&search_id='.urlencode($search_id);
|
||||
if ($search_fk_user > 0) $param .= '&search_fk_user='.urlencode($search_fk_user);
|
||||
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'));
|
||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
|
||||
$param .= '&contextpage='.urlencode($contextpage);
|
||||
}
|
||||
if ($limit > 0 && $limit != $conf->liste_limit) {
|
||||
$param .= '&limit='.urlencode($limit);
|
||||
}
|
||||
if ($search_id != '') {
|
||||
$param .= '&search_id='.urlencode($search_id);
|
||||
}
|
||||
if ($search_fk_user > 0) {
|
||||
$param .= '&search_fk_user='.urlencode($search_fk_user);
|
||||
}
|
||||
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
|
||||
//include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
|
||||
@@ -332,8 +360,7 @@ $smonth = GETPOST('monthtoexport', 'int');
|
||||
$retstring = '';
|
||||
$retstring .= '<select class="flat valignmiddle maxwidth75imp marginrightonly" id="monthtoexport" name="monthtoexport">';
|
||||
$retstring .= '<option value="0" selected> </option>';
|
||||
for ($month = 1; $month <= 12; $month++)
|
||||
{
|
||||
for ($month = 1; $month <= 12; $month++) {
|
||||
$retstring .= '<option value="'.$month.'"'.($month == $smonth ? ' selected' : '').'>';
|
||||
$retstring .= dol_print_date(mktime(12, 0, 0, $month, 1, 2000), "%b");
|
||||
$retstring .= "</option>";
|
||||
@@ -343,7 +370,9 @@ print $retstring;
|
||||
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="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 '</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
|
||||
|
||||
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="formfilteraction" id="formfilteraction" 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;
|
||||
$checkresult = array();
|
||||
$checkdetail = array();
|
||||
if (is_array($blocks))
|
||||
{
|
||||
foreach ($blocks as &$block)
|
||||
{
|
||||
if (is_array($blocks)) {
|
||||
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
|
||||
|
||||
$checksignature = $tmpcheckresult['checkresult'];
|
||||
@@ -457,26 +486,25 @@ if (!empty($conf->global->BLOCKEDLOG_SCAN_ALL_FOR_LOWERIDINERROR)) {
|
||||
$checkresult[$block->id] = $checksignature; // false if error
|
||||
$checkdetail[$block->id] = $tmpcheckresult;
|
||||
|
||||
if (!$checksignature)
|
||||
{
|
||||
if (empty($loweridinerror)) $loweridinerror = $block->id;
|
||||
else $loweridinerror = min($loweridinerror, $block->id);
|
||||
if (!$checksignature) {
|
||||
if (empty($loweridinerror)) {
|
||||
$loweridinerror = $block->id;
|
||||
} else {
|
||||
$loweridinerror = min($loweridinerror, $block->id);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (is_array($blocks))
|
||||
{
|
||||
if (is_array($blocks)) {
|
||||
$nbshown = 0;
|
||||
$MAXFORSHOWLINK = 100;
|
||||
$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])
|
||||
{
|
||||
if (empty($search_showonlyerrors) || !$checkresult[$block->id]) {
|
||||
$nbshown++;
|
||||
|
||||
if ($nbshown < $MAXFORSHOWLINK) { // For performance and memory purpose, we get/show the link of objects only for the 100 first output
|
||||
@@ -485,72 +513,71 @@ if (is_array($blocks))
|
||||
$object_link = $block->element.'/'.$block->fk_object;
|
||||
}
|
||||
|
||||
print '<tr class="oddeven">';
|
||||
print '<tr class="oddeven">';
|
||||
|
||||
// ID
|
||||
print '<td>'.$block->id.'</td>';
|
||||
// ID
|
||||
print '<td>'.$block->id.'</td>';
|
||||
|
||||
// Date
|
||||
print '<td>'.dol_print_date($block->date_creation, 'dayhour').'</td>';
|
||||
// Date
|
||||
print '<td>'.dol_print_date($block->date_creation, 'dayhour').'</td>';
|
||||
|
||||
// User
|
||||
print '<td>';
|
||||
//print $block->getUser()
|
||||
print $block->user_fullname;
|
||||
print '</td>';
|
||||
print '<td>';
|
||||
//print $block->getUser()
|
||||
print $block->user_fullname;
|
||||
print '</td>';
|
||||
|
||||
// Action
|
||||
print '<td>'.$langs->trans('log'.$block->action).'</td>';
|
||||
// Action
|
||||
print '<td>'.$langs->trans('log'.$block->action).'</td>';
|
||||
|
||||
// Ref
|
||||
print '<td class="nowraponall">';
|
||||
print $block->ref_object;
|
||||
print '</td>';
|
||||
// Ref
|
||||
print '<td class="nowraponall">';
|
||||
print $block->ref_object;
|
||||
print '</td>';
|
||||
|
||||
// Link to source object
|
||||
print '<td'.(preg_match('/<a/', $object_link) ? ' class="nowrap"' : '').'><!-- object_link -->'.$object_link.'</td>';
|
||||
// Link to source object
|
||||
print '<td'.(preg_match('/<a/', $object_link) ? ' class="nowrap"' : '').'><!-- object_link -->'.$object_link.'</td>';
|
||||
|
||||
// Amount
|
||||
print '<td class="right nowraponall">'.price($block->amounts).'</td>';
|
||||
// Amount
|
||||
print '<td class="right nowraponall">'.price($block->amounts).'</td>';
|
||||
|
||||
// Details link
|
||||
print '<td align="center"><a href="#" data-blockid="'.$block->id.'" rel="show-info">'.img_info($langs->trans('ShowDetails')).'</a></td>';
|
||||
// Details link
|
||||
print '<td align="center"><a href="#" data-blockid="'.$block->id.'" rel="show-info">'.img_info($langs->trans('ShowDetails')).'</a></td>';
|
||||
|
||||
// Fingerprint
|
||||
print '<td class="nowrap">';
|
||||
$texttoshow = $langs->trans("Fingerprint").' - '.$langs->trans("Saved").':<br>'.$block->signature;
|
||||
$texttoshow .= '<br><br>'.$langs->trans("Fingerprint").' - Recalculated sha256(previoushash * data):<br>'.$checkdetail[$block->id]['calculatedsignature'];
|
||||
$texttoshow .= '<br><span class="opacitymedium">'.$langs->trans("PreviousHash").'='.$checkdetail[$block->id]['previoushash'].'</span>';
|
||||
//$texttoshow .= '<br>keyforsignature='.$checkdetail[$block->id]['keyforsignature'];
|
||||
print $form->textwithpicto(dol_trunc($block->signature, '8'), $texttoshow, 1, 'help', '', 0, 2, 'fingerprint'.$block->id);
|
||||
print '</td>';
|
||||
// Fingerprint
|
||||
print '<td class="nowrap">';
|
||||
$texttoshow = $langs->trans("Fingerprint").' - '.$langs->trans("Saved").':<br>'.$block->signature;
|
||||
$texttoshow .= '<br><br>'.$langs->trans("Fingerprint").' - Recalculated sha256(previoushash * data):<br>'.$checkdetail[$block->id]['calculatedsignature'];
|
||||
$texttoshow .= '<br><span class="opacitymedium">'.$langs->trans("PreviousHash").'='.$checkdetail[$block->id]['previoushash'].'</span>';
|
||||
//$texttoshow .= '<br>keyforsignature='.$checkdetail[$block->id]['keyforsignature'];
|
||||
print $form->textwithpicto(dol_trunc($block->signature, '8'), $texttoshow, 1, 'help', '', 0, 2, 'fingerprint'.$block->id);
|
||||
print '</td>';
|
||||
|
||||
// Status
|
||||
print '<td class="center">';
|
||||
if (!$checkresult[$block->id] || ($loweridinerror && $block->id >= $loweridinerror)) // If error
|
||||
{
|
||||
if ($checkresult[$block->id]) {
|
||||
print '<span class="badge badge-status4 badge-status" title="'.$langs->trans('OkCheckFingerprintValidityButChainIsKo').'">OK</span>';
|
||||
}
|
||||
else {
|
||||
print '<span class="badge badge-status8 badge-status" title="'.$langs->trans('KoCheckFingerprintValidity').'">KO</span>';
|
||||
}
|
||||
} else {
|
||||
print '<span class="badge badge-status4 badge-status" title="'.$langs->trans('OkCheckFingerprintValidity').'">OK</span>';
|
||||
}
|
||||
print '</td>';
|
||||
// Status
|
||||
print '<td class="center">';
|
||||
if (!$checkresult[$block->id] || ($loweridinerror && $block->id >= $loweridinerror)) { // If error
|
||||
if ($checkresult[$block->id]) {
|
||||
print '<span class="badge badge-status4 badge-status" title="'.$langs->trans('OkCheckFingerprintValidityButChainIsKo').'">OK</span>';
|
||||
} else {
|
||||
print '<span class="badge badge-status8 badge-status" title="'.$langs->trans('KoCheckFingerprintValidity').'">KO</span>';
|
||||
}
|
||||
} else {
|
||||
print '<span class="badge badge-status4 badge-status" title="'.$langs->trans('OkCheckFingerprintValidity').'">OK</span>';
|
||||
}
|
||||
print '</td>';
|
||||
|
||||
// Note
|
||||
print '<td class="center">';
|
||||
if (!$checkresult[$block->id] || ($loweridinerror && $block->id >= $loweridinerror)) // If error
|
||||
{
|
||||
if ($checkresult[$block->id]) print $form->textwithpicto('', $langs->trans('OkCheckFingerprintValidityButChainIsKo'));
|
||||
}
|
||||
// Note
|
||||
print '<td class="center">';
|
||||
if (!$checkresult[$block->id] || ($loweridinerror && $block->id >= $loweridinerror)) { // If error
|
||||
if ($checkresult[$block->id]) {
|
||||
print $form->textwithpicto('', $langs->trans('OkCheckFingerprintValidityButChainIsKo'));
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($conf->global->BLOCKEDLOG_USE_REMOTE_AUTHORITY) && !empty($conf->global->BLOCKEDLOG_AUTHORITY_URL)) {
|
||||
print ' '.($block->certified ? img_picto($langs->trans('AddedByAuthority'), 'info') : img_picto($langs->trans('NotAddedByAuthorityYet'), 'info_black'));
|
||||
}
|
||||
print '</td>';
|
||||
if (!empty($conf->global->BLOCKEDLOG_USE_REMOTE_AUTHORITY) && !empty($conf->global->BLOCKEDLOG_AUTHORITY_URL)) {
|
||||
print ' '.($block->certified ? img_picto($langs->trans('AddedByAuthority'), 'info') : img_picto($langs->trans('NotAddedByAuthorityYet'), 'info_black'));
|
||||
}
|
||||
print '</td>';
|
||||
|
||||
print '<td></td>';
|
||||
|
||||
@@ -598,8 +625,7 @@ jQuery(document).ready(function () {
|
||||
</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">
|
||||
|
||||
@@ -618,11 +644,10 @@ if (!empty($conf->global->BLOCKEDLOG_USE_REMOTE_AUTHORITY) && !empty($conf->glob
|
||||
});
|
||||
|
||||
</script>
|
||||
<?php
|
||||
<?php
|
||||
}
|
||||
|
||||
if (GETPOST('withtab', 'alpha'))
|
||||
{
|
||||
if (GETPOST('withtab', 'alpha')) {
|
||||
print dol_get_fiche_end();
|
||||
}
|
||||
|
||||
|
||||
@@ -26,9 +26,15 @@
|
||||
// This script is called with a POST method.
|
||||
// Directory to scan (full path) is inside POST['dir'].
|
||||
|
||||
if (!defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', 1); // Disables token renewal
|
||||
if (!defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1');
|
||||
if (!defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1');
|
||||
if (!defined('NOTOKENRENEWAL')) {
|
||||
define('NOTOKENRENEWAL', 1); // Disables token renewal
|
||||
}
|
||||
if (!defined('NOREQUIREMENU')) {
|
||||
define('NOREQUIREMENU', '1');
|
||||
}
|
||||
if (!defined('NOREQUIREHTML')) {
|
||||
define('NOREQUIREHTML', '1');
|
||||
}
|
||||
|
||||
$res = require '../../master.inc.php';
|
||||
|
||||
|
||||
@@ -26,9 +26,15 @@
|
||||
// This script is called with a POST method.
|
||||
// Directory to scan (full path) is inside POST['dir'].
|
||||
|
||||
if (!defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', 1); // Disables token renewal
|
||||
if (!defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1');
|
||||
if (!defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1');
|
||||
if (!defined('NOTOKENRENEWAL')) {
|
||||
define('NOTOKENRENEWAL', 1); // Disables token renewal
|
||||
}
|
||||
if (!defined('NOREQUIREMENU')) {
|
||||
define('NOREQUIREMENU', '1');
|
||||
}
|
||||
if (!defined('NOREQUIREHTML')) {
|
||||
define('NOREQUIREHTML', '1');
|
||||
}
|
||||
|
||||
$res = require '../../main.inc.php';
|
||||
|
||||
|
||||
@@ -26,9 +26,15 @@
|
||||
// This script is called with a POST method.
|
||||
// Directory to scan (full path) is inside POST['dir'].
|
||||
|
||||
if (!defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', 1); // Disables token renewal
|
||||
if (!defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1');
|
||||
if (!defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1');
|
||||
if (!defined('NOTOKENRENEWAL')) {
|
||||
define('NOTOKENRENEWAL', 1); // Disables token renewal
|
||||
}
|
||||
if (!defined('NOREQUIREMENU')) {
|
||||
define('NOREQUIREMENU', '1');
|
||||
}
|
||||
if (!defined('NOREQUIREHTML')) {
|
||||
define('NOREQUIREHTML', '1');
|
||||
}
|
||||
|
||||
|
||||
require '../../main.inc.php';
|
||||
@@ -37,7 +43,9 @@ require_once DOL_DOCUMENT_ROOT.'/blockedlog/class/blockedlog.class.php';
|
||||
$id = GETPOST('id', 'int');
|
||||
$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"));
|
||||
|
||||
@@ -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 '<tbody>';
|
||||
|
||||
if ($block->fetch($id) > 0)
|
||||
{
|
||||
if ($block->fetch($id) > 0) {
|
||||
$objtoshow = $block->object_data;
|
||||
print formatObject($objtoshow, '');
|
||||
} else {
|
||||
@@ -77,18 +84,14 @@ function formatObject($objtoshow, $prefix)
|
||||
|
||||
$newobjtoshow = $objtoshow;
|
||||
|
||||
if (is_object($newobjtoshow) || is_array($newobjtoshow))
|
||||
{
|
||||
if (is_object($newobjtoshow) || is_array($newobjtoshow)) {
|
||||
//var_dump($newobjtoshow);
|
||||
foreach ($newobjtoshow as $key => $val)
|
||||
{
|
||||
if (!is_object($val) && !is_array($val))
|
||||
{
|
||||
foreach ($newobjtoshow as $key => $val) {
|
||||
if (!is_object($val) && !is_array($val)) {
|
||||
// TODO $val can be '__PHP_Incomplete_Class', the is_object return false
|
||||
$s .= '<tr><td>'.($prefix ? $prefix.' > ' : '').$key.'</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_array($val));
|
||||
var_dump(is_array($val));
|
||||
@@ -99,11 +102,9 @@ function formatObject($objtoshow, $prefix)
|
||||
$s .= $val;
|
||||
}
|
||||
$s .= '</td></tr>';
|
||||
} elseif (is_array($val))
|
||||
{
|
||||
} elseif (is_array($val)) {
|
||||
$s .= formatObject($val, ($prefix ? $prefix.' > ' : '').$key);
|
||||
} elseif (is_object($val))
|
||||
{
|
||||
} elseif (is_object($val)) {
|
||||
$s .= formatObject($val, ($prefix ? $prefix.' > ' : '').$key);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,14 +26,22 @@
|
||||
// This script is called with a POST method.
|
||||
// Directory to scan (full path) is inside POST['dir'].
|
||||
|
||||
if (!defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', 1); // Disables token renewal
|
||||
if (!defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1');
|
||||
if (!defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1');
|
||||
if (!defined('NOTOKENRENEWAL')) {
|
||||
define('NOTOKENRENEWAL', 1); // Disables token renewal
|
||||
}
|
||||
if (!defined('NOREQUIREMENU')) {
|
||||
define('NOREQUIREMENU', '1');
|
||||
}
|
||||
if (!defined('NOREQUIREHTML')) {
|
||||
define('NOREQUIREHTML', '1');
|
||||
}
|
||||
|
||||
|
||||
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/authority.class.php';
|
||||
|
||||
@@ -122,7 +122,9 @@ class BlockedLogAuthority
|
||||
public function checkBlock($block)
|
||||
{
|
||||
|
||||
if (strlen($block) != 64) return false;
|
||||
if (strlen($block) != 64) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$blocks = str_split($this->blockchain, 64);
|
||||
|
||||
@@ -148,8 +150,7 @@ class BlockedLogAuthority
|
||||
|
||||
dol_syslog(get_class($this)."::fetch id=".$id, LOG_DEBUG);
|
||||
|
||||
if (empty($id) && empty($signature))
|
||||
{
|
||||
if (empty($id) && empty($signature)) {
|
||||
$this->error = 'BadParameter';
|
||||
return -1;
|
||||
}
|
||||
@@ -159,14 +160,15 @@ class BlockedLogAuthority
|
||||
$sql = "SELECT b.rowid, b.signature, b.blockchain, b.tms";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."blockedlog_authority as b";
|
||||
|
||||
if ($id) $sql .= " WHERE b.rowid = ".$id;
|
||||
elseif ($signature)$sql .= " WHERE b.signature = '".$this->db->escape($signature)."'";
|
||||
if ($id) {
|
||||
$sql .= " WHERE b.rowid = ".$id;
|
||||
} elseif ($signature) {
|
||||
$sql .= " WHERE b.signature = '".$this->db->escape($signature)."'";
|
||||
}
|
||||
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
if ($this->db->num_rows($resql))
|
||||
{
|
||||
if ($resql) {
|
||||
if ($this->db->num_rows($resql)) {
|
||||
$obj = $this->db->fetch_object($resql);
|
||||
|
||||
$this->id = $obj->rowid;
|
||||
@@ -216,12 +218,10 @@ class BlockedLogAuthority
|
||||
$sql .= ")";
|
||||
|
||||
$res = $this->db->query($sql);
|
||||
if ($res)
|
||||
{
|
||||
if ($res) {
|
||||
$id = $this->db->last_insert_id(MAIN_DB_PREFIX."blockedlog_authority");
|
||||
|
||||
if ($id > 0)
|
||||
{
|
||||
if ($id > 0) {
|
||||
$this->id = $id;
|
||||
|
||||
$this->db->commit();
|
||||
@@ -262,8 +262,7 @@ class BlockedLogAuthority
|
||||
$sql .= " WHERE rowid=".$this->id;
|
||||
|
||||
$res = $this->db->query($sql);
|
||||
if ($res)
|
||||
{
|
||||
if ($res) {
|
||||
$this->db->commit();
|
||||
|
||||
return 1;
|
||||
|
||||
@@ -319,11 +319,9 @@ class BlockedLog
|
||||
} else {
|
||||
$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>';
|
||||
} elseif ($this->action == 'MODULE_RESET')
|
||||
{
|
||||
} elseif ($this->action == 'MODULE_RESET') {
|
||||
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>';
|
||||
} else {
|
||||
@@ -342,7 +340,9 @@ class BlockedLog
|
||||
{
|
||||
global $langs, $cachedUser;
|
||||
|
||||
if (empty($cachedUser))$cachedUser = array();
|
||||
if (empty($cachedUser)) {
|
||||
$cachedUser = array();
|
||||
}
|
||||
|
||||
if (empty($cachedUser[$this->fk_user])) {
|
||||
$u = new User($this->db);
|
||||
@@ -371,7 +371,9 @@ class BlockedLog
|
||||
{
|
||||
global $langs, $user, $mysoc;
|
||||
|
||||
if (is_object($fuser)) $user = $fuser;
|
||||
if (is_object($fuser)) {
|
||||
$user = $fuser;
|
||||
}
|
||||
|
||||
// Generic fields
|
||||
|
||||
@@ -380,20 +382,15 @@ class BlockedLog
|
||||
// amount
|
||||
$this->amounts = $amounts;
|
||||
// date
|
||||
if ($object->element == 'payment' || $object->element == 'payment_supplier')
|
||||
{
|
||||
if ($object->element == 'payment' || $object->element == 'payment_supplier') {
|
||||
$this->date_object = $object->datepaye;
|
||||
} elseif ($object->element == 'payment_salary')
|
||||
{
|
||||
} elseif ($object->element == 'payment_salary') {
|
||||
$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;
|
||||
} elseif ($object->element == 'subscription')
|
||||
{
|
||||
} elseif ($object->element == 'subscription') {
|
||||
$this->date_object = $object->dateh;
|
||||
} elseif ($object->element == 'cashcontrol')
|
||||
{
|
||||
} elseif ($object->element == 'cashcontrol') {
|
||||
$this->date_object = $object->date_creation;
|
||||
} else {
|
||||
$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',
|
||||
'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',
|
||||
'fk_incoterms', 'label_incoterms', 'location_incoterms', 'lines')
|
||||
);
|
||||
'fk_incoterms', 'label_incoterms', 'location_incoterms', 'lines'));
|
||||
}
|
||||
|
||||
// Add thirdparty info
|
||||
if (empty($object->thirdparty) && method_exists($object, 'fetch_thirdparty')) $object->fetch_thirdparty();
|
||||
if (!empty($object->thirdparty))
|
||||
{
|
||||
if (empty($object->thirdparty) && method_exists($object, 'fetch_thirdparty')) {
|
||||
$object->fetch_thirdparty();
|
||||
}
|
||||
if (!empty($object->thirdparty)) {
|
||||
$this->object_data->thirdparty = new stdClass();
|
||||
|
||||
foreach ($object->thirdparty as $key=>$value)
|
||||
{
|
||||
if (in_array($key, $arrayoffieldstoexclude)) continue; // Discard some properties
|
||||
foreach ($object->thirdparty as $key => $value) {
|
||||
if (in_array($key, $arrayoffieldstoexclude)) {
|
||||
continue; // Discard some properties
|
||||
}
|
||||
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',
|
||||
'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
|
||||
if (!empty($mysoc))
|
||||
{
|
||||
if (!empty($mysoc)) {
|
||||
$this->object_data->mycompany = new stdClass();
|
||||
|
||||
foreach ($mysoc as $key=>$value)
|
||||
{
|
||||
if (in_array($key, $arrayoffieldstoexclude)) continue; // Discard some properties
|
||||
foreach ($mysoc as $key => $value) {
|
||||
if (in_array($key, $arrayoffieldstoexclude)) {
|
||||
continue; // Discard some properties
|
||||
}
|
||||
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',
|
||||
'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
|
||||
if (!empty($user))
|
||||
{
|
||||
if (!empty($user)) {
|
||||
$this->fk_user = $user->id;
|
||||
$this->user_fullname = $user->getFullName($langs);
|
||||
}
|
||||
|
||||
// Field specific to object
|
||||
if ($this->element == 'facture')
|
||||
{
|
||||
foreach ($object as $key=>$value)
|
||||
{
|
||||
if (in_array($key, $arrayoffieldstoexclude)) continue; // Discard some properties
|
||||
if ($this->element == 'facture') {
|
||||
foreach ($object as $key => $value) {
|
||||
if (in_array($key, $arrayoffieldstoexclude)) {
|
||||
continue; // Discard some properties
|
||||
}
|
||||
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'
|
||||
))) continue; // Discard if not into a dedicated list
|
||||
if ($key == 'lines')
|
||||
{
|
||||
))) {
|
||||
continue; // Discard if not into a dedicated list
|
||||
}
|
||||
if ($key == 'lines') {
|
||||
$lineid = 0;
|
||||
foreach ($value as $tmpline) // $tmpline is object FactureLine
|
||||
{
|
||||
foreach ($value as $tmpline) { // $tmpline is object FactureLine
|
||||
$lineid++;
|
||||
foreach ($tmpline as $keyline => $valueline)
|
||||
{
|
||||
foreach ($tmpline as $keyline => $valueline) {
|
||||
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'
|
||||
))) 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
|
||||
$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;
|
||||
} elseif ($this->element == 'invoice_supplier')
|
||||
{
|
||||
foreach ($object as $key => $value)
|
||||
{
|
||||
if (in_array($key, $arrayoffieldstoexclude)) continue; // Discard some properties
|
||||
if (!empty($object->newref)) {
|
||||
$this->object_data->ref = $object->newref;
|
||||
}
|
||||
} elseif ($this->element == 'invoice_supplier') {
|
||||
foreach ($object as $key => $value) {
|
||||
if (in_array($key, $arrayoffieldstoexclude)) {
|
||||
continue; // Discard some properties
|
||||
}
|
||||
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'
|
||||
))) 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;
|
||||
} elseif ($this->element == 'payment' || $this->element == 'payment_supplier' || $this->element == 'payment_donation' || $this->element == 'payment_various')
|
||||
{
|
||||
if (!empty($object->newref)) {
|
||||
$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);
|
||||
$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->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->note_private)) $this->object_data->note_private = $object->note_private;
|
||||
if (!empty($object->num_payment)) {
|
||||
$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;
|
||||
//var_dump($this->object_data);exit;
|
||||
|
||||
$totalamount = 0;
|
||||
|
||||
if (!is_array($object->amounts) && $object->amount)
|
||||
{
|
||||
if (!is_array($object->amounts) && $object->amount) {
|
||||
$object->amounts = array($object->id => $object->amount);
|
||||
}
|
||||
|
||||
$paymentpartnumber = 0;
|
||||
foreach ($object->amounts as $objid => $amount)
|
||||
{
|
||||
if (empty($amount)) continue;
|
||||
foreach ($object->amounts as $objid => $amount) {
|
||||
if (empty($amount)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$totalamount += $amount;
|
||||
|
||||
$tmpobject = null;
|
||||
if ($this->element == 'payment_supplier')
|
||||
{
|
||||
if ($this->element == 'payment_supplier') {
|
||||
include_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php';
|
||||
$tmpobject = new FactureFournisseur($this->db);
|
||||
} elseif ($this->element == 'payment')
|
||||
{
|
||||
} elseif ($this->element == 'payment') {
|
||||
include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
|
||||
$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';
|
||||
$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';
|
||||
$tmpobject = new PaymentVarious($this->db);
|
||||
}
|
||||
|
||||
if (!is_object($tmpobject))
|
||||
{
|
||||
if (!is_object($tmpobject)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$result = $tmpobject->fetch($objid);
|
||||
|
||||
if ($result <= 0)
|
||||
{
|
||||
if ($result <= 0) {
|
||||
$this->error = $tmpobject->error;
|
||||
$this->errors = $tmpobject->errors;
|
||||
dol_syslog("Failed to fetch object with id ".$objid, LOG_ERR);
|
||||
@@ -579,50 +592,61 @@ class BlockedLog
|
||||
$paymentpart = new stdClass();
|
||||
$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();
|
||||
if ($result == 0)
|
||||
{
|
||||
if ($result == 0) {
|
||||
$this->error = 'Failed to fetch thirdparty for object with id '.$tmpobject->id;
|
||||
$this->errors[] = $this->error;
|
||||
dol_syslog("Failed to fetch thirdparty for object with id ".$tmpobject->id, LOG_ERR);
|
||||
return -1;
|
||||
} elseif ($result < 0)
|
||||
{
|
||||
} elseif ($result < 0) {
|
||||
$this->error = $tmpobject->error;
|
||||
$this->errors = $tmpobject->errors;
|
||||
return -1;
|
||||
}
|
||||
|
||||
$paymentpart->thirdparty = new stdClass();
|
||||
foreach ($tmpobject->thirdparty as $key=>$value)
|
||||
{
|
||||
if (in_array($key, $arrayoffieldstoexclude)) continue; // Discard some properties
|
||||
foreach ($tmpobject->thirdparty as $key => $value) {
|
||||
if (in_array($key, $arrayoffieldstoexclude)) {
|
||||
continue; // Discard some properties
|
||||
}
|
||||
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',
|
||||
'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
|
||||
if ($this->element == 'payment_donation') $paymentpart->donation = new stdClass();
|
||||
else $paymentpart->invoice = new stdClass();
|
||||
if ($this->element == 'payment_donation') {
|
||||
$paymentpart->donation = new stdClass();
|
||||
} else {
|
||||
$paymentpart->invoice = new stdClass();
|
||||
}
|
||||
|
||||
if ($this->element != 'payment_various')
|
||||
{
|
||||
foreach ($tmpobject as $key=>$value)
|
||||
{
|
||||
if (in_array($key, $arrayoffieldstoexclude)) continue; // Discard some properties
|
||||
if ($this->element != 'payment_various') {
|
||||
foreach ($tmpobject as $key => $value) {
|
||||
if (in_array($key, $arrayoffieldstoexclude)) {
|
||||
continue; // Discard some properties
|
||||
}
|
||||
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'
|
||||
))) 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 ($this->element == 'payment_donation') $paymentpart->donation->{$key} = $value;
|
||||
elseif ($this->element == 'payment_various') $paymentpart->various->{$key} = $value;
|
||||
else $paymentpart->invoice->{$key} = $value;
|
||||
if ($this->element == 'payment_donation') {
|
||||
$paymentpart->donation->{$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;
|
||||
|
||||
if (!empty($object->newref)) $this->object_data->ref = $object->newref;
|
||||
} elseif ($this->element == 'payment_salary')
|
||||
{
|
||||
if (!empty($object->newref)) {
|
||||
$this->object_data->ref = $object->newref;
|
||||
}
|
||||
} elseif ($this->element == 'payment_salary') {
|
||||
$this->object_data->amounts = array($object->amount);
|
||||
|
||||
if (!empty($object->newref)) $this->object_data->ref = $object->newref;
|
||||
} elseif ($this->element == 'subscription')
|
||||
{
|
||||
foreach ($object as $key=>$value)
|
||||
{
|
||||
if (in_array($key, $arrayoffieldstoexclude)) continue; // Discard some properties
|
||||
if (!empty($object->newref)) {
|
||||
$this->object_data->ref = $object->newref;
|
||||
}
|
||||
} elseif ($this->element == 'subscription') {
|
||||
foreach ($object as $key => $value) {
|
||||
if (in_array($key, $arrayoffieldstoexclude)) {
|
||||
continue; // Discard some properties
|
||||
}
|
||||
if (!in_array($key, array(
|
||||
'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
|
||||
{
|
||||
foreach ($object as $key=>$value)
|
||||
{
|
||||
if (in_array($key, $arrayoffieldstoexclude)) continue; // Discard some properties
|
||||
if (!is_object($value) && !is_null($value) && $value !== '') $this->object_data->{$key} = $value;
|
||||
foreach ($object as $key => $value) {
|
||||
if (in_array($key, $arrayoffieldstoexclude)) {
|
||||
continue; // Discard some properties
|
||||
}
|
||||
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;
|
||||
@@ -675,8 +713,7 @@ class BlockedLog
|
||||
{
|
||||
global $langs;
|
||||
|
||||
if (empty($id))
|
||||
{
|
||||
if (empty($id)) {
|
||||
$this->error = 'BadParameter';
|
||||
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 .= " 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";
|
||||
if ($id) $sql .= " WHERE b.rowid = ".((int) $id);
|
||||
if ($id) {
|
||||
$sql .= " WHERE b.rowid = ".((int) $id);
|
||||
}
|
||||
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
if ($resql) {
|
||||
$obj = $this->db->fetch_object($resql);
|
||||
if ($obj) {
|
||||
$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);
|
||||
if ($res === false) return false;
|
||||
if ($res === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
// 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");
|
||||
dol_syslog($this->error, LOG_WARNING);
|
||||
return -1;
|
||||
@@ -803,7 +842,9 @@ class BlockedLog
|
||||
dol_syslog($this->error, LOG_WARNING);
|
||||
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();
|
||||
|
||||
@@ -817,7 +858,9 @@ class BlockedLog
|
||||
|
||||
$this->signature_line = dol_hash($keyforsignature, '5'); // Not really usefull
|
||||
$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);
|
||||
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."blockedlog (";
|
||||
@@ -855,12 +898,10 @@ class BlockedLog
|
||||
$sql .= ")";
|
||||
|
||||
$res = $this->db->query($sql);
|
||||
if ($res)
|
||||
{
|
||||
if ($res) {
|
||||
$id = $this->db->last_insert_id(MAIN_DB_PREFIX."blockedlog");
|
||||
|
||||
if ($id > 0)
|
||||
{
|
||||
if ($id > 0) {
|
||||
$this->id = $id;
|
||||
|
||||
$this->db->commit();
|
||||
@@ -888,8 +929,7 @@ class BlockedLog
|
||||
*/
|
||||
public function checkSignature($previoushash = '', $returnarray = 0)
|
||||
{
|
||||
if (empty($previoushash))
|
||||
{
|
||||
if (empty($previoushash)) {
|
||||
$previoushash = $this->getPreviousHash(0, $this->id);
|
||||
}
|
||||
// Recalculate hash
|
||||
@@ -949,31 +989,31 @@ class BlockedLog
|
||||
|
||||
$previoussignature = '';
|
||||
|
||||
$sql = "SELECT rowid, signature FROM ".MAIN_DB_PREFIX."blockedlog";
|
||||
$sql .= " WHERE entity=".$conf->entity;
|
||||
if ($beforeid) $sql .= " AND rowid < ".(int) $beforeid;
|
||||
$sql .= " ORDER BY rowid DESC LIMIT 1";
|
||||
$sql .= ($withlock ? " FOR UPDATE " : "");
|
||||
$sql = "SELECT rowid, signature FROM ".MAIN_DB_PREFIX."blockedlog";
|
||||
$sql .= " WHERE entity=".$conf->entity;
|
||||
if ($beforeid) {
|
||||
$sql .= " AND rowid < ".(int) $beforeid;
|
||||
}
|
||||
$sql .= " ORDER BY rowid DESC LIMIT 1";
|
||||
$sql .= ($withlock ? " FOR UPDATE " : "");
|
||||
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql) {
|
||||
$obj = $this->db->fetch_object($resql);
|
||||
if ($obj)
|
||||
{
|
||||
$previoussignature = $obj->signature;
|
||||
}
|
||||
} else {
|
||||
dol_print_error($this->db);
|
||||
exit;
|
||||
}
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql) {
|
||||
$obj = $this->db->fetch_object($resql);
|
||||
if ($obj) {
|
||||
$previoussignature = $obj->signature;
|
||||
}
|
||||
} else {
|
||||
dol_print_error($this->db);
|
||||
exit;
|
||||
}
|
||||
|
||||
if (empty($previoussignature))
|
||||
{
|
||||
if (empty($previoussignature)) {
|
||||
// First signature line (line 0)
|
||||
$previoussignature = $this->getSignature();
|
||||
}
|
||||
$previoussignature = $this->getSignature();
|
||||
}
|
||||
|
||||
return $previoussignature;
|
||||
return $previoussignature;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1001,7 +1041,7 @@ class BlockedLog
|
||||
//if (empty($cachedlogs)) $cachedlogs = array();
|
||||
|
||||
if ($element == 'all') {
|
||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."blockedlog
|
||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."blockedlog
|
||||
WHERE entity=".$conf->entity;
|
||||
} elseif ($element == 'not_certified') {
|
||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."blockedlog
|
||||
@@ -1014,13 +1054,27 @@ class BlockedLog
|
||||
WHERE entity=".$conf->entity." AND element='".$this->db->escape($element)."'";
|
||||
}
|
||||
|
||||
if ($fk_object) $sql .= natural_search("rowid", $fk_object, 1);
|
||||
if ($search_fk_user > 0) $sql .= natural_search("fk_user", $search_fk_user, 2);
|
||||
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);
|
||||
if ($fk_object) {
|
||||
$sql .= natural_search("rowid", $fk_object, 1);
|
||||
}
|
||||
if ($search_fk_user > 0) {
|
||||
$sql .= natural_search("fk_user", $search_fk_user, 2);
|
||||
}
|
||||
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->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();
|
||||
|
||||
$i = 0;
|
||||
while ($obj = $this->db->fetch_object($res))
|
||||
{
|
||||
while ($obj = $this->db->fetch_object($res)) {
|
||||
$i++;
|
||||
if ($i > $limit)
|
||||
{
|
||||
if ($i > $limit) {
|
||||
// Too many record, we will consume too much memory
|
||||
return -2;
|
||||
}
|
||||
@@ -1096,15 +1148,20 @@ class BlockedLog
|
||||
|
||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."blockedlog";
|
||||
$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);
|
||||
|
||||
$res = $this->db->query($sql);
|
||||
if ($res !== false)
|
||||
{
|
||||
if ($res !== false) {
|
||||
$obj = $this->db->fetch_object($res);
|
||||
if ($obj) $result = true;
|
||||
} else dol_print_error($this->db);
|
||||
if ($obj) {
|
||||
$result = true;
|
||||
}
|
||||
} else {
|
||||
dol_print_error($this->db);
|
||||
}
|
||||
|
||||
dol_syslog("Module Blockedlog alreadyUsed with ignoresystem=".$ignoresystem." is ".$result);
|
||||
|
||||
|
||||
@@ -44,8 +44,7 @@ function blockedlogadmin_prepare_head()
|
||||
|
||||
require_once DOL_DOCUMENT_ROOT.'/blockedlog/class/blockedlog.class.php';
|
||||
$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][2] = 'fingerprints';
|
||||
|
||||
@@ -52,8 +52,7 @@ $object = new Bookmark($db);
|
||||
* Actions
|
||||
*/
|
||||
|
||||
if ($action == 'add' || $action == 'addproduct' || $action == 'update')
|
||||
{
|
||||
if ($action == 'add' || $action == 'addproduct' || $action == 'update') {
|
||||
if ($action == 'update') {
|
||||
$invertedaction = 'edit';
|
||||
} else {
|
||||
@@ -62,14 +61,17 @@ if ($action == 'add' || $action == 'addproduct' || $action == 'update')
|
||||
|
||||
$error = 0;
|
||||
|
||||
if (GETPOST('cancel', 'alpha'))
|
||||
{
|
||||
if (empty($backtopage)) $backtopage = ($urlsource ? $urlsource : ((!empty($url) && !preg_match('/^http/i', $url)) ? $url : DOL_URL_ROOT.'/bookmarks/list.php'));
|
||||
if (GETPOST('cancel', 'alpha')) {
|
||||
if (empty($backtopage)) {
|
||||
$backtopage = ($urlsource ? $urlsource : ((!empty($url) && !preg_match('/^http/i', $url)) ? $url : DOL_URL_ROOT.'/bookmarks/list.php'));
|
||||
}
|
||||
header("Location: ".$backtopage);
|
||||
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.
|
||||
if (!empty($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');
|
||||
}
|
||||
|
||||
if (!$error)
|
||||
{
|
||||
if (!$error) {
|
||||
$object->favicon = 'none';
|
||||
|
||||
if ($action == 'update') $res = $object->update();
|
||||
else $res = $object->create();
|
||||
if ($action == 'update') {
|
||||
$res = $object->update();
|
||||
} else {
|
||||
$res = $object->create();
|
||||
}
|
||||
|
||||
if ($res > 0)
|
||||
{
|
||||
if (empty($backtopage)) $backtopage = ($urlsource ? $urlsource : ((!empty($url) && !preg_match('/^http/i', $url)) ? $url : DOL_URL_ROOT.'/bookmarks/list.php'));
|
||||
if ($res > 0) {
|
||||
if (empty($backtopage)) {
|
||||
$backtopage = ($urlsource ? $urlsource : ((!empty($url) && !preg_match('/^http/i', $url)) ? $url : DOL_URL_ROOT.'/bookmarks/list.php'));
|
||||
}
|
||||
header("Location: ".$backtopage);
|
||||
exit;
|
||||
} else {
|
||||
if ($object->errno == 'DB_ERROR_RECORD_ALREADY_EXISTS')
|
||||
{
|
||||
if ($object->errno == 'DB_ERROR_RECORD_ALREADY_EXISTS') {
|
||||
$langs->load("errors");
|
||||
setEventMessages($langs->transnoentities("WarningBookmarkAlreadyExists"), null, 'warnings');
|
||||
} else {
|
||||
@@ -137,8 +141,7 @@ $h++;
|
||||
$hselected = 'card';
|
||||
|
||||
|
||||
if ($action == 'create')
|
||||
{
|
||||
if ($action == 'create') {
|
||||
/*
|
||||
* 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
|
||||
*/
|
||||
@@ -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 '<input type="hidden" name="token" value="'.newToken().'">';
|
||||
print '<input type="hidden" name="action" value="update">';
|
||||
@@ -239,8 +240,11 @@ if ($id > 0 && !preg_match('/^add/i', $action))
|
||||
}
|
||||
|
||||
print '</td><td>';
|
||||
if ($action == 'edit') print '<input class="flat minwidth300" name="title" value="'.(GETPOSTISSET("title") ? GETPOST("title", '', 2) : $object->title).'">';
|
||||
else print $object->title;
|
||||
if ($action == 'edit') {
|
||||
print '<input class="flat minwidth300" name="title" value="'.(GETPOSTISSET("title") ? GETPOST("title", '', 2) : $object->title).'">';
|
||||
} else {
|
||||
print $object->title;
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
print '<tr><td>';
|
||||
@@ -252,28 +256,32 @@ if ($id > 0 && !preg_match('/^add/i', $action))
|
||||
print '</span>';
|
||||
}
|
||||
print '</td><td>';
|
||||
if ($action == 'edit') 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>';
|
||||
if ($action == 'edit') {
|
||||
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 '<tr><td>'.$langs->trans("BehaviourOnClick").'</td><td>';
|
||||
if ($action == 'edit')
|
||||
{
|
||||
if ($action == 'edit') {
|
||||
$liste = array(1=>$langs->trans("OpenANewWindow"), 0=>$langs->trans("ReplaceWindow"));
|
||||
print $form->selectarray('target', $liste, GETPOSTISSET("target") ? GETPOST("target") : $object->target);
|
||||
} else {
|
||||
if ($object->target == 0) print $langs->trans("ReplaceWindow");
|
||||
if ($object->target == 1) print $langs->trans("OpenANewWindow");
|
||||
if ($object->target == 0) {
|
||||
print $langs->trans("ReplaceWindow");
|
||||
}
|
||||
if ($object->target == 1) {
|
||||
print $langs->trans("OpenANewWindow");
|
||||
}
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
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');
|
||||
} else {
|
||||
if ($object->fk_user > 0)
|
||||
{
|
||||
if ($object->fk_user > 0) {
|
||||
$fuser = new User($db);
|
||||
$fuser->fetch($object->fk_user);
|
||||
print $fuser->getNomUrl(1);
|
||||
@@ -285,8 +293,11 @@ if ($id > 0 && !preg_match('/^add/i', $action))
|
||||
|
||||
// Position
|
||||
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).'">';
|
||||
else print $object->position;
|
||||
if ($action == 'edit') {
|
||||
print '<input class="flat" name="position" size="5" value="'.(GETPOSTISSET("position") ? GETPOST("position", 'int') : $object->position).'">';
|
||||
} else {
|
||||
print $object->position;
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
// Date creation
|
||||
@@ -298,8 +309,7 @@ if ($id > 0 && !preg_match('/^add/i', $action))
|
||||
|
||||
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").'"> <input class="button button-cancel" type="submit" name="cancel" value="'.$langs->trans("Cancel").'"></div>';
|
||||
print '</form>';
|
||||
}
|
||||
@@ -310,14 +320,12 @@ if ($id > 0 && !preg_match('/^add/i', $action))
|
||||
print "<div class=\"tabsAction\">\n";
|
||||
|
||||
// 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.'&action=edit&token='.newToken().'">'.$langs->trans("Edit").'</a>'."\n";
|
||||
}
|
||||
|
||||
// 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.'&action=delete&token='.newToken().'">'.$langs->trans("Delete").'</a>'."\n";
|
||||
}
|
||||
|
||||
|
||||
@@ -45,12 +45,18 @@ $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit;
|
||||
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
||||
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
||||
$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;
|
||||
$pageprev = $page - 1;
|
||||
$pagenext = $page + 1;
|
||||
if (!$sortfield) $sortfield = 'position';
|
||||
if (!$sortorder) $sortorder = 'ASC';
|
||||
if (!$sortfield) {
|
||||
$sortfield = 'position';
|
||||
}
|
||||
if (!$sortorder) {
|
||||
$sortorder = 'ASC';
|
||||
}
|
||||
|
||||
$id = GETPOST("id", 'int');
|
||||
|
||||
@@ -65,11 +71,9 @@ $permissiontodelete = $user->rights->bookmark->delete;
|
||||
* Actions
|
||||
*/
|
||||
|
||||
if ($action == 'delete')
|
||||
{
|
||||
if ($action == 'delete') {
|
||||
$res = $object->remove($id);
|
||||
if ($res > 0)
|
||||
{
|
||||
if ($res > 0) {
|
||||
header("Location: ".$_SERVER["PHP_SELF"]);
|
||||
exit;
|
||||
} 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 .= " WHERE 1=1";
|
||||
$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);
|
||||
|
||||
// Count total nb of records
|
||||
$nbtotalofrecords = '';
|
||||
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
||||
{
|
||||
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
|
||||
$resql = $db->query($sql);
|
||||
$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;
|
||||
$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 (is_numeric($nbtotalofrecords) && $limit > $nbtotalofrecords)
|
||||
{
|
||||
if (is_numeric($nbtotalofrecords) && $limit > $nbtotalofrecords) {
|
||||
$num = $nbtotalofrecords;
|
||||
} else {
|
||||
$sql .= $db->plimit($limit + 1, $offset);
|
||||
|
||||
$resql = $db->query($sql);
|
||||
if (!$resql)
|
||||
{
|
||||
if (!$resql) {
|
||||
dol_print_error($db);
|
||||
exit;
|
||||
}
|
||||
@@ -127,9 +129,15 @@ if (is_numeric($nbtotalofrecords) && $limit > $nbtotalofrecords)
|
||||
}
|
||||
|
||||
$param = "";
|
||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage);
|
||||
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit);
|
||||
if ($optioncss != '') $param = '&optioncss='.urlencode($optioncss);
|
||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
|
||||
$param .= '&contextpage='.urlencode($contextpage);
|
||||
}
|
||||
if ($limit > 0 && $limit != $conf->liste_limit) {
|
||||
$param .= '&limit='.urlencode($limit);
|
||||
}
|
||||
if ($optioncss != '') {
|
||||
$param = '&optioncss='.urlencode($optioncss);
|
||||
}
|
||||
|
||||
$moreforfilter = '';
|
||||
|
||||
@@ -140,12 +148,18 @@ $arrayofmassactions = array(
|
||||
//'builddoc'=>$langs->trans("PDFMerge"),
|
||||
//'presend'=>$langs->trans("SendByMail"),
|
||||
);
|
||||
if ($permissiontodelete) $arrayofmassactions['predelete'] = '<span class="fa fa-trash paddingrightonly"></span>'.$langs->trans("Delete");
|
||||
if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'predelete'))) $arrayofmassactions = array();
|
||||
if ($permissiontodelete) {
|
||||
$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);
|
||||
|
||||
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="formfilteraction" id="formfilteraction" value="list">';
|
||||
print '<input type="hidden" name="action" value="list">';
|
||||
@@ -176,8 +190,7 @@ print "</tr>\n";
|
||||
$cacheOfUsers = array();
|
||||
|
||||
$i = 0;
|
||||
while ($i < min($num, $limit))
|
||||
{
|
||||
while ($i < min($num, $limit)) {
|
||||
$obj = $db->fetch_object($resql);
|
||||
|
||||
$object->id = $obj->rowid;
|
||||
@@ -197,28 +210,39 @@ while ($i < min($num, $limit))
|
||||
// Title
|
||||
print "<td>";
|
||||
$linkintern = 1;
|
||||
if ($linkintern) print '<a href="'.$obj->url.'">';
|
||||
if ($linkintern) {
|
||||
print '<a href="'.$obj->url.'">';
|
||||
}
|
||||
print $title;
|
||||
if ($linkintern) print "</a>";
|
||||
if ($linkintern) {
|
||||
print "</a>";
|
||||
}
|
||||
print "</td>\n";
|
||||
|
||||
// Url
|
||||
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;
|
||||
if (!$linkintern) print '</a>';
|
||||
if (!$linkintern) {
|
||||
print '</a>';
|
||||
}
|
||||
print "</td>\n";
|
||||
|
||||
// Target
|
||||
print '<td class="center">';
|
||||
if ($obj->target == 0) print $langs->trans("BookmarkTargetReplaceWindowShort");
|
||||
if ($obj->target == 1) print $langs->trans("BookmarkTargetNewWindowShort");
|
||||
if ($obj->target == 0) {
|
||||
print $langs->trans("BookmarkTargetReplaceWindowShort");
|
||||
}
|
||||
if ($obj->target == 1) {
|
||||
print $langs->trans("BookmarkTargetNewWindowShort");
|
||||
}
|
||||
print "</td>\n";
|
||||
|
||||
// Author
|
||||
print '<td class="center">';
|
||||
if ($obj->fk_user)
|
||||
{
|
||||
if ($obj->fk_user) {
|
||||
if (empty($cacheOfUsers[$obj->fk_user])) {
|
||||
$tmpuser = new User($db);
|
||||
$tmpuser->fetch($obj->fk_user);
|
||||
@@ -239,12 +263,10 @@ while ($i < min($num, $limit))
|
||||
|
||||
// Actions
|
||||
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>";
|
||||
}
|
||||
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>';
|
||||
} else {
|
||||
print " ";
|
||||
|
||||
@@ -1273,8 +1273,7 @@ class FormMail extends Form
|
||||
//print $sql;
|
||||
|
||||
$resql = $db->query($sql);
|
||||
if (!$resql)
|
||||
{
|
||||
if (!$resql) {
|
||||
dol_print_error($db);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -1141,12 +1141,12 @@ function get_next_value($db, $mask, $table, $field, $where = '', $objsoc = '', $
|
||||
if ($date < $nextnewyeardate && $yearoffsettype == '+') {
|
||||
$yearoffset = 1;
|
||||
}
|
||||
} // If after or equal of current new year date
|
||||
elseif ($date >= $newyeardate && $yearoffsettype == '-') {
|
||||
} elseif ($date >= $newyeardate && $yearoffsettype == '-') {
|
||||
// If after or equal of current new year date
|
||||
$yearoffset = -1;
|
||||
}
|
||||
} // For backward compatibility
|
||||
elseif (date("m", $date) < $maskraz && empty($resetEveryMonth)) {
|
||||
} elseif (date("m", $date) < $maskraz && empty($resetEveryMonth)) {
|
||||
// For backward compatibility
|
||||
$yearoffset = -1;
|
||||
} // If current month lower that month of return to zero, year is previous year
|
||||
|
||||
@@ -2121,8 +2121,7 @@ function dolGetElementUrl($objectid, $objecttype, $withpicto = 0, $option = '')
|
||||
$classpath = 'mrp/class';
|
||||
$module = 'mrp';
|
||||
$myobject = 'mo';
|
||||
}
|
||||
elseif ($objecttype == 'productlot') {
|
||||
} elseif ($objecttype == 'productlot') {
|
||||
$classpath = 'product/stock/class';
|
||||
$module = 'stock';
|
||||
$myobject = 'productlot';
|
||||
|
||||
@@ -32,22 +32,21 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/cron.lib.php';
|
||||
// Load translation files required by the page
|
||||
$langs->loadLangs(array('admin', 'cron'));
|
||||
|
||||
if (!$user->admin)
|
||||
if (!$user->admin) {
|
||||
accessforbidden();
|
||||
}
|
||||
|
||||
$actionsave = GETPOST("save", 'alphanohtml');
|
||||
|
||||
// Save parameters
|
||||
if (!empty($actionsave))
|
||||
{
|
||||
if (!empty($actionsave)) {
|
||||
$i = 0;
|
||||
|
||||
$db->begin();
|
||||
|
||||
$i += dolibarr_set_const($db, 'CRON_KEY', GETPOST("CRON_KEY"), 'chaine', 0, '', 0);
|
||||
|
||||
if ($i >= 1)
|
||||
{
|
||||
if ($i >= 1) {
|
||||
$db->commit();
|
||||
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||
} else {
|
||||
@@ -90,13 +89,15 @@ print "</tr>";
|
||||
print '<tr class="oddeven">';
|
||||
print '<td class="fieldrequired">'.$langs->trans("KeyForCronAccess").'</td>';
|
||||
$disabled = '';
|
||||
if (!empty($conf->global->CRON_DISABLE_KEY_CHANGE)) $disabled = ' disabled="disabled"';
|
||||
if (!empty($conf->global->CRON_DISABLE_KEY_CHANGE)) {
|
||||
$disabled = ' disabled="disabled"';
|
||||
}
|
||||
print '<td>';
|
||||
if (empty($conf->global->CRON_DISABLE_KEY_CHANGE))
|
||||
{
|
||||
if (empty($conf->global->CRON_DISABLE_KEY_CHANGE)) {
|
||||
print '<input type="text" class="flat minwidth300"'.$disabled.' id="CRON_KEY" name="CRON_KEY" value="'.(GETPOST('CRON_KEY') ?GETPOST('CRON_KEY') : (!empty($conf->global->CRON_KEY) ? $conf->global->CRON_KEY : '')).'">';
|
||||
if (!empty($conf->use_javascript_ajax))
|
||||
if (!empty($conf->use_javascript_ajax)) {
|
||||
print ' '.img_picto($langs->trans('Generate'), 'refresh', 'id="generate_token" class="linkobject"');
|
||||
}
|
||||
} else {
|
||||
print (!empty($conf->global->CRON_KEY) ? $conf->global->CRON_KEY : '');
|
||||
print '<input type="hidden" id="CRON_KEY" name="CRON_KEY" value="'.(GETPOST('CRON_KEY') ?GETPOST('CRON_KEY') : (!empty($conf->global->CRON_KEY) ? $conf->global->CRON_KEY : '')).'">';
|
||||
@@ -119,7 +120,9 @@ print '</form>';
|
||||
print '<br><br><br>';
|
||||
|
||||
//print $langs->trans("UseMenuModuleToolsToAddCronJobs", dol_buildpath('/cron/list.php?leftmenu=admintools', 1)).'<br>';
|
||||
if (!empty($conf->global->CRON_WARNING_DELAY_HOURS)) print info_admin($langs->trans("WarningCronDelayed", $conf->global->CRON_WARNING_DELAY_HOURS)).'<br>';
|
||||
if (!empty($conf->global->CRON_WARNING_DELAY_HOURS)) {
|
||||
print info_admin($langs->trans("WarningCronDelayed", $conf->global->CRON_WARNING_DELAY_HOURS)).'<br>';
|
||||
}
|
||||
|
||||
print '<br>';
|
||||
|
||||
@@ -128,8 +131,7 @@ dol_print_cron_urls();
|
||||
|
||||
print '<br>';
|
||||
|
||||
if (!empty($conf->use_javascript_ajax))
|
||||
{
|
||||
if (!empty($conf->use_javascript_ajax)) {
|
||||
print "\n".'<script type="text/javascript">';
|
||||
print '$(document).ready(function () {
|
||||
$("#generate_token").click(function() {
|
||||
|
||||
@@ -36,7 +36,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/cron.lib.php';
|
||||
// Load translation files required by the page
|
||||
$langs->loadLangs(array('admin', 'cron', 'members'));
|
||||
|
||||
if (!$user->rights->cron->create) accessforbidden();
|
||||
if (!$user->rights->cron->create) {
|
||||
accessforbidden();
|
||||
}
|
||||
|
||||
$id = GETPOST('id', 'int');
|
||||
$action = GETPOST('action', 'aZ09');
|
||||
@@ -53,23 +55,18 @@ $securitykey = GETPOST('securitykey', 'alpha');
|
||||
*/
|
||||
|
||||
$object = new Cronjob($db);
|
||||
if (!empty($id))
|
||||
{
|
||||
if (!empty($id)) {
|
||||
$result = $object->fetch($id);
|
||||
if ($result < 0)
|
||||
{
|
||||
if ($result < 0) {
|
||||
setEventMessages($object->error, $object->errors, 'errors');
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($cancel))
|
||||
{
|
||||
if (!empty($id) && empty($backtopage))
|
||||
{
|
||||
if (!empty($cancel)) {
|
||||
if (!empty($id) && empty($backtopage)) {
|
||||
$action = '';
|
||||
} else {
|
||||
if ($backtopage)
|
||||
{
|
||||
if ($backtopage) {
|
||||
header("Location: ".$backtopage);
|
||||
exit;
|
||||
} else {
|
||||
@@ -80,12 +77,10 @@ if (!empty($cancel))
|
||||
}
|
||||
|
||||
// Delete jobs
|
||||
if ($action == 'confirm_delete' && $confirm == "yes" && $user->rights->cron->delete)
|
||||
{
|
||||
if ($action == 'confirm_delete' && $confirm == "yes" && $user->rights->cron->delete) {
|
||||
$result = $object->delete($user);
|
||||
|
||||
if ($result < 0)
|
||||
{
|
||||
if ($result < 0) {
|
||||
setEventMessages($object->error, $object->errors, 'errors');
|
||||
$action = 'edit';
|
||||
} else {
|
||||
@@ -95,10 +90,8 @@ if ($action == 'confirm_delete' && $confirm == "yes" && $user->rights->cron->del
|
||||
}
|
||||
|
||||
// Execute jobs
|
||||
if ($action == 'confirm_execute' && $confirm == "yes" && $user->rights->cron->execute)
|
||||
{
|
||||
if (!empty($conf->global->CRON_KEY) && $conf->global->CRON_KEY != $securitykey)
|
||||
{
|
||||
if ($action == 'confirm_execute' && $confirm == "yes" && $user->rights->cron->execute) {
|
||||
if (!empty($conf->global->CRON_KEY) && $conf->global->CRON_KEY != $securitykey) {
|
||||
setEventMessages('Security key '.$securitykey.' is wrong', null, 'errors');
|
||||
$action = '';
|
||||
} else {
|
||||
@@ -106,16 +99,17 @@ if ($action == 'confirm_execute' && $confirm == "yes" && $user->rights->cron->ex
|
||||
|
||||
$result = $object->run_jobs($user->login);
|
||||
|
||||
if ($result < 0)
|
||||
{
|
||||
if ($result < 0) {
|
||||
setEventMessages($object->error, $object->errors, 'errors');
|
||||
$action = '';
|
||||
} else {
|
||||
$res = $object->reprogram_jobs($user->login, $now);
|
||||
if ($res > 0)
|
||||
{
|
||||
if ($object->lastresult > 0) setEventMessages($langs->trans("JobFinished"), null, 'warnings');
|
||||
else setEventMessages($langs->trans("JobFinished"), null, 'mesgs');
|
||||
if ($res > 0) {
|
||||
if ($object->lastresult > 0) {
|
||||
setEventMessages($langs->trans("JobFinished"), null, 'warnings');
|
||||
} else {
|
||||
setEventMessages($langs->trans("JobFinished"), null, 'mesgs');
|
||||
}
|
||||
$action = '';
|
||||
} else {
|
||||
setEventMessages($object->error, $object->errors, 'errors');
|
||||
@@ -126,8 +120,7 @@ if ($action == 'confirm_execute' && $confirm == "yes" && $user->rights->cron->ex
|
||||
}
|
||||
|
||||
|
||||
if ($action == 'add')
|
||||
{
|
||||
if ($action == 'add') {
|
||||
$object->jobtype = GETPOST('jobtype');
|
||||
$object->label = GETPOST('label');
|
||||
$object->command = GETPOST('command');
|
||||
@@ -160,8 +153,7 @@ if ($action == 'add')
|
||||
}
|
||||
|
||||
// Save parameters
|
||||
if ($action == 'update')
|
||||
{
|
||||
if ($action == 'update') {
|
||||
$object->id = $id;
|
||||
$object->jobtype = GETPOST('jobtype');
|
||||
$object->label = GETPOST('label');
|
||||
@@ -194,8 +186,7 @@ if ($action == 'update')
|
||||
}
|
||||
}
|
||||
|
||||
if ($action == 'activate')
|
||||
{
|
||||
if ($action == 'activate') {
|
||||
$object->status = 1;
|
||||
|
||||
// Add cron task
|
||||
@@ -211,8 +202,7 @@ if ($action == 'activate')
|
||||
}
|
||||
}
|
||||
|
||||
if ($action == 'inactive')
|
||||
{
|
||||
if ($action == 'inactive') {
|
||||
$object->status = 0;
|
||||
$object->processing = 0;
|
||||
|
||||
@@ -240,16 +230,13 @@ $formCron = new FormCron($db);
|
||||
|
||||
llxHeader('', $langs->trans("CronTask"));
|
||||
|
||||
if ($action == 'edit' || empty($action) || $action == 'delete' || $action == 'execute')
|
||||
{
|
||||
if ($action == 'edit' || empty($action) || $action == 'delete' || $action == 'execute') {
|
||||
$head = cron_prepare_head($object);
|
||||
} elseif ($action == 'create')
|
||||
{
|
||||
} elseif ($action == 'create') {
|
||||
print load_fiche_titre($langs->trans("CronTask"), '', 'title_setup');
|
||||
}
|
||||
|
||||
if ($conf->use_javascript_ajax)
|
||||
{
|
||||
if ($conf->use_javascript_ajax) {
|
||||
print "\n".'<script type="text/javascript" language="javascript">';
|
||||
print 'jQuery(document).ready(function () {
|
||||
function initfields()
|
||||
@@ -271,8 +258,7 @@ if ($conf->use_javascript_ajax)
|
||||
print '</script>'."\n";
|
||||
}
|
||||
|
||||
if ($action == 'delete')
|
||||
{
|
||||
if ($action == 'delete') {
|
||||
print $form->formconfirm($_SERVER['PHP_SELF']."?id=".$object->id, $langs->trans("CronDelete"), $langs->trans("CronConfirmDelete"), "confirm_delete", '', '', 1);
|
||||
|
||||
$action = '';
|
||||
@@ -290,13 +276,11 @@ if ($action == 'execute') {
|
||||
* Create Template
|
||||
*/
|
||||
|
||||
if (empty($object->status) && $action != 'create')
|
||||
{
|
||||
if (empty($object->status) && $action != 'create') {
|
||||
setEventMessages($langs->trans("CronTaskInactive"), null, 'warnings');
|
||||
}
|
||||
|
||||
if (($action == "create") || ($action == "edit"))
|
||||
{
|
||||
if (($action == "create") || ($action == "edit")) {
|
||||
print '<form name="cronform" action="'.$_SERVER["PHP_SELF"].'" method="post">';
|
||||
print '<input type="hidden" name="token" value="'.newToken().'">'."\n";
|
||||
print '<input type="hidden" name="backtopage" value="'.GETPOST('backtopage').'">'."\n";
|
||||
@@ -307,8 +291,11 @@ if (($action == "create") || ($action == "edit"))
|
||||
print '<input type="hidden" name="action" value="add">'."\n";
|
||||
}
|
||||
|
||||
if ($action == "edit") print dol_get_fiche_head($head, 'card', $langs->trans("CronTask"), 0, 'cron');
|
||||
else print dol_get_fiche_head('');
|
||||
if ($action == "edit") {
|
||||
print dol_get_fiche_head($head, 'card', $langs->trans("CronTask"), 0, 'cron');
|
||||
} else {
|
||||
print dol_get_fiche_head('');
|
||||
}
|
||||
|
||||
print '<table class="border centpercent">';
|
||||
|
||||
@@ -395,10 +382,8 @@ if (($action == "create") || ($action == "edit"))
|
||||
print $langs->trans('CronEvery')."</td>";
|
||||
print "<td>";
|
||||
print '<select name="nbfrequency">';
|
||||
for ($i = 1; $i <= 60; $i++)
|
||||
{
|
||||
if ($object->frequency == $i)
|
||||
{
|
||||
for ($i = 1; $i <= 60; $i++) {
|
||||
if ($object->frequency == $i) {
|
||||
print "<option value='".$i."' selected>".$i."</option>";
|
||||
} else {
|
||||
print "<option value='".$i."'>".$i."</option>";
|
||||
@@ -406,8 +391,7 @@ if (($action == "create") || ($action == "edit"))
|
||||
}
|
||||
print "</select>";
|
||||
$input = " <input type=\"radio\" name=\"unitfrequency\" value=\"60\" id=\"frequency_minute\" ";
|
||||
if ($object->unitfrequency == "60")
|
||||
{
|
||||
if ($object->unitfrequency == "60") {
|
||||
$input .= ' checked />';
|
||||
} else {
|
||||
$input .= ' />';
|
||||
@@ -448,8 +432,7 @@ if (($action == "create") || ($action == "edit"))
|
||||
|
||||
print "<tr><td>";
|
||||
print $langs->trans('CronDtStart')."</td><td>";
|
||||
if (!empty($object->datestart))
|
||||
{
|
||||
if (!empty($object->datestart)) {
|
||||
print $form->selectDate($object->datestart, 'datestart', 1, 1, '', "cronform");
|
||||
} else {
|
||||
print $form->selectDate('', 'datestart', 1, 1, '', "cronform");
|
||||
@@ -499,8 +482,7 @@ if (($action == "create") || ($action == "edit"))
|
||||
print $langs->trans('CronDtNextLaunch');
|
||||
print ' ('.$langs->trans('CronFrom').')';
|
||||
print "</td><td>";
|
||||
if (!empty($object->datenextrun))
|
||||
{
|
||||
if (!empty($object->datenextrun)) {
|
||||
print $form->selectDate($object->datenextrun, 'datenextrun', 1, 1, '', "cronform");
|
||||
} else {
|
||||
print $form->selectDate(-1, 'datenextrun', 1, 1, '', "cronform");
|
||||
@@ -588,12 +570,10 @@ if (($action == "create") || ($action == "edit"))
|
||||
}
|
||||
print "</td></tr>";
|
||||
|
||||
if (!empty($conf->multicompany->enabled))
|
||||
{
|
||||
if (!empty($conf->multicompany->enabled)) {
|
||||
print '<tr><td>';
|
||||
print $langs->trans('Entity')."</td><td>";
|
||||
if (!$object->entity)
|
||||
{
|
||||
if (!$object->entity) {
|
||||
print $langs->trans("AllEntities");
|
||||
} else {
|
||||
$mc->getInfo($object->entity);
|
||||
@@ -615,20 +595,32 @@ if (($action == "create") || ($action == "edit"))
|
||||
print '<tr><td class="titlefield">';
|
||||
print $langs->trans('CronEvery')."</td>";
|
||||
print "<td>";
|
||||
if ($object->unitfrequency == "60") print $langs->trans('CronEach')." ".($object->frequency)." ".$langs->trans('Minutes');
|
||||
if ($object->unitfrequency == "3600") print $langs->trans('CronEach')." ".($object->frequency)." ".$langs->trans('Hours');
|
||||
if ($object->unitfrequency == "86400") print $langs->trans('CronEach')." ".($object->frequency)." ".$langs->trans('Days');
|
||||
if ($object->unitfrequency == "604800") print $langs->trans('CronEach')." ".($object->frequency)." ".$langs->trans('Weeks');
|
||||
if ($object->unitfrequency == "60") {
|
||||
print $langs->trans('CronEach')." ".($object->frequency)." ".$langs->trans('Minutes');
|
||||
}
|
||||
if ($object->unitfrequency == "3600") {
|
||||
print $langs->trans('CronEach')." ".($object->frequency)." ".$langs->trans('Hours');
|
||||
}
|
||||
if ($object->unitfrequency == "86400") {
|
||||
print $langs->trans('CronEach')." ".($object->frequency)." ".$langs->trans('Days');
|
||||
}
|
||||
if ($object->unitfrequency == "604800") {
|
||||
print $langs->trans('CronEach')." ".($object->frequency)." ".$langs->trans('Weeks');
|
||||
}
|
||||
print "</td></tr>";
|
||||
|
||||
print '<tr><td>';
|
||||
print $langs->trans('CronDtStart')."</td><td>";
|
||||
if (!empty($object->datestart)) {print $form->textwithpicto(dol_print_date($object->datestart, 'dayhoursec'), $langs->trans("CurrentTimeZone")); }
|
||||
if (!empty($object->datestart)) {
|
||||
print $form->textwithpicto(dol_print_date($object->datestart, 'dayhoursec'), $langs->trans("CurrentTimeZone"));
|
||||
}
|
||||
print "</td></tr>";
|
||||
|
||||
print "<tr><td>";
|
||||
print $langs->trans('CronDtEnd')."</td><td>";
|
||||
if (!empty($object->dateend)) {print $form->textwithpicto(dol_print_date($object->dateend, 'dayhoursec'), $langs->trans("CurrentTimeZone")); }
|
||||
if (!empty($object->dateend)) {
|
||||
print $form->textwithpicto(dol_print_date($object->dateend, 'dayhoursec'), $langs->trans("CurrentTimeZone"));
|
||||
}
|
||||
print "</td></tr>";
|
||||
|
||||
print "<tr><td>";
|
||||
@@ -652,12 +644,19 @@ if (($action == "create") || ($action == "edit"))
|
||||
print $langs->trans('CronDtNextLaunch');
|
||||
print ' ('.$langs->trans('CronFrom').')';
|
||||
print "</td><td>";
|
||||
if (!$object->status) print $langs->trans("Disabled");
|
||||
elseif (!empty($object->datenextrun)) { print img_picto('', 'object_calendarday').' '.$form->textwithpicto(dol_print_date($object->datenextrun, 'dayhoursec'), $langs->trans("CurrentTimeZone")); } else { print $langs->trans('CronNone'); }
|
||||
if ($object->status == Cronjob::STATUS_ENABLED)
|
||||
{
|
||||
if ($object->maxrun && $object->nbrun >= $object->maxrun) print img_warning($langs->trans("MaxRunReached"));
|
||||
elseif ($object->datenextrun && $object->datenextrun < $now) print img_warning($langs->trans("Late"));
|
||||
if (!$object->status) {
|
||||
print $langs->trans("Disabled");
|
||||
} elseif (!empty($object->datenextrun)) {
|
||||
print img_picto('', 'object_calendarday').' '.$form->textwithpicto(dol_print_date($object->datenextrun, 'dayhoursec'), $langs->trans("CurrentTimeZone"));
|
||||
} else {
|
||||
print $langs->trans('CronNone');
|
||||
}
|
||||
if ($object->status == Cronjob::STATUS_ENABLED) {
|
||||
if ($object->maxrun && $object->nbrun >= $object->maxrun) {
|
||||
print img_warning($langs->trans("MaxRunReached"));
|
||||
} elseif ($object->datenextrun && $object->datenextrun < $now) {
|
||||
print img_warning($langs->trans("Late"));
|
||||
}
|
||||
}
|
||||
print "</td></tr>";
|
||||
|
||||
@@ -672,19 +671,31 @@ if (($action == "create") || ($action == "edit"))
|
||||
|
||||
print '<tr><td class="titlefield">';
|
||||
print $langs->trans('CronDtLastLaunch')."</td><td>";
|
||||
if (!empty($object->datelastrun)) {print $form->textwithpicto(dol_print_date($object->datelastrun, 'dayhoursec'), $langs->trans("CurrentTimeZone")); } else {print $langs->trans('CronNone'); }
|
||||
if (!empty($object->datelastrun)) {
|
||||
print $form->textwithpicto(dol_print_date($object->datelastrun, 'dayhoursec'), $langs->trans("CurrentTimeZone"));
|
||||
} else {
|
||||
print $langs->trans('CronNone');
|
||||
}
|
||||
print "</td></tr>";
|
||||
|
||||
print '<tr><td>';
|
||||
print $langs->trans('CronDtLastResult')."</td><td>";
|
||||
if (!empty($object->datelastresult)) {print $form->textwithpicto(dol_print_date($object->datelastresult, 'dayhoursec'), $langs->trans("CurrentTimeZone")); } else {print $langs->trans('CronNone'); }
|
||||
if (!empty($object->datelastresult)) {
|
||||
print $form->textwithpicto(dol_print_date($object->datelastresult, 'dayhoursec'), $langs->trans("CurrentTimeZone"));
|
||||
} else {
|
||||
print $langs->trans('CronNone');
|
||||
}
|
||||
print "</td></tr>";
|
||||
|
||||
print '<tr><td>';
|
||||
print $langs->trans('CronLastResult')."</td><td>";
|
||||
if ($object->lastresult) print '<span class="error">';
|
||||
if ($object->lastresult) {
|
||||
print '<span class="error">';
|
||||
}
|
||||
print $object->lastresult;
|
||||
if ($object->lastresult) print '</span>';
|
||||
if ($object->lastresult) {
|
||||
print '</span>';
|
||||
}
|
||||
print "</td></tr>";
|
||||
|
||||
print '<tr><td>';
|
||||
@@ -705,11 +716,9 @@ if (($action == "create") || ($action == "edit"))
|
||||
print '<a class="butAction" href="'.$_SERVER['PHP_SELF'].'?action=edit&id='.$object->id.'">'.$langs->trans("Edit").'</a>';
|
||||
}
|
||||
|
||||
if ((empty($user->rights->cron->execute)))
|
||||
{
|
||||
if ((empty($user->rights->cron->execute))) {
|
||||
print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("NotEnoughPermissions")).'">'.$langs->trans("CronExecute").'</a>';
|
||||
} elseif (empty($object->status))
|
||||
{
|
||||
} elseif (empty($object->status)) {
|
||||
print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("JobDisabled")).'">'.$langs->trans("CronExecute").'</a>';
|
||||
} else {
|
||||
print '<a class="butAction" href="'.$_SERVER['PHP_SELF'].'?action=execute&id='.$object->id.(empty($conf->global->CRON_KEY) ? '' : '&securitykey='.$conf->global->CRON_KEY).'">'.$langs->trans("CronExecute").'</a>';
|
||||
|
||||
@@ -199,30 +199,66 @@ class Cronjob extends CommonObject
|
||||
|
||||
// Clean parameters
|
||||
|
||||
if (isset($this->label)) $this->label = trim($this->label);
|
||||
if (isset($this->jobtype)) $this->jobtype = trim($this->jobtype);
|
||||
if (isset($this->command)) $this->command = trim($this->command);
|
||||
if (isset($this->classesname)) $this->classesname = trim($this->classesname);
|
||||
if (isset($this->objectname)) $this->objectname = trim($this->objectname);
|
||||
if (isset($this->methodename)) $this->methodename = trim($this->methodename);
|
||||
if (isset($this->params)) $this->params = trim($this->params);
|
||||
if (isset($this->md5params)) $this->md5params = trim($this->md5params);
|
||||
if (isset($this->module_name)) $this->module_name = trim($this->module_name);
|
||||
if (isset($this->priority)) $this->priority = trim($this->priority);
|
||||
if (isset($this->lastoutput)) $this->lastoutput = trim($this->lastoutput);
|
||||
if (isset($this->lastresult)) $this->lastresult = trim($this->lastresult);
|
||||
if (isset($this->unitfrequency)) $this->unitfrequency = trim($this->unitfrequency);
|
||||
if (isset($this->frequency)) $this->frequency = trim($this->frequency);
|
||||
if (isset($this->status)) $this->status = trim($this->status);
|
||||
if (isset($this->note_private)) $this->note_private = trim($this->note_private);
|
||||
if (isset($this->label)) {
|
||||
$this->label = trim($this->label);
|
||||
}
|
||||
if (isset($this->jobtype)) {
|
||||
$this->jobtype = trim($this->jobtype);
|
||||
}
|
||||
if (isset($this->command)) {
|
||||
$this->command = trim($this->command);
|
||||
}
|
||||
if (isset($this->classesname)) {
|
||||
$this->classesname = trim($this->classesname);
|
||||
}
|
||||
if (isset($this->objectname)) {
|
||||
$this->objectname = trim($this->objectname);
|
||||
}
|
||||
if (isset($this->methodename)) {
|
||||
$this->methodename = trim($this->methodename);
|
||||
}
|
||||
if (isset($this->params)) {
|
||||
$this->params = trim($this->params);
|
||||
}
|
||||
if (isset($this->md5params)) {
|
||||
$this->md5params = trim($this->md5params);
|
||||
}
|
||||
if (isset($this->module_name)) {
|
||||
$this->module_name = trim($this->module_name);
|
||||
}
|
||||
if (isset($this->priority)) {
|
||||
$this->priority = trim($this->priority);
|
||||
}
|
||||
if (isset($this->lastoutput)) {
|
||||
$this->lastoutput = trim($this->lastoutput);
|
||||
}
|
||||
if (isset($this->lastresult)) {
|
||||
$this->lastresult = trim($this->lastresult);
|
||||
}
|
||||
if (isset($this->unitfrequency)) {
|
||||
$this->unitfrequency = trim($this->unitfrequency);
|
||||
}
|
||||
if (isset($this->frequency)) {
|
||||
$this->frequency = trim($this->frequency);
|
||||
}
|
||||
if (isset($this->status)) {
|
||||
$this->status = trim($this->status);
|
||||
}
|
||||
if (isset($this->note_private)) {
|
||||
$this->note_private = trim($this->note_private);
|
||||
}
|
||||
if (isset($this->nbrun)) {
|
||||
$this->nbrun = (int) $this->nbrun;
|
||||
}
|
||||
if (isset($this->maxrun)) {
|
||||
$this->maxrun = (int) $this->maxrun;
|
||||
}
|
||||
if (isset($this->libname)) $this->libname = trim($this->libname);
|
||||
if (isset($this->test)) $this->test = trim($this->test);
|
||||
if (isset($this->libname)) {
|
||||
$this->libname = trim($this->libname);
|
||||
}
|
||||
if (isset($this->test)) {
|
||||
$this->test = trim($this->test);
|
||||
}
|
||||
|
||||
// Check parameters
|
||||
// Put here code to add a control on parameters values
|
||||
@@ -328,23 +364,20 @@ class Cronjob extends CommonObject
|
||||
|
||||
$this->db->begin();
|
||||
|
||||
dol_syslog(get_class($this)."::create", LOG_DEBUG);
|
||||
dol_syslog(get_class($this)."::create", LOG_DEBUG);
|
||||
$resql = $this->db->query($sql);
|
||||
if (!$resql) {
|
||||
$error++;
|
||||
$this->errors[] = "Error ".$this->db->lasterror();
|
||||
}
|
||||
|
||||
if (!$error)
|
||||
{
|
||||
if (!$error) {
|
||||
$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."cronjob");
|
||||
}
|
||||
|
||||
// Commit or rollback
|
||||
if ($error)
|
||||
{
|
||||
foreach ($this->errors as $errmsg)
|
||||
{
|
||||
if ($error) {
|
||||
foreach ($this->errors as $errmsg) {
|
||||
dol_syslog(get_class($this)."::create ".$errmsg, LOG_ERR);
|
||||
$this->error .= ($this->error ? ', '.$errmsg : $errmsg);
|
||||
}
|
||||
@@ -411,10 +444,8 @@ class Cronjob extends CommonObject
|
||||
|
||||
dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
if ($this->db->num_rows($resql))
|
||||
{
|
||||
if ($resql) {
|
||||
if ($this->db->num_rows($resql)) {
|
||||
$obj = $this->db->fetch_object($resql);
|
||||
|
||||
$this->id = $obj->rowid;
|
||||
@@ -455,7 +486,7 @@ class Cronjob extends CommonObject
|
||||
|
||||
return 1;
|
||||
} else {
|
||||
$this->error = "Error ".$this->db->lasterror();
|
||||
$this->error = "Error ".$this->db->lasterror();
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@@ -514,15 +545,22 @@ class Cronjob extends CommonObject
|
||||
$sql .= " t.test";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."cronjob as t";
|
||||
$sql .= " WHERE 1 = 1";
|
||||
if ($processing >= 0) $sql .= " AND t.processing = ".(empty($processing) ? '0' : '1');
|
||||
if ($status >= 0 && $status < 2) $sql .= " AND t.status = ".(empty($status) ? '0' : '1');
|
||||
elseif ($status == 2) $sql .= " AND t.status = 2";
|
||||
if ($processing >= 0) {
|
||||
$sql .= " AND t.processing = ".(empty($processing) ? '0' : '1');
|
||||
}
|
||||
if ($status >= 0 && $status < 2) {
|
||||
$sql .= " AND t.status = ".(empty($status) ? '0' : '1');
|
||||
} elseif ($status == 2) {
|
||||
$sql .= " AND t.status = 2";
|
||||
}
|
||||
//Manage filter
|
||||
if (is_array($filter) && count($filter) > 0) {
|
||||
foreach ($filter as $key => $value)
|
||||
{
|
||||
if ($key == 't.rowid') $sql .= ' AND '.$key.' = '.$this->db->escape($value);
|
||||
else $sql .= ' AND '.$key.' LIKE \'%'.$this->db->escape($value).'%\'';
|
||||
foreach ($filter as $key => $value) {
|
||||
if ($key == 't.rowid') {
|
||||
$sql .= ' AND '.$key.' = '.$this->db->escape($value);
|
||||
} else {
|
||||
$sql .= ' AND '.$key.' LIKE \'%'.$this->db->escape($value).'%\'';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -539,15 +577,12 @@ class Cronjob extends CommonObject
|
||||
|
||||
dol_syslog(get_class($this)."::fetch_all", LOG_DEBUG);
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
if ($resql) {
|
||||
$num = $this->db->num_rows($resql);
|
||||
$i = 0;
|
||||
|
||||
if ($num)
|
||||
{
|
||||
while ($i < $num)
|
||||
{
|
||||
if ($num) {
|
||||
while ($i < $num) {
|
||||
$line = new Cronjobline();
|
||||
|
||||
$obj = $this->db->fetch_object($resql);
|
||||
@@ -615,28 +650,70 @@ class Cronjob extends CommonObject
|
||||
$error = 0;
|
||||
|
||||
// Clean parameters
|
||||
if (isset($this->label)) $this->label = trim($this->label);
|
||||
if (isset($this->jobtype)) $this->jobtype = trim($this->jobtype);
|
||||
if (isset($this->command)) $this->command = trim($this->command);
|
||||
if (isset($this->classesname)) $this->classesname = trim($this->classesname);
|
||||
if (isset($this->objectname)) $this->objectname = trim($this->objectname);
|
||||
if (isset($this->methodename)) $this->methodename = trim($this->methodename);
|
||||
if (isset($this->params)) $this->params = trim($this->params);
|
||||
if (isset($this->md5params)) $this->md5params = trim($this->md5params);
|
||||
if (isset($this->module_name)) $this->module_name = trim($this->module_name);
|
||||
if (isset($this->priority)) $this->priority = trim($this->priority);
|
||||
if (isset($this->lastoutput)) $this->lastoutput = trim($this->lastoutput);
|
||||
if (isset($this->lastresult)) $this->lastresult = trim($this->lastresult);
|
||||
if (isset($this->unitfrequency)) $this->unitfrequency = trim($this->unitfrequency);
|
||||
if (isset($this->frequency)) $this->frequency = trim($this->frequency);
|
||||
if (isset($this->status)) $this->status = trim($this->status);
|
||||
if (isset($this->note_private)) $this->note_private = trim($this->note_private);
|
||||
if (isset($this->nbrun)) $this->nbrun = trim($this->nbrun);
|
||||
if (isset($this->libname)) $this->libname = trim($this->libname);
|
||||
if (isset($this->test)) $this->test = trim($this->test);
|
||||
if (isset($this->label)) {
|
||||
$this->label = trim($this->label);
|
||||
}
|
||||
if (isset($this->jobtype)) {
|
||||
$this->jobtype = trim($this->jobtype);
|
||||
}
|
||||
if (isset($this->command)) {
|
||||
$this->command = trim($this->command);
|
||||
}
|
||||
if (isset($this->classesname)) {
|
||||
$this->classesname = trim($this->classesname);
|
||||
}
|
||||
if (isset($this->objectname)) {
|
||||
$this->objectname = trim($this->objectname);
|
||||
}
|
||||
if (isset($this->methodename)) {
|
||||
$this->methodename = trim($this->methodename);
|
||||
}
|
||||
if (isset($this->params)) {
|
||||
$this->params = trim($this->params);
|
||||
}
|
||||
if (isset($this->md5params)) {
|
||||
$this->md5params = trim($this->md5params);
|
||||
}
|
||||
if (isset($this->module_name)) {
|
||||
$this->module_name = trim($this->module_name);
|
||||
}
|
||||
if (isset($this->priority)) {
|
||||
$this->priority = trim($this->priority);
|
||||
}
|
||||
if (isset($this->lastoutput)) {
|
||||
$this->lastoutput = trim($this->lastoutput);
|
||||
}
|
||||
if (isset($this->lastresult)) {
|
||||
$this->lastresult = trim($this->lastresult);
|
||||
}
|
||||
if (isset($this->unitfrequency)) {
|
||||
$this->unitfrequency = trim($this->unitfrequency);
|
||||
}
|
||||
if (isset($this->frequency)) {
|
||||
$this->frequency = trim($this->frequency);
|
||||
}
|
||||
if (isset($this->status)) {
|
||||
$this->status = trim($this->status);
|
||||
}
|
||||
if (isset($this->note_private)) {
|
||||
$this->note_private = trim($this->note_private);
|
||||
}
|
||||
if (isset($this->nbrun)) {
|
||||
$this->nbrun = trim($this->nbrun);
|
||||
}
|
||||
if (isset($this->libname)) {
|
||||
$this->libname = trim($this->libname);
|
||||
}
|
||||
if (isset($this->test)) {
|
||||
$this->test = trim($this->test);
|
||||
}
|
||||
|
||||
if (empty($this->maxrun)) $this->maxrun = 0;
|
||||
if (empty($this->processing)) $this->processing = 0;
|
||||
if (empty($this->maxrun)) {
|
||||
$this->maxrun = 0;
|
||||
}
|
||||
if (empty($this->processing)) {
|
||||
$this->processing = 0;
|
||||
}
|
||||
|
||||
// Check parameters
|
||||
// Put here code to add a control on parameters values
|
||||
@@ -715,13 +792,13 @@ class Cronjob extends CommonObject
|
||||
|
||||
dol_syslog(get_class($this)."::update", LOG_DEBUG);
|
||||
$resql = $this->db->query($sql);
|
||||
if (!$resql) { $error++; $this->errors[] = "Error ".$this->db->lasterror(); }
|
||||
if (!$resql) {
|
||||
$error++; $this->errors[] = "Error ".$this->db->lasterror();
|
||||
}
|
||||
|
||||
// Commit or rollback
|
||||
if ($error)
|
||||
{
|
||||
foreach ($this->errors as $errmsg)
|
||||
{
|
||||
if ($error) {
|
||||
foreach ($this->errors as $errmsg) {
|
||||
dol_syslog(get_class($this)."::update ".$errmsg, LOG_ERR);
|
||||
$this->error .= ($this->error ? ', '.$errmsg : $errmsg);
|
||||
}
|
||||
@@ -734,13 +811,13 @@ class Cronjob extends CommonObject
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Delete object in database
|
||||
*
|
||||
* @param User $user User that deletes
|
||||
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
/**
|
||||
* Delete object in database
|
||||
*
|
||||
* @param User $user User that deletes
|
||||
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function delete($user, $notrigger = 0)
|
||||
{
|
||||
$error = 0;
|
||||
@@ -758,10 +835,8 @@ class Cronjob extends CommonObject
|
||||
}
|
||||
|
||||
// Commit or rollback
|
||||
if ($error)
|
||||
{
|
||||
foreach ($this->errors as $errmsg)
|
||||
{
|
||||
if ($error) {
|
||||
foreach ($this->errors as $errmsg) {
|
||||
dol_syslog(get_class($this)."::delete ".$errmsg, LOG_ERR);
|
||||
$this->error .= ($this->error ? ', '.$errmsg : $errmsg);
|
||||
}
|
||||
@@ -803,8 +878,7 @@ class Cronjob extends CommonObject
|
||||
$result = $object->create($user);
|
||||
|
||||
// Other options
|
||||
if ($result < 0)
|
||||
{
|
||||
if ($result < 0) {
|
||||
$this->error = $object->error;
|
||||
$error++;
|
||||
}
|
||||
@@ -817,8 +891,7 @@ class Cronjob extends CommonObject
|
||||
unset($object->context['createfromclone']);
|
||||
|
||||
// End
|
||||
if (!$error)
|
||||
{
|
||||
if (!$error) {
|
||||
$this->db->commit();
|
||||
return $object->id;
|
||||
} else {
|
||||
@@ -887,7 +960,9 @@ class Cronjob extends CommonObject
|
||||
global $dolibarr_main_authentication, $dolibarr_main_demo;
|
||||
global $menumanager;
|
||||
|
||||
if (!empty($conf->dol_no_mouse_hover)) $notooltip = 1; // Force disable tooltips
|
||||
if (!empty($conf->dol_no_mouse_hover)) {
|
||||
$notooltip = 1; // Force disable tooltips
|
||||
}
|
||||
|
||||
$result = '';
|
||||
|
||||
@@ -900,33 +975,40 @@ class Cronjob extends CommonObject
|
||||
|
||||
$url = DOL_URL_ROOT.'/cron/card.php?id='.$this->id;
|
||||
|
||||
if ($option != 'nolink')
|
||||
{
|
||||
if ($option != 'nolink') {
|
||||
// Add param to save lastsearch_values or not
|
||||
$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 ($add_save_lastsearch_values) $url .= '&save_lastsearch_values=1';
|
||||
if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) {
|
||||
$add_save_lastsearch_values = 1;
|
||||
}
|
||||
if ($add_save_lastsearch_values) {
|
||||
$url .= '&save_lastsearch_values=1';
|
||||
}
|
||||
}
|
||||
|
||||
$linkclose = '';
|
||||
if (empty($notooltip))
|
||||
{
|
||||
if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER))
|
||||
{
|
||||
if (empty($notooltip)) {
|
||||
if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) {
|
||||
$label = $langs->trans("ShowCronJob");
|
||||
$linkclose .= ' alt="'.dol_escape_htmltag($label, 1).'"';
|
||||
}
|
||||
$linkclose .= ' title="'.dol_escape_htmltag($label, 1).'"';
|
||||
$linkclose .= ' class="classfortooltip'.($morecss ? ' '.$morecss : '').'"';
|
||||
} else $linkclose = ($morecss ? ' class="'.$morecss.'"' : '');
|
||||
} else {
|
||||
$linkclose = ($morecss ? ' class="'.$morecss.'"' : '');
|
||||
}
|
||||
|
||||
$linkstart = '<a href="'.$url.'"';
|
||||
$linkstart .= $linkclose.'>';
|
||||
$linkend = '</a>';
|
||||
|
||||
$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 != 2) $result .= $this->ref;
|
||||
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 != 2) {
|
||||
$result .= $this->ref;
|
||||
}
|
||||
$result .= $linkend;
|
||||
//if ($withpicto != 2) $result.=(($addlabel && $this->label) ? $sep . dol_trunc($this->label, ($addlabel > 1 ? $addlabel : 0)) : '');
|
||||
|
||||
@@ -949,10 +1031,8 @@ class Cronjob extends CommonObject
|
||||
|
||||
dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
if ($this->db->num_rows($resql))
|
||||
{
|
||||
if ($resql) {
|
||||
if ($this->db->num_rows($resql)) {
|
||||
$obj = $this->db->fetch_object($resql);
|
||||
$this->id = $obj->rowid;
|
||||
$this->date_creation = $this->db->jdate($obj->datec);
|
||||
@@ -992,8 +1072,7 @@ class Cronjob extends CommonObject
|
||||
|
||||
$langs->load('cron');
|
||||
|
||||
if (empty($userlogin))
|
||||
{
|
||||
if (empty($userlogin)) {
|
||||
$this->error = "User login is mandatory";
|
||||
dol_syslog(get_class($this)."::run_jobs ".$this->error, LOG_ERR);
|
||||
return -1;
|
||||
@@ -1001,8 +1080,7 @@ class Cronjob extends CommonObject
|
||||
|
||||
// Force the environment of running to the environment declared for job, so jobs launched from command line will run into correct environment
|
||||
// When job is ran from GUI, the environment should already be same, except if job has entity 0 (visible into all environments)
|
||||
if ($conf->entity != $this->entity && $this->entity > 0)
|
||||
{
|
||||
if ($conf->entity != $this->entity && $this->entity > 0) {
|
||||
dol_syslog("We try to run a job in entity ".$this->entity." when we are in entity ".$conf->entity, LOG_WARNING);
|
||||
}
|
||||
$savcurrententity = $conf->entity;
|
||||
@@ -1012,15 +1090,13 @@ class Cronjob extends CommonObject
|
||||
require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
|
||||
$user = new User($this->db);
|
||||
$result = $user->fetch('', $userlogin);
|
||||
if ($result < 0)
|
||||
{
|
||||
if ($result < 0) {
|
||||
$this->error = "User Error:".$user->error;
|
||||
dol_syslog(get_class($this)."::run_jobs ".$this->error, LOG_ERR);
|
||||
$conf->entity = $savcurrententity;
|
||||
return -1;
|
||||
} else {
|
||||
if (empty($user->id))
|
||||
{
|
||||
if (empty($user->id)) {
|
||||
$this->error = " User user login:".$userlogin." do not exists";
|
||||
dol_syslog(get_class($this)."::run_jobs ".$this->error, LOG_ERR);
|
||||
$conf->entity = $savcurrententity;
|
||||
@@ -1032,16 +1108,14 @@ class Cronjob extends CommonObject
|
||||
|
||||
// Increase limit of time. Works only if we are not in safe mode
|
||||
$ExecTimeLimit = 600;
|
||||
if (!empty($ExecTimeLimit))
|
||||
{
|
||||
if (!empty($ExecTimeLimit)) {
|
||||
$err = error_reporting();
|
||||
error_reporting(0); // Disable all errors
|
||||
//error_reporting(E_ALL);
|
||||
@set_time_limit($ExecTimeLimit); // Need more than 240 on Windows 7/64
|
||||
error_reporting($err);
|
||||
}
|
||||
if (!empty($MemoryLimit))
|
||||
{
|
||||
if (!empty($MemoryLimit)) {
|
||||
@ini_set('memory_limit', $MemoryLimit);
|
||||
}
|
||||
|
||||
@@ -1060,16 +1134,16 @@ class Cronjob extends CommonObject
|
||||
}
|
||||
|
||||
// Run a method
|
||||
if ($this->jobtype == 'method')
|
||||
{
|
||||
if ($this->jobtype == 'method') {
|
||||
// load classes
|
||||
if (!$error)
|
||||
{
|
||||
if (!$error) {
|
||||
$ret = dol_include_once($this->classesname);
|
||||
if ($ret === false || (!class_exists($this->objectname)))
|
||||
{
|
||||
if ($ret === false) $this->error = $langs->trans('CronCannotLoadClass', $this->classesname, $this->objectname);
|
||||
else $this->error = $langs->trans('CronCannotLoadObject', $this->classesname, $this->objectname);
|
||||
if ($ret === false || (!class_exists($this->objectname))) {
|
||||
if ($ret === false) {
|
||||
$this->error = $langs->trans('CronCannotLoadClass', $this->classesname, $this->objectname);
|
||||
} else {
|
||||
$this->error = $langs->trans('CronCannotLoadObject', $this->classesname, $this->objectname);
|
||||
}
|
||||
dol_syslog(get_class($this)."::run_jobs ".$this->error, LOG_ERR);
|
||||
$this->lastoutput = $this->error;
|
||||
$this->lastresult = -1;
|
||||
@@ -1079,10 +1153,8 @@ class Cronjob extends CommonObject
|
||||
}
|
||||
|
||||
// test if method exists
|
||||
if (!$error)
|
||||
{
|
||||
if (!method_exists($this->objectname, $this->methodename))
|
||||
{
|
||||
if (!$error) {
|
||||
if (!method_exists($this->objectname, $this->methodename)) {
|
||||
$this->error = $langs->trans('CronMethodDoesNotExists', $this->objectname, $this->methodename);
|
||||
dol_syslog(get_class($this)."::run_jobs ".$this->error, LOG_ERR);
|
||||
$this->lastoutput = $this->error;
|
||||
@@ -1090,8 +1162,7 @@ class Cronjob extends CommonObject
|
||||
$retval = $this->lastresult;
|
||||
$error++;
|
||||
}
|
||||
if (in_array(strtolower(trim($this->methodename)), array('executecli')))
|
||||
{
|
||||
if (in_array(strtolower(trim($this->methodename)), array('executecli'))) {
|
||||
$this->error = $langs->trans('CronMethodNotAllowed', $this->methodename, $this->objectname);
|
||||
dol_syslog(get_class($this)."::run_jobs ".$this->error, LOG_ERR);
|
||||
$this->lastoutput = $this->error;
|
||||
@@ -1102,13 +1173,11 @@ class Cronjob extends CommonObject
|
||||
}
|
||||
|
||||
// Load langs
|
||||
if (!$error)
|
||||
{
|
||||
if (!$error) {
|
||||
$result = $langs->load($this->module_name);
|
||||
$result = $langs->load($this->module_name.'@'.$this->module_name, 0, 0, '', 0, 1);
|
||||
|
||||
if ($result < 0) // If technical error
|
||||
{
|
||||
if ($result < 0) { // If technical error
|
||||
dol_syslog(get_class($this)."::run_jobs Cannot load module lang file - ".$langs->error, LOG_ERR);
|
||||
$this->error = $langs->error;
|
||||
$this->lastoutput = $this->error;
|
||||
@@ -1118,34 +1187,39 @@ class Cronjob extends CommonObject
|
||||
}
|
||||
}
|
||||
|
||||
if (!$error)
|
||||
{
|
||||
if (!$error) {
|
||||
dol_syslog(get_class($this)."::run_jobs START ".$this->objectname."->".$this->methodename."(".$this->params.");", LOG_DEBUG);
|
||||
|
||||
// Create Object for the called module
|
||||
$object = new $this->objectname($this->db);
|
||||
if ($this->entity > 0) $object->entity = $this->entity; // We work on a dedicated entity
|
||||
if ($this->entity > 0) {
|
||||
$object->entity = $this->entity; // We work on a dedicated entity
|
||||
}
|
||||
|
||||
$params_arr = array();
|
||||
if (!empty($this->params) || $this->params === '0') {
|
||||
$params_arr = array_map('trim', explode(",", $this->params));
|
||||
}
|
||||
|
||||
if (!is_array($params_arr))
|
||||
{
|
||||
if (!is_array($params_arr)) {
|
||||
$result = call_user_func(array($object, $this->methodename), $this->params);
|
||||
} else {
|
||||
$result = call_user_func_array(array($object, $this->methodename), $params_arr);
|
||||
}
|
||||
|
||||
if ($result === false || (!is_bool($result) && $result != 0))
|
||||
{
|
||||
if ($result === false || (!is_bool($result) && $result != 0)) {
|
||||
$langs->load("errors");
|
||||
|
||||
$errmsg = '';
|
||||
if (!is_array($object->errors) || !in_array($object->error, $object->errors)) $errmsg .= $object->error;
|
||||
if (is_array($object->errors) && count($object->errors)) $errmsg .= (($errmsg ? ', ' : '').join(', ', $object->errors));
|
||||
if (empty($errmsg)) $errmsg = $langs->trans('ErrorUnknown');
|
||||
if (!is_array($object->errors) || !in_array($object->error, $object->errors)) {
|
||||
$errmsg .= $object->error;
|
||||
}
|
||||
if (is_array($object->errors) && count($object->errors)) {
|
||||
$errmsg .= (($errmsg ? ', ' : '').join(', ', $object->errors));
|
||||
}
|
||||
if (empty($errmsg)) {
|
||||
$errmsg = $langs->trans('ErrorUnknown');
|
||||
}
|
||||
|
||||
dol_syslog(get_class($this)."::run_jobs END result=".$result." error=".$errmsg, LOG_ERR);
|
||||
|
||||
@@ -1167,8 +1241,7 @@ class Cronjob extends CommonObject
|
||||
//load lib
|
||||
$libpath = '/'.strtolower($this->module_name).'/lib/'.$this->libname;
|
||||
$ret = dol_include_once($libpath);
|
||||
if ($ret === false)
|
||||
{
|
||||
if ($ret === false) {
|
||||
$this->error = $langs->trans('CronCannotLoadLib').': '.$libpath;
|
||||
dol_syslog(get_class($this)."::run_jobs ".$this->error, LOG_ERR);
|
||||
$conf->entity = $savcurrententity;
|
||||
@@ -1178,8 +1251,7 @@ class Cronjob extends CommonObject
|
||||
// Load langs
|
||||
$result = $langs->load($this->module_name);
|
||||
$result = $langs->load($this->module_name.'@'.$this->module_name); // If this->module_name was an existing language file, this will make nothing
|
||||
if ($result < 0) // If technical error
|
||||
{
|
||||
if ($result < 0) { // If technical error
|
||||
dol_syslog(get_class($this)."::run_jobs Cannot load module langs".$langs->error, LOG_ERR);
|
||||
$conf->entity = $savcurrententity;
|
||||
return -1;
|
||||
@@ -1187,15 +1259,13 @@ class Cronjob extends CommonObject
|
||||
|
||||
dol_syslog(get_class($this)."::run_jobs ".$this->libname."::".$this->methodename."(".$this->params.");", LOG_DEBUG);
|
||||
$params_arr = explode(", ", $this->params);
|
||||
if (!is_array($params_arr))
|
||||
{
|
||||
if (!is_array($params_arr)) {
|
||||
$result = call_user_func($this->methodename, $this->params);
|
||||
} else {
|
||||
$result = call_user_func_array($this->methodename, $params_arr);
|
||||
}
|
||||
|
||||
if ($result === false || (!is_bool($result) && $result != 0))
|
||||
{
|
||||
if ($result === false || (!is_bool($result) && $result != 0)) {
|
||||
$langs->load("errors");
|
||||
dol_syslog(get_class($this)."::run_jobs result=".$result, LOG_ERR);
|
||||
$this->error = $langs->trans('ErrorUnknown');
|
||||
@@ -1211,8 +1281,7 @@ class Cronjob extends CommonObject
|
||||
}
|
||||
|
||||
// Run a command line
|
||||
if ($this->jobtype == 'command')
|
||||
{
|
||||
if ($this->jobtype == 'command') {
|
||||
global $dolibarr_cron_allow_cli;
|
||||
|
||||
if (empty($dolibarr_cron_allow_cli)) {
|
||||
@@ -1222,10 +1291,11 @@ class Cronjob extends CommonObject
|
||||
$this->lastresult = $langs->trans("ErrorParameterMustBeEnabledToAllwoThisFeature", 'dolibarr_cron_allow_cli');
|
||||
} else {
|
||||
$outputdir = $conf->cron->dir_temp;
|
||||
if (empty($outputdir)) $outputdir = $conf->cronjob->dir_temp;
|
||||
if (empty($outputdir)) {
|
||||
$outputdir = $conf->cronjob->dir_temp;
|
||||
}
|
||||
|
||||
if (!empty($outputdir))
|
||||
{
|
||||
if (!empty($outputdir)) {
|
||||
dol_mkdir($outputdir);
|
||||
$outputfile = $outputdir.'/cronjob.'.$userlogin.'.out'; // File used with popen method
|
||||
|
||||
@@ -1247,8 +1317,7 @@ class Cronjob extends CommonObject
|
||||
$this->datelastresult = dol_now();
|
||||
$this->processing = 0;
|
||||
$result = $this->update($user); // This include begin/commit
|
||||
if ($result < 0)
|
||||
{
|
||||
if ($result < 0) {
|
||||
dol_syslog(get_class($this)."::run_jobs ".$this->error, LOG_ERR);
|
||||
$conf->entity = $savcurrententity;
|
||||
return -1;
|
||||
@@ -1275,14 +1344,12 @@ class Cronjob extends CommonObject
|
||||
require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
|
||||
$user = new User($this->db);
|
||||
$result = $user->fetch('', $userlogin);
|
||||
if ($result < 0)
|
||||
{
|
||||
if ($result < 0) {
|
||||
$this->error = "User Error : ".$user->error;
|
||||
dol_syslog(get_class($this)."::reprogram_jobs ".$this->error, LOG_ERR);
|
||||
return -1;
|
||||
} else {
|
||||
if (empty($user->id))
|
||||
{
|
||||
if (empty($user->id)) {
|
||||
$this->error = " User user login:".$userlogin." do not exists";
|
||||
dol_syslog(get_class($this)."::reprogram_jobs ".$this->error, LOG_ERR);
|
||||
return -1;
|
||||
@@ -1291,17 +1358,17 @@ class Cronjob extends CommonObject
|
||||
|
||||
dol_syslog(get_class($this)."::reprogram_jobs datenextrun=".$this->datenextrun." ".dol_print_date($this->datenextrun, 'dayhourrfc')." frequency=".$this->frequency." unitfrequency=".$this->unitfrequency, LOG_DEBUG);
|
||||
|
||||
if (empty($this->datenextrun))
|
||||
{
|
||||
if (empty($this->datestart)) $this->datenextrun = $now + ($this->frequency * $this->unitfrequency);
|
||||
else $this->datenextrun = $this->datestart + ($this->frequency * $this->unitfrequency);
|
||||
if (empty($this->datenextrun)) {
|
||||
if (empty($this->datestart)) {
|
||||
$this->datenextrun = $now + ($this->frequency * $this->unitfrequency);
|
||||
} else {
|
||||
$this->datenextrun = $this->datestart + ($this->frequency * $this->unitfrequency);
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->datenextrun < $now && $this->frequency > 0 && $this->unitfrequency > 0)
|
||||
{
|
||||
if ($this->datenextrun < $now && $this->frequency > 0 && $this->unitfrequency > 0) {
|
||||
// Loop until date is after future
|
||||
while ($this->datenextrun < $now)
|
||||
{
|
||||
while ($this->datenextrun < $now) {
|
||||
$this->datenextrun += ($this->frequency * $this->unitfrequency);
|
||||
|
||||
// TODO For exact frequency (every month, every year, ...), use instead a dol_time_plus_duree($time, $duration_value, $duration_unit)
|
||||
@@ -1313,11 +1380,9 @@ class Cronjob extends CommonObject
|
||||
|
||||
|
||||
// Archive job
|
||||
if ($this->autodelete == 2)
|
||||
{
|
||||
if ($this->autodelete == 2) {
|
||||
if (($this->maxrun > 0 && ($this->nbrun >= $this->maxrun))
|
||||
|| ($this->dateend && ($this->datenextrun > $this->dateend)))
|
||||
{
|
||||
|| ($this->dateend && ($this->datenextrun > $this->dateend))) {
|
||||
$this->status = self::STATUS_ARCHIVED;
|
||||
dol_syslog(get_class($this)."::reprogram_jobs Job will be set to archived", LOG_ERR);
|
||||
}
|
||||
@@ -1377,9 +1442,15 @@ class Cronjob extends CommonObject
|
||||
}
|
||||
|
||||
$statusType = 'status4';
|
||||
if ($status == 1 && $processing) $statusType = 'status1';
|
||||
if ($status == 0) $statusType = 'status5';
|
||||
if ($this->lastresult) $statusType = 'status8';
|
||||
if ($status == 1 && $processing) {
|
||||
$statusType = 'status1';
|
||||
}
|
||||
if ($status == 0) {
|
||||
$statusType = 'status5';
|
||||
}
|
||||
if ($this->lastresult) {
|
||||
$statusType = 'status8';
|
||||
}
|
||||
|
||||
return dolGetStatus($this->labelStatus[$status], $this->labelStatusShort[$status], '', $statusType, $mode);
|
||||
}
|
||||
|
||||
@@ -30,7 +30,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
|
||||
$langs->loadLangs(array('admin', 'cron'));
|
||||
|
||||
// Security check
|
||||
if (!$user->rights->cron->read) accessforbidden();
|
||||
if (!$user->rights->cron->read) {
|
||||
accessforbidden();
|
||||
}
|
||||
|
||||
$id = GETPOST('id', 'int');
|
||||
|
||||
|
||||
@@ -34,7 +34,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
||||
// Load translation files required by the page
|
||||
$langs->loadLangs(array("admin", "cron", "bills", "members"));
|
||||
|
||||
if (!$user->rights->cron->read) accessforbidden();
|
||||
if (!$user->rights->cron->read) {
|
||||
accessforbidden();
|
||||
}
|
||||
|
||||
$action = GETPOST('action', 'aZ09');
|
||||
$massaction = GETPOST('massaction', 'alpha'); // The bulk action (combo box choice into lists)
|
||||
@@ -48,12 +50,18 @@ $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit;
|
||||
$sortfield = GETPOST("sortfield", 'alpha');
|
||||
$sortorder = GETPOST("sortorder", 'alpha');
|
||||
$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;
|
||||
$pageprev = $page - 1;
|
||||
$pagenext = $page + 1;
|
||||
if (!$sortfield) $sortfield = 't.status,t.priority';
|
||||
if (!$sortorder) $sortorder = 'DESC,ASC';
|
||||
if (!$sortfield) {
|
||||
$sortfield = 't.status,t.priority';
|
||||
}
|
||||
if (!$sortorder) {
|
||||
$sortorder = 'DESC,ASC';
|
||||
}
|
||||
|
||||
$mode = GETPOST('mode', 'aZ09');
|
||||
//Search criteria
|
||||
@@ -82,21 +90,25 @@ $search_array_options = $extrafields->getOptionalsFromPost($object->table_elemen
|
||||
* Actions
|
||||
*/
|
||||
|
||||
if (GETPOST('cancel', 'alpha')) { $action = 'list'; $massaction = ''; }
|
||||
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction = ''; }
|
||||
if (GETPOST('cancel', 'alpha')) {
|
||||
$action = 'list'; $massaction = '';
|
||||
}
|
||||
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') {
|
||||
$massaction = '';
|
||||
}
|
||||
|
||||
$parameters = array();
|
||||
$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
|
||||
include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
|
||||
|
||||
// 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_label = '';
|
||||
$search_status = -1;
|
||||
$search_lastresult = '';
|
||||
@@ -104,20 +116,17 @@ if (empty($reshook))
|
||||
$search_array_options = array();
|
||||
}
|
||||
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')
|
||||
|| GETPOST('button_search_x', 'alpha') || GETPOST('button_search.x', 'alpha') || GETPOST('button_search', 'alpha'))
|
||||
{
|
||||
|| GETPOST('button_search_x', 'alpha') || GETPOST('button_search.x', 'alpha') || GETPOST('button_search', 'alpha')) {
|
||||
$massaction = ''; // Protection to avoid mass action if we force a new search during a mass action confirmation
|
||||
}
|
||||
|
||||
$filter = array();
|
||||
if (!empty($search_label))
|
||||
{
|
||||
if (!empty($search_label)) {
|
||||
$filter['t.label'] = $search_label;
|
||||
}
|
||||
|
||||
// Delete jobs
|
||||
if ($action == 'confirm_delete' && $confirm == "yes" && $user->rights->cron->delete)
|
||||
{
|
||||
if ($action == 'confirm_delete' && $confirm == "yes" && $user->rights->cron->delete) {
|
||||
//Delete cron task
|
||||
$object = new Cronjob($db);
|
||||
$object->id = $id;
|
||||
@@ -129,10 +138,8 @@ if (empty($reshook))
|
||||
}
|
||||
|
||||
// Execute jobs
|
||||
if ($action == 'confirm_execute' && $confirm == "yes" && $user->rights->cron->execute)
|
||||
{
|
||||
if (!empty($conf->global->CRON_KEY) && $conf->global->CRON_KEY != $securitykey)
|
||||
{
|
||||
if ($action == 'confirm_execute' && $confirm == "yes" && $user->rights->cron->execute) {
|
||||
if (!empty($conf->global->CRON_KEY) && $conf->global->CRON_KEY != $securitykey) {
|
||||
setEventMessages('Security key '.$securitykey.' is wrong', null, 'errors');
|
||||
$action = '';
|
||||
} else {
|
||||
@@ -148,12 +155,13 @@ if (empty($reshook))
|
||||
|
||||
// Programm next run
|
||||
$res = $object->reprogram_jobs($user->login, $now);
|
||||
if ($res > 0)
|
||||
{
|
||||
if ($resrunjob >= 0) // We show the result of reprogram only if no error message already reported
|
||||
{
|
||||
if ($object->lastresult >= 0) setEventMessages($langs->trans("JobFinished"), null, 'mesgs');
|
||||
else setEventMessages($langs->trans("JobFinished"), null, 'errors');
|
||||
if ($res > 0) {
|
||||
if ($resrunjob >= 0) { // We show the result of reprogram only if no error message already reported
|
||||
if ($object->lastresult >= 0) {
|
||||
setEventMessages($langs->trans("JobFinished"), null, 'mesgs');
|
||||
} else {
|
||||
setEventMessages($langs->trans("JobFinished"), null, 'errors');
|
||||
}
|
||||
}
|
||||
$action = '';
|
||||
} else {
|
||||
@@ -162,10 +170,18 @@ if (empty($reshook))
|
||||
}
|
||||
|
||||
$param = '&search_status='.urlencode($search_status);
|
||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage);
|
||||
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit);
|
||||
if ($search_label) $param .= '&search_label='.urlencode($search_label);
|
||||
if ($optioncss != '') $param .= '&optioncss='.urlencode($optioncss);
|
||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
|
||||
$param .= '&contextpage='.urlencode($contextpage);
|
||||
}
|
||||
if ($limit > 0 && $limit != $conf->liste_limit) {
|
||||
$param .= '&limit='.urlencode($limit);
|
||||
}
|
||||
if ($search_label) {
|
||||
$param .= '&search_label='.urlencode($search_label);
|
||||
}
|
||||
if ($optioncss != '') {
|
||||
$param .= '&optioncss='.urlencode($optioncss);
|
||||
}
|
||||
// Add $param from extra fields
|
||||
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
|
||||
|
||||
@@ -182,19 +198,21 @@ if (empty($reshook))
|
||||
$permissiontodelete = $user->rights->cron->delete;
|
||||
$uploaddir = $conf->cron->dir_output;
|
||||
include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php';
|
||||
if ($permissiontoadd)
|
||||
{
|
||||
if ($permissiontoadd) {
|
||||
$tmpcron = new Cronjob($db);
|
||||
foreach ($toselect as $id)
|
||||
{
|
||||
foreach ($toselect as $id) {
|
||||
$result = $tmpcron->fetch($id);
|
||||
if ($result)
|
||||
{
|
||||
if ($result) {
|
||||
$result = 0;
|
||||
if ($massaction == 'disable') $result = $tmpcron->setStatut(Cronjob::STATUS_DISABLED);
|
||||
elseif ($massaction == 'enable') $result = $tmpcron->setStatut(Cronjob::STATUS_ENABLED);
|
||||
if ($massaction == 'disable') {
|
||||
$result = $tmpcron->setStatut(Cronjob::STATUS_DISABLED);
|
||||
} elseif ($massaction == 'enable') {
|
||||
$result = $tmpcron->setStatut(Cronjob::STATUS_ENABLED);
|
||||
}
|
||||
//else dol_print_error($db, 'Bad value for massaction');
|
||||
if ($result < 0) setEventMessages($tmpcron->error, $tmpcron->errors, 'errors');
|
||||
if ($result < 0) {
|
||||
setEventMessages($tmpcron->error, $tmpcron->errors, 'errors');
|
||||
}
|
||||
} else {
|
||||
$error++;
|
||||
}
|
||||
@@ -248,8 +266,12 @@ $sql .= " t.libname,";
|
||||
$sql .= " t.test";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."cronjob as t";
|
||||
$sql .= " WHERE entity IN (0,".$conf->entity.")";
|
||||
if ($search_status >= 0 && $search_status < 2 && $search_status != '') $sql .= " AND t.status = ".(empty($search_status) ? '0' : '1');
|
||||
if ($search_lastresult != '') $sql .= natural_search("t.lastresult", $search_lastresult, 1);
|
||||
if ($search_status >= 0 && $search_status < 2 && $search_status != '') {
|
||||
$sql .= " AND t.status = ".(empty($search_status) ? '0' : '1');
|
||||
}
|
||||
if ($search_lastresult != '') {
|
||||
$sql .= natural_search("t.lastresult", $search_lastresult, 1);
|
||||
}
|
||||
//Manage filter
|
||||
if (is_array($filter) && count($filter) > 0) {
|
||||
foreach ($filter as $key => $value) {
|
||||
@@ -274,12 +296,10 @@ $sql .= $db->order($sortfield, $sortorder);
|
||||
|
||||
// Count total nb of records
|
||||
$nbtotalofrecords = '';
|
||||
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
||||
{
|
||||
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
|
||||
$result = $db->query($sql);
|
||||
$nbtotalofrecords = $db->num_rows($result);
|
||||
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;
|
||||
$offset = 0;
|
||||
}
|
||||
@@ -288,32 +308,48 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
||||
$sql .= $db->plimit($limit + 1, $offset);
|
||||
|
||||
$result = $db->query($sql);
|
||||
if (!$result) dol_print_error($db);
|
||||
if (!$result) {
|
||||
dol_print_error($db);
|
||||
}
|
||||
|
||||
$num = $db->num_rows($result);
|
||||
|
||||
$arrayofselected = is_array($toselect) ? $toselect : array();
|
||||
|
||||
$param = '';
|
||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage);
|
||||
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit);
|
||||
if ($search_status) $param .= '&search_status='.urlencode($search_status);
|
||||
if ($search_label) $param .= '&search_label='.urlencode($search_label);
|
||||
if ($search_module_name) $param .= '&search_module_name='.urlencode($search_module_name);
|
||||
if ($search_lastresult) $param .= '&search_lastresult='.urlencode($search_lastresult);
|
||||
if ($mode) $param .= '&mode='.urlencode($mode);
|
||||
if ($optioncss != '') $param .= '&optioncss='.urlencode($optioncss);
|
||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
|
||||
$param .= '&contextpage='.urlencode($contextpage);
|
||||
}
|
||||
if ($limit > 0 && $limit != $conf->liste_limit) {
|
||||
$param .= '&limit='.urlencode($limit);
|
||||
}
|
||||
if ($search_status) {
|
||||
$param .= '&search_status='.urlencode($search_status);
|
||||
}
|
||||
if ($search_label) {
|
||||
$param .= '&search_label='.urlencode($search_label);
|
||||
}
|
||||
if ($search_module_name) {
|
||||
$param .= '&search_module_name='.urlencode($search_module_name);
|
||||
}
|
||||
if ($search_lastresult) {
|
||||
$param .= '&search_lastresult='.urlencode($search_lastresult);
|
||||
}
|
||||
if ($mode) {
|
||||
$param .= '&mode='.urlencode($mode);
|
||||
}
|
||||
if ($optioncss != '') {
|
||||
$param .= '&optioncss='.urlencode($optioncss);
|
||||
}
|
||||
// Add $param from extra fields
|
||||
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
|
||||
|
||||
$stringcurrentdate = $langs->trans("CurrentHour").': '.dol_print_date(dol_now(), 'dayhour');
|
||||
|
||||
if ($action == 'delete')
|
||||
{
|
||||
if ($action == 'delete') {
|
||||
print $form->formconfirm($_SERVER['PHP_SELF']."?id=".$id.$param, $langs->trans("CronDelete"), $langs->trans("CronConfirmDelete"), "confirm_delete", '', '', 1);
|
||||
}
|
||||
if ($action == 'execute')
|
||||
{
|
||||
if ($action == 'execute') {
|
||||
print $form->formconfirm($_SERVER['PHP_SELF']."?id=".$id.'&securitykey='.$securitykey.$param, $langs->trans("CronExecute"), $langs->trans("CronConfirmExecute"), "confirm_execute", '', '', 1);
|
||||
}
|
||||
|
||||
@@ -324,8 +360,12 @@ $arrayofmassactions = array(
|
||||
'enable'=>$langs->trans("CronStatusActiveBtn"),
|
||||
'disable'=>$langs->trans("CronStatusInactiveBtn"),
|
||||
);
|
||||
if ($user->rights->mymodule->delete) $arrayofmassactions['predelete'] = '<span class="fa fa-trash paddingrightonly"></span>'.$langs->trans("Delete");
|
||||
if (in_array($massaction, array('presend', 'predelete'))) $arrayofmassactions = array();
|
||||
if ($user->rights->mymodule->delete) {
|
||||
$arrayofmassactions['predelete'] = '<span class="fa fa-trash paddingrightonly"></span>'.$langs->trans("Delete");
|
||||
}
|
||||
if (in_array($massaction, array('presend', 'predelete'))) {
|
||||
$arrayofmassactions = array();
|
||||
}
|
||||
$massactionbutton = $form->selectMassAction('', $arrayofmassactions);
|
||||
|
||||
if ($mode == 'modulesetup') {
|
||||
@@ -337,7 +377,9 @@ if ($mode == 'modulesetup') {
|
||||
}
|
||||
|
||||
print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'" name="search_form">'."\n";
|
||||
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="formfilteraction" id="formfilteraction" value="list">';
|
||||
print '<input type="hidden" name="action" value="list">';
|
||||
@@ -362,7 +404,9 @@ print_barre_liste($pagetitle, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $
|
||||
|
||||
|
||||
$text = $langs->trans("HoursOnThisPageAreOnServerTZ").' '.$stringcurrentdate.'<br>';
|
||||
if (!empty($conf->global->CRON_WARNING_DELAY_HOURS)) $text .= $langs->trans("WarningCronDelayed", $conf->global->CRON_WARNING_DELAY_HOURS);
|
||||
if (!empty($conf->global->CRON_WARNING_DELAY_HOURS)) {
|
||||
$text .= $langs->trans("WarningCronDelayed", $conf->global->CRON_WARNING_DELAY_HOURS);
|
||||
}
|
||||
print info_admin($text);
|
||||
print '<br>';
|
||||
|
||||
@@ -417,18 +461,20 @@ print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", "", $param, '
|
||||
print "</tr>\n";
|
||||
|
||||
|
||||
if ($num > 0)
|
||||
{
|
||||
if ($num > 0) {
|
||||
// Loop on each job
|
||||
$now = dol_now();
|
||||
$i = 0;
|
||||
|
||||
while ($i < min($num, $limit))
|
||||
{
|
||||
while ($i < min($num, $limit)) {
|
||||
$obj = $db->fetch_object($result);
|
||||
|
||||
if (empty($obj)) break;
|
||||
if (!verifCond($obj->test)) continue; // Discard line with test = false
|
||||
if (empty($obj)) {
|
||||
break;
|
||||
}
|
||||
if (!verifCond($obj->test)) {
|
||||
continue; // Discard line with test = false
|
||||
}
|
||||
|
||||
$object->id = $obj->rowid;
|
||||
$object->ref = $obj->rowid;
|
||||
@@ -450,8 +496,7 @@ if ($num > 0)
|
||||
|
||||
// Label
|
||||
print '<td class="tdoverflowmax300">';
|
||||
if (!empty($obj->label))
|
||||
{
|
||||
if (!empty($obj->label)) {
|
||||
$object->ref = $langs->trans($obj->label);
|
||||
print '<span title="'.dol_escape_htmltag($langs->trans($obj->label)).'">'.$object->getNomUrl(0, '', 1).'</span>';
|
||||
$object->ref = $obj->rowid;
|
||||
@@ -466,8 +511,7 @@ if ($num > 0)
|
||||
print '</td>';
|
||||
|
||||
print '<td>';
|
||||
if ($obj->jobtype == 'method')
|
||||
{
|
||||
if ($obj->jobtype == 'method') {
|
||||
$text = $langs->trans("CronClass");
|
||||
$texttoshow = $langs->trans('CronModule').': '.$obj->module_name.'<br>';
|
||||
$texttoshow .= $langs->trans('CronClass').': '.$obj->classesname.'<br>';
|
||||
@@ -475,8 +519,7 @@ if ($num > 0)
|
||||
$texttoshow .= $langs->trans('CronMethod').': '.$obj->methodename;
|
||||
$texttoshow .= '<br>'.$langs->trans('CronArgs').': '.$obj->params;
|
||||
$texttoshow .= '<br>'.$langs->trans('Comment').': '.$langs->trans($obj->note);
|
||||
} elseif ($obj->jobtype == 'command')
|
||||
{
|
||||
} elseif ($obj->jobtype == 'command') {
|
||||
$text = $langs->trans('CronCommand');
|
||||
$texttoshow = $langs->trans('CronCommand').': '.dol_trunc($obj->command);
|
||||
$texttoshow .= '<br>'.$langs->trans('CronArgs').': '.$obj->params;
|
||||
@@ -486,28 +529,48 @@ if ($num > 0)
|
||||
print '</td>';
|
||||
|
||||
print '<td>';
|
||||
if ($obj->unitfrequency == "60") print $langs->trans('CronEach')." ".($obj->frequency)." ".$langs->trans('Minutes');
|
||||
if ($obj->unitfrequency == "3600") print $langs->trans('CronEach')." ".($obj->frequency)." ".$langs->trans('Hours');
|
||||
if ($obj->unitfrequency == "86400") print $langs->trans('CronEach')." ".($obj->frequency)." ".$langs->trans('Days');
|
||||
if ($obj->unitfrequency == "604800") print $langs->trans('CronEach')." ".($obj->frequency)." ".$langs->trans('Weeks');
|
||||
if ($obj->unitfrequency == "60") {
|
||||
print $langs->trans('CronEach')." ".($obj->frequency)." ".$langs->trans('Minutes');
|
||||
}
|
||||
if ($obj->unitfrequency == "3600") {
|
||||
print $langs->trans('CronEach')." ".($obj->frequency)." ".$langs->trans('Hours');
|
||||
}
|
||||
if ($obj->unitfrequency == "86400") {
|
||||
print $langs->trans('CronEach')." ".($obj->frequency)." ".$langs->trans('Days');
|
||||
}
|
||||
if ($obj->unitfrequency == "604800") {
|
||||
print $langs->trans('CronEach')." ".($obj->frequency)." ".$langs->trans('Weeks');
|
||||
}
|
||||
print '</td>';
|
||||
|
||||
print '<td class="center">';
|
||||
if (!empty($obj->datestart)) { print dol_print_date($db->jdate($obj->datestart), 'dayhour'); }
|
||||
if (!empty($obj->datestart)) {
|
||||
print dol_print_date($db->jdate($obj->datestart), 'dayhour');
|
||||
}
|
||||
print '</td>';
|
||||
|
||||
print '<td class="center">';
|
||||
if (!empty($obj->dateend)) { print dol_print_date($db->jdate($obj->dateend), 'dayhour'); }
|
||||
if (!empty($obj->dateend)) {
|
||||
print dol_print_date($db->jdate($obj->dateend), 'dayhour');
|
||||
}
|
||||
print '</td>';
|
||||
|
||||
print '<td class="right">';
|
||||
if (!empty($obj->nbrun)) { print $obj->nbrun; } else {print '0'; }
|
||||
if (!empty($obj->maxrun)) { print ' <span class="'.$langs->trans("Max").'">/ '.$obj->maxrun.'</span>'; }
|
||||
if (!empty($obj->nbrun)) {
|
||||
print $obj->nbrun;
|
||||
} else {
|
||||
print '0';
|
||||
}
|
||||
if (!empty($obj->maxrun)) {
|
||||
print ' <span class="'.$langs->trans("Max").'">/ '.$obj->maxrun.'</span>';
|
||||
}
|
||||
print '</td>';
|
||||
|
||||
// Date start last run
|
||||
print '<td class="center">';
|
||||
if (!empty($datelastrun)) { print dol_print_date($datelastrun, 'dayhoursec'); }
|
||||
if (!empty($datelastrun)) {
|
||||
print dol_print_date($datelastrun, 'dayhoursec');
|
||||
}
|
||||
print '</td>';
|
||||
|
||||
// Duration
|
||||
@@ -521,27 +584,38 @@ if ($num > 0)
|
||||
// Return code of last run
|
||||
print '<td class="center">';
|
||||
if ($obj->lastresult != '') {
|
||||
if (empty($obj->lastresult)) print $obj->lastresult;
|
||||
else print '<span class="error">'.dol_trunc($obj->lastresult).'</div>';
|
||||
if (empty($obj->lastresult)) {
|
||||
print $obj->lastresult;
|
||||
} else {
|
||||
print '<span class="error">'.dol_trunc($obj->lastresult).'</div>';
|
||||
}
|
||||
}
|
||||
print '</td>';
|
||||
|
||||
// Output of last run
|
||||
print '<td>';
|
||||
if (!empty($obj->lastoutput)) {print dol_trunc(nl2br($obj->lastoutput), 50); }
|
||||
if (!empty($obj->lastoutput)) {
|
||||
print dol_trunc(nl2br($obj->lastoutput), 50);
|
||||
}
|
||||
print '</td>';
|
||||
|
||||
print '<td class="center">';
|
||||
if (!empty($obj->datenextrun)) {
|
||||
$datenextrun = $db->jdate($obj->datenextrun);
|
||||
if (empty($obj->status)) print '<span class="opacitymedium">';
|
||||
print dol_print_date($datenextrun, 'dayhoursec');
|
||||
if ($obj->status == Cronjob::STATUS_ENABLED)
|
||||
{
|
||||
if ($obj->maxrun && $obj->nbrun >= $obj->maxrun) print img_warning($langs->trans("MaxRunReached"));
|
||||
elseif ($datenextrun && $datenextrun < $now) print img_warning($langs->trans("Late"));
|
||||
if (empty($obj->status)) {
|
||||
print '<span class="opacitymedium">';
|
||||
}
|
||||
print dol_print_date($datenextrun, 'dayhoursec');
|
||||
if ($obj->status == Cronjob::STATUS_ENABLED) {
|
||||
if ($obj->maxrun && $obj->nbrun >= $obj->maxrun) {
|
||||
print img_warning($langs->trans("MaxRunReached"));
|
||||
} elseif ($datenextrun && $datenextrun < $now) {
|
||||
print img_warning($langs->trans("Late"));
|
||||
}
|
||||
}
|
||||
if (empty($obj->status)) {
|
||||
print '</span>';
|
||||
}
|
||||
if (empty($obj->status)) print '</span>';
|
||||
}
|
||||
print '</td>';
|
||||
|
||||
@@ -553,20 +627,17 @@ if ($num > 0)
|
||||
print '<td class="nowraponall right">';
|
||||
|
||||
$backtopage = urlencode($_SERVER["PHP_SELF"].'?'.$param.($sortfield ? '&sortfield='.$sortfield : '').($sortorder ? '&sortorder='.$sortorder : ''));
|
||||
if ($user->rights->cron->create)
|
||||
{
|
||||
if ($user->rights->cron->create) {
|
||||
print '<a class="editfielda" href="'.DOL_URL_ROOT."/cron/card.php?id=".$obj->rowid.'&action=edit&token='.newToken().($sortfield ? '&sortfield='.$sortfield : '').($sortorder ? '&sortorder='.$sortorder : '').$param;
|
||||
print "&backtopage=".$backtopage."\" title=\"".dol_escape_htmltag($langs->trans('Edit'))."\">".img_picto($langs->trans('Edit'), 'edit')."</a> ";
|
||||
}
|
||||
if ($user->rights->cron->delete)
|
||||
{
|
||||
if ($user->rights->cron->delete) {
|
||||
print '<a class="reposition" href="'.$_SERVER["PHP_SELF"]."?id=".$obj->rowid.'&action=delete&token='.newToken().($page ? '&page='.$page : '').($sortfield ? '&sortfield='.$sortfield : '').($sortorder ? '&sortorder='.$sortorder : '').$param;
|
||||
print "\" title=\"".dol_escape_htmltag($langs->trans('CronDelete'))."\">".img_picto($langs->trans('CronDelete'), 'delete', '', false, 0, 0, '', 'marginleftonly')."</a> ";
|
||||
} else {
|
||||
print "<a href=\"#\" title=\"".dol_escape_htmltag($langs->trans('NotEnoughPermissions'))."\">".img_picto($langs->trans('NotEnoughPermissions'), 'delete', '', false, 0, 0, '', 'marginleftonly')."</a> ";
|
||||
}
|
||||
if ($user->rights->cron->execute)
|
||||
{
|
||||
if ($user->rights->cron->execute) {
|
||||
if (!empty($obj->status)) {
|
||||
print '<a class="reposition" href="'.$_SERVER["PHP_SELF"].'?id='.$obj->rowid.'&action=execute';
|
||||
print (empty($conf->global->CRON_KEY) ? '' : '&securitykey='.$conf->global->CRON_KEY);
|
||||
@@ -579,10 +650,11 @@ if ($num > 0)
|
||||
} else {
|
||||
print '<a href="#" class="cursornotallowed" title="'.dol_escape_htmltag($langs->trans('NotEnoughPermissions')).'">'.img_picto($langs->trans('NotEnoughPermissions'), "playdisabled", '', false, 0, 0, '', 'marginleftonly').'</a>';
|
||||
}
|
||||
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;
|
||||
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 valignmiddle" type="checkbox" name="toselect[]" value="'.$obj->rowid.'"'.($selected ? ' checked="checked"' : '').'>';
|
||||
}
|
||||
print '</td>';
|
||||
|
||||
@@ -32,24 +32,42 @@
|
||||
|
||||
//if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); // Not disabled cause need to load personalized language
|
||||
//if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); // Not disabled cause need to load personalized language
|
||||
if (!defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', '1');
|
||||
if (!defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1');
|
||||
if (!defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1');
|
||||
if (!defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1');
|
||||
if (!defined('NOTOKENRENEWAL')) {
|
||||
define('NOTOKENRENEWAL', '1');
|
||||
}
|
||||
if (!defined('NOREQUIREMENU')) {
|
||||
define('NOREQUIREMENU', '1');
|
||||
}
|
||||
if (!defined('NOREQUIREHTML')) {
|
||||
define('NOREQUIREHTML', '1');
|
||||
}
|
||||
if (!defined('NOREQUIREAJAX')) {
|
||||
define('NOREQUIREAJAX', '1');
|
||||
}
|
||||
|
||||
// For direct external download link, we don't need to load/check we are into a login session
|
||||
if (isset($_GET["hashp"]) && !defined("NOLOGIN"))
|
||||
{
|
||||
if (!defined("NOLOGIN")) define("NOLOGIN", 1);
|
||||
if (!defined("NOCSRFCHECK")) define("NOCSRFCHECK", 1); // We accept to go on this page from external web site.
|
||||
if (!defined("NOIPCHECK")) define("NOIPCHECK", 1); // Do not check IP defined into conf $dolibarr_main_restrict_ip
|
||||
if (isset($_GET["hashp"]) && !defined("NOLOGIN")) {
|
||||
if (!defined("NOLOGIN")) {
|
||||
define("NOLOGIN", 1);
|
||||
}
|
||||
if (!defined("NOCSRFCHECK")) {
|
||||
define("NOCSRFCHECK", 1); // We accept to go on this page from external web site.
|
||||
}
|
||||
if (!defined("NOIPCHECK")) {
|
||||
define("NOIPCHECK", 1); // Do not check IP defined into conf $dolibarr_main_restrict_ip
|
||||
}
|
||||
}
|
||||
// Some value of modulepart can be used to get resources that are public so no login are required.
|
||||
if ((isset($_GET["modulepart"]) && $_GET["modulepart"] == 'medias'))
|
||||
{
|
||||
if (!defined("NOLOGIN")) define("NOLOGIN", 1);
|
||||
if (!defined("NOCSRFCHECK")) define("NOCSRFCHECK", 1); // We accept to go on this page from external web site.
|
||||
if (!defined("NOIPCHECK")) define("NOIPCHECK", 1); // Do not check IP defined into conf $dolibarr_main_restrict_ip
|
||||
if ((isset($_GET["modulepart"]) && $_GET["modulepart"] == 'medias')) {
|
||||
if (!defined("NOLOGIN")) {
|
||||
define("NOLOGIN", 1);
|
||||
}
|
||||
if (!defined("NOCSRFCHECK")) {
|
||||
define("NOCSRFCHECK", 1); // We accept to go on this page from external web site.
|
||||
}
|
||||
if (!defined("NOIPCHECK")) {
|
||||
define("NOIPCHECK", 1); // Do not check IP defined into conf $dolibarr_main_restrict_ip
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -84,17 +102,26 @@ $urlsource = GETPOST('urlsource', 'alpha');
|
||||
$entity = GETPOST('entity', 'int') ?GETPOST('entity', 'int') : $conf->entity;
|
||||
|
||||
// Security check
|
||||
if (empty($modulepart) && empty($hashp)) accessforbidden('Bad link. Bad value for parameter modulepart', 0, 0, 1);
|
||||
if (empty($original_file) && empty($hashp)) accessforbidden('Bad link. Missing identification to find file (original_file or hashp)', 0, 0, 1);
|
||||
if ($modulepart == 'fckeditor') $modulepart = 'medias'; // For backward compatibility
|
||||
if (empty($modulepart) && empty($hashp)) {
|
||||
accessforbidden('Bad link. Bad value for parameter modulepart', 0, 0, 1);
|
||||
}
|
||||
if (empty($original_file) && empty($hashp)) {
|
||||
accessforbidden('Bad link. Missing identification to find file (original_file or hashp)', 0, 0, 1);
|
||||
}
|
||||
if ($modulepart == 'fckeditor') {
|
||||
$modulepart = 'medias'; // For backward compatibility
|
||||
}
|
||||
|
||||
$socid = 0;
|
||||
if ($user->socid > 0) $socid = $user->socid;
|
||||
if ($user->socid > 0) {
|
||||
$socid = $user->socid;
|
||||
}
|
||||
|
||||
// For some module part, dir may be privates
|
||||
if (in_array($modulepart, array('facture_paiement', 'unpaid')))
|
||||
{
|
||||
if (!$user->rights->societe->client->voir || $socid) $original_file = 'private/'.$user->id.'/'.$original_file; // If user has no permission to see all, output dir is specific to user
|
||||
if (in_array($modulepart, array('facture_paiement', 'unpaid'))) {
|
||||
if (!$user->rights->societe->client->voir || $socid) {
|
||||
$original_file = 'private/'.$user->id.'/'.$original_file; // If user has no permission to see all, output dir is specific to user
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -111,25 +138,20 @@ if (in_array($modulepart, array('facture_paiement', 'unpaid')))
|
||||
*/
|
||||
|
||||
// If we have a hash public (hashp), we guess the original_file.
|
||||
if (!empty($hashp))
|
||||
{
|
||||
if (!empty($hashp)) {
|
||||
include_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmfiles.class.php';
|
||||
$ecmfile = new EcmFiles($db);
|
||||
$result = $ecmfile->fetch(0, '', '', '', $hashp);
|
||||
if ($result > 0)
|
||||
{
|
||||
if ($result > 0) {
|
||||
$tmp = explode('/', $ecmfile->filepath, 2); // $ecmfile->filepath is relative to document directory
|
||||
// filepath can be 'users/X' or 'X/propale/PR11111'
|
||||
if (is_numeric($tmp[0])) // If first tmp is numeric, it is subdir of company for multicompany, we take next part.
|
||||
{
|
||||
if (is_numeric($tmp[0])) { // If first tmp is numeric, it is subdir of company for multicompany, we take next part.
|
||||
$tmp = explode('/', $tmp[1], 2);
|
||||
}
|
||||
$moduleparttocheck = $tmp[0]; // moduleparttocheck is first part of path
|
||||
|
||||
if ($modulepart) // Not required, so often not defined, for link using public hashp parameter.
|
||||
{
|
||||
if ($moduleparttocheck == $modulepart)
|
||||
{
|
||||
if ($modulepart) { // Not required, so often not defined, for link using public hashp parameter.
|
||||
if ($moduleparttocheck == $modulepart) {
|
||||
// We remove first level of directory
|
||||
$original_file = (($tmp[1] ? $tmp[1].'/' : '').$ecmfile->filename); // this is relative to module dir
|
||||
//var_dump($original_file); exit;
|
||||
@@ -148,14 +170,23 @@ if (!empty($hashp))
|
||||
|
||||
// Define attachment (attachment=true to force choice popup 'open'/'save as')
|
||||
$attachment = true;
|
||||
if (preg_match('/\.(html|htm)$/i', $original_file)) $attachment = false;
|
||||
if (isset($_GET["attachment"])) $attachment = GETPOST("attachment", 'alpha') ?true:false;
|
||||
if (!empty($conf->global->MAIN_DISABLE_FORCE_SAVEAS)) $attachment = false;
|
||||
if (preg_match('/\.(html|htm)$/i', $original_file)) {
|
||||
$attachment = false;
|
||||
}
|
||||
if (isset($_GET["attachment"])) {
|
||||
$attachment = GETPOST("attachment", 'alpha') ?true:false;
|
||||
}
|
||||
if (!empty($conf->global->MAIN_DISABLE_FORCE_SAVEAS)) {
|
||||
$attachment = false;
|
||||
}
|
||||
|
||||
// Define mime type
|
||||
$type = 'application/octet-stream'; // By default
|
||||
if (GETPOST('type', 'alpha')) $type = GETPOST('type', 'alpha');
|
||||
else $type = dol_mimetype($original_file);
|
||||
if (GETPOST('type', 'alpha')) {
|
||||
$type = GETPOST('type', 'alpha');
|
||||
} else {
|
||||
$type = dol_mimetype($original_file);
|
||||
}
|
||||
// Security: Force to octet-stream if file is a dangerous file. For example when it is a .noexe file
|
||||
// We do not force if file is a javascript to be able to get js from website module with <script src="
|
||||
// Note: Force whatever is $modulepart seems ok.
|
||||
@@ -170,7 +201,9 @@ $original_file = str_replace("../", "/", $original_file);
|
||||
$refname = basename(dirname($original_file)."/");
|
||||
|
||||
// Security check
|
||||
if (empty($modulepart)) accessforbidden('Bad value for parameter modulepart');
|
||||
if (empty($modulepart)) {
|
||||
accessforbidden('Bad value for parameter modulepart');
|
||||
}
|
||||
|
||||
// Check security and set return info with full path of file
|
||||
$check_access = dol_check_secure_access_document($modulepart, $original_file, $entity, $user, $refname);
|
||||
@@ -179,26 +212,20 @@ $sqlprotectagainstexternals = $check_access['sqlprotectagainstexternals'];
|
||||
$fullpath_original_file = $check_access['original_file']; // $fullpath_original_file is now a full path name
|
||||
//var_dump($fullpath_original_file);exit;
|
||||
|
||||
if (!empty($hashp))
|
||||
{
|
||||
if (!empty($hashp)) {
|
||||
$accessallowed = 1; // When using hashp, link is public so we force $accessallowed
|
||||
$sqlprotectagainstexternals = '';
|
||||
} else {
|
||||
// Basic protection (against external users only)
|
||||
if ($user->socid > 0)
|
||||
{
|
||||
if ($sqlprotectagainstexternals)
|
||||
{
|
||||
if ($user->socid > 0) {
|
||||
if ($sqlprotectagainstexternals) {
|
||||
$resql = $db->query($sqlprotectagainstexternals);
|
||||
if ($resql)
|
||||
{
|
||||
if ($resql) {
|
||||
$num = $db->num_rows($resql);
|
||||
$i = 0;
|
||||
while ($i < $num)
|
||||
{
|
||||
while ($i < $num) {
|
||||
$obj = $db->fetch_object($resql);
|
||||
if ($user->socid != $obj->fk_soc)
|
||||
{
|
||||
if ($user->socid != $obj->fk_soc) {
|
||||
$accessallowed = 0;
|
||||
break;
|
||||
}
|
||||
@@ -211,15 +238,13 @@ if (!empty($hashp))
|
||||
|
||||
// Security:
|
||||
// Limit access if permissions are wrong
|
||||
if (!$accessallowed)
|
||||
{
|
||||
if (!$accessallowed) {
|
||||
accessforbidden();
|
||||
}
|
||||
|
||||
// Security:
|
||||
// We refuse directory transversal change and pipes in file names
|
||||
if (preg_match('/\.\./', $fullpath_original_file) || preg_match('/[<>|]/', $fullpath_original_file))
|
||||
{
|
||||
if (preg_match('/\.\./', $fullpath_original_file) || preg_match('/[<>|]/', $fullpath_original_file)) {
|
||||
dol_syslog("Refused to deliver file ".$fullpath_original_file);
|
||||
print "ErrorFileNameInvalid: ".dol_escape_htmltag($original_file);
|
||||
exit;
|
||||
@@ -236,8 +261,7 @@ dol_syslog("document.php download $fullpath_original_file filename=$filename con
|
||||
$fullpath_original_file_osencoded = dol_osencode($fullpath_original_file); // New file name encoded in OS encoding charset
|
||||
|
||||
// This test if file exists should be useless. We keep it to find bug more easily
|
||||
if (!file_exists($fullpath_original_file_osencoded))
|
||||
{
|
||||
if (!file_exists($fullpath_original_file_osencoded)) {
|
||||
dol_syslog("ErrorFileDoesNotExists: ".$fullpath_original_file);
|
||||
print "ErrorFileDoesNotExists: ".$original_file;
|
||||
exit;
|
||||
@@ -263,10 +287,15 @@ if ($reshook < 0) {
|
||||
// Permissions are ok and file found, so we return it
|
||||
top_httphead($type);
|
||||
header('Content-Description: File Transfer');
|
||||
if ($encoding) header('Content-Encoding: '.$encoding);
|
||||
if ($encoding) {
|
||||
header('Content-Encoding: '.$encoding);
|
||||
}
|
||||
// Add MIME Content-Disposition from RFC 2183 (inline=automatically displayed, attachment=need user action to open)
|
||||
if ($attachment) header('Content-Disposition: attachment; filename="'.$filename.'"');
|
||||
else header('Content-Disposition: inline; filename="'.$filename.'"');
|
||||
if ($attachment) {
|
||||
header('Content-Disposition: attachment; filename="'.$filename.'"');
|
||||
} else {
|
||||
header('Content-Disposition: inline; filename="'.$filename.'"');
|
||||
}
|
||||
// Ajout directives pour resoudre bug IE
|
||||
header('Cache-Control: Public, must-revalidate');
|
||||
header('Pragma: public');
|
||||
@@ -278,7 +307,9 @@ if (!$attachment && !empty($conf->global->MAIN_USE_EXIF_ROTATION) && image_forma
|
||||
$readfile = !$imgres;
|
||||
}
|
||||
|
||||
if (is_object($db)) $db->close();
|
||||
if (is_object($db)) {
|
||||
$db->close();
|
||||
}
|
||||
|
||||
// Send file now
|
||||
if ($readfile) {
|
||||
|
||||
105
htdocs/index.php
105
htdocs/index.php
@@ -41,18 +41,15 @@ $hookmanager->initHooks(array('index'));
|
||||
*/
|
||||
|
||||
// Check if company name is defined (first install)
|
||||
if (!isset($conf->global->MAIN_INFO_SOCIETE_NOM) || empty($conf->global->MAIN_INFO_SOCIETE_NOM))
|
||||
{
|
||||
if (!isset($conf->global->MAIN_INFO_SOCIETE_NOM) || empty($conf->global->MAIN_INFO_SOCIETE_NOM)) {
|
||||
header("Location: ".DOL_URL_ROOT."/admin/index.php?mainmenu=home&leftmenu=setup&mesg=setupnotcomplete");
|
||||
exit;
|
||||
}
|
||||
if (count($conf->modules) <= (empty($conf->global->MAIN_MIN_NB_ENABLED_MODULE_FOR_WARNING) ? 1 : $conf->global->MAIN_MIN_NB_ENABLED_MODULE_FOR_WARNING)) // If only user module enabled
|
||||
{
|
||||
if (count($conf->modules) <= (empty($conf->global->MAIN_MIN_NB_ENABLED_MODULE_FOR_WARNING) ? 1 : $conf->global->MAIN_MIN_NB_ENABLED_MODULE_FOR_WARNING)) { // If only user module enabled
|
||||
header("Location: ".DOL_URL_ROOT."/admin/index.php?mainmenu=home&leftmenu=setup&mesg=setupnotcomplete");
|
||||
exit;
|
||||
}
|
||||
if (GETPOST('addbox')) // Add box (when submit is done from a form when ajax disabled)
|
||||
{
|
||||
if (GETPOST('addbox')) { // Add box (when submit is done from a form when ajax disabled)
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/infobox.class.php';
|
||||
$zone = GETPOST('areacode', 'aZ09');
|
||||
$userid = GETPOST('userid', 'int');
|
||||
@@ -60,7 +57,9 @@ if (GETPOST('addbox')) // Add box (when submit is done from a form when ajax dis
|
||||
$boxorder .= GETPOST('boxcombo', 'aZ09');
|
||||
|
||||
$result = InfoBox::saveboxorder($db, $zone, $boxorder, $userid);
|
||||
if ($result > 0) setEventMessages($langs->trans("BoxAdded"), null);
|
||||
if ($result > 0) {
|
||||
setEventMessages($langs->trans("BoxAdded"), null);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -68,11 +67,15 @@ if (GETPOST('addbox')) // Add box (when submit is done from a form when ajax dis
|
||||
* View
|
||||
*/
|
||||
|
||||
if (!isset($form) || !is_object($form)) $form = new Form($db);
|
||||
if (!isset($form) || !is_object($form)) {
|
||||
$form = new Form($db);
|
||||
}
|
||||
|
||||
// Title
|
||||
$title = $langs->trans("HomeArea").' - Dolibarr '.DOL_VERSION;
|
||||
if (!empty($conf->global->MAIN_APPLICATION_TITLE)) $title = $langs->trans("HomeArea").' - '.$conf->global->MAIN_APPLICATION_TITLE;
|
||||
if (!empty($conf->global->MAIN_APPLICATION_TITLE)) {
|
||||
$title = $langs->trans("HomeArea").' - '.$conf->global->MAIN_APPLICATION_TITLE;
|
||||
}
|
||||
|
||||
llxHeader('', $title);
|
||||
|
||||
@@ -82,11 +85,9 @@ $resultboxes = FormOther::getBoxesArea($user, "0"); // Load $resultboxes (select
|
||||
|
||||
print load_fiche_titre(' ', $resultboxes['selectboxlist'], '', 0, '', 'titleforhome');
|
||||
|
||||
if (!empty($conf->global->MAIN_MOTD))
|
||||
{
|
||||
if (!empty($conf->global->MAIN_MOTD)) {
|
||||
$conf->global->MAIN_MOTD = preg_replace('/<br(\s[\sa-zA-Z_="]*)?\/?>/i', '<br>', $conf->global->MAIN_MOTD);
|
||||
if (!empty($conf->global->MAIN_MOTD))
|
||||
{
|
||||
if (!empty($conf->global->MAIN_MOTD)) {
|
||||
$substitutionarray = getCommonSubstitutionArray($langs);
|
||||
complete_substitutions_array($substitutionarray, $langs);
|
||||
$texttoshow = make_substitutions($conf->global->MAIN_MOTD, $substitutionarray, $langs);
|
||||
@@ -258,8 +259,12 @@ if (empty($conf->global->MAIN_DISABLE_GLOBAL_WORKBOARD)) {
|
||||
$object = new stdClass();
|
||||
$parameters = array();
|
||||
$action = '';
|
||||
$reshook = $hookmanager->executeHooks('addOpenElementsDashboardLine', $parameters, $object,
|
||||
$action); // Note that $action and $object may have been modified by some hooks
|
||||
$reshook = $hookmanager->executeHooks(
|
||||
'addOpenElementsDashboardLine',
|
||||
$parameters,
|
||||
$object,
|
||||
$action
|
||||
); // Note that $action and $object may have been modified by some hooks
|
||||
if ($reshook == 0) {
|
||||
$dashboardlines = array_merge($dashboardlines, $hookmanager->resArray);
|
||||
}
|
||||
@@ -414,8 +419,10 @@ if (empty($conf->global->MAIN_DISABLE_GLOBAL_WORKBOARD)) {
|
||||
$boxwork .= '<th class="liste_titre"><div class="inline-block valignmiddle">'.$langs->trans("DolibarrWorkBoard").'</div>';
|
||||
if ($showweather) {
|
||||
if ($totallate > 0) {
|
||||
$text = $langs->transnoentitiesnoconv("WarningYouHaveAtLeastOneTaskLate").' ('.$langs->transnoentitiesnoconv("NActionsLate",
|
||||
$totallate.(!empty($conf->global->MAIN_USE_METEO_WITH_PERCENTAGE) ? '%' : '')).')';
|
||||
$text = $langs->transnoentitiesnoconv("WarningYouHaveAtLeastOneTaskLate").' ('.$langs->transnoentitiesnoconv(
|
||||
"NActionsLate",
|
||||
$totallate.(!empty($conf->global->MAIN_USE_METEO_WITH_PERCENTAGE) ? '%' : '')
|
||||
).')';
|
||||
} else {
|
||||
$text = $langs->transnoentitiesnoconv("NoItemLate");
|
||||
}
|
||||
@@ -457,17 +464,17 @@ if (empty($conf->global->MAIN_DISABLE_GLOBAL_WORKBOARD)) {
|
||||
$globalStatsKey = $groupElement['globalStatsKey'];
|
||||
$groupElement['globalStats'] = array();
|
||||
|
||||
if (is_array($keys) && in_array($globalStatsKey, $keys))
|
||||
{
|
||||
if (is_array($keys) && in_array($globalStatsKey, $keys)) {
|
||||
// get key index of stats used in $includes, $classes, $keys, $icons, $titres, $links
|
||||
$keyIndex = array_search($globalStatsKey, $keys);
|
||||
|
||||
$classe = (!empty($classes[$keyIndex]) ? $classes[$keyIndex] : '');
|
||||
if (isset($boardloaded[$classe]) && is_object($boardloaded[$classe]))
|
||||
{
|
||||
if (isset($boardloaded[$classe]) && is_object($boardloaded[$classe])) {
|
||||
$groupElement['globalStats']['total'] = $boardloaded[$classe]->nb[$globalStatsKey] ? $boardloaded[$classe]->nb[$globalStatsKey] : 0;
|
||||
$nbTotal = doubleval($groupElement['globalStats']['total']);
|
||||
if ($nbTotal >= 10000) { $nbTotal = round($nbTotal / 1000, 2).'k'; }
|
||||
if ($nbTotal >= 10000) {
|
||||
$nbTotal = round($nbTotal / 1000, 2).'k';
|
||||
}
|
||||
$groupElement['globalStats']['text'] = $langs->trans('Total').' : '.$langs->trans($titres[$keyIndex]).' ('.$groupElement['globalStats']['total'].')';
|
||||
$groupElement['globalStats']['total'] = $nbTotal;
|
||||
$groupElement['globalStats']['link'] = $links[$keyIndex];
|
||||
@@ -549,13 +556,15 @@ if (empty($conf->global->MAIN_DISABLE_GLOBAL_WORKBOARD)) {
|
||||
}
|
||||
|
||||
if ($showweather && !empty($isIntopOpenedDashBoard)) {
|
||||
$appendClass = (!empty($conf->global->MAIN_DISABLE_METEO) && $conf->global->MAIN_DISABLE_METEO == 2 ? ' hideonsmartphone' : '');
|
||||
$appendClass = (!empty($conf->global->MAIN_DISABLE_METEO) && $conf->global->MAIN_DISABLE_METEO == 2 ? ' hideonsmartphone' : '');
|
||||
$weather = getWeatherStatus($totallate);
|
||||
|
||||
$text = '';
|
||||
if ($totallate > 0) {
|
||||
$text = $langs->transnoentitiesnoconv("WarningYouHaveAtLeastOneTaskLate").' ('.$langs->transnoentitiesnoconv("NActionsLate",
|
||||
$totallate.(!empty($conf->global->MAIN_USE_METEO_WITH_PERCENTAGE) ? '%' : '')).')';
|
||||
$text = $langs->transnoentitiesnoconv("WarningYouHaveAtLeastOneTaskLate").' ('.$langs->transnoentitiesnoconv(
|
||||
"NActionsLate",
|
||||
$totallate.(!empty($conf->global->MAIN_USE_METEO_WITH_PERCENTAGE) ? '%' : '')
|
||||
).')';
|
||||
} else {
|
||||
$text = $langs->transnoentitiesnoconv("NoItemLate");
|
||||
}
|
||||
@@ -570,16 +579,24 @@ if (empty($conf->global->MAIN_DISABLE_GLOBAL_WORKBOARD)) {
|
||||
$weatherDashBoard .= ' <div class="info-box-title">'.$langs->trans('GlobalOpenedElemView').'</div>'."\n";
|
||||
|
||||
if ($totallatePercentage > 0 && !empty($conf->global->MAIN_USE_METEO_WITH_PERCENTAGE)) {
|
||||
$weatherDashBoard .= ' <span class="info-box-number">'.$langs->transnoentitiesnoconv("NActionsLate",
|
||||
price($totallatePercentage).'%').'</span>'."\n";
|
||||
$weatherDashBoard .= ' <span class="progress-description">'.$langs->trans('NActionsLate',
|
||||
$totalLateNumber).'</span>'."\n";
|
||||
$weatherDashBoard .= ' <span class="info-box-number">'.$langs->transnoentitiesnoconv(
|
||||
"NActionsLate",
|
||||
price($totallatePercentage).'%'
|
||||
).'</span>'."\n";
|
||||
$weatherDashBoard .= ' <span class="progress-description">'.$langs->trans(
|
||||
'NActionsLate',
|
||||
$totalLateNumber
|
||||
).'</span>'."\n";
|
||||
} else {
|
||||
$weatherDashBoard .= ' <span class="info-box-number">'.$langs->transnoentitiesnoconv("NActionsLate",
|
||||
$totalLateNumber).'</span>'."\n";
|
||||
$weatherDashBoard .= ' <span class="info-box-number">'.$langs->transnoentitiesnoconv(
|
||||
"NActionsLate",
|
||||
$totalLateNumber
|
||||
).'</span>'."\n";
|
||||
if ($totallatePercentage > 0) {
|
||||
$weatherDashBoard .= ' <span class="progress-description">'.$langs->trans('NActionsLate',
|
||||
price($totallatePercentage).'%').'</span>'."\n";
|
||||
$weatherDashBoard .= ' <span class="progress-description">'.$langs->trans(
|
||||
'NActionsLate',
|
||||
price($totallatePercentage).'%'
|
||||
).'</span>'."\n";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -627,8 +644,11 @@ if (empty($conf->global->MAIN_DISABLE_GLOBAL_WORKBOARD)) {
|
||||
$boxwork .= '<div class="dashboardlinelatecoin nowrap">';
|
||||
$boxwork .= '<a title="'.dol_escape_htmltag($textlate).'" class="valignmiddle dashboardlineindicatorlate'.($board->nbtodolate > 0 ? ' dashboardlineko' : ' dashboardlineok').'" href="'.((!$board->url_late) ? $board->url : $board->url_late).'">';
|
||||
//$boxwork .= img_picto($textlate, "warning_white", 'class="valigntextbottom"').'';
|
||||
$boxwork .= img_picto($textlate, "warning_white",
|
||||
'class="inline-block hideonsmartphone valigntextbottom"').'';
|
||||
$boxwork .= img_picto(
|
||||
$textlate,
|
||||
"warning_white",
|
||||
'class="inline-block hideonsmartphone valigntextbottom"'
|
||||
).'';
|
||||
$boxwork .= '<span class="dashboardlineindicatorlate'.($board->nbtodolate > 0 ? ' dashboardlineko' : ' dashboardlineok').'">';
|
||||
$boxwork .= $board->nbtodolate;
|
||||
$boxwork .= '</span>';
|
||||
@@ -679,8 +699,7 @@ print '<div class="fichecenter fichecenterbis">';
|
||||
$boxlist = '<div class="twocolumns">';
|
||||
|
||||
$boxlist .= '<div class="firstcolumn fichehalfleft boxhalfleft" id="boxhalfleft">';
|
||||
if (!empty($nbworkboardcount))
|
||||
{
|
||||
if (!empty($nbworkboardcount)) {
|
||||
$boxlist .= $boxwork;
|
||||
}
|
||||
|
||||
@@ -708,30 +727,26 @@ print '</div>';
|
||||
*/
|
||||
|
||||
// Security warning repertoire install existe (si utilisateur admin)
|
||||
if ($user->admin && empty($conf->global->MAIN_REMOVE_INSTALL_WARNING))
|
||||
{
|
||||
if ($user->admin && empty($conf->global->MAIN_REMOVE_INSTALL_WARNING)) {
|
||||
$message = '';
|
||||
|
||||
// Check if install lock file is present
|
||||
$lockfile = DOL_DATA_ROOT.'/install.lock';
|
||||
if (!empty($lockfile) && !file_exists($lockfile) && is_dir(DOL_DOCUMENT_ROOT."/install"))
|
||||
{
|
||||
if (!empty($lockfile) && !file_exists($lockfile) && is_dir(DOL_DOCUMENT_ROOT."/install")) {
|
||||
$langs->load("errors");
|
||||
//if (! empty($message)) $message.='<br>';
|
||||
$message .= info_admin($langs->trans("WarningLockFileDoesNotExists", DOL_DATA_ROOT).' '.$langs->trans("WarningUntilDirRemoved", DOL_DOCUMENT_ROOT."/install"), 0, 0, '1', 'clearboth');
|
||||
}
|
||||
|
||||
// Conf files must be in read only mode
|
||||
if (is_writable($conffile))
|
||||
{
|
||||
if (is_writable($conffile)) {
|
||||
$langs->load("errors");
|
||||
//$langs->load("other");
|
||||
//if (! empty($message)) $message.='<br>';
|
||||
$message .= info_admin($langs->transnoentities("WarningConfFileMustBeReadOnly").' '.$langs->trans("WarningUntilDirRemoved", DOL_DOCUMENT_ROOT."/install"), 0, 0, '1', 'clearboth');
|
||||
}
|
||||
|
||||
if ($message)
|
||||
{
|
||||
if ($message) {
|
||||
print $message;
|
||||
//$message.='<br>';
|
||||
//print info_admin($langs->trans("WarningUntilDirRemoved",DOL_DOCUMENT_ROOT."/install"));
|
||||
|
||||
@@ -72,7 +72,7 @@ span.butAction, span.butActionDelete {
|
||||
border-radius: 3px;
|
||||
}
|
||||
.butActionRefused:last-child, .butAction:last-child, .butActionDelete:last-child {
|
||||
margin-right: 0px !important;
|
||||
margin-right: 0px !important;
|
||||
}
|
||||
.butActionRefused, .butAction, .butAction:link, .butAction:visited, .butAction:hover, .butAction:active, .butActionDelete, .butActionDelete:link, .butActionDelete:visited, .butActionDelete:hover, .butActionDelete:active {
|
||||
text-decoration: none;
|
||||
|
||||
@@ -68,7 +68,7 @@ span.butAction, span.butActionDelete {
|
||||
border-radius: 3px;
|
||||
}
|
||||
.butActionRefused:last-child, .butAction:last-child, .butActionDelete:last-child {
|
||||
margin-right: 0px !important;
|
||||
margin-right: 0px !important;
|
||||
}
|
||||
.butActionRefused, .butAction, .butAction:link, .butAction:visited, .butAction:hover, .butAction:active, .butActionDelete, .butActionDelete:link, .butActionDelete:visited, .butActionDelete:hover, .butActionDelete:active {
|
||||
text-decoration: none;
|
||||
|
||||
@@ -25,7 +25,9 @@
|
||||
* \brief Page to detect empty accounting account
|
||||
*/
|
||||
|
||||
if (!defined('NOSESSION')) define('NOSESSION', '1');
|
||||
if (!defined('NOSESSION')) {
|
||||
define('NOSESSION', '1');
|
||||
}
|
||||
|
||||
$path = __DIR__.'/';
|
||||
|
||||
@@ -36,8 +38,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
||||
$langs->loadLangs(array("companies", "compta", "main", "accountancy"));
|
||||
|
||||
// Security check
|
||||
if (!$user->admin)
|
||||
if (!$user->admin) {
|
||||
accessforbidden();
|
||||
}
|
||||
|
||||
// Date range
|
||||
$year = GETPOST("year");
|
||||
@@ -54,8 +57,7 @@ $date_start = dol_mktime(0, 0, 0, $date_startmonth, $date_startday, $date_starty
|
||||
$date_end = dol_mktime(23, 59, 59, $date_endmonth, $date_endday, $date_endyear);
|
||||
|
||||
// Quarter
|
||||
if (empty($date_start) || empty($date_end)) // We define date_start and date_end
|
||||
{
|
||||
if (empty($date_start) || empty($date_end)) { // We define date_start and date_end
|
||||
$q = GETPOST("q") ? GETPOST("q") : 0;
|
||||
if ($q == 0) {
|
||||
// We define date_start and date_end
|
||||
@@ -67,10 +69,14 @@ if (empty($date_start) || empty($date_end)) // We define date_start and date_end
|
||||
$year_end--;
|
||||
}
|
||||
$month_end = $month_start - 1;
|
||||
if ($month_end < 1)
|
||||
if ($month_end < 1) {
|
||||
$month_end = 12;
|
||||
else $year_end++;
|
||||
} else $month_end = $month_start;
|
||||
} else {
|
||||
$year_end++;
|
||||
}
|
||||
} else {
|
||||
$month_end = $month_start;
|
||||
}
|
||||
$date_start = dol_get_first_day($year_start, $month_start, false);
|
||||
$date_end = dol_get_last_day($year_end, $month_end, false);
|
||||
}
|
||||
@@ -128,11 +134,13 @@ $sql .= ", ".MAIN_DB_PREFIX."facture as f";
|
||||
$sql .= ", ".MAIN_DB_PREFIX."c_country as cp";
|
||||
$sql .= " WHERE f.fk_soc = s.rowid";
|
||||
$sql .= " AND s.fk_pays = cp.rowid";
|
||||
if (!empty($date_start) && !empty($date_end))
|
||||
if (!empty($date_start) && !empty($date_end)) {
|
||||
$sql .= " AND f.datec >= '".$db->idate($date_start)."' AND f.datec <= '".$db->idate($date_end)."'";
|
||||
}
|
||||
$sql .= " AND f.entity IN (".getEntity('invoice', 0).")";
|
||||
if ($socid)
|
||||
if ($socid) {
|
||||
$sql .= " AND f.fk_soc = ".$socid;
|
||||
}
|
||||
$sql .= " GROUP BY name";
|
||||
$sql .= ")";
|
||||
$sql .= "UNION (SELECT s.rowid, s.nom as name , s.address, s.zip , s.town, s.code_compta_fournisseur as compta , ";
|
||||
@@ -142,11 +150,13 @@ $sql .= ", ".MAIN_DB_PREFIX."facture_fourn as ff";
|
||||
$sql .= ", ".MAIN_DB_PREFIX."c_country as cp";
|
||||
$sql .= " WHERE ff.fk_soc = s.rowid";
|
||||
$sql .= " AND s.fk_pays = cp.rowid";
|
||||
if (!empty($date_start) && !empty($date_end))
|
||||
if (!empty($date_start) && !empty($date_end)) {
|
||||
$sql .= " AND ff.datec >= '".$db->idate($date_start)."' AND ff.datec <= '".$db->idate($date_end)."'";
|
||||
}
|
||||
$sql .= " AND ff.entity = ".$conf->entity;
|
||||
if ($socid)
|
||||
if ($socid) {
|
||||
$sql .= " AND f.fk_soc = ".$socid;
|
||||
}
|
||||
$sql .= " GROUP BY name";
|
||||
$sql .= ")";
|
||||
|
||||
@@ -200,8 +210,7 @@ if ($resql) {
|
||||
print '<td class="left">'.$langs->trans("Phone").'</td>';
|
||||
print '<td class="left">'.$langs->trans("Fax").'</td></tr>';
|
||||
|
||||
while ($obj = $db->fetch_object($resql))
|
||||
{
|
||||
while ($obj = $db->fetch_object($resql)) {
|
||||
print '<tr class="oddeven">';
|
||||
print '<td>';
|
||||
$thirdpartystatic->id = $obj->rowid;
|
||||
|
||||
@@ -23,7 +23,9 @@
|
||||
* \brief Script file to export bank receipts into Excel files
|
||||
*/
|
||||
|
||||
if (!defined('NOSESSION')) define('NOSESSION', '1');
|
||||
if (!defined('NOSESSION')) {
|
||||
define('NOSESSION', '1');
|
||||
}
|
||||
|
||||
$sapi_type = php_sapi_name();
|
||||
$script_file = basename(__FILE__);
|
||||
@@ -154,8 +156,9 @@ if (!empty($num) && $num != "all") {
|
||||
$listofnum .= "'";
|
||||
$arraynum = explode(',', $num);
|
||||
foreach ($arraynum as $val) {
|
||||
if ($listofnum != "'")
|
||||
if ($listofnum != "'") {
|
||||
$listofnum .= "','";
|
||||
}
|
||||
$listofnum .= $val;
|
||||
}
|
||||
$listofnum .= "'";
|
||||
@@ -166,10 +169,12 @@ $sql .= " ba.rowid as bankid, ba.ref as bankref, ba.label as banklabel";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."bank_account as ba";
|
||||
$sql .= ", ".MAIN_DB_PREFIX."bank as b";
|
||||
$sql .= " WHERE b.fk_account = ".$acct->id;
|
||||
if ($listofnum)
|
||||
if ($listofnum) {
|
||||
$sql .= " AND b.num_releve IN (".$listofnum.")";
|
||||
if (!isset($num))
|
||||
}
|
||||
if (!isset($num)) {
|
||||
$sql .= " OR b.num_releve is null";
|
||||
}
|
||||
$sql .= " AND b.fk_account = ba.rowid";
|
||||
$sql .= $db->order("b.num_releve, b.datev, b.datec", "ASC"); // We add date of creation to have correct order when everything is done the same day
|
||||
// print $sql;
|
||||
@@ -242,9 +247,11 @@ if ($resql) {
|
||||
// Libelle
|
||||
$reg = array();
|
||||
preg_match('/\((.+)\)/i', $objp->label, $reg); // Si texte entoure de parenthese on tente recherche de traduction
|
||||
if ($reg[1] && $langs->transnoentitiesnoconv($reg[1]) != $reg[1])
|
||||
if ($reg[1] && $langs->transnoentitiesnoconv($reg[1]) != $reg[1]) {
|
||||
$description = $langs->transnoentitiesnoconv($reg[1]);
|
||||
else $description = $objp->label;
|
||||
} else {
|
||||
$description = $objp->label;
|
||||
}
|
||||
|
||||
/*
|
||||
* Ajout les liens (societe, company...)
|
||||
|
||||
@@ -24,7 +24,9 @@
|
||||
* \brief Script to update all contacts from Dolibarr into a LDAP database
|
||||
*/
|
||||
|
||||
if (!defined('NOSESSION')) define('NOSESSION', '1');
|
||||
if (!defined('NOSESSION')) {
|
||||
define('NOSESSION', '1');
|
||||
}
|
||||
|
||||
$sapi_type = php_sapi_name();
|
||||
$script_file = basename(__FILE__);
|
||||
@@ -60,8 +62,9 @@ if (!isset($argv[1]) || !$argv[1]) {
|
||||
}
|
||||
|
||||
foreach ($argv as $key => $val) {
|
||||
if (preg_match('/-y$/', $val, $reg))
|
||||
if (preg_match('/-y$/', $val, $reg)) {
|
||||
$confirmed = 1;
|
||||
}
|
||||
}
|
||||
|
||||
$now = $argv[1];
|
||||
|
||||
@@ -25,7 +25,9 @@
|
||||
* \brief Script to send a mail to customers with services to expire
|
||||
*/
|
||||
|
||||
if (!defined('NOSESSION')) define('NOSESSION', '1');
|
||||
if (!defined('NOSESSION')) {
|
||||
define('NOSESSION', '1');
|
||||
}
|
||||
|
||||
$sapi_type = php_sapi_name();
|
||||
$script_file = basename(__FILE__);
|
||||
@@ -80,24 +82,30 @@ if ($mode != 'confirm') {
|
||||
|
||||
$sql = "SELECT c.ref, cd.date_fin_validite, cd.total_ttc, cd.description as description, p.label as plabel,";
|
||||
$sql .= " s.rowid as sid, s.nom as name, s.email, s.default_lang";
|
||||
if ($targettype == 'contacts')
|
||||
if ($targettype == 'contacts') {
|
||||
$sql .= ", sp.rowid as cid, sp.firstname as cfirstname, sp.lastname as clastname, sp.email as cemail";
|
||||
}
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."societe AS s";
|
||||
if ($targettype == 'contacts')
|
||||
if ($targettype == 'contacts') {
|
||||
$sql .= ", ".MAIN_DB_PREFIX."socpeople as sp";
|
||||
}
|
||||
$sql .= ", ".MAIN_DB_PREFIX."contrat AS c";
|
||||
$sql .= ", ".MAIN_DB_PREFIX."contratdet AS cd";
|
||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product AS p ON p.rowid = cd.fk_product";
|
||||
$sql .= " WHERE s.rowid = c.fk_soc AND c.rowid = cd.fk_contrat AND c.statut > 0 AND cd.statut < 5";
|
||||
if (is_numeric($duration_value2))
|
||||
if (is_numeric($duration_value2)) {
|
||||
$sql .= " AND cd.date_fin_validite >= '".$db->idate(dol_time_plus_duree($now, $duration_value2, "d"))."'";
|
||||
if (is_numeric($duration_value))
|
||||
}
|
||||
if (is_numeric($duration_value)) {
|
||||
$sql .= " AND cd.date_fin_validite < '".$db->idate(dol_time_plus_duree($now, $duration_value, "d"))."'";
|
||||
if ($targettype == 'contacts')
|
||||
}
|
||||
if ($targettype == 'contacts') {
|
||||
$sql .= " AND s.rowid = sp.fk_soc";
|
||||
}
|
||||
$sql .= " ORDER BY";
|
||||
if ($targettype == 'contacts')
|
||||
if ($targettype == 'contacts') {
|
||||
$sql .= " sp.email, sp.rowid,";
|
||||
}
|
||||
$sql .= " s.email ASC, s.rowid ASC, cd.date_fin_validite ASC"; // Order by email to allow one message per email
|
||||
|
||||
// print $sql;
|
||||
@@ -145,9 +153,11 @@ if ($resql) {
|
||||
$trackthirdpartiessent[$oldsid.'|'.$oldemail] = 'contact id '.$oldcid;
|
||||
} else {
|
||||
if ($oldemail != 'none') {
|
||||
if (empty($trackthirdpartiessent[$oldsid.'|'.$oldemail]))
|
||||
if (empty($trackthirdpartiessent[$oldsid.'|'.$oldemail])) {
|
||||
print "- No email sent for '".$oldtarget."', total: ".$total."\n";
|
||||
else print "- No email sent for '".$oldtarget."', total: ".$total." (already sent to ".$trackthirdpartiessent[$oldsid.'|'.$oldemail].")\n";
|
||||
} else {
|
||||
print "- No email sent for '".$oldtarget."', total: ".$total." (already sent to ".$trackthirdpartiessent[$oldsid.'|'.$oldemail].")\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
$oldemail = $newemail;
|
||||
@@ -176,9 +186,11 @@ if ($resql) {
|
||||
$foundtoprocess++;
|
||||
}
|
||||
print "Service to expire ".$obj->ref.", label ".dol_concatdesc($obj->plabel, $obj->description).", due date ".dol_print_date($db->jdate($obj->date_fin_validite), 'day').", customer id ".$obj->sid." ".$obj->name.", ".(isset($obj->cid) ? "contact id ".$obj->cid." ".$obj->clastname." ".$obj->cfirstname.", " : "")."email ".$newemail.", lang ".$outputlangs->defaultlang.": ";
|
||||
if (dol_strlen($newemail))
|
||||
if (dol_strlen($newemail)) {
|
||||
print "qualified.";
|
||||
else print "disqualified (no email).";
|
||||
} else {
|
||||
print "disqualified (no email).";
|
||||
}
|
||||
print "\n";
|
||||
|
||||
unset($outputlangs);
|
||||
@@ -190,15 +202,16 @@ if ($resql) {
|
||||
|
||||
// Si il reste des envois en buffer
|
||||
if ($foundtoprocess) {
|
||||
if (dol_strlen($oldemail) && $oldemail != 'none' && empty($trackthirdpartiessent[$oldsid.'|'.$oldemail])) // Break onto email (new email)
|
||||
{
|
||||
if (dol_strlen($oldemail) && $oldemail != 'none' && empty($trackthirdpartiessent[$oldsid.'|'.$oldemail])) { // Break onto email (new email)
|
||||
envoi_mail($mode, $oldemail, $message, $total, $oldlang, $oldtarget, $duration_value);
|
||||
$trackthirdpartiessent[$oldsid.'|'.$oldemail] = 'contact id '.$oldcid;
|
||||
} else {
|
||||
if ($oldemail != 'none') {
|
||||
if (empty($trackthirdpartiessent[$oldsid.'|'.$oldemail]))
|
||||
if (empty($trackthirdpartiessent[$oldsid.'|'.$oldemail])) {
|
||||
print "- No email sent for '".$oldtarget."', total: ".$total."\n";
|
||||
else print "- No email sent for '".$oldtarget."', total: ".$total." (already sent to ".$trackthirdpartiessent[$oldsid.'|'.$oldemail].")\n";
|
||||
} else {
|
||||
print "- No email sent for '".$oldtarget."', total: ".$total." (already sent to ".$trackthirdpartiessent[$oldsid.'|'.$oldemail].")\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -230,8 +243,9 @@ function envoi_mail($mode, $oldemail, $message, $total, $userlang, $oldtarget, $
|
||||
{
|
||||
global $conf, $langs;
|
||||
|
||||
if (getenv('DOL_FORCE_EMAIL_TO'))
|
||||
if (getenv('DOL_FORCE_EMAIL_TO')) {
|
||||
$oldemail = getenv('DOL_FORCE_EMAIL_TO');
|
||||
}
|
||||
|
||||
$newlangs = new Translate('', $conf);
|
||||
$newlangs->setDefaultLang(empty($userlang) ? (empty($conf->global->MAIN_LANG_DEFAULT) ? 'auto' : $conf->global->MAIN_LANG_DEFAULT) : $userlang);
|
||||
@@ -239,10 +253,14 @@ function envoi_mail($mode, $oldemail, $message, $total, $userlang, $oldtarget, $
|
||||
$newlangs->load("contracts");
|
||||
|
||||
if ($duration_value) {
|
||||
if ($duration_value > 0)
|
||||
if ($duration_value > 0) {
|
||||
$title = $newlangs->transnoentities("ListOfServicesToExpireWithDuration", $duration_value);
|
||||
else $title = $newlangs->transnoentities("ListOfServicesToExpireWithDurationNeg", $duration_value);
|
||||
} else $title = $newlangs->transnoentities("ListOfServicesToExpire");
|
||||
} else {
|
||||
$title = $newlangs->transnoentities("ListOfServicesToExpireWithDurationNeg", $duration_value);
|
||||
}
|
||||
} else {
|
||||
$title = $newlangs->transnoentities("ListOfServicesToExpire");
|
||||
}
|
||||
|
||||
$subject = (empty($conf->global->SCRIPT_EMAIL_EXPIRE_SERVICES_CUSTOMERS_SUBJECT) ? $title : $conf->global->SCRIPT_EMAIL_EXPIRE_SERVICES_CUSTOMERS_SUBJECT);
|
||||
$sendto = $oldemail;
|
||||
@@ -254,10 +272,12 @@ function envoi_mail($mode, $oldemail, $message, $total, $userlang, $oldtarget, $
|
||||
dol_syslog("email_expire_services_to_customers.php: send mail to ".$oldemail);
|
||||
|
||||
$usehtml = 0;
|
||||
if (dol_textishtml($conf->global->SCRIPT_EMAIL_EXPIRE_SERVICES_CUSTOMERS_FOOTER))
|
||||
if (dol_textishtml($conf->global->SCRIPT_EMAIL_EXPIRE_SERVICES_CUSTOMERS_FOOTER)) {
|
||||
$usehtml += 1;
|
||||
if (dol_textishtml($conf->global->SCRIPT_EMAIL_EXPIRE_SERVICES_CUSTOMERS_HEADER))
|
||||
}
|
||||
if (dol_textishtml($conf->global->SCRIPT_EMAIL_EXPIRE_SERVICES_CUSTOMERS_HEADER)) {
|
||||
$usehtml += 1;
|
||||
}
|
||||
|
||||
$allmessage = '';
|
||||
if (!empty($conf->global->SCRIPT_EMAIL_EXPIRE_SERVICES_CUSTOMERS_HEADER)) {
|
||||
@@ -270,8 +290,9 @@ function envoi_mail($mode, $oldemail, $message, $total, $userlang, $oldtarget, $
|
||||
// $allmessage.= $langs->trans("Total")." = ".price($total,0,$userlang,0,0,-1,$conf->currency).($usehtml?"<br>\n":"\n");
|
||||
if (!empty($conf->global->SCRIPT_EMAIL_EXPIRE_SERVICES_CUSTOMERS_FOOTER)) {
|
||||
$allmessage .= $conf->global->SCRIPT_EMAIL_EXPIRE_SERVICES_CUSTOMERS_FOOTER;
|
||||
if (dol_textishtml($conf->global->SCRIPT_EMAIL_EXPIRE_SERVICES_CUSTOMERS_FOOTER))
|
||||
if (dol_textishtml($conf->global->SCRIPT_EMAIL_EXPIRE_SERVICES_CUSTOMERS_FOOTER)) {
|
||||
$usehtml += 1;
|
||||
}
|
||||
}
|
||||
|
||||
$mail = new CMailFile($subject, $sendto, $from, $allmessage, array(), array(), array(), '', '', 0, $msgishtml);
|
||||
|
||||
@@ -25,7 +25,9 @@
|
||||
* \brief Script to send a mail to dolibarr users linked to companies with services to expire
|
||||
*/
|
||||
|
||||
if (!defined('NOSESSION')) define('NOSESSION', '1');
|
||||
if (!defined('NOSESSION')) {
|
||||
define('NOSESSION', '1');
|
||||
}
|
||||
|
||||
$sapi_type = php_sapi_name();
|
||||
$script_file = basename(__FILE__);
|
||||
@@ -79,8 +81,9 @@ $sql .= " u.rowid as uid, u.lastname, u.firstname, u.email, u.lang";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."societe AS s, ".MAIN_DB_PREFIX."contrat AS c, ".MAIN_DB_PREFIX."contratdet AS cd";
|
||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product AS p ON p.rowid = cd.fk_product, ".MAIN_DB_PREFIX."societe_commerciaux AS sc, ".MAIN_DB_PREFIX."user AS u";
|
||||
$sql .= " WHERE s.rowid = c.fk_soc AND c.rowid = cd.fk_contrat AND c.statut > 0 AND cd.statut<5";
|
||||
if (is_numeric($duration_value))
|
||||
if (is_numeric($duration_value)) {
|
||||
$sql .= " AND cd.date_fin_validite < '".$db->idate(dol_time_plus_duree($now, $duration_value, "d"))."'";
|
||||
}
|
||||
$sql .= " AND sc.fk_soc = s.rowid AND sc.fk_user = u.rowid";
|
||||
$sql .= " ORDER BY u.email ASC, s.rowid ASC, c.ref ASC"; // Order by email to allow one message per email
|
||||
|
||||
@@ -107,8 +110,9 @@ if ($resql) {
|
||||
if (dol_strlen($oldemail) && $oldemail != 'none') {
|
||||
envoi_mail($mode, $oldemail, $message, $total, $oldlang, $oldsalerepresentative, $duration_value);
|
||||
} else {
|
||||
if ($oldemail != 'none')
|
||||
if ($oldemail != 'none') {
|
||||
print "- No email sent for ".$oldsalerepresentative.", total: ".$total."\n";
|
||||
}
|
||||
}
|
||||
$oldemail = $obj->email;
|
||||
$olduid = $obj->uid;
|
||||
@@ -118,8 +122,9 @@ if ($resql) {
|
||||
$total = 0;
|
||||
$foundtoprocess = 0;
|
||||
$salerepresentative = dolGetFirstLastname($obj->firstname, $obj->lastname);
|
||||
if (empty($obj->email))
|
||||
if (empty($obj->email)) {
|
||||
print "Warning: Sale representative ".$salerepresentative." has no email. Notice disabled.\n";
|
||||
}
|
||||
}
|
||||
|
||||
// Define line content
|
||||
@@ -135,9 +140,11 @@ if ($resql) {
|
||||
$foundtoprocess++;
|
||||
}
|
||||
print "Service to expire ".$obj->ref.", label ".dol_concatdesc($obj->plabel, $obj->description).", due date ".dol_print_date($db->jdate($obj->date_fin_validite), 'day')." (linked to company ".$obj->name.", sale representative ".dolGetFirstLastname($obj->firstname, $obj->lastname).", email ".$obj->email."): ";
|
||||
if (dol_strlen($obj->email))
|
||||
if (dol_strlen($obj->email)) {
|
||||
print "qualified.";
|
||||
else print "disqualified (no email).";
|
||||
} else {
|
||||
print "disqualified (no email).";
|
||||
}
|
||||
print "\n";
|
||||
|
||||
unset($outputlangs);
|
||||
@@ -148,12 +155,12 @@ if ($resql) {
|
||||
|
||||
// Si il reste des envois en buffer
|
||||
if ($foundtoprocess) {
|
||||
if (dol_strlen($oldemail) && $oldemail != 'none') // Break onto email (new email)
|
||||
{
|
||||
if (dol_strlen($oldemail) && $oldemail != 'none') { // Break onto email (new email)
|
||||
envoi_mail($mode, $oldemail, $message, $total, $oldlang, $oldsalerepresentative, $duration_value);
|
||||
} else {
|
||||
if ($oldemail != 'none')
|
||||
if ($oldemail != 'none') {
|
||||
print "- No email sent for ".$oldsalerepresentative.", total: ".$total."\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -184,8 +191,9 @@ function envoi_mail($mode, $oldemail, $message, $total, $userlang, $oldsalerepre
|
||||
{
|
||||
global $conf, $langs;
|
||||
|
||||
if (getenv('DOL_FORCE_EMAIL_TO'))
|
||||
if (getenv('DOL_FORCE_EMAIL_TO')) {
|
||||
$oldemail = getenv('DOL_FORCE_EMAIL_TO');
|
||||
}
|
||||
|
||||
$newlangs = new Translate('', $conf);
|
||||
$newlangs->setDefaultLang(empty($userlang) ? (empty($conf->global->MAIN_LANG_DEFAULT) ? 'auto' : $conf->global->MAIN_LANG_DEFAULT) : $userlang);
|
||||
@@ -230,8 +238,9 @@ function envoi_mail($mode, $oldemail, $message, $total, $userlang, $oldsalerepre
|
||||
$allmessage .= $langs->trans("Total")." = ".price($total, 0, $userlang, 0, 0, - 1, $conf->currency).($usehtml ? "<br>\n" : "\n");
|
||||
if (!empty($conf->global->SCRIPT_EMAIL_EXPIRE_SERVICES_SALESREPRESENTATIVES_FOOTER)) {
|
||||
$allmessage .= $conf->global->SCRIPT_EMAIL_EXPIRE_SERVICES_SALESREPRESENTATIVES_FOOTER;
|
||||
if (dol_textishtml($conf->global->SCRIPT_EMAIL_EXPIRE_SERVICES_SALESREPRESENTATIVES_FOOTER))
|
||||
if (dol_textishtml($conf->global->SCRIPT_EMAIL_EXPIRE_SERVICES_SALESREPRESENTATIVES_FOOTER)) {
|
||||
$usehtml += 1;
|
||||
}
|
||||
}
|
||||
|
||||
$mail = new CMailFile($subject, $sendto, $from, $allmessage, array(), array(), array(), '', '', 0, $msgishtml);
|
||||
|
||||
@@ -25,12 +25,24 @@
|
||||
* \brief Execute pendings jobs
|
||||
*/
|
||||
|
||||
if (!defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', '1'); // Disables token renewal
|
||||
if (!defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1');
|
||||
if (!defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1');
|
||||
if (!defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1');
|
||||
if (!defined('NOLOGIN')) define('NOLOGIN', '1');
|
||||
if (!defined('NOSESSION')) define('NOSESSION', '1');
|
||||
if (!defined('NOTOKENRENEWAL')) {
|
||||
define('NOTOKENRENEWAL', '1'); // Disables token renewal
|
||||
}
|
||||
if (!defined('NOREQUIREMENU')) {
|
||||
define('NOREQUIREMENU', '1');
|
||||
}
|
||||
if (!defined('NOREQUIREHTML')) {
|
||||
define('NOREQUIREHTML', '1');
|
||||
}
|
||||
if (!defined('NOREQUIREAJAX')) {
|
||||
define('NOREQUIREAJAX', '1');
|
||||
}
|
||||
if (!defined('NOLOGIN')) {
|
||||
define('NOLOGIN', '1');
|
||||
}
|
||||
if (!defined('NOSESSION')) {
|
||||
define('NOSESSION', '1');
|
||||
}
|
||||
|
||||
$sapi_type = php_sapi_name();
|
||||
$script_file = basename(__FILE__);
|
||||
@@ -106,7 +118,9 @@ if ($userlogin == 'firstadmin') {
|
||||
$userlogin = $obj->login;
|
||||
echo "First admin user found is login '".$userlogin."', entity ".$obj->entity."\n";
|
||||
}
|
||||
} else dol_print_error($db);
|
||||
} else {
|
||||
dol_print_error($db);
|
||||
}
|
||||
}
|
||||
|
||||
// Check user login
|
||||
@@ -151,8 +165,7 @@ if ($result < 0) {
|
||||
|
||||
$qualifiedjobs = array();
|
||||
foreach ($object->lines as $val) {
|
||||
if (!verifCond($val->test))
|
||||
{
|
||||
if (!verifCond($val->test)) {
|
||||
continue;
|
||||
}
|
||||
$qualifiedjobs[] = $val;
|
||||
@@ -173,8 +186,7 @@ if (is_array($qualifiedjobs) && (count($qualifiedjobs) > 0)) {
|
||||
echo "cron_run_jobs.php cronjobid: ".$line->id." priority=".$line->priority." entity=".$line->entity." label=".$line->label;
|
||||
|
||||
// Force reload of setup for the current entity
|
||||
if ((empty($line->entity) ? 1 : $line->entity) != $conf->entity)
|
||||
{
|
||||
if ((empty($line->entity) ? 1 : $line->entity) != $conf->entity) {
|
||||
dol_syslog("cron_run_jobs.php we work on another entity conf than ".$conf->entity." so we reload mysoc, langs, user and conf", LOG_DEBUG);
|
||||
echo " -> we change entity so we reload mysoc, langs, user and conf";
|
||||
|
||||
@@ -183,17 +195,14 @@ if (is_array($qualifiedjobs) && (count($qualifiedjobs) > 0)) {
|
||||
$mysoc->setMysoc($conf);
|
||||
|
||||
// Force recheck that user is ok for the entity to process and reload permission for entity
|
||||
if ($conf->entity != $user->entity && $user->entity != 0)
|
||||
{
|
||||
if ($conf->entity != $user->entity && $user->entity != 0) {
|
||||
$result = $user->fetch('', $userlogin, '', 0, $conf->entity);
|
||||
if ($result < 0)
|
||||
{
|
||||
if ($result < 0) {
|
||||
echo "\nUser Error: ".$user->error."\n";
|
||||
dol_syslog("cron_run_jobs.php:: User Error:".$user->error, LOG_ERR);
|
||||
exit(-1);
|
||||
} else {
|
||||
if ($result == 0)
|
||||
{
|
||||
if ($result == 0) {
|
||||
echo "\nUser login: ".$userlogin." does not exists for entity ".$conf->entity."\n";
|
||||
dol_syslog("User login:".$userlogin." does not exists", LOG_ERR);
|
||||
exit(-1);
|
||||
@@ -204,8 +213,12 @@ if (is_array($qualifiedjobs) && (count($qualifiedjobs) > 0)) {
|
||||
|
||||
// Reload langs
|
||||
$langcode = (empty($conf->global->MAIN_LANG_DEFAULT) ? 'auto' : $conf->global->MAIN_LANG_DEFAULT);
|
||||
if (!empty($user->conf->MAIN_LANG_DEFAULT)) $langcode = $user->conf->MAIN_LANG_DEFAULT;
|
||||
if ($langs->getDefaultLang() != $langcode) $langs->setDefaultLang($langcode);
|
||||
if (!empty($user->conf->MAIN_LANG_DEFAULT)) {
|
||||
$langcode = $user->conf->MAIN_LANG_DEFAULT;
|
||||
}
|
||||
if ($langs->getDefaultLang() != $langcode) {
|
||||
$langs->setDefaultLang($langcode);
|
||||
}
|
||||
}
|
||||
|
||||
//If date_next_jobs is less of current date, execute the program, and store the execution time of the next execution in database
|
||||
@@ -262,8 +275,9 @@ if (is_array($qualifiedjobs) && (count($qualifiedjobs) > 0)) {
|
||||
|
||||
$db->close();
|
||||
|
||||
if ($nbofjobslaunchedko)
|
||||
if ($nbofjobslaunchedko) {
|
||||
exit(1);
|
||||
}
|
||||
exit(0);
|
||||
|
||||
/**
|
||||
|
||||
@@ -26,7 +26,9 @@
|
||||
* \brief Script to send a prepared and validated emaling from command line
|
||||
*/
|
||||
|
||||
if (!defined('NOSESSION')) define('NOSESSION', '1');
|
||||
if (!defined('NOSESSION')) {
|
||||
define('NOSESSION', '1');
|
||||
}
|
||||
|
||||
$sapi_type = php_sapi_name();
|
||||
$script_file = basename(__FILE__);
|
||||
@@ -45,12 +47,17 @@ if (!isset($argv[1]) || !$argv[1]) {
|
||||
|
||||
$id = $argv[1];
|
||||
|
||||
if (isset($argv[2]) || !empty($argv[2])) $login = $argv[2];
|
||||
else $login = '';
|
||||
if (isset($argv[2]) || !empty($argv[2])) {
|
||||
$login = $argv[2];
|
||||
} else {
|
||||
$login = '';
|
||||
}
|
||||
|
||||
$max = 0;
|
||||
|
||||
if (isset($argv[3]) || !empty($argv[3])) $max = $argv[3];
|
||||
if (isset($argv[3]) || !empty($argv[3])) {
|
||||
$max = $argv[3];
|
||||
}
|
||||
|
||||
|
||||
require_once $path."../../htdocs/master.inc.php";
|
||||
@@ -61,8 +68,7 @@ require_once DOL_DOCUMENT_ROOT."/comm/mailing/class/mailing.class.php";
|
||||
$version = DOL_VERSION;
|
||||
$error = 0;
|
||||
|
||||
if (empty($conf->global->MAILING_LIMIT_SENDBYCLI))
|
||||
{
|
||||
if (empty($conf->global->MAILING_LIMIT_SENDBYCLI)) {
|
||||
$conf->global->MAILING_LIMIT_SENDBYCLI = 0;
|
||||
}
|
||||
|
||||
@@ -78,12 +84,14 @@ if (!empty($conf->global->MAILING_DELAY)) {
|
||||
print 'A delay of '.((float) $conf->global->MAILING_DELAY * 1000000).' millisecond has been set between each email'."\n";
|
||||
}
|
||||
|
||||
if ($conf->global->MAILING_LIMIT_SENDBYCLI == '-1') {}
|
||||
if ($conf->global->MAILING_LIMIT_SENDBYCLI == '-1') {
|
||||
}
|
||||
|
||||
$user = new User($db);
|
||||
// for signature, we use user send as parameter
|
||||
if (!empty($login))
|
||||
if (!empty($login)) {
|
||||
$user->fetch('', $login);
|
||||
}
|
||||
|
||||
// We get list of emailing id to process
|
||||
$sql = "SELECT m.rowid";
|
||||
@@ -119,8 +127,9 @@ if ($resql) {
|
||||
$errorsto = $emailing->email_errorsto;
|
||||
// Le message est-il en html
|
||||
$msgishtml = - 1; // Unknown by default
|
||||
if (preg_match('/[\s\t]*<html>/i', $message))
|
||||
if (preg_match('/[\s\t]*<html>/i', $message)) {
|
||||
$msgishtml = 1;
|
||||
}
|
||||
|
||||
$nbok = 0;
|
||||
$nbko = 0;
|
||||
@@ -202,12 +211,15 @@ if ($resql) {
|
||||
$substitutionarray['__UNSUBSCRIBE__'] = '<a href="'.DOL_MAIN_URL_ROOT.'/public/emailing/mailing-unsubscribe.php?tag='.$obj->tag.'&unsuscrib=1&securitykey='.urlencode($conf->global->MAILING_EMAIL_UNSUBSCRIBE_KEY).'" target="_blank">'.$langs->trans("MailUnsubcribe").'</a>';
|
||||
|
||||
$onlinepaymentenabled = 0;
|
||||
if (!empty($conf->paypal->enabled))
|
||||
if (!empty($conf->paypal->enabled)) {
|
||||
$onlinepaymentenabled++;
|
||||
if (!empty($conf->paybox->enabled))
|
||||
}
|
||||
if (!empty($conf->paybox->enabled)) {
|
||||
$onlinepaymentenabled++;
|
||||
if (!empty($conf->stripe->enabled))
|
||||
}
|
||||
if (!empty($conf->stripe->enabled)) {
|
||||
$onlinepaymentenabled++;
|
||||
}
|
||||
if ($onlinepaymentenabled && !empty($conf->global->PAYMENT_SECURITY_TOKEN)) {
|
||||
$substitutionarray['__SECUREKEYPAYMENT__'] = dol_hash($conf->global->PAYMENT_SECURITY_TOKEN, 2);
|
||||
if (empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) {
|
||||
@@ -226,21 +238,29 @@ if ($resql) {
|
||||
if (!empty($conf->paypal->enabled) && !empty($conf->global->PAYPAL_SECURITY_TOKEN)) {
|
||||
$substitutionarray['__SECUREKEYPAYPAL__'] = dol_hash($conf->global->PAYPAL_SECURITY_TOKEN, 2);
|
||||
|
||||
if (empty($conf->global->PAYPAL_SECURITY_TOKEN_UNIQUE))
|
||||
if (empty($conf->global->PAYPAL_SECURITY_TOKEN_UNIQUE)) {
|
||||
$substitutionarray['__SECUREKEYPAYPAL_MEMBER__'] = dol_hash($conf->global->PAYPAL_SECURITY_TOKEN, 2);
|
||||
else $substitutionarray['__SECUREKEYPAYPAL_MEMBER__'] = dol_hash($conf->global->PAYPAL_SECURITY_TOKEN.'membersubscription'.$obj->source_id, 2);
|
||||
} else {
|
||||
$substitutionarray['__SECUREKEYPAYPAL_MEMBER__'] = dol_hash($conf->global->PAYPAL_SECURITY_TOKEN.'membersubscription'.$obj->source_id, 2);
|
||||
}
|
||||
|
||||
if (empty($conf->global->PAYPAL_SECURITY_TOKEN_UNIQUE))
|
||||
if (empty($conf->global->PAYPAL_SECURITY_TOKEN_UNIQUE)) {
|
||||
$substitutionarray['__SECUREKEYPAYPAL_ORDER__'] = dol_hash($conf->global->PAYPAL_SECURITY_TOKEN, 2);
|
||||
else $substitutionarray['__SECUREKEYPAYPAL_ORDER__'] = dol_hash($conf->global->PAYPAL_SECURITY_TOKEN.'order'.$obj->source_id, 2);
|
||||
} else {
|
||||
$substitutionarray['__SECUREKEYPAYPAL_ORDER__'] = dol_hash($conf->global->PAYPAL_SECURITY_TOKEN.'order'.$obj->source_id, 2);
|
||||
}
|
||||
|
||||
if (empty($conf->global->PAYPAL_SECURITY_TOKEN_UNIQUE))
|
||||
if (empty($conf->global->PAYPAL_SECURITY_TOKEN_UNIQUE)) {
|
||||
$substitutionarray['__SECUREKEYPAYPAL_INVOICE__'] = dol_hash($conf->global->PAYPAL_SECURITY_TOKEN, 2);
|
||||
else $substitutionarray['__SECUREKEYPAYPAL_INVOICE__'] = dol_hash($conf->global->PAYPAL_SECURITY_TOKEN.'invoice'.$obj->source_id, 2);
|
||||
} else {
|
||||
$substitutionarray['__SECUREKEYPAYPAL_INVOICE__'] = dol_hash($conf->global->PAYPAL_SECURITY_TOKEN.'invoice'.$obj->source_id, 2);
|
||||
}
|
||||
|
||||
if (empty($conf->global->PAYPAL_SECURITY_TOKEN_UNIQUE))
|
||||
if (empty($conf->global->PAYPAL_SECURITY_TOKEN_UNIQUE)) {
|
||||
$substitutionarray['__SECUREKEYPAYPAL_CONTRACTLINE__'] = dol_hash($conf->global->PAYPAL_SECURITY_TOKEN, 2);
|
||||
else $substitutionarray['__SECUREKEYPAYPAL_CONTRACTLINE__'] = dol_hash($conf->global->PAYPAL_SECURITY_TOKEN.'contractline'.$obj->source_id, 2);
|
||||
} else {
|
||||
$substitutionarray['__SECUREKEYPAYPAL_CONTRACTLINE__'] = dol_hash($conf->global->PAYPAL_SECURITY_TOKEN.'contractline'.$obj->source_id, 2);
|
||||
}
|
||||
}
|
||||
|
||||
complete_substitutions_array($substitutionarray, $langs);
|
||||
@@ -256,10 +276,8 @@ if ($resql) {
|
||||
|
||||
$listofpaths = dol_dir_list($upload_dir, 'all', 0, '', '', 'name', SORT_ASC, 0);
|
||||
|
||||
if (count($listofpaths))
|
||||
{
|
||||
foreach ($listofpaths as $key => $val)
|
||||
{
|
||||
if (count($listofpaths)) {
|
||||
foreach ($listofpaths as $key => $val) {
|
||||
$arr_file[] = $listofpaths[$key]['fullname'];
|
||||
$arr_mime[] = dol_mimetype($listofpaths[$key]['name']);
|
||||
$arr_name[] = $listofpaths[$key]['name'];
|
||||
@@ -364,8 +382,9 @@ if ($resql) {
|
||||
|
||||
// Loop finished, set global statut of mail
|
||||
$statut = 2;
|
||||
if (!$nbko)
|
||||
if (!$nbko) {
|
||||
$statut = 3;
|
||||
}
|
||||
|
||||
$sqlenddate = "UPDATE ".MAIN_DB_PREFIX."mailing SET statut=".$statut." WHERE rowid=".$id;
|
||||
|
||||
|
||||
@@ -22,8 +22,12 @@
|
||||
* \brief Script to reset (set email to empty) from a list of email
|
||||
*/
|
||||
|
||||
if (!defined('NOSESSION')) define('NOSESSION', '1');
|
||||
if (!defined('MAXEMAILS')) define('MAXEMAILS', 100);
|
||||
if (!defined('NOSESSION')) {
|
||||
define('NOSESSION', '1');
|
||||
}
|
||||
if (!defined('MAXEMAILS')) {
|
||||
define('MAXEMAILS', 100);
|
||||
}
|
||||
|
||||
$sapi_type = php_sapi_name();
|
||||
$script_file = basename(__FILE__);
|
||||
@@ -71,8 +75,7 @@ $db->begin();
|
||||
|
||||
|
||||
$myfile = fopen($fileofinvalidemail, "r");
|
||||
if (!$myfile)
|
||||
{
|
||||
if (!$myfile) {
|
||||
echo "Failed to open file";
|
||||
exit(-1);
|
||||
}
|
||||
@@ -81,14 +84,11 @@ $tmp = 1;
|
||||
$counter = 1;
|
||||
$numerasedtotal = 0;
|
||||
|
||||
while ($tmp != null)
|
||||
{
|
||||
while ($tmp != null) {
|
||||
$groupofemails = array();
|
||||
for ($i = 0; $i < MAXEMAILS; $i++)
|
||||
{
|
||||
for ($i = 0; $i < MAXEMAILS; $i++) {
|
||||
$tmp = fgets($myfile);
|
||||
if ($tmp == null)
|
||||
{
|
||||
if ($tmp == null) {
|
||||
break;
|
||||
}
|
||||
$groupofemails[$i] = trim($tmp, "\n");
|
||||
@@ -109,8 +109,7 @@ while ($tmp != null)
|
||||
|
||||
$sql_base = "UPDATE ".MAIN_DB_PREFIX;
|
||||
|
||||
if ($type == 'all' || $type == 'users')
|
||||
{
|
||||
if ($type == 'all' || $type == 'users') {
|
||||
// Loop on each record and update the email to null if email into $groupofemails
|
||||
$sql = $sql_base."user as u SET u.email = NULL WHERE u.email IN (".$emailsin.");";
|
||||
print "Try to update users, ";
|
||||
@@ -121,8 +120,7 @@ while ($tmp != null)
|
||||
$numerased += $db->affected_rows($resql);
|
||||
}
|
||||
|
||||
if ($type == 'all' || $type == 'thirdparties')
|
||||
{
|
||||
if ($type == 'all' || $type == 'thirdparties') {
|
||||
// Loop on each record and update the email to null if email into $groupofemails
|
||||
$sql = $sql_base."societe as s SET s.email = NULL WHERE s.email IN (".$emailsin.");";
|
||||
print "Try to update thirdparties, ";
|
||||
@@ -133,8 +131,7 @@ while ($tmp != null)
|
||||
$numerased += $db->affected_rows($resql);
|
||||
}
|
||||
|
||||
if ($type == 'all' || $type == 'contacts')
|
||||
{
|
||||
if ($type == 'all' || $type == 'contacts') {
|
||||
// Loop on each record and update the email to null if email into $groupofemails
|
||||
|
||||
$sql = $sql_base."socpeople as s SET s.email = NULL WHERE s.email IN (".$emailsin.");";
|
||||
@@ -146,8 +143,7 @@ while ($tmp != null)
|
||||
$numerased += $db->affected_rows($resql);
|
||||
}
|
||||
|
||||
if ($type == 'all' || $type == 'members')
|
||||
{
|
||||
if ($type == 'all' || $type == 'members') {
|
||||
// Loop on each record and update the email to null if email into $groupofemails
|
||||
|
||||
$sql = $sql_base."adherent as a SET a.email = NULL WHERE a.email IN (".$emailsin.");";
|
||||
|
||||
@@ -25,7 +25,9 @@
|
||||
* \brief Script to send a mail to customers with unpaid invoices
|
||||
*/
|
||||
|
||||
if (!defined('NOSESSION')) define('NOSESSION', '1');
|
||||
if (!defined('NOSESSION')) {
|
||||
define('NOSESSION', '1');
|
||||
}
|
||||
|
||||
$sapi_type = php_sapi_name();
|
||||
$script_file = basename(__FILE__);
|
||||
@@ -80,22 +82,28 @@ if ($mode != 'confirm') {
|
||||
|
||||
$sql = "SELECT f.ref, f.total_ttc, f.date_lim_reglement as due_date,";
|
||||
$sql .= " s.rowid as sid, s.nom as name, s.email, s.default_lang";
|
||||
if ($targettype == 'contacts')
|
||||
if ($targettype == 'contacts') {
|
||||
$sql .= ", sp.rowid as cid, sp.firstname as cfirstname, sp.lastname as clastname, sp.email as cemail";
|
||||
}
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."facture as f, ".MAIN_DB_PREFIX."societe as s";
|
||||
if ($targettype == 'contacts')
|
||||
if ($targettype == 'contacts') {
|
||||
$sql .= ", ".MAIN_DB_PREFIX."socpeople as sp";
|
||||
}
|
||||
$sql .= " WHERE f.fk_statut = 1 AND f.paye = 0";
|
||||
$sql .= " AND f.fk_soc = s.rowid";
|
||||
if (is_numeric($duration_value2))
|
||||
if (is_numeric($duration_value2)) {
|
||||
$sql .= " AND f.date_lim_reglement >= '".$db->idate(dol_time_plus_duree($now, $duration_value2, "d"))."'";
|
||||
if (is_numeric($duration_value))
|
||||
}
|
||||
if (is_numeric($duration_value)) {
|
||||
$sql .= " AND f.date_lim_reglement < '".$db->idate(dol_time_plus_duree($now, $duration_value, "d"))."'";
|
||||
if ($targettype == 'contacts')
|
||||
}
|
||||
if ($targettype == 'contacts') {
|
||||
$sql .= " AND s.rowid = sp.fk_soc";
|
||||
}
|
||||
$sql .= " ORDER BY";
|
||||
if ($targettype == 'contacts')
|
||||
if ($targettype == 'contacts') {
|
||||
$sql .= " sp.email, sp.rowid,";
|
||||
}
|
||||
$sql .= " s.email ASC, s.rowid ASC, f.ref ASC"; // Order by email to allow one message per email
|
||||
|
||||
// print $sql;
|
||||
@@ -143,9 +151,11 @@ if ($resql) {
|
||||
$trackthirdpartiessent[$oldsid.'|'.$oldemail] = 'contact id '.$oldcid;
|
||||
} else {
|
||||
if ($oldemail != 'none') {
|
||||
if (empty($trackthirdpartiessent[$oldsid.'|'.$oldemail]))
|
||||
if (empty($trackthirdpartiessent[$oldsid.'|'.$oldemail])) {
|
||||
print "- No email sent for '".$oldtarget."', total: ".$total."\n";
|
||||
else print "- No email sent for '".$oldtarget."', total: ".$total." (already sent to ".$trackthirdpartiessent[$oldsid.'|'.$oldemail].")\n";
|
||||
} else {
|
||||
print "- No email sent for '".$oldtarget."', total: ".$total." (already sent to ".$trackthirdpartiessent[$oldsid.'|'.$oldemail].")\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
$oldemail = $newemail;
|
||||
@@ -174,9 +184,11 @@ if ($resql) {
|
||||
$foundtoprocess++;
|
||||
}
|
||||
print "Unpaid invoice ".$obj->ref.", price ".price2num($obj->total_ttc).", due date ".dol_print_date($db->jdate($obj->due_date), 'day').", customer id ".$obj->sid." ".$obj->name.", ".(isset($obj->cid) ? "contact id ".$obj->cid." ".$obj->clastname." ".$obj->cfirstname.", " : "")."email ".$newemail.", lang ".$outputlangs->defaultlang.": ";
|
||||
if (dol_strlen($newemail))
|
||||
if (dol_strlen($newemail)) {
|
||||
print "qualified.";
|
||||
else print "disqualified (no email).";
|
||||
} else {
|
||||
print "disqualified (no email).";
|
||||
}
|
||||
print "\n";
|
||||
|
||||
unset($outputlangs);
|
||||
@@ -188,15 +200,16 @@ if ($resql) {
|
||||
|
||||
// Si il reste des envois en buffer
|
||||
if ($foundtoprocess) {
|
||||
if (dol_strlen($oldemail) && $oldemail != 'none' && empty($trackthirdpartiessent[$oldsid.'|'.$oldemail])) // Break onto email (new email)
|
||||
{
|
||||
if (dol_strlen($oldemail) && $oldemail != 'none' && empty($trackthirdpartiessent[$oldsid.'|'.$oldemail])) { // Break onto email (new email)
|
||||
envoi_mail($mode, $oldemail, $message, $total, $oldlang, $oldtarget);
|
||||
$trackthirdpartiessent[$oldsid.'|'.$oldemail] = 'contact id '.$oldcid;
|
||||
} else {
|
||||
if ($oldemail != 'none') {
|
||||
if (empty($trackthirdpartiessent[$oldsid.'|'.$oldemail]))
|
||||
if (empty($trackthirdpartiessent[$oldsid.'|'.$oldemail])) {
|
||||
print "- No email sent for '".$oldtarget."', total: ".$total."\n";
|
||||
else print "- No email sent for '".$oldtarget."', total: ".$total." (already sent to ".$trackthirdpartiessent[$oldsid.'|'.$oldemail].")\n";
|
||||
} else {
|
||||
print "- No email sent for '".$oldtarget."', total: ".$total." (already sent to ".$trackthirdpartiessent[$oldsid.'|'.$oldemail].")\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -227,8 +240,9 @@ function envoi_mail($mode, $oldemail, $message, $total, $userlang, $oldtarget)
|
||||
{
|
||||
global $conf, $langs;
|
||||
|
||||
if (getenv('DOL_FORCE_EMAIL_TO'))
|
||||
if (getenv('DOL_FORCE_EMAIL_TO')) {
|
||||
$oldemail = getenv('DOL_FORCE_EMAIL_TO');
|
||||
}
|
||||
|
||||
$newlangs = new Translate('', $conf);
|
||||
$newlangs->setDefaultLang(empty($userlang) ? (empty($conf->global->MAIN_LANG_DEFAULT) ? 'auto' : $conf->global->MAIN_LANG_DEFAULT) : $userlang);
|
||||
@@ -245,10 +259,12 @@ function envoi_mail($mode, $oldemail, $message, $total, $userlang, $oldtarget)
|
||||
dol_syslog("email_unpaid_invoices_to_customers.php: send mail to ".$oldemail);
|
||||
|
||||
$usehtml = 0;
|
||||
if (!empty($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_CUSTOMERS_FOOTER) && dol_textishtml($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_CUSTOMERS_FOOTER))
|
||||
if (!empty($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_CUSTOMERS_FOOTER) && dol_textishtml($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_CUSTOMERS_FOOTER)) {
|
||||
$usehtml += 1;
|
||||
if (!empty($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_CUSTOMERS_HEADER) && dol_textishtml($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_CUSTOMERS_HEADER))
|
||||
}
|
||||
if (!empty($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_CUSTOMERS_HEADER) && dol_textishtml($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_CUSTOMERS_HEADER)) {
|
||||
$usehtml += 1;
|
||||
}
|
||||
|
||||
$allmessage = '';
|
||||
if (!empty($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_CUSTOMERS_HEADER)) {
|
||||
@@ -262,8 +278,9 @@ function envoi_mail($mode, $oldemail, $message, $total, $userlang, $oldtarget)
|
||||
$allmessage .= $langs->trans("Total")." = ".price($total, 0, $userlang, 0, 0, - 1, $conf->currency).($usehtml ? "<br>\n" : "\n");
|
||||
if (!empty($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_CUSTOMERS_FOOTER)) {
|
||||
$allmessage .= $conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_CUSTOMERS_FOOTER;
|
||||
if (dol_textishtml($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_CUSTOMERS_FOOTER))
|
||||
if (dol_textishtml($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_CUSTOMERS_FOOTER)) {
|
||||
$usehtml += 1;
|
||||
}
|
||||
}
|
||||
|
||||
$mail = new CMailFile($subject, $sendto, $from, $allmessage, array(), array(), array(), '', '', 0, $msgishtml);
|
||||
|
||||
@@ -25,7 +25,9 @@
|
||||
* \brief Script to send a mail to dolibarr users linked to companies with unpaid invoices
|
||||
*/
|
||||
|
||||
if (!defined('NOSESSION')) define('NOSESSION', '1');
|
||||
if (!defined('NOSESSION')) {
|
||||
define('NOSESSION', '1');
|
||||
}
|
||||
|
||||
$sapi_type = php_sapi_name();
|
||||
$script_file = basename(__FILE__);
|
||||
@@ -82,8 +84,9 @@ $sql .= " , ".MAIN_DB_PREFIX."societe_commerciaux as sc";
|
||||
$sql .= " , ".MAIN_DB_PREFIX."user as u";
|
||||
$sql .= " WHERE f.fk_statut = 1 AND f.paye = 0";
|
||||
$sql .= " AND f.fk_soc = s.rowid";
|
||||
if (is_numeric($duration_value))
|
||||
if (is_numeric($duration_value)) {
|
||||
$sql .= " AND f.date_lim_reglement < '".$db->idate(dol_time_plus_duree($now, $duration_value, "d"))."'";
|
||||
}
|
||||
$sql .= " AND sc.fk_soc = s.rowid";
|
||||
$sql .= " AND sc.fk_user = u.rowid";
|
||||
$sql .= " ORDER BY u.email ASC, s.rowid ASC, f.ref ASC"; // Order by email to allow one message per email
|
||||
@@ -111,8 +114,9 @@ if ($resql) {
|
||||
if (dol_strlen($oldemail) && $oldemail != 'none') {
|
||||
envoi_mail($mode, $oldemail, $message, $total, $oldlang, $oldsalerepresentative);
|
||||
} else {
|
||||
if ($oldemail != 'none')
|
||||
if ($oldemail != 'none') {
|
||||
print "- No email sent for ".$oldsalerepresentative.", total: ".$total."\n";
|
||||
}
|
||||
}
|
||||
$oldemail = $obj->email;
|
||||
$olduid = $obj->uid;
|
||||
@@ -122,8 +126,9 @@ if ($resql) {
|
||||
$total = 0;
|
||||
$foundtoprocess = 0;
|
||||
$salerepresentative = dolGetFirstLastname($obj->firstname, $obj->lastname);
|
||||
if (empty($obj->email))
|
||||
if (empty($obj->email)) {
|
||||
print "Warning: Sale representative ".$salerepresentative." has no email. Notice disabled.\n";
|
||||
}
|
||||
}
|
||||
|
||||
// Define line content
|
||||
@@ -139,9 +144,11 @@ if ($resql) {
|
||||
$foundtoprocess++;
|
||||
}
|
||||
print "Unpaid invoice ".$obj->ref.", price ".price2num($obj->total_ttc).", due date ".dol_print_date($db->jdate($obj->due_date), 'day')." (linked to company ".$obj->name.", sale representative ".dolGetFirstLastname($obj->firstname, $obj->lastname).", email ".$obj->email.", lang ".$outputlangs->defaultlang."): ";
|
||||
if (dol_strlen($obj->email))
|
||||
if (dol_strlen($obj->email)) {
|
||||
print "qualified.";
|
||||
else print "disqualified (no email).";
|
||||
} else {
|
||||
print "disqualified (no email).";
|
||||
}
|
||||
print "\n";
|
||||
|
||||
unset($outputlangs);
|
||||
@@ -152,12 +159,12 @@ if ($resql) {
|
||||
|
||||
// Si il reste des envois en buffer
|
||||
if ($foundtoprocess) {
|
||||
if (dol_strlen($oldemail) && $oldemail != 'none') // Break onto email (new email)
|
||||
{
|
||||
if (dol_strlen($oldemail) && $oldemail != 'none') { // Break onto email (new email)
|
||||
envoi_mail($mode, $oldemail, $message, $total, $oldlang, $oldsalerepresentative);
|
||||
} else {
|
||||
if ($oldemail != 'none')
|
||||
if ($oldemail != 'none') {
|
||||
print "- No email sent for ".$oldsalerepresentative.", total: ".$total."\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -187,8 +194,9 @@ function envoi_mail($mode, $oldemail, $message, $total, $userlang, $oldsalerepre
|
||||
{
|
||||
global $conf, $langs;
|
||||
|
||||
if (getenv('DOL_FORCE_EMAIL_TO'))
|
||||
if (getenv('DOL_FORCE_EMAIL_TO')) {
|
||||
$oldemail = getenv('DOL_FORCE_EMAIL_TO');
|
||||
}
|
||||
|
||||
$newlangs = new Translate('', $conf);
|
||||
$newlangs->setDefaultLang(empty($userlang) ? (empty($conf->global->MAIN_LANG_DEFAULT) ? 'auto' : $conf->global->MAIN_LANG_DEFAULT) : $userlang);
|
||||
@@ -205,10 +213,12 @@ function envoi_mail($mode, $oldemail, $message, $total, $userlang, $oldsalerepre
|
||||
dol_syslog("email_unpaid_invoices_to_representatives.php: send mail to ".$oldemail);
|
||||
|
||||
$usehtml = 0;
|
||||
if (!empty($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_SALESREPRESENTATIVES_FOOTER) && dol_textishtml($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_SALESREPRESENTATIVES_FOOTER))
|
||||
if (!empty($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_SALESREPRESENTATIVES_FOOTER) && dol_textishtml($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_SALESREPRESENTATIVES_FOOTER)) {
|
||||
$usehtml += 1;
|
||||
if (!empty($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_SALESREPRESENTATIVES_HEADER) && dol_textishtml($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_SALESREPRESENTATIVES_HEADER))
|
||||
}
|
||||
if (!empty($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_SALESREPRESENTATIVES_HEADER) && dol_textishtml($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_SALESREPRESENTATIVES_HEADER)) {
|
||||
$usehtml += 1;
|
||||
}
|
||||
|
||||
$allmessage = '';
|
||||
if (!empty($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_SALESREPRESENTATIVES_HEADER)) {
|
||||
@@ -221,8 +231,9 @@ function envoi_mail($mode, $oldemail, $message, $total, $userlang, $oldsalerepre
|
||||
$allmessage .= $langs->trans("Total")." = ".price($total, 0, $newlangs, 0, 0, - 1, $conf->currency).($usehtml ? "<br>\n" : "\n");
|
||||
if (!empty($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_SALESREPRESENTATIVES_FOOTER)) {
|
||||
$allmessage .= $conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_SALESREPRESENTATIVES_FOOTER;
|
||||
if (dol_textishtml($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_SALESREPRESENTATIVES_FOOTER))
|
||||
if (dol_textishtml($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_SALESREPRESENTATIVES_FOOTER)) {
|
||||
$usehtml += 1;
|
||||
}
|
||||
}
|
||||
|
||||
$mail = new CMailFile($subject, $sendto, $from, $allmessage, array(), array(), array(), '', '', 0, $msgishtml);
|
||||
|
||||
@@ -23,7 +23,9 @@
|
||||
* \brief Script to rebuild PDF and merge PDF files into one
|
||||
*/
|
||||
|
||||
if (!defined('NOSESSION')) define('NOSESSION', '1');
|
||||
if (!defined('NOSESSION')) {
|
||||
define('NOSESSION', '1');
|
||||
}
|
||||
|
||||
$sapi_type = php_sapi_name();
|
||||
$script_file = basename(__FILE__);
|
||||
|
||||
@@ -24,7 +24,9 @@
|
||||
* \brief Script de mise a jour des adherents dans LDAP depuis base Dolibarr
|
||||
*/
|
||||
|
||||
if (!defined('NOSESSION')) define('NOSESSION', '1');
|
||||
if (!defined('NOSESSION')) {
|
||||
define('NOSESSION', '1');
|
||||
}
|
||||
|
||||
$sapi_type = php_sapi_name();
|
||||
$script_file = basename(__FILE__);
|
||||
@@ -61,8 +63,9 @@ if (!isset($argv[1]) || !$argv[1]) {
|
||||
}
|
||||
|
||||
foreach ($argv as $key => $val) {
|
||||
if (preg_match('/-y$/', $val, $reg))
|
||||
if (preg_match('/-y$/', $val, $reg)) {
|
||||
$confirmed = 1;
|
||||
}
|
||||
}
|
||||
|
||||
$now = $argv[1];
|
||||
|
||||
@@ -24,7 +24,9 @@
|
||||
* \brief Script de mise a jour des adherents dans Dolibarr depuis LDAP
|
||||
*/
|
||||
|
||||
if (!defined('NOSESSION')) define('NOSESSION', '1');
|
||||
if (!defined('NOSESSION')) {
|
||||
define('NOSESSION', '1');
|
||||
}
|
||||
|
||||
$sapi_type = php_sapi_name();
|
||||
$script_file = basename(__FILE__);
|
||||
@@ -98,12 +100,15 @@ if (!isset($argv[2]) || !is_numeric($argv[2])) {
|
||||
|
||||
$typeid = $argv[2];
|
||||
foreach ($argv as $key => $val) {
|
||||
if ($val == 'commitiferror')
|
||||
if ($val == 'commitiferror') {
|
||||
$forcecommit = 1;
|
||||
if (preg_match('/--server=([^\s]+)$/', $val, $reg))
|
||||
}
|
||||
if (preg_match('/--server=([^\s]+)$/', $val, $reg)) {
|
||||
$conf->global->LDAP_SERVER_HOST = $reg[1];
|
||||
if (preg_match('/-y$/', $val, $reg))
|
||||
}
|
||||
if (preg_match('/-y$/', $val, $reg)) {
|
||||
$confirmed = 1;
|
||||
}
|
||||
}
|
||||
|
||||
print "Mails sending disabled (useless in batch mode)\n";
|
||||
@@ -115,9 +120,11 @@ print "port=".$conf->global->LDAP_SERVER_PORT."\n";
|
||||
print "login=".$conf->global->LDAP_ADMIN_DN."\n";
|
||||
print "pass=".preg_replace('/./i', '*', $conf->global->LDAP_ADMIN_PASS)."\n";
|
||||
print "DN to extract=".$conf->global->LDAP_MEMBER_DN."\n";
|
||||
if (!empty($conf->global->LDAP_MEMBER_FILTER))
|
||||
if (!empty($conf->global->LDAP_MEMBER_FILTER)) {
|
||||
print 'Filter=('.$conf->global->LDAP_MEMBER_FILTER.')'."\n"; // Note: filter is defined into function getRecords
|
||||
else print 'Filter=('.$conf->global->LDAP_KEY_MEMBERS.'=*)'."\n";
|
||||
} else {
|
||||
print 'Filter=('.$conf->global->LDAP_KEY_MEMBERS.'=*)'."\n";
|
||||
}
|
||||
print "----- To Dolibarr database:\n";
|
||||
print "type=".$conf->db->type."\n";
|
||||
print "host=".$conf->db->host."\n";
|
||||
@@ -257,8 +264,9 @@ if ($result >= 0) {
|
||||
if ($datefirst && $datelast && $datelast <= $datefirst) {
|
||||
// On ne va inserer que la premiere
|
||||
$datelast = 0;
|
||||
if (!$pricefirst && $pricelast)
|
||||
if (!$pricefirst && $pricelast) {
|
||||
$pricefirst = $pricelast;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -278,9 +286,11 @@ if ($result >= 0) {
|
||||
}
|
||||
|
||||
if (!$error || $forcecommit) {
|
||||
if (!$error)
|
||||
if (!$error) {
|
||||
print $langs->transnoentities("NoErrorCommitIsDone")."\n";
|
||||
else print $langs->transnoentities("ErrorButCommitIsDone")."\n";
|
||||
} else {
|
||||
print $langs->transnoentities("ErrorButCommitIsDone")."\n";
|
||||
}
|
||||
$db->commit();
|
||||
} else {
|
||||
print $langs->transnoentities("ErrorSomeErrorWereFoundRollbackIsDone", $error)."\n";
|
||||
|
||||
@@ -25,7 +25,9 @@
|
||||
* \brief Script de mise a jour des types de membres dans LDAP depuis base Dolibarr
|
||||
*/
|
||||
|
||||
if (!defined('NOSESSION')) define('NOSESSION', '1');
|
||||
if (!defined('NOSESSION')) {
|
||||
define('NOSESSION', '1');
|
||||
}
|
||||
|
||||
$sapi_type = php_sapi_name();
|
||||
$script_file = basename(__FILE__);
|
||||
|
||||
@@ -26,7 +26,9 @@
|
||||
* \brief Script to update members types into Dolibarr from LDAP
|
||||
*/
|
||||
|
||||
if (!defined('NOSESSION')) define('NOSESSION', '1');
|
||||
if (!defined('NOSESSION')) {
|
||||
define('NOSESSION', '1');
|
||||
}
|
||||
|
||||
$sapi_type = php_sapi_name();
|
||||
$script_file = basename(__FILE__);
|
||||
@@ -72,14 +74,18 @@ if (!isset($argv[1])) {
|
||||
}
|
||||
|
||||
foreach ($argv as $key => $val) {
|
||||
if ($val == 'commitiferror')
|
||||
if ($val == 'commitiferror') {
|
||||
$forcecommit = 1;
|
||||
if (preg_match('/--server=([^\s]+)$/', $val, $reg))
|
||||
}
|
||||
if (preg_match('/--server=([^\s]+)$/', $val, $reg)) {
|
||||
$conf->global->LDAP_SERVER_HOST = $reg[1];
|
||||
if (preg_match('/--excludeuser=([^\s]+)$/', $val, $reg))
|
||||
}
|
||||
if (preg_match('/--excludeuser=([^\s]+)$/', $val, $reg)) {
|
||||
$excludeuser = explode(',', $reg[1]);
|
||||
if (preg_match('/-y$/', $val, $reg))
|
||||
}
|
||||
if (preg_match('/-y$/', $val, $reg)) {
|
||||
$confirmed = 1;
|
||||
}
|
||||
}
|
||||
|
||||
print "Mails sending disabled (useless in batch mode)\n";
|
||||
@@ -163,9 +169,11 @@ if ($result >= 0) {
|
||||
}
|
||||
|
||||
if (!$error || $forcecommit) {
|
||||
if (!$error)
|
||||
if (!$error) {
|
||||
print $langs->transnoentities("NoErrorCommitIsDone")."\n";
|
||||
else print $langs->transnoentities("ErrorButCommitIsDone")."\n";
|
||||
} else {
|
||||
print $langs->transnoentities("ErrorButCommitIsDone")."\n";
|
||||
}
|
||||
$db->commit();
|
||||
} else {
|
||||
print $langs->transnoentities("ErrorSomeErrorWereFoundRollbackIsDone", $error)."\n";
|
||||
|
||||
@@ -24,7 +24,9 @@
|
||||
* \brief Migrate pictures from old system prior to 3.7 to new path for 3.7+
|
||||
*/
|
||||
|
||||
if (!defined('NOSESSION')) define('NOSESSION', '1');
|
||||
if (!defined('NOSESSION')) {
|
||||
define('NOSESSION', '1');
|
||||
}
|
||||
|
||||
$sapi_type = php_sapi_name();
|
||||
$script_file = basename(__FILE__);
|
||||
|
||||
@@ -24,7 +24,9 @@
|
||||
* \brief Migrate pictures from old system prior to 3.7 to new path for 3.7+
|
||||
*/
|
||||
|
||||
if (!defined('NOSESSION')) define('NOSESSION', '1');
|
||||
if (!defined('NOSESSION')) {
|
||||
define('NOSESSION', '1');
|
||||
}
|
||||
|
||||
$sapi_type = php_sapi_name();
|
||||
$script_file = basename(__FILE__);
|
||||
@@ -90,14 +92,16 @@ foreach ($filearray as $keyf => $valf) {
|
||||
// Create small thumbs for image
|
||||
// Used on logon for example
|
||||
$imgThumbSmall = vignette($vali['fullname'], $maxwidthsmall, $maxheightsmall, '_small', 50, "thumbs");
|
||||
if (preg_match('/Error/', $imgThumbSmall))
|
||||
if (preg_match('/Error/', $imgThumbSmall)) {
|
||||
print $imgThumbSmall."\n";
|
||||
}
|
||||
|
||||
// Create mini thumbs for image (Ratio is near 16/9)
|
||||
// Used on menu or for setup page for example
|
||||
$imgThumbMini = vignette($vali['fullname'], $maxwidthmini, $maxheightmini, '_mini', 50, "thumbs");
|
||||
if (preg_match('/Error/', $imgThumbMini))
|
||||
if (preg_match('/Error/', $imgThumbMini)) {
|
||||
print $imgThumbMini."\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user