forked from Wavyzz/dolibarr
Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into
develop
This commit is contained in:
@@ -330,7 +330,7 @@ if ($action == 'valid') {
|
||||
* View
|
||||
*/
|
||||
|
||||
$html = new Form($db);
|
||||
$form = new Form($db);
|
||||
$formaccounting = new FormAccounting($db);
|
||||
|
||||
$title = $langs->trans("CreateMvts");
|
||||
@@ -339,7 +339,7 @@ llxHeader('', $title);
|
||||
|
||||
// Confirmation to delete the command
|
||||
if ($action == 'delete') {
|
||||
$formconfirm = $html->formconfirm($_SERVER["PHP_SELF"].'?id='.$id.'&mode='.$mode, $langs->trans('DeleteMvt'), $langs->trans('ConfirmDeleteMvt', $langs->transnoentitiesnoconv("RegistrationInAccounting")), 'confirm_delete', '', 0, 1);
|
||||
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$id.'&mode='.$mode, $langs->trans('DeleteMvt'), $langs->trans('ConfirmDeleteMvt', $langs->transnoentitiesnoconv("RegistrationInAccounting")), 'confirm_delete', '', 0, 1);
|
||||
print $formconfirm;
|
||||
}
|
||||
|
||||
@@ -374,7 +374,7 @@ if ($action == 'create') {
|
||||
print '<tr>';
|
||||
print '<td class="titlefieldcreate fieldrequired">'.$langs->trans("Docdate").'</td>';
|
||||
print '<td>';
|
||||
print $html->selectDate('', 'doc_date', '', '', '', "create_mvt", 1, 1);
|
||||
print $form->selectDate('', 'doc_date', '', '', '', "create_mvt", 1, 1);
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
@@ -940,7 +940,12 @@ if ($mode == 'common' || $mode == 'commonkanban') {
|
||||
} else { // Module not yet activated
|
||||
// Set $codeenabledisable
|
||||
if (!empty($objMod->always_enabled)) {
|
||||
// Should never happened
|
||||
// A 'always_enabled' module should not never be disabled. If this happen, we keep a link to reenable it.
|
||||
$codeenabledisable .= '<!-- Message to show: an always_enabled module has been disabled -->'."\n";
|
||||
$codeenabledisable .= '<a class="reposition" href="'.$_SERVER["PHP_SELF"].'?id='.$objMod->numero.'&token='.newToken().'&module_position='.$module_position.'&action=set&token='.newToken().'&value='.$modName.'&mode='.$mode.$param.'"';
|
||||
$codeenabledisable .= '>';
|
||||
$codeenabledisable .= img_picto($langs->trans("Disabled"), 'switch_off');
|
||||
$codeenabledisable .= "</a>\n";
|
||||
} elseif (!empty($objMod->disabled)) {
|
||||
$codeenabledisable .= $langs->trans("Disabled");
|
||||
} else {
|
||||
|
||||
@@ -346,7 +346,8 @@ class Boms extends DolibarrApi
|
||||
$request_data->efficiency,
|
||||
$request_data->position,
|
||||
$request_data->fk_bom_child,
|
||||
$request_data->import_key
|
||||
$request_data->import_key,
|
||||
$request_data->fk_unit
|
||||
);
|
||||
|
||||
if ($updateRes > 0) {
|
||||
@@ -391,7 +392,8 @@ class Boms extends DolibarrApi
|
||||
$request_data->disable_stock_change,
|
||||
$request_data->efficiency,
|
||||
$request_data->position,
|
||||
$request_data->import_key
|
||||
$request_data->import_key,
|
||||
$request_data->fk_unit
|
||||
);
|
||||
|
||||
if ($updateRes > 0) {
|
||||
|
||||
@@ -1761,13 +1761,25 @@ class BOMLine extends CommonObjectLine
|
||||
* @var string description
|
||||
*/
|
||||
public $description;
|
||||
|
||||
/**
|
||||
* @var double qty
|
||||
*/
|
||||
public $qty;
|
||||
|
||||
/**
|
||||
* @var int qty frozen
|
||||
*/
|
||||
public $qty_frozen;
|
||||
|
||||
/**
|
||||
* @var int disable stock change
|
||||
*/
|
||||
public $disable_stock_change;
|
||||
|
||||
/**
|
||||
* @var double efficiency
|
||||
*/
|
||||
public $efficiency;
|
||||
|
||||
/**
|
||||
@@ -1791,12 +1803,16 @@ class BOMLine extends CommonObjectLine
|
||||
*/
|
||||
public $unit_cost = 0;
|
||||
|
||||
|
||||
/**
|
||||
* @var Bom array of Bom in line
|
||||
*/
|
||||
public $childBom = array();
|
||||
|
||||
/**
|
||||
* @var int Service unit
|
||||
*/
|
||||
public $fk_unit;
|
||||
|
||||
/**
|
||||
* @var int Service Workstation
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/* Copyright (C) 2019 Maxime Kohlhaas <maxime@atm-consulting.fr>
|
||||
* Copyright (C) 2019-2021 Frédéric France <frederic.france@netlogic.fr>
|
||||
* Copyright (C) 2019-2023 Frédéric France <frederic.france@netlogic.fr>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@@ -113,7 +113,7 @@ function bomPrepareHead($object)
|
||||
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php';
|
||||
$upload_dir = $conf->bom->dir_output."/bom/".dol_sanitizeFileName($object->ref);
|
||||
$upload_dir = $conf->bom->dir_output."/".dol_sanitizeFileName($object->ref);
|
||||
$nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$'));
|
||||
$nbLinks = Link::count($db, $object->element, $object->id);
|
||||
$head[$h][0] = DOL_URL_ROOT.'/bom/bom_document.php?id='.$object->id;
|
||||
|
||||
@@ -907,8 +907,8 @@ if ($action == 'create') {
|
||||
|
||||
$text = '';
|
||||
|
||||
if (isset($conf->global->MAILING_LIMIT_SENDBYDAY) && getDolGlobalInt('MAILING_LIMIT_SENDBYDAY') >= 0) {
|
||||
$text .= $langs->trans('WarningLimitSendByDay', getDolGlobalString('MAILING_LIMIT_SENDBYDAY'));
|
||||
if (getDolGlobalInt('MAILING_LIMIT_SENDBYDAY') > 0) {
|
||||
$text .= $langs->trans('WarningLimitSendByDay', getDolGlobalInt('MAILING_LIMIT_SENDBYDAY'));
|
||||
$text .= '<br><br>';
|
||||
}
|
||||
$text .= $langs->trans('ConfirmSendingEmailing').'<br>';
|
||||
|
||||
@@ -41,7 +41,7 @@ $result = restrictedArea($user, 'contact', $id, 'socpeople&societe');
|
||||
|
||||
$result = $contact->fetch($id);
|
||||
if ($result <= 0) {
|
||||
dol_print_error($contact->error);
|
||||
dol_print_error($db, $contact->error);
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
@@ -1814,7 +1814,7 @@ class CMailFile
|
||||
$matches = array();
|
||||
preg_match_all('/(?:"|\')([^"\']+\.('.implode('|', $extensions).'))(?:"|\')/Ui', $this->html, $matches); // If "xxx.ext" or 'xxx.ext' found
|
||||
|
||||
if (!empty($matches)) {
|
||||
if (!empty($matches) && !empty($matches[1])) {
|
||||
$i = 0;
|
||||
// We are interested in $matches[1] only (the second set of parenthesis into regex)
|
||||
foreach ($matches[1] as $full) {
|
||||
|
||||
@@ -10870,373 +10870,293 @@ function dol_mimetype($file, $default = 'application/octet-stream', $mode = 0)
|
||||
$mime = 'text/plain';
|
||||
$imgmime = 'text.png';
|
||||
$famime = 'file-text-o';
|
||||
}
|
||||
if (preg_match('/\.rtx$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.rtx$/i', $tmpfile)) {
|
||||
$mime = 'text/richtext';
|
||||
$imgmime = 'text.png';
|
||||
$famime = 'file-text-o';
|
||||
}
|
||||
if (preg_match('/\.csv$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.csv$/i', $tmpfile)) {
|
||||
$mime = 'text/csv';
|
||||
$imgmime = 'text.png';
|
||||
$famime = 'file-text-o';
|
||||
}
|
||||
if (preg_match('/\.tsv$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.tsv$/i', $tmpfile)) {
|
||||
$mime = 'text/tab-separated-values';
|
||||
$imgmime = 'text.png';
|
||||
$famime = 'file-text-o';
|
||||
}
|
||||
if (preg_match('/\.(cf|conf|log)$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.(cf|conf|log)$/i', $tmpfile)) {
|
||||
$mime = 'text/plain';
|
||||
$imgmime = 'text.png';
|
||||
$famime = 'file-text-o';
|
||||
}
|
||||
if (preg_match('/\.ini$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.ini$/i', $tmpfile)) {
|
||||
$mime = 'text/plain';
|
||||
$imgmime = 'text.png';
|
||||
$srclang = 'ini';
|
||||
$famime = 'file-text-o';
|
||||
}
|
||||
if (preg_match('/\.md$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.md$/i', $tmpfile)) {
|
||||
$mime = 'text/plain';
|
||||
$imgmime = 'text.png';
|
||||
$srclang = 'md';
|
||||
$famime = 'file-text-o';
|
||||
}
|
||||
if (preg_match('/\.css$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.css$/i', $tmpfile)) {
|
||||
$mime = 'text/css';
|
||||
$imgmime = 'css.png';
|
||||
$srclang = 'css';
|
||||
$famime = 'file-text-o';
|
||||
}
|
||||
if (preg_match('/\.lang$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.lang$/i', $tmpfile)) {
|
||||
$mime = 'text/plain';
|
||||
$imgmime = 'text.png';
|
||||
$srclang = 'lang';
|
||||
$famime = 'file-text-o';
|
||||
}
|
||||
// Certificate files
|
||||
if (preg_match('/\.(crt|cer|key|pub)$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.(crt|cer|key|pub)$/i', $tmpfile)) { // Certificate files
|
||||
$mime = 'text/plain';
|
||||
$imgmime = 'text.png';
|
||||
$famime = 'file-text-o';
|
||||
}
|
||||
// XML based (HTML/XML/XAML)
|
||||
if (preg_match('/\.(html|htm|shtml)$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.(html|htm|shtml)$/i', $tmpfile)) { // XML based (HTML/XML/XAML)
|
||||
$mime = 'text/html';
|
||||
$imgmime = 'html.png';
|
||||
$srclang = 'html';
|
||||
$famime = 'file-text-o';
|
||||
}
|
||||
if (preg_match('/\.(xml|xhtml)$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.(xml|xhtml)$/i', $tmpfile)) {
|
||||
$mime = 'text/xml';
|
||||
$imgmime = 'other.png';
|
||||
$srclang = 'xml';
|
||||
$famime = 'file-text-o';
|
||||
}
|
||||
if (preg_match('/\.xaml$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.xaml$/i', $tmpfile)) {
|
||||
$mime = 'text/xml';
|
||||
$imgmime = 'other.png';
|
||||
$srclang = 'xaml';
|
||||
$famime = 'file-text-o';
|
||||
}
|
||||
// Languages
|
||||
if (preg_match('/\.bas$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.bas$/i', $tmpfile)) { // Languages
|
||||
$mime = 'text/plain';
|
||||
$imgmime = 'text.png';
|
||||
$srclang = 'bas';
|
||||
$famime = 'file-code-o';
|
||||
}
|
||||
if (preg_match('/\.(c)$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.(c)$/i', $tmpfile)) {
|
||||
$mime = 'text/plain';
|
||||
$imgmime = 'text.png';
|
||||
$srclang = 'c';
|
||||
$famime = 'file-code-o';
|
||||
}
|
||||
if (preg_match('/\.(cpp)$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.(cpp)$/i', $tmpfile)) {
|
||||
$mime = 'text/plain';
|
||||
$imgmime = 'text.png';
|
||||
$srclang = 'cpp';
|
||||
$famime = 'file-code-o';
|
||||
}
|
||||
if (preg_match('/\.cs$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.cs$/i', $tmpfile)) {
|
||||
$mime = 'text/plain';
|
||||
$imgmime = 'text.png';
|
||||
$srclang = 'cs';
|
||||
$famime = 'file-code-o';
|
||||
}
|
||||
if (preg_match('/\.(h)$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.(h)$/i', $tmpfile)) {
|
||||
$mime = 'text/plain';
|
||||
$imgmime = 'text.png';
|
||||
$srclang = 'h';
|
||||
$famime = 'file-code-o';
|
||||
}
|
||||
if (preg_match('/\.(java|jsp)$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.(java|jsp)$/i', $tmpfile)) {
|
||||
$mime = 'text/plain';
|
||||
$imgmime = 'text.png';
|
||||
$srclang = 'java';
|
||||
$famime = 'file-code-o';
|
||||
}
|
||||
if (preg_match('/\.php([0-9]{1})?$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.php([0-9]{1})?$/i', $tmpfile)) {
|
||||
$mime = 'text/plain';
|
||||
$imgmime = 'php.png';
|
||||
$srclang = 'php';
|
||||
$famime = 'file-code-o';
|
||||
}
|
||||
if (preg_match('/\.phtml$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.phtml$/i', $tmpfile)) {
|
||||
$mime = 'text/plain';
|
||||
$imgmime = 'php.png';
|
||||
$srclang = 'php';
|
||||
$famime = 'file-code-o';
|
||||
}
|
||||
if (preg_match('/\.(pl|pm)$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.(pl|pm)$/i', $tmpfile)) {
|
||||
$mime = 'text/plain';
|
||||
$imgmime = 'pl.png';
|
||||
$srclang = 'perl';
|
||||
$famime = 'file-code-o';
|
||||
}
|
||||
if (preg_match('/\.sql$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.sql$/i', $tmpfile)) {
|
||||
$mime = 'text/plain';
|
||||
$imgmime = 'text.png';
|
||||
$srclang = 'sql';
|
||||
$famime = 'file-code-o';
|
||||
}
|
||||
if (preg_match('/\.js$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.js$/i', $tmpfile)) {
|
||||
$mime = 'text/x-javascript';
|
||||
$imgmime = 'jscript.png';
|
||||
$srclang = 'js';
|
||||
$famime = 'file-code-o';
|
||||
}
|
||||
// Open office
|
||||
if (preg_match('/\.odp$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.odp$/i', $tmpfile)) { // Open office
|
||||
$mime = 'application/vnd.oasis.opendocument.presentation';
|
||||
$imgmime = 'ooffice.png';
|
||||
$famime = 'file-powerpoint-o';
|
||||
}
|
||||
if (preg_match('/\.ods$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.ods$/i', $tmpfile)) {
|
||||
$mime = 'application/vnd.oasis.opendocument.spreadsheet';
|
||||
$imgmime = 'ooffice.png';
|
||||
$famime = 'file-excel-o';
|
||||
}
|
||||
if (preg_match('/\.odt$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.odt$/i', $tmpfile)) {
|
||||
$mime = 'application/vnd.oasis.opendocument.text';
|
||||
$imgmime = 'ooffice.png';
|
||||
$famime = 'file-word-o';
|
||||
}
|
||||
// MS Office
|
||||
if (preg_match('/\.mdb$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.mdb$/i', $tmpfile)) { // MS Office
|
||||
$mime = 'application/msaccess';
|
||||
$imgmime = 'mdb.png';
|
||||
$famime = 'file-o';
|
||||
}
|
||||
if (preg_match('/\.doc[xm]?$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.doc[xm]?$/i', $tmpfile)) {
|
||||
$mime = 'application/msword';
|
||||
$imgmime = 'doc.png';
|
||||
$famime = 'file-word-o';
|
||||
}
|
||||
if (preg_match('/\.dot[xm]?$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.dot[xm]?$/i', $tmpfile)) {
|
||||
$mime = 'application/msword';
|
||||
$imgmime = 'doc.png';
|
||||
$famime = 'file-word-o';
|
||||
}
|
||||
if (preg_match('/\.xlt(x)?$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.xlt(x)?$/i', $tmpfile)) {
|
||||
$mime = 'application/vnd.ms-excel';
|
||||
$imgmime = 'xls.png';
|
||||
$famime = 'file-excel-o';
|
||||
}
|
||||
if (preg_match('/\.xla(m)?$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.xla(m)?$/i', $tmpfile)) {
|
||||
$mime = 'application/vnd.ms-excel';
|
||||
$imgmime = 'xls.png';
|
||||
$famime = 'file-excel-o';
|
||||
}
|
||||
if (preg_match('/\.xls$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.xls$/i', $tmpfile)) {
|
||||
$mime = 'application/vnd.ms-excel';
|
||||
$imgmime = 'xls.png';
|
||||
$famime = 'file-excel-o';
|
||||
}
|
||||
if (preg_match('/\.xls[bmx]$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.xls[bmx]$/i', $tmpfile)) {
|
||||
$mime = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
|
||||
$imgmime = 'xls.png';
|
||||
$famime = 'file-excel-o';
|
||||
}
|
||||
if (preg_match('/\.pps[mx]?$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.pps[mx]?$/i', $tmpfile)) {
|
||||
$mime = 'application/vnd.ms-powerpoint';
|
||||
$imgmime = 'ppt.png';
|
||||
$famime = 'file-powerpoint-o';
|
||||
}
|
||||
if (preg_match('/\.ppt[mx]?$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.ppt[mx]?$/i', $tmpfile)) {
|
||||
$mime = 'application/x-mspowerpoint';
|
||||
$imgmime = 'ppt.png';
|
||||
$famime = 'file-powerpoint-o';
|
||||
}
|
||||
// Other
|
||||
if (preg_match('/\.pdf$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.pdf$/i', $tmpfile)) { // Other
|
||||
$mime = 'application/pdf';
|
||||
$imgmime = 'pdf.png';
|
||||
$famime = 'file-pdf-o';
|
||||
}
|
||||
// Scripts
|
||||
if (preg_match('/\.bat$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.bat$/i', $tmpfile)) { // Scripts
|
||||
$mime = 'text/x-bat';
|
||||
$imgmime = 'script.png';
|
||||
$srclang = 'dos';
|
||||
$famime = 'file-code-o';
|
||||
}
|
||||
if (preg_match('/\.sh$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.sh$/i', $tmpfile)) {
|
||||
$mime = 'text/x-sh';
|
||||
$imgmime = 'script.png';
|
||||
$srclang = 'bash';
|
||||
$famime = 'file-code-o';
|
||||
}
|
||||
if (preg_match('/\.ksh$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.ksh$/i', $tmpfile)) {
|
||||
$mime = 'text/x-ksh';
|
||||
$imgmime = 'script.png';
|
||||
$srclang = 'bash';
|
||||
$famime = 'file-code-o';
|
||||
}
|
||||
if (preg_match('/\.bash$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.bash$/i', $tmpfile)) {
|
||||
$mime = 'text/x-bash';
|
||||
$imgmime = 'script.png';
|
||||
$srclang = 'bash';
|
||||
$famime = 'file-code-o';
|
||||
}
|
||||
// Images
|
||||
if (preg_match('/\.ico$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.ico$/i', $tmpfile)) { // Images
|
||||
$mime = 'image/x-icon';
|
||||
$imgmime = 'image.png';
|
||||
$famime = 'file-image-o';
|
||||
}
|
||||
if (preg_match('/\.(jpg|jpeg)$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.(jpg|jpeg)$/i', $tmpfile)) {
|
||||
$mime = 'image/jpeg';
|
||||
$imgmime = 'image.png';
|
||||
$famime = 'file-image-o';
|
||||
}
|
||||
if (preg_match('/\.png$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.png$/i', $tmpfile)) {
|
||||
$mime = 'image/png';
|
||||
$imgmime = 'image.png';
|
||||
$famime = 'file-image-o';
|
||||
}
|
||||
if (preg_match('/\.gif$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.gif$/i', $tmpfile)) {
|
||||
$mime = 'image/gif';
|
||||
$imgmime = 'image.png';
|
||||
$famime = 'file-image-o';
|
||||
}
|
||||
if (preg_match('/\.bmp$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.bmp$/i', $tmpfile)) {
|
||||
$mime = 'image/bmp';
|
||||
$imgmime = 'image.png';
|
||||
$famime = 'file-image-o';
|
||||
}
|
||||
if (preg_match('/\.(tif|tiff)$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.(tif|tiff)$/i', $tmpfile)) {
|
||||
$mime = 'image/tiff';
|
||||
$imgmime = 'image.png';
|
||||
$famime = 'file-image-o';
|
||||
}
|
||||
if (preg_match('/\.svg$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.svg$/i', $tmpfile)) {
|
||||
$mime = 'image/svg+xml';
|
||||
$imgmime = 'image.png';
|
||||
$famime = 'file-image-o';
|
||||
}
|
||||
if (preg_match('/\.webp$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.webp$/i', $tmpfile)) {
|
||||
$mime = 'image/webp';
|
||||
$imgmime = 'image.png';
|
||||
$famime = 'file-image-o';
|
||||
}
|
||||
// Calendar
|
||||
if (preg_match('/\.vcs$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.vcs$/i', $tmpfile)) { // Calendar
|
||||
$mime = 'text/calendar';
|
||||
$imgmime = 'other.png';
|
||||
$famime = 'file-text-o';
|
||||
}
|
||||
if (preg_match('/\.ics$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.ics$/i', $tmpfile)) {
|
||||
$mime = 'text/calendar';
|
||||
$imgmime = 'other.png';
|
||||
$famime = 'file-text-o';
|
||||
}
|
||||
// Other
|
||||
if (preg_match('/\.torrent$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.torrent$/i', $tmpfile)) { // Other
|
||||
$mime = 'application/x-bittorrent';
|
||||
$imgmime = 'other.png';
|
||||
$famime = 'file-o';
|
||||
}
|
||||
// Audio
|
||||
if (preg_match('/\.(mp3|ogg|au|wav|wma|mid)$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.(mp3|ogg|au|wav|wma|mid)$/i', $tmpfile)) { // Audio
|
||||
$mime = 'audio';
|
||||
$imgmime = 'audio.png';
|
||||
$famime = 'file-audio-o';
|
||||
}
|
||||
// Video
|
||||
if (preg_match('/\.mp4$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.mp4$/i', $tmpfile)) { // Video
|
||||
$mime = 'video/mp4';
|
||||
$imgmime = 'video.png';
|
||||
$famime = 'file-video-o';
|
||||
}
|
||||
if (preg_match('/\.ogv$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.ogv$/i', $tmpfile)) {
|
||||
$mime = 'video/ogg';
|
||||
$imgmime = 'video.png';
|
||||
$famime = 'file-video-o';
|
||||
}
|
||||
if (preg_match('/\.webm$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.webm$/i', $tmpfile)) {
|
||||
$mime = 'video/webm';
|
||||
$imgmime = 'video.png';
|
||||
$famime = 'file-video-o';
|
||||
}
|
||||
if (preg_match('/\.avi$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.avi$/i', $tmpfile)) {
|
||||
$mime = 'video/x-msvideo';
|
||||
$imgmime = 'video.png';
|
||||
$famime = 'file-video-o';
|
||||
}
|
||||
if (preg_match('/\.divx$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.divx$/i', $tmpfile)) {
|
||||
$mime = 'video/divx';
|
||||
$imgmime = 'video.png';
|
||||
$famime = 'file-video-o';
|
||||
}
|
||||
if (preg_match('/\.xvid$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.xvid$/i', $tmpfile)) {
|
||||
$mime = 'video/xvid';
|
||||
$imgmime = 'video.png';
|
||||
$famime = 'file-video-o';
|
||||
}
|
||||
if (preg_match('/\.(wmv|mpg|mpeg)$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.(wmv|mpg|mpeg)$/i', $tmpfile)) {
|
||||
$mime = 'video';
|
||||
$imgmime = 'video.png';
|
||||
$famime = 'file-video-o';
|
||||
}
|
||||
// Archive
|
||||
if (preg_match('/\.(zip|rar|gz|tgz|z|cab|bz2|7z|tar|lzh|zst)$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.(zip|rar|gz|tgz|z|cab|bz2|7z|tar|lzh|zst)$/i', $tmpfile)) { // Archive
|
||||
// application/xxx where zzz is zip, ...
|
||||
$mime = 'archive';
|
||||
$imgmime = 'archive.png';
|
||||
$famime = 'file-archive-o';
|
||||
} // application/xxx where zzz is zip, ...
|
||||
// Exe
|
||||
if (preg_match('/\.(exe|com)$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.(exe|com)$/i', $tmpfile)) { // Exe
|
||||
$mime = 'application/octet-stream';
|
||||
$imgmime = 'other.png';
|
||||
$famime = 'file-o';
|
||||
}
|
||||
// Lib
|
||||
if (preg_match('/\.(dll|lib|o|so|a)$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.(dll|lib|o|so|a)$/i', $tmpfile)) { // Lib
|
||||
$mime = 'library';
|
||||
$imgmime = 'library.png';
|
||||
$famime = 'file-o';
|
||||
}
|
||||
// Err
|
||||
if (preg_match('/\.err$/i', $tmpfile)) {
|
||||
} elseif (preg_match('/\.err$/i', $tmpfile)) { // phpcs:ignore
|
||||
$mime = 'error';
|
||||
$imgmime = 'error.png';
|
||||
$famime = 'file-text-o';
|
||||
}
|
||||
|
||||
// Return string
|
||||
if ($mode == 1) {
|
||||
// Return mimetype string
|
||||
switch ((int) $mode) {
|
||||
case 1:
|
||||
$tmp = explode('/', $mime);
|
||||
return (!empty($tmp[1]) ? $tmp[1] : $tmp[0]);
|
||||
}
|
||||
if ($mode == 2) {
|
||||
case 2:
|
||||
return $imgmime;
|
||||
}
|
||||
if ($mode == 3) {
|
||||
case 3:
|
||||
return $srclang;
|
||||
}
|
||||
if ($mode == 4) {
|
||||
case 4:
|
||||
return $famime;
|
||||
}
|
||||
return $mime;
|
||||
|
||||
@@ -1167,7 +1167,7 @@ function updateDictionaryInFile($module, $file, $dicts)
|
||||
$dicData .= "array(" . implode(",", $conditions) . ")";
|
||||
} elseif ($key === 'tabhelp') {
|
||||
$helpItems = array();
|
||||
foreach ($value as $key => $helpValue) {
|
||||
foreach ($value as $helpValue) {
|
||||
$helpItems[] = "array('code'=>\$langs->trans('".$helpValue['code']."'), 'field2' => 'field2tooltip')";
|
||||
}
|
||||
$dicData .= "array(" . implode(",", $helpItems) . ")";
|
||||
|
||||
@@ -165,7 +165,7 @@ class modCategorie extends DolibarrModules
|
||||
}
|
||||
|
||||
// Definition of vars
|
||||
$this->export_fields_array[$r] = array('cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.type'=>"Type", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategoryID", 'pcat.label'=>"ParentCategoryLabel");
|
||||
$this->export_fields_array[$r] = array('cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.type'=>"Type", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategoryID", 'pcat.label'=>"ParentCategoryLabel", 'cat.color'=>"Color", 'cat.date_creation'=>"DateCreation", 'cat.tms'=>"DateLastModification");
|
||||
$this->export_TypeFields_array[$r] = array('cat.rowid'=>'Numeric', 'cat.label'=>"Text", 'cat.type'=>"Numeric", 'cat.description'=>"Text", 'cat.fk_parent'=>'Numeric', 'pcat.label'=>'Text');
|
||||
$this->export_entities_array[$r] = array(); // We define here only fields that use another picto
|
||||
$this->export_help_array[$r] = array('cat.type'=>$typeexample);
|
||||
@@ -182,7 +182,7 @@ class modCategorie extends DolibarrModules
|
||||
$this->export_icon[$r] = $this->picto;
|
||||
$this->export_enabled[$r] = 'isModEnabled("product") || isModEnabled("service")';
|
||||
$this->export_permission[$r] = array(array("categorie", "lire"), array("produit", "export"));
|
||||
$this->export_fields_array[$r] = array('cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategoryID", 'pcat.label'=>"ParentCategoryLabel", 'p.rowid'=>'ProductId', 'p.ref'=>'Ref', 'p.label'=>'Label');
|
||||
$this->export_fields_array[$r] = array('cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategoryID", 'pcat.label'=>"ParentCategoryLabel", 'cat.color'=>"Color", 'cat.date_creation'=>"DateCreation", 'cat.tms'=>"DateLastModification", 'p.rowid'=>'ProductId', 'p.ref'=>'Ref', 'p.label'=>'Label');
|
||||
$this->export_TypeFields_array[$r] = array('cat.rowid'=>'Numeric', 'cat.label'=>"Text", 'cat.description'=>"Text", 'cat.fk_parent'=>'Numeric', 'pcat.label'=>'Text', 'p.rowid'=>'Numeric', 'p.ref'=>'Text', 'p.label'=>'Text');
|
||||
$this->export_entities_array[$r] = array('p.rowid'=>'product', 'p.ref'=>'product', 'p.label'=>'product'); // We define here only fields that use another picto
|
||||
|
||||
@@ -209,6 +209,7 @@ class modCategorie extends DolibarrModules
|
||||
$this->export_permission[$r] = array(array("categorie", "lire"), array("fournisseur", "lire"));
|
||||
$this->export_fields_array[$r] = array(
|
||||
'cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategoryID", 'pcat.label'=>"ParentCategoryLabel",
|
||||
'cat.color'=>"Color", 'cat.date_creation'=>"DateCreation", 'cat.tms'=>"DateLastModification",
|
||||
's.rowid'=>'IdThirdParty', 's.nom'=>'Name', 's.prefix_comm'=>"Prefix", 's.fournisseur'=>"Supplier", 's.datec'=>"DateCreation", 's.tms'=>"DateLastModification", 's.code_fournisseur'=>"SupplierCode",
|
||||
's.address'=>"Address", 's.zip'=>"Zip", 's.town'=>"Town", 'c.label'=>"Country", 'c.code'=>"CountryCode",
|
||||
's.phone'=>"Phone", 's.fax'=>"Fax", 's.url'=>"Url", 's.email'=>"Email",
|
||||
@@ -256,6 +257,7 @@ class modCategorie extends DolibarrModules
|
||||
$this->export_permission[$r] = array(array("categorie", "lire"), array("societe", "export"));
|
||||
$this->export_fields_array[$r] = array(
|
||||
'cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategoryID", 'pcat.label'=>"ParentCategoryLabel",
|
||||
'cat.color'=>"Color", 'cat.date_creation'=>"DateCreation", 'cat.tms'=>"DateLastModification",
|
||||
's.rowid'=>'IdThirdParty', 's.nom'=>'Name', 's.prefix_comm'=>"Prefix", 's.client'=>"Customer", 's.datec'=>"DateCreation", 's.tms'=>"DateLastModification", 's.code_client'=>"CustomerCode",
|
||||
's.address'=>"Address", 's.zip'=>"Zip", 's.town'=>"Town", 'c.label'=>"Country", 'c.code'=>"CountryCode",
|
||||
's.phone'=>"Phone", 's.fax'=>"Fax", 's.url'=>"Url", 's.email'=>"Email",
|
||||
@@ -330,6 +332,7 @@ class modCategorie extends DolibarrModules
|
||||
$this->export_permission[$r] = array(array("categorie", "lire"), array("societe", "contact", "export"));
|
||||
$this->export_fields_array[$r] = array(
|
||||
'cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategoryID", 'pcat.label'=>"ParentCategoryLabel",
|
||||
'cat.color'=>"Color", 'cat.date_creation'=>"DateCreation", 'cat.tms'=>"DateLastModification",
|
||||
'p.rowid' => 'ContactId', 'civ.label' => 'UserTitle', 'p.lastname' => 'LastName', 'p.firstname' => 'Firstname',
|
||||
'p.address' => 'Address', 'p.zip' => 'Zip', 'p.town' => 'Town', 'c.code' => 'CountryCode', 'c.label' => 'Country',
|
||||
'p.birthday' => 'DateOfBirth', 'p.poste' => 'PostOrFunction',
|
||||
@@ -387,7 +390,7 @@ class modCategorie extends DolibarrModules
|
||||
$this->export_icon[$r] = $this->picto;
|
||||
$this->export_enabled[$r] = "isModEnabled('project')";
|
||||
$this->export_permission[$r] = array(array("categorie", "lire"), array("projet", "export"));
|
||||
$this->export_fields_array[$r] = array('cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategory", 'pcat.label'=>"ParentCategoryLabel", 'p.rowid'=>'ProjectId', 'p.ref'=>'Ref', 's.rowid'=>"IdThirdParty", 's.nom'=>"Name");
|
||||
$this->export_fields_array[$r] = array('cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategory", 'pcat.label'=>"ParentCategoryLabel", 'cat.color'=>"Color", 'cat.date_creation'=>"DateCreation", 'cat.tms'=>"DateLastModification", 'p.rowid'=>'ProjectId', 'p.ref'=>'Ref', 's.rowid'=>"IdThirdParty", 's.nom'=>"Name");
|
||||
$this->export_TypeFields_array[$r] = array('cat.rowid'=>'Numeric', 'cat.label'=>"Text", 'cat.description'=>"Text", 'cat.fk_parent'=>'Numeric', 'pcat.label'=>'Text', 'p.rowid'=>'Numeric', 'p.ref'=>'Text', 's.rowid'=>"Numeric", 's.nom'=>"Text");
|
||||
$this->export_entities_array[$r] = array('p.rowid'=>'project', 'p.ref'=>'project', 's.rowid'=>"company", 's.nom'=>"company"); // We define here only fields that use another picto
|
||||
|
||||
@@ -413,7 +416,7 @@ class modCategorie extends DolibarrModules
|
||||
$this->export_icon[$r] = $this->picto;
|
||||
$this->export_enabled[$r] = 'isModEnabled("user")';
|
||||
$this->export_permission[$r] = array(array("categorie", "lire"), array("user", "export"));
|
||||
$this->export_fields_array[$r] = array('cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategory", 'pcat.label'=>"ParentCategoryLabel", 'p.rowid'=>'UserID', 'p.login'=>'Login', 'p.lastname'=>'Lastname', 'p.firstname'=>'Firstname');
|
||||
$this->export_fields_array[$r] = array('cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategory", 'pcat.label'=>"ParentCategoryLabel", 'cat.color'=>"Color", 'cat.date_creation'=>"DateCreation", 'cat.tms'=>"DateLastModification", 'p.rowid'=>'UserID', 'p.login'=>'Login', 'p.lastname'=>'Lastname', 'p.firstname'=>'Firstname');
|
||||
$this->export_TypeFields_array[$r] = array('cat.rowid'=>"Numeric", 'cat.label'=>"Text", 'cat.description'=>"Text", 'cat.fk_parent'=>'Numeric', 'pcat.label'=>'Text', 'p.rowid'=>'Numeric', 'p.login'=>'Text', 'p.lastname'=>'Text', 'p.firstname'=>'Text');
|
||||
$this->export_entities_array[$r] = array('p.rowid'=>'user', 'p.login'=>'user', 'p.lastname'=>'user', 'p.firstname'=>'user'); // We define here only fields that use another picto
|
||||
|
||||
|
||||
@@ -313,7 +313,8 @@ class modSociete extends DolibarrModules
|
||||
's.phone'=>"Text", 's.fax'=>"Text",
|
||||
's.url'=>"Text", 's.email'=>"Text", 's.default_lang'=>"Text", 's.canvas' => "Text",
|
||||
's.siret'=>"Text", 's.siren'=>"Text", 's.ape'=>"Text", 's.idprof4'=>"Text", 's.idprof5'=>"Text", 's.idprof6'=>"Text",
|
||||
's.tva_intra'=>"Text", 's.capital'=>"Numeric", 's.note_private'=>"Text", 's.note_public'=>"Text",
|
||||
's.tva_intra'=>"Text", 's.capital'=>"Numeric",
|
||||
's.note_private'=>"Text", 's.note_public'=>"Text",
|
||||
't.code'=>"List:c_typent:libelle:code",
|
||||
'ce.code'=>"List:c_effectif:libelle:code",
|
||||
"cfj.libelle"=>"Text",
|
||||
@@ -367,11 +368,13 @@ class modSociete extends DolibarrModules
|
||||
'c.rowid'=>"IdContact", 'c.civility'=>"CivilityCode", 'c.lastname'=>'Lastname', 'c.firstname'=>'Firstname', 'c.poste'=>'PostOrFunction',
|
||||
'c.datec'=>"DateCreation", 'c.tms'=>"DateLastModification", 'c.priv'=>"ContactPrivate", 'c.address'=>"Address", 'c.zip'=>"Zip", 'c.town'=>"Town",
|
||||
'd.nom'=>'State', 'r.nom'=>'Region', 'co.label'=>"Country", 'co.code'=>"CountryCode", 'c.phone'=>"Phone", 'c.fax'=>"Fax", 'c.phone_mobile'=>"Mobile", 'c.email'=>"EMail",
|
||||
'c.note_private'=>'NotePrivate', 'c.note_public'=>"NotePublic",
|
||||
'c.statut'=>"Status",
|
||||
's.rowid'=>"IdCompany", 's.nom'=>"CompanyName", 's.status'=>"Status", 's.code_client'=>"CustomerCode", 's.code_fournisseur'=>"SupplierCode",
|
||||
's.code_compta'=>"AccountancyCode", 's.code_compta_fournisseur'=>"SupplierAccountancyCode",
|
||||
's.client'=>'Customer', 's.fournisseur'=>'Supplier',
|
||||
's.address'=>'Address', 's.zip'=>"Zip", 's.town'=>"Town", 's.phone'=>'Phone', 's.email'=>"Email",
|
||||
'c.note_private'=>'NotePrivate', 'c.note_public'=>"NotePublic",
|
||||
't.code'=>"ThirdPartyType"
|
||||
);
|
||||
// Add multicompany field
|
||||
|
||||
@@ -135,7 +135,7 @@ class pdf_tcpdflabel extends CommonStickerGenerator
|
||||
// Top
|
||||
if ($header != '') {
|
||||
$pdf->SetXY($_PosX + $xleft, $_PosY + 1); // Only 1 mm and not ytop for top text
|
||||
$pdf->Cell($this->_Width - 2 * $xleft, $this->_Line_Height, $outputlangs->convToOutputCharset($header), 0, 1, 'C');
|
||||
$pdf->Cell(2 * strlen($header), $this->_Line_Height, $outputlangs->convToOutputCharset($header), 0, 1, 'C');
|
||||
}
|
||||
|
||||
$ytop += (empty($header) ? 0 : (1 + $this->_Line_Height));
|
||||
|
||||
@@ -1139,7 +1139,14 @@ if ($action == 'create') {
|
||||
|
||||
// Confirm done
|
||||
if ($action == 'classifydone') {
|
||||
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('CloseIntervention'), $langs->trans('ConfirmCloseIntervention'), 'confirm_done', '', 0, 1);
|
||||
$text = $langs->trans('ConfirmCloseIntervention');
|
||||
if (isModEnabled('notification')) {
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/notify.class.php';
|
||||
$notify = new Notify($db);
|
||||
$text .= '<br>';
|
||||
$text .= $notify->confirmMessage('FICHINTER_CLOSE', $object->socid, $object);
|
||||
}
|
||||
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('CloseIntervention'), $text, 'confirm_done', '', 0, 1);
|
||||
}
|
||||
|
||||
// Confirm back to draft
|
||||
|
||||
@@ -534,7 +534,7 @@ if (count($typeleaves) == 0) {
|
||||
foreach ($arrayfields as $key => $val) {
|
||||
if (!empty($val['checked'])) {
|
||||
if ($key == 'cp.nbHoliday') {
|
||||
foreach ($typeleaves as $key => $val) {
|
||||
foreach ($typeleaves as $leave_key => $leave_val) {
|
||||
$colspan++;
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -282,7 +282,7 @@ if (count($tasksarray) > 0) {
|
||||
foreach ($tasksarray as $key => $val) { // Task array are sorted by "project, position, date"
|
||||
$task->fetch($val->id, '');
|
||||
|
||||
$idparent = ($val->fk_parent ? $val->fk_parent : '-'.$val->fk_project); // If start with -, id is a project id
|
||||
$idparent = ($val->fk_task_parent ? $val->fk_task_parent : '-'.$val->fk_project); // If start with -, id is a project id
|
||||
|
||||
$tasks[$taskcursor]['task_id'] = $val->id;
|
||||
$tasks[$taskcursor]['task_alternate_id'] = ($taskcursor + 1); // An id that has same order than position (required by ganttchart)
|
||||
@@ -294,7 +294,7 @@ if (count($tasksarray) > 0) {
|
||||
$tasks[$taskcursor]['task_position'] = $val->rang;
|
||||
$tasks[$taskcursor]['task_planned_workload'] = $val->planned_workload;
|
||||
|
||||
if ($val->fk_parent != 0 && $task->hasChildren() > 0) {
|
||||
if ($val->fk_task_parent != 0 && $task->hasChildren() > 0) {
|
||||
$tasks[$taskcursor]['task_is_group'] = 1;
|
||||
$tasks[$taskcursor]['task_css'] = 'ggroupblack';
|
||||
//$tasks[$taskcursor]['task_css'] = 'gtaskblue';
|
||||
|
||||
Reference in New Issue
Block a user