Merge branch 'develop' into Fix-#32193

This commit is contained in:
Laurent Destailleur 2024-12-13 14:47:15 +01:00 committed by GitHub
commit 7661d52ba1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
14 changed files with 122 additions and 137 deletions

View File

@ -8196,12 +8196,6 @@ parameters:
count: 1
path: ../../htdocs/core/actions_massactions.inc.php
-
message: '#^Variable \$action might not be defined\.$#'
identifier: variable.undefined
count: 14
path: ../../htdocs/core/actions_massactions.inc.php
-
message: '#^Variable \$from might not be defined\.$#'
identifier: variable.undefined
@ -8220,12 +8214,6 @@ parameters:
count: 1
path: ../../htdocs/core/actions_massactions.inc.php
-
message: '#^Variable \$month might not be defined\.$#'
identifier: variable.undefined
count: 2
path: ../../htdocs/core/actions_massactions.inc.php
-
message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#'
identifier: empty.variable
@ -8256,12 +8244,6 @@ parameters:
count: 1
path: ../../htdocs/core/actions_massactions.inc.php
-
message: '#^Variable \$year might not be defined\.$#'
identifier: variable.undefined
count: 2
path: ../../htdocs/core/actions_massactions.inc.php
-
message: '#^Variable \$classfile might not be defined\.$#'
identifier: variable.undefined
@ -17394,18 +17376,6 @@ parameters:
count: 4
path: ../../htdocs/cron/class/cronjob.class.php
-
message: '#^Variable \$ExecTimeLimit in empty\(\) always exists and is not falsy\.$#'
identifier: empty.variable
count: 1
path: ../../htdocs/cron/class/cronjob.class.php
-
message: '#^Variable \$MemoryLimit in empty\(\) always exists and is always falsy\.$#'
identifier: empty.variable
count: 1
path: ../../htdocs/cron/class/cronjob.class.php
-
message: '#^Ternary operator condition is always true\.$#'
identifier: ternary.alwaysTrue
@ -27816,12 +27786,6 @@ parameters:
count: 2
path: ../../htdocs/projet/tasks.php
-
message: '#^Variable \$param might not be defined\.$#'
identifier: variable.undefined
count: 17
path: ../../htdocs/projet/tasks.php
-
message: '#^Variable \$permissiontodelete might not be defined\.$#'
identifier: variable.undefined

View File

