Merge branch 'develop' of https://github.com/Dolibarr/dolibarr into pr/bb2a/21596
This commit is contained in:
commit
16c2e8cbc9
@ -4200,6 +4200,12 @@ class OrderLine extends CommonOrderLine
|
||||
$result = $this->db->query($sql);
|
||||
if ($result) {
|
||||
$objp = $this->db->fetch_object($result);
|
||||
|
||||
if (!$objp) {
|
||||
$this->error = 'OrderLine with id '. $rowid .' not found sql='.$sql;
|
||||
return 0;
|
||||
}
|
||||
|
||||
$this->rowid = $objp->rowid;
|
||||
$this->id = $objp->rowid;
|
||||
$this->fk_commande = $objp->fk_commande;
|
||||
|
||||
@ -5812,6 +5812,11 @@ class FactureLigne extends CommonInvoiceLine
|
||||
if ($result) {
|
||||
$objp = $this->db->fetch_object($result);
|
||||
|
||||
if (!$objp) {
|
||||
$this->error = 'InvoiceLine with id '. $rowid .' not found sql='.$sql;
|
||||
return 0;
|
||||
}
|
||||
|
||||
$this->rowid = $objp->rowid;
|
||||
$this->id = $objp->rowid;
|
||||
$this->fk_facture = $objp->fk_facture;
|
||||
|
||||
@ -50,7 +50,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
||||
$action = GETPOST('action', 'aZ09'); // set or del
|
||||
$name = GETPOST('name', 'alpha');
|
||||
$entity = GETPOST('entity', 'int');
|
||||
$value = ((GETPOST('value', 'int') || GETPOST('value', 'int') == '0') ? GETPOST('value', 'int') : 1);
|
||||
$value = (GETPOST('value', 'aZ09') != '' ? GETPOST('value', 'aZ09') : 1);
|
||||
|
||||
|
||||
/*
|
||||
|
||||
@ -5612,6 +5612,9 @@ abstract class CommonObject
|
||||
if ($this->element == 'contrat' && !empty($conf->global->CONTRACT_ALLOW_EXTERNAL_DOWNLOAD)) {
|
||||
$setsharekey = true;
|
||||
}
|
||||
if ($this->element == 'fichinter' && !empty($conf->global->FICHINTER_ALLOW_EXTERNAL_DOWNLOAD)) {
|
||||
$setsharekey = true;
|
||||
}
|
||||
if ($this->element == 'supplier_proposal' && !empty($conf->global->SUPPLIER_PROPOSAL_ALLOW_EXTERNAL_DOWNLOAD)) {
|
||||
$setsharekey = true;
|
||||
}
|
||||
|
||||
@ -725,9 +725,9 @@ class Translate
|
||||
|
||||
return $str;
|
||||
} else {
|
||||
if ($key[0] == '$') {
|
||||
/*if ($key[0] == '$') {
|
||||
return dol_eval($key, 1, 1, '1');
|
||||
}
|
||||
}*/
|
||||
return $this->getTradFromKey($key);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1255,9 +1255,10 @@ class Utils
|
||||
* @param string $message Message
|
||||
* @param string $filename List of files to attach (full path of filename on file system)
|
||||
* @param string $filter Filter file send
|
||||
* @param string $sizelimit Limit size to send file
|
||||
* @return int 0 if OK, < 0 if KO (this function is used also by cron so only 0 is OK)
|
||||
*/
|
||||
public function sendBackup($sendto = '', $from = '', $subject = '', $message = '', $filename = '', $filter = '')
|
||||
public function sendBackup($sendto = '', $from = '', $subject = '', $message = '', $filename = '', $filter = '', $sizelimit = 100000000)
|
||||
{
|
||||
global $conf, $langs;
|
||||
|
||||
@ -1315,9 +1316,13 @@ class Utils
|
||||
}
|
||||
|
||||
if ($filepath) {
|
||||
if ($filesize > 100000000) {
|
||||
$output = 'Sorry, last backup file is too large to be send by email';
|
||||
$error++;
|
||||
if ($filesize > $sizelimit) {
|
||||
$message .= '<br>'.$langs->trans("BackupIsTooLargeSend");
|
||||
$documenturl = $dolibarr_main_url_root.'/document.php?modulepart=systemtools&atachement=1&file=backup/'.urlencode($filename[0]);
|
||||
$message .= '<br><a href='.$documenturl.'>Lien de téléchargement</a>';
|
||||
$filepath = '';
|
||||
$mimetype = '';
|
||||
$filename = '';
|
||||
}
|
||||
} else {
|
||||
$output = 'No backup file found';
|
||||
|
||||
@ -131,7 +131,12 @@ function bank_prepare_head(Account $object)
|
||||
*/
|
||||
function bank_admin_prepare_head($object)
|
||||
{
|
||||
global $langs, $conf, $user;
|
||||
global $langs, $conf, $user, $db;
|
||||
|
||||
$extrafields = new ExtraFields($db);
|
||||
$extrafields->fetch_name_optionals_label('bank_account');
|
||||
$extrafields->fetch_name_optionals_label('bank');
|
||||
|
||||
$h = 0;
|
||||
$head = array();
|
||||
|
||||
@ -154,11 +159,19 @@ function bank_admin_prepare_head($object)
|
||||
|
||||
$head[$h][0] = DOL_URL_ROOT.'/admin/bank_extrafields.php';
|
||||
$head[$h][1] = $langs->trans("ExtraFields").' ('.$langs->trans("BankAccounts").')';
|
||||
$nbExtrafields = $extrafields->attributes['bank_account']['count'];
|
||||
if ($nbExtrafields > 0) {
|
||||
$head[$h][1] .= '<span class="badge marginleftonlyshort">'.$nbExtrafields.'</span>';
|
||||
}
|
||||
$head[$h][2] = 'attributes';
|
||||
$h++;
|
||||
|
||||
$head[$h][0] = DOL_URL_ROOT.'/admin/bankline_extrafields.php';
|
||||
$head[$h][1] = $langs->trans("ExtraFields").' ('.$langs->trans("BankTransactions").')';
|
||||
$nbExtrafields = $extrafields->attributes['bank']['count'];
|
||||
if ($nbExtrafields > 0) {
|
||||
$head[$h][1] .= '<span class="badge marginleftonlyshort">'.$nbExtrafields.'</span>';
|
||||
}
|
||||
$head[$h][2] = 'bankline_extrafields';
|
||||
$h++;
|
||||
|
||||
|
||||
@ -139,7 +139,11 @@ function fichinter_prepare_head($object)
|
||||
*/
|
||||
function fichinter_admin_prepare_head()
|
||||
{
|
||||
global $langs, $conf, $user;
|
||||
global $langs, $conf, $user, $db;
|
||||
|
||||
$extrafields = new ExtraFields($db);
|
||||
$extrafields->fetch_name_optionals_label('fichinter');
|
||||
$extrafields->fetch_name_optionals_label('fichinterdet');
|
||||
|
||||
$h = 0;
|
||||
$head = array();
|
||||
@ -159,19 +163,25 @@ function fichinter_admin_prepare_head()
|
||||
|
||||
$head[$h][0] = DOL_URL_ROOT.'/fichinter/admin/fichinter_extrafields.php';
|
||||
$head[$h][1] = $langs->trans("ExtraFields");
|
||||
$nbExtrafields = $extrafields->attributes['fichinter']['count'];
|
||||
if ($nbExtrafields > 0) {
|
||||
$head[$h][1] .= '<span class="badge marginleftonlyshort">'.$nbExtrafields.'</span>';
|
||||
}
|
||||
$head[$h][2] = 'attributes';
|
||||
$h++;
|
||||
|
||||
$head[$h][0] = DOL_URL_ROOT.'/fichinter/admin/fichinterdet_extrafields.php';
|
||||
$head[$h][1] = $langs->trans("ExtraFieldsLines");
|
||||
$nbExtrafields = $extrafields->attributes['fichinterdet']['count'];
|
||||
if ($nbExtrafields > 0) {
|
||||
$head[$h][1] .= '<span class="badge marginleftonlyshort">'.$nbExtrafields.'</span>';
|
||||
}
|
||||
$head[$h][2] = 'attributesdet';
|
||||
$h++;
|
||||
|
||||
|
||||
|
||||
complete_head_from_modules($conf, $langs, null, $head, $h, 'fichinter_admin', 'remove');
|
||||
|
||||
return $head;
|
||||
return $head;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -7787,6 +7787,9 @@ function getCommonSubstitutionArray($outputlangs, $onlykey = 0, $exclude = null,
|
||||
if (is_object($object) && $object->element == 'contrat') {
|
||||
$typeforonlinepayment = 'contract';
|
||||
}
|
||||
if (is_object($object) && $object->element == 'fichinter') {
|
||||
$typeforonlinepayment = 'ficheinter';
|
||||
}
|
||||
$url = getOnlinePaymentUrl(0, $typeforonlinepayment, $substitutionarray['__REF__']);
|
||||
$paymenturl = $url;
|
||||
}
|
||||
@ -7819,6 +7822,11 @@ function getCommonSubstitutionArray($outputlangs, $onlykey = 0, $exclude = null,
|
||||
} else {
|
||||
$substitutionarray['__DIRECTDOWNLOAD_URL_CONTRACT__'] = '';
|
||||
}
|
||||
if (!empty($conf->global->FICHINTER_ALLOW_EXTERNAL_DOWNLOAD) && is_object($object) && $object->element == 'fichinter') {
|
||||
$substitutionarray['__DIRECTDOWNLOAD_URL_FICHINTER__'] = $object->getLastMainDocLink($object->element);
|
||||
} else {
|
||||
$substitutionarray['__DIRECTDOWNLOAD_URL_FICHINTER__'] = '';
|
||||
}
|
||||
if (!empty($conf->global->SUPPLIER_PROPOSAL_ALLOW_EXTERNAL_DOWNLOAD) && is_object($object) && $object->element == 'supplier_proposal') {
|
||||
$substitutionarray['__DIRECTDOWNLOAD_URL_SUPPLIER_PROPOSAL__'] = $object->getLastMainDocLink($object->element);
|
||||
} else {
|
||||
@ -7837,6 +7845,9 @@ function getCommonSubstitutionArray($outputlangs, $onlykey = 0, $exclude = null,
|
||||
if (is_object($object) && $object->element == 'contrat') {
|
||||
$substitutionarray['__URL_CONTRACT__'] = DOL_MAIN_URL_ROOT."/contrat/card.php?id=".$object->id;
|
||||
}
|
||||
if (is_object($object) && $object->element == 'fichinter') {
|
||||
$substitutionarray['__URL_FICHINTER__'] = DOL_MAIN_URL_ROOT."/fichinter/card.php?id=".$object->id;
|
||||
}
|
||||
if (is_object($object) && $object->element == 'supplier_proposal') {
|
||||
$substitutionarray['__URL_SUPPLIER_PROPOSAL__'] = DOL_MAIN_URL_ROOT."/supplier_proposal/card.php?id=".$object->id;
|
||||
}
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
/* Copyright (C) 2005-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
|
||||
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
|
||||
* Copyright (C) 2015 Juanjo Menent <jmenent@2byte.es>
|
||||
* Copyright (C) 2015 Juanjo Menent <jmenent@2byte.es>
|
||||
* Copyright (C) 2017 Charlie Benke <charlie@patas-monkey.com>
|
||||
* Copyright (C) 2017 ATM-CONSULTING <contact@atm-consulting.fr>
|
||||
*
|
||||
@ -137,7 +137,13 @@ function facture_prepare_head($object)
|
||||
*/
|
||||
function invoice_admin_prepare_head()
|
||||
{
|
||||
global $langs, $conf, $user;
|
||||
global $langs, $conf, $user, $db;
|
||||
|
||||
$extrafields = new ExtraFields($db);
|
||||
$extrafields->fetch_name_optionals_label('facture');
|
||||
$extrafields->fetch_name_optionals_label('facturedet');
|
||||
$extrafields->fetch_name_optionals_label('facture_rec');
|
||||
$extrafields->fetch_name_optionals_label('facturedet_rec');
|
||||
|
||||
$h = 0;
|
||||
$head = array();
|
||||
@ -160,25 +166,41 @@ function invoice_admin_prepare_head()
|
||||
|
||||
$head[$h][0] = DOL_URL_ROOT.'/compta/facture/admin/facture_cust_extrafields.php';
|
||||
$head[$h][1] = $langs->trans("ExtraFieldsCustomerInvoices");
|
||||
$nbExtrafields = $extrafields->attributes['facture']['count'];
|
||||
if ($nbExtrafields > 0) {
|
||||
$head[$h][1] .= '<span class="badge marginleftonlyshort">'.$nbExtrafields.'</span>';
|
||||
}
|
||||
$head[$h][2] = 'attributes';
|
||||
$h++;
|
||||
|
||||
$head[$h][0] = DOL_URL_ROOT.'/compta/facture/admin/facturedet_cust_extrafields.php';
|
||||
$head[$h][1] = $langs->trans("ExtraFieldsLines");
|
||||
$nbExtrafields = $extrafields->attributes['facturedet']['count'];
|
||||
if ($nbExtrafields > 0) {
|
||||
$head[$h][1] .= '<span class="badge marginleftonlyshort">'.$nbExtrafields.'</span>';
|
||||
}
|
||||
$head[$h][2] = 'attributeslines';
|
||||
$h++;
|
||||
|
||||
$head[$h][0] = DOL_URL_ROOT.'/compta/facture/admin/facture_rec_cust_extrafields.php';
|
||||
$head[$h][1] = $langs->trans("ExtraFieldsCustomerInvoicesRec");
|
||||
$nbExtrafields = $extrafields->attributes['facture_rec']['count'];
|
||||
if ($nbExtrafields > 0) {
|
||||
$head[$h][1] .= '<span class="badge marginleftonlyshort">'.$nbExtrafields.'</span>';
|
||||
}
|
||||
$head[$h][2] = 'attributesrec';
|
||||
$h++;
|
||||
|
||||
$head[$h][0] = DOL_URL_ROOT.'/compta/facture/admin/facturedet_rec_cust_extrafields.php';
|
||||
$head[$h][1] = $langs->trans("ExtraFieldsLinesRec");
|
||||
$nbExtrafields = $extrafields->attributes['facturedet_rec']['count'];
|
||||
if ($nbExtrafields > 0) {
|
||||
$head[$h][1] .= '<span class="badge marginleftonlyshort">'.$nbExtrafields.'</span>';
|
||||
}
|
||||
$head[$h][2] = 'attributeslinesrec';
|
||||
$h++;
|
||||
|
||||
if ($conf->global->INVOICE_USE_SITUATION) { // Warning, implementation is seriously bugged and a new one not compatible is expected to become stable
|
||||
if (!empty($conf->global->INVOICE_USE_SITUATION)) { // Warning, implementation is seriously bugged and a new one not compatible is expected to become stable
|
||||
$head[$h][0] = DOL_URL_ROOT.'/admin/facture_situation.php';
|
||||
$head[$h][1] = $langs->trans("InvoiceSituation");
|
||||
$head[$h][2] = 'situation';
|
||||
|
||||
@ -1713,8 +1713,14 @@ if ($action == 'create') {
|
||||
$linktoelem = $form->showLinkToObjectBlock($object, null, array('fichinter'));
|
||||
$somethingshown = $form->showLinkedObjectBlock($object, $linktoelem);
|
||||
|
||||
// Show direct download link
|
||||
if ($object->statut != Fichinter::STATUS_DRAFT && !empty($conf->global->FICHINTER_ALLOW_EXTERNAL_DOWNLOAD)) {
|
||||
print '<br><!-- Link to download main doc -->'."\n";
|
||||
print showDirectDownloadLink($object).'<br>';
|
||||
}
|
||||
|
||||
// Show online signature link
|
||||
if ($object->statut != Fichinter::STATUS_DRAFT && $conf->global->FICHINTER_ALLOW_ONLINE_SIGN) {
|
||||
if ($object->statut != Fichinter::STATUS_DRAFT && !empty($conf->global->FICHINTER_ALLOW_ONLINE_SIGN)) {
|
||||
print '<br><!-- Link to sign -->';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/signature.lib.php';
|
||||
|
||||
|
||||
@ -1398,7 +1398,7 @@ class CommandeFournisseur extends CommonOrder
|
||||
$sql .= ", '".$this->db->escape($this->ref_supplier)."'";
|
||||
$sql .= ", '".$this->db->escape($this->note_private)."'";
|
||||
$sql .= ", '".$this->db->escape($this->note_public)."'";
|
||||
$sql .= ", ".((int) $conf->entity);
|
||||
$sql .= ", ".setEntity($this);
|
||||
$sql .= ", ".((int) $this->socid);
|
||||
$sql .= ", ".($this->fk_project > 0 ? ((int) $this->fk_project) : "null");
|
||||
$sql .= ", '".$this->db->idate($date)."'";
|
||||
|
||||
@ -197,6 +197,12 @@ ALTER TABLE llx_societe_remise_except ADD COLUMN multicurrency_tx double(24,8) N
|
||||
|
||||
ALTER TABLE llx_hrm_evaluationdet CHANGE COLUMN rank rankorder integer;
|
||||
|
||||
|
||||
-- Rename const to hide public and private notes (fix allow notes const was used to hide)
|
||||
UPDATE llx_const SET name = 'MAIN_LIST_HIDE_PUBLIC_NOTES' WHERE name = 'MAIN_LIST_ALLOW_PUBLIC_NOTES';
|
||||
UPDATE llx_const SET name = 'MAIN_LIST_HIDE_PRIVATE_NOTES' WHERE name = 'MAIN_LIST_ALLOW_PRIVATE_NOTES';
|
||||
|
||||
|
||||
ALTER TABLE llx_projet ADD COLUMN date_start_event datetime;
|
||||
ALTER TABLE llx_projet ADD COLUMN date_end_event datetime;
|
||||
ALTER TABLE llx_projet ADD COLUMN location varchar(255);
|
||||
|
||||
@ -84,6 +84,7 @@ MakeLocalDatabaseDumpShort=Local database backup
|
||||
MakeLocalDatabaseDump=Create a local database dump. Parameters are: compression ('gz' or 'bz' or 'none'), backup type ('mysql', 'pgsql', 'auto'), 1, 'auto' or filename to build, number of backup files to keep
|
||||
MakeSendLocalDatabaseDumpShort=Send local database backup
|
||||
MakeSendLocalDatabaseDump=Send local database backup by email. Parameters are: to, from, subject, message, filename (Name of file sent), filter ('sql' for backup of database only)
|
||||
BackupIsTooLargeSend=Sorry, last backup file is too large to be send by email
|
||||
CleanUnfinishedCronjobShort=Clean unfinished cronjob
|
||||
CleanUnfinishedCronjob=Clean cronjob stuck in processing when the process is no longer running
|
||||
WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run.
|
||||
|
||||
@ -1866,7 +1866,12 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
||||
print '<table class="border allwidth">';
|
||||
|
||||
// Ref
|
||||
print '<tr><td class="titlefieldcreate fieldrequired">'.$langs->trans("Ref").'</td><td colspan="3"><input name="ref" class="maxwidth200" maxlength="128" value="'.dol_escape_htmltag($object->ref).'"></td></tr>';
|
||||
if (empty($conf->global->MAIN_PRODUCT_REF_NOT_EDITABLE)) {
|
||||
print '<tr><td class="titlefieldcreate fieldrequired">'.$langs->trans("Ref").'</td><td colspan="3"><input name="ref" class="maxwidth200" maxlength="128" value="'.dol_escape_htmltag($object->ref).'"></td></tr>';
|
||||
} else {
|
||||
print '<tr><td class="titlefieldcreate fieldrequired">'.$langs->trans("Ref").'</td><td colspan="3"><input name="ref" class="maxwidth200" maxlength="128" value="'.dol_escape_htmltag($object->ref).'" readonly="true"></td></tr>';
|
||||
}
|
||||
|
||||
|
||||
// Label
|
||||
print '<tr><td class="fieldrequired">'.$langs->trans("Label").'</td><td colspan="3"><input name="label" class="minwidth300 maxwidth400onsmartphone" maxlength="255" value="'.dol_escape_htmltag($object->label).'"></td></tr>';
|
||||
|
||||
@ -150,6 +150,8 @@ class PriceParser
|
||||
"length" => $product->length,
|
||||
"surface" => $product->surface,
|
||||
"price_min" => $product->price_min,
|
||||
"cost_price" => $product->cost_price,
|
||||
"pmp" => $product->pmp,
|
||||
));
|
||||
|
||||
//Retrieve all extrafield for product and add it to values
|
||||
|
||||
@ -78,6 +78,9 @@ $message = GETPOST('message', 'aZ09');
|
||||
$suffix = GETPOST("suffix", 'aZ09');
|
||||
$source = GETPOST("source", 'alpha');
|
||||
$ref = $REF = GETPOST("ref", 'alpha');
|
||||
$urlok = '';
|
||||
$urlko = '';
|
||||
|
||||
|
||||
if (empty($source)) {
|
||||
$source = 'proposal';
|
||||
|
||||
@ -84,6 +84,7 @@ if ($action == 'getProducts') {
|
||||
}
|
||||
unset($prod->fields);
|
||||
unset($prod->db);
|
||||
$prod->price_formated=price(price2num($prod->price, 'MU'), 1, $langs, 1, -1, -1, $conf->currency);
|
||||
$res[] = $prod;
|
||||
}
|
||||
}
|
||||
@ -301,7 +302,7 @@ if ($action == 'getProducts') {
|
||||
'object' => 'product',
|
||||
'img' => $ig,
|
||||
'qty' => 1,
|
||||
//'price_formated' => price(price2num($obj->price, 'MU'), 1, $langs, 1, -1, -1, $conf->currency)
|
||||
'price_formated' => price(price2num($obj->price, 'MU'), 1, $langs, 1, -1, -1, $conf->currency)
|
||||
);
|
||||
// Add entries to row from hooks
|
||||
$parameters=array();
|
||||
|
||||
@ -826,10 +826,6 @@ div#moreinfo, div#infowarehouse {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.div5 .price {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.div5 .imgadd {
|
||||
display: none;
|
||||
}
|
||||
@ -925,18 +921,12 @@ div#moreinfo, div#infowarehouse {
|
||||
.div5 .arrow .centerinmiddle {
|
||||
transform: translate(0, 0);
|
||||
}
|
||||
|
||||
.div5 .price {
|
||||
font-size: 14px;
|
||||
margin-left: auto;
|
||||
margin-right: 30px;
|
||||
padding-right: 10px;
|
||||
font-weight: bold;
|
||||
color: #ff6d6d;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.div5 .imgadd {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
div.wrapper2{
|
||||
height:10%;
|
||||
}
|
||||
}
|
||||
@ -1375,9 +1375,6 @@ if (!empty($conf->global->TAKEPOS_WEIGHING_SCALE)) {
|
||||
<div class="description" id="prodivdesc<?php echo $count; ?>">
|
||||
<div class="description_content" id="prodesc<?php echo $count; ?>"></div>
|
||||
</div>
|
||||
<div class="price" id="prodivprice<?php echo $count; ?>">
|
||||
</div>
|
||||
<span class="fa fa-plus"></span>
|
||||
<?php } ?>
|
||||
<div class="catwatermark" id='prowatermark<?php echo $count; ?>'>...</div>
|
||||
</div>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user