@ -374,7 +374,7 @@ class Adherent extends CommonObject
*/
const STATUS_VALIDATED = 1;
/**
* Resiliated
* Resiliated (membership end and was not renew)
*/
const STATUS_RESILIATED = 0;
/**

View File

@ -80,7 +80,7 @@ $search_end = -1;
if (GETPOST('search_endyear') != '') {
$search_end = dol_mktime(23, 59, 59, $search_endmonth, $search_endday, $search_endyear);
}
$search_code = GETPOST('search_code', 'alpha');
$search_code = GETPOST('search_code', 'array:alpha');
$search_ref = GETPOST('search_ref', 'alpha');
$search_amount = GETPOST('search_amount', 'alpha');
@ -138,7 +138,7 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x'
$search_fk_user = '';
$search_start = -1;
$search_end = -1;
$search_code = '';
$search_code = array();
$search_ref = '';
$search_amount = '';
$search_showonlyerrors = 0;
@ -496,15 +496,13 @@ print '</td>';
// Actions code
print '<td class="liste_titre">';
print $form->selectarray('search_code', $block_static->trackedevents, $search_code, 1, 0, 0, '', 1, 0, 0, 'ASC', 'maxwidth150', 1);
//print $form->selectarray('search_code', $block_static->trackedevents, $search_code, 1, 0, 0, '', 1, 0, 0, 'ASC', 'maxwidth150', 1);
print $form->multiselectarray('search_code', $block_static->trackedevents, $search_code, 0, 0, 'maxwidth150', 1);
print '</td>';
// Ref
print '<td class="liste_titre"><input type="text" class="maxwidth50" name="search_ref" value="'.dol_escape_htmltag($search_ref).'"></td>';
// Link to ref
print '<td class="liste_titre"></td>';
// Amount
print '<td class="liste_titre right"><input type="text" class="maxwidth50" name="search_amount" value="'.dol_escape_htmltag($search_amount).'"></td>';
@ -521,6 +519,9 @@ print $form->selectarray('search_showonlyerrors', $array, $search_showonlyerrors
print '</td>';
// Status note
//print '<td class="liste_titre"></td>';
// Link to original ref into business software
print '<td class="liste_titre"></td>';
// Action column
@ -543,12 +544,12 @@ print getTitleFieldOfList($langs->trans('Date'), 0, $_SERVER["PHP_SELF"], 'date_
print getTitleFieldOfList($langs->trans('Author'), 0, $_SERVER["PHP_SELF"], 'user_fullname', '', $param, '', $sortfield, $sortorder, '')."\n";
print getTitleFieldOfList($langs->trans('Action'), 0, $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, '')."\n";
print getTitleFieldOfList($langs->trans('Ref'), 0, $_SERVER["PHP_SELF"], 'ref_object', '', $param, '', $sortfield, $sortorder, '')."\n";
print getTitleFieldOfList('', 0, $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, '')."\n";
print getTitleFieldOfList($langs->trans('Amount'), 0, $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'right ')."\n";
print getTitleFieldOfList($langs->trans('DataOfArchivedEvent'), 0, $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'center ', 0, $langs->trans('DataOfArchivedEventHelp').'<br>'.$langs->trans('DataOfArchivedEventHelp2'), 1)."\n";
print getTitleFieldOfList($langs->trans('DataOfArchivedEvent'), 0, $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'center ', 0, $langs->trans('DataOfArchivedEventHelp'), 1)."\n";
print getTitleFieldOfList($langs->trans('Fingerprint'), 0, $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, '')."\n";
print getTitleFieldOfList($langs->trans('Status'), 0, $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'center ')."\n";
print getTitleFieldOfList('', 0, $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'center ')."\n";
print getTitleFieldOfList($form->textwithpicto($langs->trans('Status'), $langs->trans('DataOfArchivedEventHelp2')), 0, $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'center ')."\n";
//print getTitleFieldOfList('', 0, $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'center ')."\n";
print getTitleFieldOfList('', 0, $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, '')."\n";
// Action column
if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
print getTitleFieldOfList('<span id="blockchainstatus"></span>', 0, $_SERVER["PHP_SELF"], '', '', $param, 'class="center"', $sortfield, $sortorder, '')."\n";
@ -633,12 +634,6 @@ if (is_array($blocks)) {
print dol_escape_htmltag($block->ref_object);
print '</td>';
// Link to source object
print '<td class="tdoverflowmax150"'.(preg_match('/<a/', $object_link) ? '' : 'title="'.dol_escape_htmltag(dol_string_nohtmltag($object_link.($object_link_title ? ' - '.$object_link_title : ''))).'"').'>';
print '<!-- object_link -->'; // $object_link can be a '<a href' link or a text
print $object_link;
print '</td>';
// Amount
print '<td class="right nowraponall">'.price($block->amounts).'</td>';
@ -666,14 +661,18 @@ if (is_array($blocks)) {
} else {
print '<span class="badge badge-status4 badge-status" title="'.$langs->trans('OkCheckFingerprintValidity').'">OK</span>';
}
print '</td>';
//print '</td>';
// Note
print '<td class="center">';
//print '<td class="center">';
if (!$checkresult[$block->id] || ($loweridinerror && $block->id >= $loweridinerror)) { // If error
if ($checkresult[$block->id]) {
print $form->textwithpicto('', $langs->trans('OkCheckFingerprintValidityButChainIsKo'));
} else {
//print $form->textwithpicto('', $langs->trans('KoCheckFingerprintValidity'));
}
} else {
//print $form->textwithpicto('', $langs->trans('DataOfArchivedEventHelp2'));
}
if (getDolGlobalString('BLOCKEDLOG_USE_REMOTE_AUTHORITY') && getDolGlobalString('BLOCKEDLOG_AUTHORITY_URL')) {
@ -681,6 +680,12 @@ if (is_array($blocks)) {
}
print '</td>';
// Link to source object
print '<td class="tdoverflowmax150"'.(preg_match('/<a/', $object_link) ? '' : 'title="'.dol_escape_htmltag(dol_string_nohtmltag($object_link.($object_link_title ? ' - '.$object_link_title : ''))).'"').'>';
print '<!-- object_link -->'; // $object_link can be a '<a href' link or a text
print $object_link;
print '</td>';
// Action column
if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
print '<td class="liste_titre">';

View File

@ -169,7 +169,7 @@ class BlockedLog
// Customer Invoice/Facture / Payment
if (isModEnabled('invoice')) {
$this->trackedevents['BILL_VALIDATE'] = 'logBILL_VALIDATE';
$this->trackedevents['BILL_DELETE'] = 'logBILL_DELETE';
//$this->trackedevents['BILL_UPDATE'] = 'logBILL_UPDATE';
$this->trackedevents['BILL_SENTBYMAIL'] = 'logBILL_SENTBYMAIL';
$this->trackedevents['DOC_DOWNLOAD'] = 'BlockedLogBillDownload';
$this->trackedevents['DOC_PREVIEW'] = 'BlockedLogBillPreview';
@ -532,7 +532,8 @@ class BlockedLog
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'
'ref', 'ref_client', 'ref_supplier', 'date', 'datef', 'datev', 'type', 'total_ht', 'total_tva', 'total_ttc', 'localtax1', 'localtax2', 'revenuestamp', 'datepointoftax', 'note_public', 'lines',
'module_source', 'pos_source'
))) {
continue; // Discard if not into a dedicated list
}
@ -542,7 +543,13 @@ class BlockedLog
$lineid++;
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', 'product_label', 'vat_src_code', 'tva_tx', 'info_bits', 'localtax1_tx', 'localtax2_tx', 'total_ht', 'total_tva', 'total_ttc', 'total_localtax1', 'total_localtax2'
'ref', 'product_type', 'product_label',
'qty',
'subprice',
'vat_src_code', 'tva_tx', 'localtax1_tx', 'localtax2_tx',
'total_ht', 'total_tva', 'total_ttc', 'total_localtax1', 'total_localtax2',
'multicurrency_code', 'multicurrency_total_ht', 'multicurrency_total_tva', 'multicurrency_total_ttc',
'info_bits', 'special_code',
))) {
continue; // Discard if not into a dedicated list
}
@ -901,12 +908,10 @@ class BlockedLog
*/
public function create($user, $forcesignature = '')
{
global $conf, $langs, $hookmanager;
global $conf, $langs;
$langs->load('blockedlog');
$error = 0;
// Clean data
$this->amounts = (float) $this->amounts;
@ -941,9 +946,9 @@ class BlockedLog
$this->db->begin();
$previoushash = $this->getPreviousHash(1, 0); // This get last record and lock database until insert is done
$previoushash = $this->getPreviousHash(1, 0); // This get last record and lock database until insert is done and transaction closed
$keyforsignature = $this->buildKeyForSignature();
$keyforsignature = $this->buildKeyForSignature(); // All the information for the has (meta data + data saved)
include_once DOL_DOCUMENT_ROOT.'/core/lib/security.lib.php';
@ -1142,18 +1147,18 @@ class BlockedLog
/**
* Return array of log objects (with criteria)
*
* @param string $element element to search
* @param int $fk_object id of object to search
* @param int<0,max> $limit max number of element, 0 for all
* @param string $sortfield sort field
* @param string $sortorder sort order
* @param int $search_fk_user id of user(s)
* @param int $search_start start time limit
* @param int $search_end end time limit
* @param string $search_ref search ref
* @param string $search_amount search amount
* @param string $search_code search code
* @return BlockedLog[]|int<-2,-1> Array of object log or <0 if error
* @param string $element element to search
* @param int $fk_object id of object to search
* @param int<0,max> $limit max number of element, 0 for all
* @param string $sortfield sort field
* @param string $sortorder sort order
* @param int $search_fk_user id of user(s)
* @param int $search_start start time limit
* @param int $search_end end time limit
* @param string $search_ref search ref
* @param string $search_amount search amount
* @param string|array<string> $search_code search code
* @return BlockedLog[]|int<-2,-1> Array of object log or <0 if error
*/
public function getLog($element, $fk_object, $limit = 0, $sortfield = '', $sortorder = '', $search_fk_user = -1, $search_start = -1, $search_end = -1, $search_ref = '', $search_amount = '', $search_code = '')
{
@ -1195,8 +1200,14 @@ class BlockedLog
if ($search_amount != '') {
$sql .= natural_search("amounts", $search_amount, 1);
}
if ($search_code != '' && $search_code != '-1') {
$sql .= natural_search("action", $search_code, 3);
if (is_array($search_code)) {
if (!empty($search_code)) {
$sql .= natural_search("action", implode(',', $search_code), 3);
}
} else {
if ($search_code != '' && $search_code != '-1') {
$sql .= natural_search("action", $search_code, 3);
}
}
$sql .= $this->db->order($sortfield, $sortorder);

View File

@ -2343,10 +2343,10 @@ if ($num > 0) {
}
// Type ent
if (!empty($arrayfields['typent.code']['checked'])) {
print '<td class="center">';
if (!is_array($typenArray) || count($typenArray) == 0) {
$typenArray = $formcompany->typent_array(1);
}
print '<td class="center tdoverflowmax100" title="'.dolPrintHTML($typenArray[$obj->typent_code]).'">';
if (!empty($obj->typent_code)) {
print $typenArray[$obj->typent_code];
}
@ -2357,10 +2357,10 @@ if ($num > 0) {
}
// Staff
if (!empty($arrayfields['staff.code']['checked'])) {
print '<td class="center">';
if (!is_array($conf->cache['staff']) || count($conf->cache['staff']) == 0) {
$conf->cache['staff'] = $formcompany->effectif_array(1);
}
print '<td class="center tdoverflowmax100" title="'.dolPrintHTML($conf->cache['staff'][$obj->staff_code]).'">';
print $conf->cache['staff'][$obj->staff_code];
print '</td>';
if (!$i) {
@ -2532,8 +2532,6 @@ if ($num > 0) {
}
}
//else print $langs->trans("NoSalesRepresentativeAffected");
} else {
print '&nbsp;';
}
print '</td>';
if (!$i) {

View File

@ -55,10 +55,13 @@
* @var ?string $objectlabel
* @var ?string $option
* @var ?int $deliveryreceipt
* @var string $action
* @var string $massaction
* @var string $objectclass
* @var string $uploaddir
* @var string $confirm
* @var string $month
* @var string $year
* @var int $error
*/
'

View File

@ -1387,7 +1387,7 @@ class FormFile
// Show title of list of existing files
$morehtmlright = '';
if (!empty($moreoptions['showhideaddbutton']) && $conf->use_javascript_ajax) {
$tmpurlforbutton = 'javascript:console.log("open add file form");jQuery(".divattachnewfile").toggle(); if (!jQuery(".divattachnewfile").is(":hidden")) { jQuery("input[type=\'file\']").click(); }';
$tmpurlforbutton = 'javascript:console.log("open add file form");jQuery(".divattachnewfile").toggle(); if (!jQuery(".divattachnewfile").is(":hidden")) { jQuery("input[type=\'file\']").click();}void(0);';
$morehtmlright .= dolGetButtonTitle($langs->trans('New'), '', 'fa fa-plus-circle', $tmpurlforbutton, '', $permtoeditline);
}
@ -2221,7 +2221,7 @@ class FormFile
$morehtmlright = '';
if (!empty($moreoptions['showhideaddbutton']) && $conf->use_javascript_ajax) {
$morehtmlright .= dolGetButtonTitle($langs->trans('New'), '', 'fa fa-plus-circle', 'javascript:console.log("open addlink form"); jQuery(".divlinkfile").toggle();', '', $permissiontoedit);
$morehtmlright .= dolGetButtonTitle($langs->trans('New'), '', 'fa fa-plus-circle', 'javascript:console.log("open addlink form"); jQuery(".divlinkfile").toggle(); void(0);', '', $permissiontoedit);
}
// Show list of associated links

View File

@ -23,6 +23,46 @@
*/
'@phan-var-force array{nbfield:int,type?:array<int,string>,pos?:array<int,int>,val?:array<int,float>} $totalarray';
if (!function_exists('printTotalValCell')) { // allow two list with total on same screen
/** print a total cell value according to its type
*
* @param string $type of field (duration, string..)
* @param string $val the value to display
*
* @return void (direct print)
*/
function printTotalValCell($type, $val)
{
// if $totalarray['type'] not present we consider it as number
if (empty($type)) {
$type = 'real';
}
switch ($type) {
case 'duration':
print '<td class="right">';
print(!empty($val) ? convertSecondToTime((int) $val, 'allhourmin') : 0);
print '</td>';
break;
case 'string': // This type is no more used. type is now varchar(x)
print '<td class="left">';
print(!empty($val) ? $val : '');
print '</td>';
break;
case 'stock':
print '<td class="right">';
print price2num(!empty($val) ? $val : 0, 'MS');
print '</td>';
break;
default:
print '<td class="right">';
print price(!empty($val) ? $val : 0);
print '</td>';
break;
}
}
}
// Move fields of totalizable into the common array pos and val
if (!empty($totalarray['totalizable']) && is_array($totalarray['totalizable'])) {
foreach ($totalarray['totalizable'] as $keytotalizable => $valtotalizable) {
@ -107,40 +147,3 @@ if (isset($totalarray['pos'])) {
}
//print '</tfoot>';
}
/** print a total cell value according to its type
*
* @param string $type of field (duration, string..)
* @param string $val the value to display
*
* @return void (direct print)
*/
function printTotalValCell($type, $val)
{
// if $totalarray['type'] not present we consider it as number
if (empty($type)) {
$type = 'real';
}
switch ($type) {
case 'duration':
print '<td class="right">';
print(!empty($val) ? convertSecondToTime((int) $val, 'allhourmin') : 0);
print '</td>';
break;
case 'string': // This type is no more used. type is now varchar(x)
print '<td class="left">';
print(!empty($val) ? $val : '');
print '</td>';
break;
case 'stock':
print '<td class="right">';
print price2num(!empty($val) ? $val : 0, 'MS');
print '</td>';
break;
default:
print '<td class="right">';
print price(!empty($val) ? $val : 0);
print '</td>';
break;
}
}

View File

@ -1223,7 +1223,7 @@ class Cronjob extends CommonObject
dol_syslog(get_class($this)."::run_jobs jobtype=".$this->jobtype." userlogin=".$userlogin, LOG_DEBUG);
// Increase limit of time. Works only if we are not in safe mode
$ExecTimeLimit = 600;
$ExecTimeLimit = getDolGlobalInt('MAIN_CRON_EXEC_TIME_LIMIT', 600);
if (!empty($ExecTimeLimit)) {
$err = error_reporting();
error_reporting(0); // Disable all errors
@ -1231,7 +1231,7 @@ class Cronjob extends CommonObject
@set_time_limit($ExecTimeLimit); // Need more than 240 on Windows 7/64
error_reporting($err);
}
$MemoryLimit = 0;
$MemoryLimit = getDolGlobalString('MAIN_CRON_MEMORY_LIMIT');
if (!empty($MemoryLimit)) {
@ini_set('memory_limit', $MemoryLimit);
}

View File

@ -2144,10 +2144,10 @@ MAIN_PDF_NO_RECIPENT_FRAME=Hide borders on recipient address frame
MAIN_PDF_HIDE_CUSTOMER_CODE=Hide customer code
MAIN_PDF_HIDE_CUSTOMER_ACCOUNTING_CODE=Hide customer accounting code
MAIN_PDF_HIDE_SENDER_NAME=Hide sender/company name in address block
TERMSOFSALE=Conditions de vente
MAIN_PDF_ADD_TERMSOFSALE_PROPAL=Add the conditions of sale after the proposal
MAIN_PDF_ADD_TERMSOFSALE_ORDER=Add the conditions of sale after the order
MAIN_PDF_ADD_TERMSOFSALE_INVOICE=Add the conditions of sale after the invoice
TERMSOFSALE=Terms and conditions of sale
MAIN_PDF_ADD_TERMSOFSALE_PROPAL=Add the terms and conditions of sale after the proposal
MAIN_PDF_ADD_TERMSOFSALE_ORDER=Add the terms and conditions of sale after the order
MAIN_PDF_ADD_TERMSOFSALE_INVOICE=Add the terms and conditions of sale after the invoice
PROPOSAL_PDF_HIDE_PAYMENTTERM=Hide payments conditions
PROPOSAL_PDF_HIDE_PAYMENTMODE=Hide payment mode
MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING=Add a hidden markup into the signature area to allow electronic signature tool to reuse it. May be used by external tools or in the future by the online signature feature.
@ -2582,7 +2582,7 @@ DolibarrStandardCaptcha=A native captcha generated by Dolibarr
SALES_ORDER_SHOW_SHIPPING_ADDRESS=Show shipping address
SALES_ORDER_SHOW_SHIPPING_ADDRESSMore=Compulsory indication in some countries (France, ...)
PDF_INVOICE_SHOW_VAT_ANALYSIS=Show vat analysis per rate
MaxNbOfRecordOnListIsOk=You have a max size for lists is set to <b>%s</b> lines. This is a good value.
MaxNbOfRecordOnListIsOk=You have a max size for lists set to <b>%s</b> lines. This is a good value.
YouHaveALargeAmountOfRecordOnLists=You have a default max size for lists set to <b>%s</b> lines. This is a large value that need scrolling to see all answers. It is better to have a value lower than <b>%s</b> and use pagination to see record over this number. Change this in menu Home - Setup - Display.
RoundBorders=Round borders
CheckIfModuleIsNotBlackListed=Block install for modules found into the <b>Remote blacklist</b>
@ -2593,9 +2593,9 @@ SensitiveData=Sensitive data
ToolToDecryptAString=Tool to decrypt a string
Decrypt=Decrypt
FilesIntegrityDesc=If you want to check the integrity of files instead of database, you can do it by using <a href="%s">this tool</a>.
AttributeCodeHelp=A code of your choice (without special char and space) to identify the property.<br>Note that if an object B is created from an existing object A that has a different type (for example creation of an invoice from an order), the value of the complementary attributes of A are also copied into the complementary attributes of B when the code of the attribute is the same.
AttributeCodeHelp=A code of your choice (without special chars and spaces) to identify the property.<br>Note that if an object B is created from an existing object A that has a different type (for example creation of an invoice from an order), the value of the complementary attributes of A are also copied into the complementary attributes of B when the code of the attribute is the same.
ThereIsMoreThanXAnswers=There is more than %s answers with your filter. Please add more filters...
PdfAddTermOfSaleHelp=Upload the condition of sales from file input at the bottom of this setup page
WarningOnlineSignature=Please note that this function allows a person (customer, supplier...) to insert, online, the image of his signature in the PDF document. As for a handwritten signature, such a signature can be made by anyone and does not have the same legal value as a legal electronic signature system going through a paying trusted third party. If you need this level of security, you can contact an integrator for more information or check for addons on www.dolistore.org.
PdfAddTermOfSaleHelp=You can upload the terms and conditions of sale file at the bottom of this setup page
WarningOnlineSignature=Please note that this function allows a person (customer, supplier...) to insert, online, the image of his signature in the PDF document. As for a handwritten signature, such a signature can be made by anyone and might not have the same legal value as a legal electronic signature system going through an authorized trusted third party. If you need this level of security, you can contact an integrator for more information or check for addons on www.dolistore.org.
UploadExtensionRestriction=File exension list forbidden to upload
UploadExtensionRestrictionExemple=htm, html, shtml, js, php

View File

@ -7,7 +7,7 @@ BrowseBlockedLog=Unalterable logs
ShowAllFingerPrintsMightBeTooLong=Show all archived logs (might be long)
ShowAllFingerPrintsErrorsMightBeTooLong=Show all non-valid archive logs (might be long)
DownloadBlockChain=Download fingerprints
KoCheckFingerprintValidity=Archived log entry is not valid. It means someone (a hacker?) has modified some data of this record after it was recorded, or has erased the previous archived record (check that line with previous # exists) or has modified checksum of the previous record.
KoCheckFingerprintValidity=Archived log entry is not valid. It means someone (a hacker?) has modified some data of this record after it was recorded, OR has erased the previous archived record (check that the line with previous # exists) OR has modified the checksum of the previous record.
OkCheckFingerprintValidity=Archived log record is valid. The data on this line was not modified and the entry follows the previous one.
OkCheckFingerprintValidityButChainIsKo=Archived log seems valid compared to previous one but the chain was corrupted previously.
AddedByAuthority=Stored into remote authority
@ -18,9 +18,9 @@ BlockedlogInfoDialog=Log Details
ListOfTrackedEvents=List of tracked events
Fingerprint=Fingerprint
DownloadLogCSV=Export archived logs (CSV)
DataOfArchivedEvent=Full data of archived event
DataOfArchivedEventHelp=This field contains the unalterable and structured data that was archived on real time. Even if some parent business event could have been purged or modified, the data archived here is the original data, and it can't be modified.
DataOfArchivedEventHelp2=Its integrity is guaranteed if the status of the line is OK
DataOfArchivedEvent=Complementary data of archived event
DataOfArchivedEventHelp=This field contains the complementary data that was archived on real time. Even if some parent business event could have been purged or modified, the data archived here is the original data, and it can't be modified.
DataOfArchivedEventHelp2=The integrity of data on each lines is guaranteed if the status of the line is OK
ImpossibleToReloadObject=Original object (type %s, id %s) not linked (see 'Full datas' column to get unalterable saved data)
BlockedLogAreRequiredByYourCountryLegislation=Unalterable Logs module may be required by the legislation of your country. Disabling this module may render any future transactions invalid with respect to the law and the use of legal software as they can not be validated by a tax audit.
BlockedLogActivatedBecauseRequiredByYourCountryLegislation=Unalterable Logs module was activated because of the legislation of your country. Disabling this module may render any future transactions invalid with respect to the law and the use of legal software as they cannot be validated by a tax audit.

View File

@ -344,8 +344,8 @@ ErrorStartHourIsNull=Start date field cannot be empty
ErrorTooManyLinesToProcessPleaseUseAMoreSelectiveFilter=Too many lines to process. Please use a more selective filter.
ErrorEmptyValueForQty=Quantity cannot be zero.
ErrorNoCloneWithoutName=The new user must have a name
ErrorNoCloneWithoutEmail=The new user must have a email
ErrorUserClone=Error when clone categories user
ErrorNoCloneWithoutEmail=The new user must have an email
ErrorUserClone=Error in user clone categories
ErrorQtyOrderedLessQtyShipped = The quantity ordered cannot be less than the quantity shipped.
ErrorVariousPaymentOnBankAccountWithADifferentCurrencyNotYetSupported=Error, creating a various payment on a bank account with a currency different than the currency of the company is not yet supported.
ErrorStreamMustBeEnabled=The PHP stream %s is not available. Check your PHP modules and Dolibarr parameter $dolibarr_main_stream_to_disable.

View File

@ -32,7 +32,7 @@ NewMailing=New mass Email
NewSMSing=New smsing
EditMailing=Edit mass Email
ResetMailing=Resend mass Email
ConfirmResetMailingTargetMassaction=Confirmation of the reset of targets statusin error
ConfirmResetMailingTargetMassaction=Confirmation of the reset of targets status in error
ResetMailingTargetMassaction=Reset status in error
DeleteMailing=Delete mass Email
PreviewMailing=Preview mass Email

View File

@ -448,6 +448,7 @@ $help_url = "EN:Module_Projects|FR:Module_Projets|ES:M&oacute;dulo_Proyectos";
llxHeader("", $title, $help_url, '', 0, 0, '', '', '', 'mod-project page-card_tasks');
$arrayofselected = is_array($toselect) ? $toselect : array();
$param = '';
if ($id > 0 || !empty($ref)) {
$result = $object->fetch($id, $ref);