Merge remote-tracking branch 'upstream/develop' into codesyntax
This commit is contained in:
commit
f71d803da8
@ -372,26 +372,26 @@ if ($result)
|
|||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td>'.$langs->trans('Options').'</td><td>'.$langs->trans('Description').'</td>';
|
print '<td>'.$langs->trans('Options').'</td><td>'.$langs->trans('Description').'</td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
print '<tr class="oddeven"><td class="titlefield"><input type="radio" name="accounting_product_mode" value="ACCOUNTANCY_SELL"'.($accounting_product_mode == 'ACCOUNTANCY_SELL' ? ' checked' : '').'> '.$langs->trans('OptionModeProductSell').'</td>';
|
print '<tr class="oddeven"><td><input type="radio" name="accounting_product_mode" value="ACCOUNTANCY_SELL"'.($accounting_product_mode == 'ACCOUNTANCY_SELL' ? ' checked' : '').'> '.$langs->trans('OptionModeProductSell').'</td>';
|
||||||
print '<td>'.$langs->trans('OptionModeProductSellDesc');
|
print '<td>'.$langs->trans('OptionModeProductSellDesc');
|
||||||
print "</td></tr>\n";
|
print "</td></tr>\n";
|
||||||
if ($mysoc->isInEEC())
|
if ($mysoc->isInEEC())
|
||||||
{
|
{
|
||||||
print '<tr class="oddeven"><td class="titlefield"><input type="radio" name="accounting_product_mode" value="ACCOUNTANCY_SELL_INTRA"'.($accounting_product_mode == 'ACCOUNTANCY_SELL_INTRA' ? ' checked' : '').'> '.$langs->trans('OptionModeProductSellIntra').'</td>';
|
print '<tr class="oddeven"><td><input type="radio" name="accounting_product_mode" value="ACCOUNTANCY_SELL_INTRA"'.($accounting_product_mode == 'ACCOUNTANCY_SELL_INTRA' ? ' checked' : '').'> '.$langs->trans('OptionModeProductSellIntra').'</td>';
|
||||||
print '<td>'.$langs->trans('OptionModeProductSellIntraDesc');
|
print '<td>'.$langs->trans('OptionModeProductSellIntraDesc');
|
||||||
print "</td></tr>\n";
|
print "</td></tr>\n";
|
||||||
}
|
}
|
||||||
print '<tr class="oddeven"><td class="titlefield"><input type="radio" name="accounting_product_mode" value="ACCOUNTANCY_SELL_EXPORT"'.($accounting_product_mode == 'ACCOUNTANCY_SELL_EXPORT' ? ' checked' : '').'> '.$langs->trans('OptionModeProductSellExport').'</td>';
|
print '<tr class="oddeven"><td><input type="radio" name="accounting_product_mode" value="ACCOUNTANCY_SELL_EXPORT"'.($accounting_product_mode == 'ACCOUNTANCY_SELL_EXPORT' ? ' checked' : '').'> '.$langs->trans('OptionModeProductSellExport').'</td>';
|
||||||
print '<td>'.$langs->trans('OptionModeProductSellExportDesc');
|
print '<td>'.$langs->trans('OptionModeProductSellExportDesc');
|
||||||
print "</td></tr>\n";
|
print "</td></tr>\n";
|
||||||
print '<tr class="oddeven"><td class="titlefield"><input type="radio" name="accounting_product_mode" value="ACCOUNTANCY_BUY"'.($accounting_product_mode == 'ACCOUNTANCY_BUY' ? ' checked' : '').'> '.$langs->trans('OptionModeProductBuy').'</td>';
|
print '<tr class="oddeven"><td><input type="radio" name="accounting_product_mode" value="ACCOUNTANCY_BUY"'.($accounting_product_mode == 'ACCOUNTANCY_BUY' ? ' checked' : '').'> '.$langs->trans('OptionModeProductBuy').'</td>';
|
||||||
print '<td>'.$langs->trans('OptionModeProductBuyDesc')."</td></tr>\n";
|
print '<td>'.$langs->trans('OptionModeProductBuyDesc')."</td></tr>\n";
|
||||||
if ($mysoc->isInEEC())
|
if ($mysoc->isInEEC())
|
||||||
{
|
{
|
||||||
print '<tr class="oddeven"><td class="titlefield"><input type="radio" name="accounting_product_mode" value="ACCOUNTANCY_BUY_INTRA"'.($accounting_product_mode == 'ACCOUNTANCY_BUY_INTRA' ? ' checked' : '').'> '.$langs->trans('OptionModeProductBuyIntra').'</td>';
|
print '<tr class="oddeven"><td><input type="radio" name="accounting_product_mode" value="ACCOUNTANCY_BUY_INTRA"'.($accounting_product_mode == 'ACCOUNTANCY_BUY_INTRA' ? ' checked' : '').'> '.$langs->trans('OptionModeProductBuyIntra').'</td>';
|
||||||
print '<td>'.$langs->trans('OptionModeProductBuyDesc')."</td></tr>\n";
|
print '<td>'.$langs->trans('OptionModeProductBuyDesc')."</td></tr>\n";
|
||||||
}
|
}
|
||||||
print '<tr class="oddeven"><td class="titlefield"><input type="radio" name="accounting_product_mode" value="ACCOUNTANCY_BUY_EXPORT"'.($accounting_product_mode == 'ACCOUNTANCY_BUY_EXPORT' ? ' checked' : '').'> '.$langs->trans('OptionModeProductBuyExport').'</td>';
|
print '<tr class="oddeven"><td><input type="radio" name="accounting_product_mode" value="ACCOUNTANCY_BUY_EXPORT"'.($accounting_product_mode == 'ACCOUNTANCY_BUY_EXPORT' ? ' checked' : '').'> '.$langs->trans('OptionModeProductBuyExport').'</td>';
|
||||||
print '<td>'.$langs->trans('OptionModeProductBuyDesc')."</td></tr>\n";
|
print '<td>'.$langs->trans('OptionModeProductBuyDesc')."</td></tr>\n";
|
||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
|
|
||||||
|
|||||||
@ -315,6 +315,7 @@ class BookKeeping extends CommonObject
|
|||||||
$objnum = $this->db->fetch_object($resqlnum);
|
$objnum = $this->db->fetch_object($resqlnum);
|
||||||
$this->piece_num = $objnum->piece_num;
|
$this->piece_num = $objnum->piece_num;
|
||||||
}
|
}
|
||||||
|
|
||||||
dol_syslog(get_class($this).":: create this->piece_num=".$this->piece_num, LOG_DEBUG);
|
dol_syslog(get_class($this).":: create this->piece_num=".$this->piece_num, LOG_DEBUG);
|
||||||
if (empty($this->piece_num)) {
|
if (empty($this->piece_num)) {
|
||||||
$sqlnum = "SELECT MAX(piece_num)+1 as maxpiecenum";
|
$sqlnum = "SELECT MAX(piece_num)+1 as maxpiecenum";
|
||||||
@ -327,8 +328,8 @@ class BookKeeping extends CommonObject
|
|||||||
$objnum = $this->db->fetch_object($resqlnum);
|
$objnum = $this->db->fetch_object($resqlnum);
|
||||||
$this->piece_num = $objnum->maxpiecenum;
|
$this->piece_num = $objnum->maxpiecenum;
|
||||||
}
|
}
|
||||||
|
dol_syslog(get_class($this).":: create this->piece_num=".$this->piece_num, LOG_DEBUG);
|
||||||
}
|
}
|
||||||
dol_syslog(get_class($this).":: create this->piece_num=".$this->piece_num, LOG_DEBUG);
|
|
||||||
if (empty($this->piece_num)) {
|
if (empty($this->piece_num)) {
|
||||||
$this->piece_num = 1;
|
$this->piece_num = 1;
|
||||||
}
|
}
|
||||||
@ -383,7 +384,6 @@ class BookKeeping extends CommonObject
|
|||||||
$sql .= ", ".(!isset($this->entity) ? $conf->entity : $this->entity);
|
$sql .= ", ".(!isset($this->entity) ? $conf->entity : $this->entity);
|
||||||
$sql .= ")";
|
$sql .= ")";
|
||||||
|
|
||||||
dol_syslog(get_class($this).":: create sql=".$sql, LOG_DEBUG);
|
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
if ($resql) {
|
if ($resql) {
|
||||||
$id = $this->db->last_insert_id(MAIN_DB_PREFIX.$this->table_element);
|
$id = $this->db->last_insert_id(MAIN_DB_PREFIX.$this->table_element);
|
||||||
|
|||||||
@ -176,7 +176,8 @@ print '<script type="text/javascript">
|
|||||||
$sql = "SELECT f.rowid as facid, f.ref as ref, f.type, f.datef, f.ref_client,";
|
$sql = "SELECT f.rowid as facid, f.ref as ref, f.type, f.datef, f.ref_client,";
|
||||||
$sql .= " fd.rowid, fd.description, fd.product_type as line_type, fd.total_ht, fd.total_tva, fd.tva_tx, fd.vat_src_code, fd.total_ttc,";
|
$sql .= " fd.rowid, fd.description, fd.product_type as line_type, fd.total_ht, fd.total_tva, fd.tva_tx, fd.vat_src_code, fd.total_ttc,";
|
||||||
$sql .= " s.rowid as socid, s.nom as name, s.code_compta, s.code_client,";
|
$sql .= " s.rowid as socid, s.nom as name, s.code_compta, s.code_client,";
|
||||||
$sql .= " p.rowid as product_id, p.fk_product_type as product_type, p.ref as product_ref, p.label as product_label, p.accountancy_code_sell,";
|
$sql .= " p.rowid as product_id, p.fk_product_type as product_type, p.ref as product_ref, p.label as product_label, p.tobuy, p.tosell,";
|
||||||
|
$sql .= " p.accountancy_code_sell, p.accountancy_code_sell_intra, p.accountancy_code_sell_export,";
|
||||||
$sql .= " aa.rowid as fk_compte, aa.account_number, aa.label, aa.labelshort,";
|
$sql .= " aa.rowid as fk_compte, aa.account_number, aa.label, aa.labelshort,";
|
||||||
$sql .= " fd.situation_percent,";
|
$sql .= " fd.situation_percent,";
|
||||||
$sql .= " co.code as country_code, co.label as country,";
|
$sql .= " co.code as country_code, co.label as country,";
|
||||||
@ -326,7 +327,7 @@ if ($result) {
|
|||||||
//print '<input type="text" class="flat maxwidth50" name="search_country" value="' . dol_escape_htmltag($search_country) . '">';
|
//print '<input type="text" class="flat maxwidth50" name="search_country" value="' . dol_escape_htmltag($search_country) . '">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td class="liste_titre"><input type="text" class="flat maxwidth50" name="search_tvaintra" value="'.dol_escape_htmltag($search_tvaintra).'"></td>';
|
print '<td class="liste_titre"><input type="text" class="flat maxwidth50" name="search_tvaintra" value="'.dol_escape_htmltag($search_tvaintra).'"></td>';
|
||||||
print '<td class="liste_titre center"><input type="text" class="flat maxwidth50" name="search_account" value="'.dol_escape_htmltag($search_account).'"></td>';
|
print '<td class="liste_titre"><input type="text" class="flat maxwidth50" name="search_account" value="'.dol_escape_htmltag($search_account).'"></td>';
|
||||||
print '<td class="liste_titre center">';
|
print '<td class="liste_titre center">';
|
||||||
$searchpicto = $form->showFilterButtons();
|
$searchpicto = $form->showFilterButtons();
|
||||||
print $searchpicto;
|
print $searchpicto;
|
||||||
@ -377,6 +378,11 @@ if ($result) {
|
|||||||
$productstatic->id = $objp->product_id;
|
$productstatic->id = $objp->product_id;
|
||||||
$productstatic->label = $objp->product_label;
|
$productstatic->label = $objp->product_label;
|
||||||
$productstatic->type = $objp->line_type;
|
$productstatic->type = $objp->line_type;
|
||||||
|
$productstatic->status = $objp->tosell;
|
||||||
|
$productstatic->status_buy = $objp->tobuy;
|
||||||
|
$productstatic->accountancy_code_sell = $objp->accountancy_code_sell;
|
||||||
|
$productstatic->accountancy_code_sell_intra = $objp->accountancy_code_sell_intra;
|
||||||
|
$productstatic->accountancy_code_sell_export = $objp->accountancy_code_sell_export;
|
||||||
|
|
||||||
$accountingaccountstatic->rowid = $objp->fk_compte;
|
$accountingaccountstatic->rowid = $objp->fk_compte;
|
||||||
$accountingaccountstatic->label = $objp->label;
|
$accountingaccountstatic->label = $objp->label;
|
||||||
@ -424,11 +430,12 @@ if ($result) {
|
|||||||
|
|
||||||
print '<td>'.$objp->tva_intra.'</td>';
|
print '<td>'.$objp->tva_intra.'</td>';
|
||||||
|
|
||||||
print '<td class="center">';
|
print '<td>';
|
||||||
print $accountingaccountstatic->getNomUrl(0, 1, 1, '', 1);
|
print $accountingaccountstatic->getNomUrl(0, 1, 1, '', 1);
|
||||||
print ' <a class="editfielda" href="./card.php?id='.$objp->rowid.'&backtopage='.urlencode($_SERVER["PHP_SELF"].($param ? '?'.$param : '')).'">';
|
print ' <a class="editfielda" href="./card.php?id='.$objp->rowid.'&backtopage='.urlencode($_SERVER["PHP_SELF"].($param ? '?'.$param : '')).'">';
|
||||||
print img_edit();
|
print img_edit();
|
||||||
print '</a></td>';
|
print '</a></td>';
|
||||||
|
|
||||||
print '<td class="center"><input type="checkbox" class="checkforaction" name="changeaccount[]" value="'.$objp->rowid.'"/></td>';
|
print '<td class="center"><input type="checkbox" class="checkforaction" name="changeaccount[]" value="'.$objp->rowid.'"/></td>';
|
||||||
|
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|||||||
@ -178,7 +178,8 @@ print '<script type="text/javascript">
|
|||||||
$sql = "SELECT f.rowid as facid, f.ref as ref, f.ref_supplier, f.libelle as invoice_label, f.datef, f.fk_soc,";
|
$sql = "SELECT f.rowid as facid, f.ref as ref, f.ref_supplier, f.libelle as invoice_label, f.datef, f.fk_soc,";
|
||||||
$sql .= " l.rowid, l.fk_product, l.product_type as line_type, l.description, l.total_ht , l.qty, l.tva_tx, l.vat_src_code,";
|
$sql .= " l.rowid, l.fk_product, l.product_type as line_type, l.description, l.total_ht , l.qty, l.tva_tx, l.vat_src_code,";
|
||||||
$sql .= " aa.label, aa.labelshort, aa.account_number,";
|
$sql .= " aa.label, aa.labelshort, aa.account_number,";
|
||||||
$sql .= " p.rowid as product_id, p.fk_product_type as product_type, p.ref as product_ref, p.label as product_label, p.fk_product_type as type,";
|
$sql .= " p.rowid as product_id, p.fk_product_type as product_type, p.ref as product_ref, p.label as product_label, p.fk_product_type as type, p.tobuy, p.tosell,";
|
||||||
|
$sql .= " p.accountancy_code_buy, p.accountancy_code_buy_intra, p.accountancy_code_buy_export,";
|
||||||
$sql .= " co.code as country_code, co.label as country,";
|
$sql .= " co.code as country_code, co.label as country,";
|
||||||
$sql .= " s.rowid as socid, s.nom as name, s.tva_intra, s.email, s.town, s.zip, s.fk_pays, s.client, s.fournisseur, s.code_client, s.code_fournisseur, s.code_compta as code_compta_client, s.code_compta_fournisseur";
|
$sql .= " s.rowid as socid, s.nom as name, s.tva_intra, s.email, s.town, s.zip, s.fk_pays, s.client, s.fournisseur, s.code_client, s.code_fournisseur, s.code_compta as code_compta_client, s.code_compta_fournisseur";
|
||||||
$parameters = array();
|
$parameters = array();
|
||||||
@ -376,6 +377,11 @@ if ($result) {
|
|||||||
$productstatic->id = $objp->product_id;
|
$productstatic->id = $objp->product_id;
|
||||||
$productstatic->label = $objp->product_label;
|
$productstatic->label = $objp->product_label;
|
||||||
$productstatic->type = $objp->line_type;
|
$productstatic->type = $objp->line_type;
|
||||||
|
$productstatic->status = $objp->tosell;
|
||||||
|
$productstatic->status_buy = $objp->tobuy;
|
||||||
|
$productstatic->accountancy_code_buy = $objp->accountancy_code_buy;
|
||||||
|
$productstatic->accountancy_code_buy_intra = $objp->accountancy_code_sell_buy;
|
||||||
|
$productstatic->accountancy_code_buy_export = $objp->accountancy_code_sell_buy;
|
||||||
|
|
||||||
$accountingaccountstatic->rowid = $objp->fk_compte;
|
$accountingaccountstatic->rowid = $objp->fk_compte;
|
||||||
$accountingaccountstatic->label = $objp->label;
|
$accountingaccountstatic->label = $objp->label;
|
||||||
|
|||||||
@ -30,6 +30,7 @@ require '../../main.inc.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.product.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.product.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php';
|
||||||
|
|||||||
@ -128,7 +128,9 @@ if ($action == 'add')
|
|||||||
|
|
||||||
if (!$error)
|
if (!$error)
|
||||||
{
|
{
|
||||||
$mesgs = $langs->trans("TransferFromToDone", '<a href="bankentries_list.php?id='.$accountfrom->id.'&sortfield=b.datev,b.dateo,b.rowid&sortorder=desc">'.$accountfrom->label."</a>", '<a href="bankentries_list.php?id='.$accountto->id.'">'.$accountto->label."</a>", $amount, $langs->transnoentities("Currency".$conf->currency));
|
$mesgs = $langs->trans("TransferFromToDone", '{s1}', '{s2}', $amount, $langs->transnoentitiesnoconv("Currency".$conf->currency));
|
||||||
|
$mesgs = str_replace('{s1}', '<a href="bankentries_list.php?id='.$accountfrom->id.'&sortfield=b.datev,b.dateo,b.rowid&sortorder=desc">'.$accountfrom->label.'</a>', $mesgs);
|
||||||
|
$mesgs = str_replace('{s2}', '<a href="bankentries_list.php?id='.$accountto->id.'">'.$accountto->label.'</a>', $mesgs);
|
||||||
setEventMessages($mesgs, null, 'mesgs');
|
setEventMessages($mesgs, null, 'mesgs');
|
||||||
$db->commit();
|
$db->commit();
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -275,7 +275,6 @@ if ($search_dfyear > 0 && $search_op2df)
|
|||||||
else $sql .= " HAVING MIN(".$db->ifsql("cd.statut=4", "cd.date_fin_validite", "null").") <= '".$db->idate(dol_get_last_day($search_dfyear, $search_dfmonth, false))."' AND MIN(".$db->ifsql("cd.statut=4", "cd.date_fin_validite", "null").") >= '".$db->idate(dol_get_first_day($search_dfyear, $search_dfmonth, false))."'";
|
else $sql .= " HAVING MIN(".$db->ifsql("cd.statut=4", "cd.date_fin_validite", "null").") <= '".$db->idate(dol_get_last_day($search_dfyear, $search_dfmonth, false))."' AND MIN(".$db->ifsql("cd.statut=4", "cd.date_fin_validite", "null").") >= '".$db->idate(dol_get_first_day($search_dfyear, $search_dfmonth, false))."'";
|
||||||
}
|
}
|
||||||
$sql .= $db->order($sortfield, $sortorder);
|
$sql .= $db->order($sortfield, $sortorder);
|
||||||
//print $sql;
|
|
||||||
|
|
||||||
$totalnboflines = 0;
|
$totalnboflines = 0;
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
|
|||||||
333
htdocs/core/boxes/box_dolibarr_state_board.php
Normal file
333
htdocs/core/boxes/box_dolibarr_state_board.php
Normal file
@ -0,0 +1,333 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
|
* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
|
* Copyright (C) 2005-2009 Regis Houssin <regis.houssin@inodbox.com>
|
||||||
|
* Copyright (C) 2015 Frederic France <frederic.france@free.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
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file htdocs/core/boxes/box_dolibarr_state_board.php
|
||||||
|
* \ingroup
|
||||||
|
* \brief Module Dolibarr state base
|
||||||
|
*/
|
||||||
|
|
||||||
|
include_once DOL_DOCUMENT_ROOT . '/core/boxes/modules_boxes.php';
|
||||||
|
include_once DOL_DOCUMENT_ROOT . '/core/class/hookmanager.class.php';
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class to manage the box to show last thirdparties
|
||||||
|
*/
|
||||||
|
class box_dolibarr_state_board extends ModeleBoxes
|
||||||
|
{
|
||||||
|
public $boxcode = "dolibarrstatebox";
|
||||||
|
public $boximg = "box_user";
|
||||||
|
public $boxlabel = "BoxDolibarrStateBoard";
|
||||||
|
public $depends = array("user");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var DoliDB Database handler.
|
||||||
|
*/
|
||||||
|
public $db;
|
||||||
|
|
||||||
|
public $enabled = 1;
|
||||||
|
|
||||||
|
public $info_box_head = array();
|
||||||
|
public $info_box_contents = array();
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*
|
||||||
|
* @param DoliDB $db Database handler
|
||||||
|
* @param string $param More parameters
|
||||||
|
*/
|
||||||
|
public function __construct($db, $param = '')
|
||||||
|
{
|
||||||
|
global $conf, $user;
|
||||||
|
|
||||||
|
$this->db = $db;
|
||||||
|
|
||||||
|
// disable box for such cases
|
||||||
|
if (!empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) $this->enabled = 0; // disabled by this option
|
||||||
|
|
||||||
|
$this->hidden = !($user->rights->societe->lire && empty($user->socid));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load data for box to show them later
|
||||||
|
*
|
||||||
|
* @param int $max Maximum number of records to load
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function loadBox($max = 5)
|
||||||
|
{
|
||||||
|
global $user, $langs, $conf;
|
||||||
|
$langs->load("boxes");
|
||||||
|
|
||||||
|
$this->max = $max;
|
||||||
|
$this->info_box_head = array('text' => $langs->trans("DolibarrStateBoard"));
|
||||||
|
|
||||||
|
if (empty($user->socid) && empty($conf->global->MAIN_DISABLE_GLOBAL_BOXSTATS))
|
||||||
|
{
|
||||||
|
$hookmanager = new HookManager($this->db);
|
||||||
|
$hookmanager->initHooks(array('index'));
|
||||||
|
$boxstatItems = array();
|
||||||
|
$boxstatFromHook = '';
|
||||||
|
$boxstatFromHook = $hookmanager->resPrint;
|
||||||
|
$boxstat = '';
|
||||||
|
|
||||||
|
$keys = array(
|
||||||
|
'users',
|
||||||
|
'members',
|
||||||
|
'expensereports',
|
||||||
|
'holidays',
|
||||||
|
'customers',
|
||||||
|
'prospects',
|
||||||
|
'suppliers',
|
||||||
|
'contacts',
|
||||||
|
'products',
|
||||||
|
'services',
|
||||||
|
'projects',
|
||||||
|
'proposals',
|
||||||
|
'orders',
|
||||||
|
'invoices',
|
||||||
|
'donations',
|
||||||
|
'supplier_proposals',
|
||||||
|
'supplier_orders',
|
||||||
|
'supplier_invoices',
|
||||||
|
'contracts',
|
||||||
|
'interventions',
|
||||||
|
'ticket'
|
||||||
|
);
|
||||||
|
$conditions = array(
|
||||||
|
'users' => $user->rights->user->user->lire,
|
||||||
|
'members' => !empty($conf->adherent->enabled) && $user->rights->adherent->lire,
|
||||||
|
'customers' => !empty($conf->societe->enabled) && $user->rights->societe->lire && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS_STATS),
|
||||||
|
'prospects' => !empty($conf->societe->enabled) && $user->rights->societe->lire && empty($conf->global->SOCIETE_DISABLE_PROSPECTS) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS_STATS),
|
||||||
|
'suppliers' => !empty($conf->fournisseur->enabled) && $user->rights->fournisseur->lire && empty($conf->global->SOCIETE_DISABLE_SUPPLIERS_STATS),
|
||||||
|
'contacts' => !empty($conf->societe->enabled) && $user->rights->societe->contact->lire,
|
||||||
|
'products' => !empty($conf->product->enabled) && $user->rights->produit->lire,
|
||||||
|
'services' => !empty($conf->service->enabled) && $user->rights->service->lire,
|
||||||
|
'proposals' => !empty($conf->propal->enabled) && $user->rights->propale->lire,
|
||||||
|
'orders' => !empty($conf->commande->enabled) && $user->rights->commande->lire,
|
||||||
|
'invoices' => !empty($conf->facture->enabled) && $user->rights->facture->lire,
|
||||||
|
'donations' => !empty($conf->don->enabled) && $user->rights->don->lire,
|
||||||
|
'contracts' => !empty($conf->contrat->enabled) && $user->rights->contrat->lire,
|
||||||
|
'interventions' => !empty($conf->ficheinter->enabled) && $user->rights->ficheinter->lire,
|
||||||
|
'supplier_orders' => !empty($conf->supplier_order->enabled) && $user->rights->fournisseur->commande->lire && empty($conf->global->SOCIETE_DISABLE_SUPPLIERS_ORDERS_STATS),
|
||||||
|
'supplier_invoices' => !empty($conf->supplier_invoice->enabled) && $user->rights->fournisseur->facture->lire && empty($conf->global->SOCIETE_DISABLE_SUPPLIERS_INVOICES_STATS),
|
||||||
|
'supplier_proposals' => !empty($conf->supplier_proposal->enabled) && $user->rights->supplier_proposal->lire && empty($conf->global->SOCIETE_DISABLE_SUPPLIERS_PROPOSAL_STATS),
|
||||||
|
'projects' => !empty($conf->projet->enabled) && $user->rights->projet->lire,
|
||||||
|
'expensereports' => !empty($conf->expensereport->enabled) && $user->rights->expensereport->lire,
|
||||||
|
'holidays' => !empty($conf->holiday->enabled) && $user->rights->holiday->read,
|
||||||
|
'ticket' => !empty($conf->ticket->enabled) && $user->rights->ticket->read
|
||||||
|
);
|
||||||
|
$classes = array(
|
||||||
|
'users' => 'User',
|
||||||
|
'members' => 'Adherent',
|
||||||
|
'customers' => 'Client',
|
||||||
|
'prospects' => 'Client',
|
||||||
|
'suppliers' => 'Fournisseur',
|
||||||
|
'contacts' => 'Contact',
|
||||||
|
'products' => 'Product',
|
||||||
|
'services' => 'ProductService',
|
||||||
|
'proposals' => 'Propal',
|
||||||
|
'orders' => 'Commande',
|
||||||
|
'invoices' => 'Facture',
|
||||||
|
'donations' => 'Don',
|
||||||
|
'contracts' => 'Contrat',
|
||||||
|
'interventions' => 'Fichinter',
|
||||||
|
'supplier_orders' => 'CommandeFournisseur',
|
||||||
|
'supplier_invoices' => 'FactureFournisseur',
|
||||||
|
'supplier_proposals' => 'SupplierProposal',
|
||||||
|
'projects' => 'Project',
|
||||||
|
'expensereports' => 'ExpenseReport',
|
||||||
|
'holidays' => 'Holiday',
|
||||||
|
'ticket' => 'Ticket',
|
||||||
|
);
|
||||||
|
$includes = array(
|
||||||
|
'users' => DOL_DOCUMENT_ROOT . "/user/class/user.class.php",
|
||||||
|
'members' => DOL_DOCUMENT_ROOT . "/adherents/class/adherent.class.php",
|
||||||
|
'customers' => DOL_DOCUMENT_ROOT . "/societe/class/client.class.php",
|
||||||
|
'prospects' => DOL_DOCUMENT_ROOT . "/societe/class/client.class.php",
|
||||||
|
'suppliers' => DOL_DOCUMENT_ROOT . "/fourn/class/fournisseur.class.php",
|
||||||
|
'contacts' => DOL_DOCUMENT_ROOT . "/contact/class/contact.class.php",
|
||||||
|
'products' => DOL_DOCUMENT_ROOT . "/product/class/product.class.php",
|
||||||
|
'services' => DOL_DOCUMENT_ROOT . "/product/class/product.class.php",
|
||||||
|
'proposals' => DOL_DOCUMENT_ROOT . "/comm/propal/class/propal.class.php",
|
||||||
|
'orders' => DOL_DOCUMENT_ROOT . "/commande/class/commande.class.php",
|
||||||
|
'invoices' => DOL_DOCUMENT_ROOT . "/compta/facture/class/facture.class.php",
|
||||||
|
'donations' => DOL_DOCUMENT_ROOT . "/don/class/don.class.php",
|
||||||
|
'contracts' => DOL_DOCUMENT_ROOT . "/contrat/class/contrat.class.php",
|
||||||
|
'interventions' => DOL_DOCUMENT_ROOT . "/fichinter/class/fichinter.class.php",
|
||||||
|
'supplier_orders' => DOL_DOCUMENT_ROOT . "/fourn/class/fournisseur.commande.class.php",
|
||||||
|
'supplier_invoices' => DOL_DOCUMENT_ROOT . "/fourn/class/fournisseur.facture.class.php",
|
||||||
|
'supplier_proposals' => DOL_DOCUMENT_ROOT . "/supplier_proposal/class/supplier_proposal.class.php",
|
||||||
|
'projects' => DOL_DOCUMENT_ROOT . "/projet/class/project.class.php",
|
||||||
|
'expensereports' => DOL_DOCUMENT_ROOT . "/expensereport/class/expensereport.class.php",
|
||||||
|
'holidays' => DOL_DOCUMENT_ROOT . "/holiday/class/holiday.class.php",
|
||||||
|
'ticket' => DOL_DOCUMENT_ROOT . "/ticket/class/ticket.class.php"
|
||||||
|
);
|
||||||
|
$links = array(
|
||||||
|
'users' => DOL_URL_ROOT . '/user/list.php',
|
||||||
|
'members' => DOL_URL_ROOT . '/adherents/list.php?statut=1&mainmenu=members',
|
||||||
|
'customers' => DOL_URL_ROOT . '/societe/list.php?type=c&mainmenu=companies',
|
||||||
|
'prospects' => DOL_URL_ROOT . '/societe/list.php?type=p&mainmenu=companies',
|
||||||
|
'suppliers' => DOL_URL_ROOT . '/societe/list.php?type=f&mainmenu=companies',
|
||||||
|
'contacts' => DOL_URL_ROOT . '/contact/list.php?mainmenu=companies',
|
||||||
|
'products' => DOL_URL_ROOT . '/product/list.php?type=0&mainmenu=products',
|
||||||
|
'services' => DOL_URL_ROOT . '/product/list.php?type=1&mainmenu=products',
|
||||||
|
'proposals' => DOL_URL_ROOT . '/comm/propal/list.php?mainmenu=commercial&leftmenu=propals',
|
||||||
|
'orders' => DOL_URL_ROOT . '/commande/list.php?mainmenu=commercial&leftmenu=orders',
|
||||||
|
'invoices' => DOL_URL_ROOT . '/compta/facture/list.php?mainmenu=billing&leftmenu=customers_bills',
|
||||||
|
'donations' => DOL_URL_ROOT . '/don/list.php?leftmenu=donations',
|
||||||
|
'contracts' => DOL_URL_ROOT . '/contrat/list.php?mainmenu=commercial&leftmenu=contracts',
|
||||||
|
'interventions' => DOL_URL_ROOT . '/fichinter/list.php?mainmenu=commercial&leftmenu=ficheinter',
|
||||||
|
'supplier_orders' => DOL_URL_ROOT . '/fourn/commande/list.php?mainmenu=commercial&leftmenu=orders_suppliers',
|
||||||
|
'supplier_invoices' => DOL_URL_ROOT . '/fourn/facture/list.php?mainmenu=billing&leftmenu=suppliers_bills',
|
||||||
|
'supplier_proposals' => DOL_URL_ROOT . '/supplier_proposal/list.php?mainmenu=commercial&leftmenu=',
|
||||||
|
'projects' => DOL_URL_ROOT . '/projet/list.php?mainmenu=project',
|
||||||
|
'expensereports' => DOL_URL_ROOT . '/expensereport/list.php?mainmenu=hrm&leftmenu=expensereport',
|
||||||
|
'holidays' => DOL_URL_ROOT . '/holiday/list.php?mainmenu=hrm&leftmenu=holiday',
|
||||||
|
'ticket' => DOL_URL_ROOT . '/ticket/list.php?leftmenu=ticket'
|
||||||
|
);
|
||||||
|
$titres = array(
|
||||||
|
'users' => "Users",
|
||||||
|
'members' => "Members",
|
||||||
|
'customers' => "ThirdPartyCustomersStats",
|
||||||
|
'prospects' => "ThirdPartyProspectsStats",
|
||||||
|
'suppliers' => "Suppliers",
|
||||||
|
'contacts' => "Contacts",
|
||||||
|
'products' => "Products",
|
||||||
|
'services' => "Services",
|
||||||
|
'proposals' => "CommercialProposalsShort",
|
||||||
|
'orders' => "CustomersOrders",
|
||||||
|
'invoices' => "BillsCustomers",
|
||||||
|
'donations' => "Donations",
|
||||||
|
'contracts' => "Contracts",
|
||||||
|
'interventions' => "Interventions",
|
||||||
|
'supplier_orders' => "SuppliersOrders",
|
||||||
|
'supplier_invoices' => "SuppliersInvoices",
|
||||||
|
'supplier_proposals' => "SupplierProposalShort",
|
||||||
|
'projects' => "Projects",
|
||||||
|
'expensereports' => "ExpenseReports",
|
||||||
|
'holidays' => "Holidays",
|
||||||
|
'ticket' => "Ticket",
|
||||||
|
);
|
||||||
|
$langfile = array(
|
||||||
|
'customers' => "companies",
|
||||||
|
'contacts' => "companies",
|
||||||
|
'services' => "products",
|
||||||
|
'proposals' => "propal",
|
||||||
|
'invoices' => "bills",
|
||||||
|
'supplier_orders' => "orders",
|
||||||
|
'supplier_invoices' => "bills",
|
||||||
|
'supplier_proposals' => 'supplier_proposal',
|
||||||
|
'expensereports' => "trips",
|
||||||
|
'holidays' => "holiday",
|
||||||
|
);
|
||||||
|
$boardloaded = array();
|
||||||
|
|
||||||
|
foreach ($keys as $val)
|
||||||
|
{
|
||||||
|
if ($conditions[$val])
|
||||||
|
{
|
||||||
|
$boxstatItem = '';
|
||||||
|
$class = $classes[$val];
|
||||||
|
// Search in cache if load_state_board is already realized
|
||||||
|
$classkeyforcache = $class;
|
||||||
|
if ($classkeyforcache == 'ProductService') $classkeyforcache = 'Product'; // ProductService use same load_state_board than Product
|
||||||
|
|
||||||
|
if (!isset($boardloaded[$classkeyforcache]) || !is_object($boardloaded[$classkeyforcache]))
|
||||||
|
{
|
||||||
|
include_once $includes[$val]; // Loading a class cost around 1Mb
|
||||||
|
|
||||||
|
$board = new $class($this->db);
|
||||||
|
$board->load_state_board();
|
||||||
|
$boardloaded[$class] = $board;
|
||||||
|
} else {
|
||||||
|
$board = $boardloaded[$classkeyforcache];
|
||||||
|
}
|
||||||
|
|
||||||
|
$langs->load(empty($langfile[$val]) ? $val : $langfile[$val]);
|
||||||
|
|
||||||
|
$text = $langs->trans($titres[$val]);
|
||||||
|
$boxstatItem .= '<a href="' . $links[$val] . '" class="boxstatsindicator thumbstat nobold nounderline">';
|
||||||
|
$boxstatItem .= '<div class="boxstats">';
|
||||||
|
$boxstatItem .= '<span class="boxstatstext" title="' . dol_escape_htmltag($text) . '">' . $text . '</span><br>';
|
||||||
|
$boxstatItem .= '<span class="boxstatsindicator">' . img_object("", $board->picto, 'class="inline-block"') . ' ' . ($board->nb[$val] ? $board->nb[$val] : 0) . '</span>';
|
||||||
|
$boxstatItem .= '</div>';
|
||||||
|
$boxstatItem .= '</a>';
|
||||||
|
|
||||||
|
$boxstatItems[$val] = $boxstatItem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($boxstatFromHook) || !empty($boxstatItems))
|
||||||
|
{
|
||||||
|
$boxstat .= $boxstatFromHook;
|
||||||
|
|
||||||
|
if (is_array($boxstatItems) && count($boxstatItems) > 0)
|
||||||
|
{
|
||||||
|
$boxstat .= implode('', $boxstatItems);
|
||||||
|
}
|
||||||
|
|
||||||
|
$boxstat .= '<a class="boxstatsindicator thumbstat nobold nounderline"><div class="boxstatsempty"></div></a>';
|
||||||
|
$boxstat .= '<a class="boxstatsindicator thumbstat nobold nounderline"><div class="boxstatsempty"></div></a>';
|
||||||
|
$boxstat .= '<a class="boxstatsindicator thumbstat nobold nounderline"><div class="boxstatsempty"></div></a>';
|
||||||
|
$boxstat .= '<a class="boxstatsindicator thumbstat nobold nounderline"><div class="boxstatsempty"></div></a>';
|
||||||
|
$boxstat .= '<a class="boxstatsindicator thumbstat nobold nounderline"><div class="boxstatsempty"></div></a>';
|
||||||
|
$boxstat .= '<a class="boxstatsindicator thumbstat nobold nounderline"><div class="boxstatsempty"></div></a>';
|
||||||
|
$boxstat .= '<a class="boxstatsindicator thumbstat nobold nounderline"><div class="boxstatsempty"></div></a>';
|
||||||
|
$boxstat .= '<a class="boxstatsindicator thumbstat nobold nounderline"><div class="boxstatsempty"></div></a>';
|
||||||
|
|
||||||
|
$boxstat .= '</td></tr>';
|
||||||
|
$boxstat .= '</table>';
|
||||||
|
|
||||||
|
$this->info_box_contents[0][0] = array(
|
||||||
|
'td' => '',
|
||||||
|
'textnoformat' => $boxstat
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$this->info_box_contents[0][0] = array(
|
||||||
|
'td' => 'class="nohover center"',
|
||||||
|
'maxlength' => 500,
|
||||||
|
'text' => ($this->db->error() . ' sql=' . $sql)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$this->info_box_contents[0][0] = array(
|
||||||
|
'td' => '',
|
||||||
|
'text' => $langs->trans("ReadPermissionNotAllowed")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to show box
|
||||||
|
*
|
||||||
|
* @param array $head Array with properties of box title
|
||||||
|
* @param array $contents Array with properties of box lines
|
||||||
|
* @param int $nooutput No print, only return string
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function showBox($head = null, $contents = null, $nooutput = 0)
|
||||||
|
{
|
||||||
|
return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1028,13 +1028,12 @@ class ExtraFields
|
|||||||
// search filter on a date extrafield shows two inputs to select a date range
|
// search filter on a date extrafield shows two inputs to select a date range
|
||||||
$prefill = array(
|
$prefill = array(
|
||||||
'start' => isset($value['start']) ? $value['start'] : '',
|
'start' => isset($value['start']) ? $value['start'] : '',
|
||||||
'end' => isset($value['end']) ? $value['end'] : '');
|
'end' => isset($value['end']) ? $value['end'] : ''
|
||||||
|
);
|
||||||
$out = '<div ' . ($moreparam ? $moreparam : '') . '><div class="nowrap">'
|
$out = '<div ' . ($moreparam ? $moreparam : '') . '><div class="nowrap">'
|
||||||
. $langs->trans('From') . ' '
|
. $form->selectDate($prefill['start'], $keyprefix.$key.$keysuffix.'_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans("From"))
|
||||||
. $form->selectDate($prefill['start'], $keyprefix . $key . $keysuffix . '_start', 0, 0, 1)
|
|
||||||
. '</div><div class="nowrap">'
|
. '</div><div class="nowrap">'
|
||||||
. $langs->trans('to') . ' '
|
. $form->selectDate($prefill['end'], $keyprefix.$key.$keysuffix.'_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans("to"))
|
||||||
. $form->selectDate($prefill['end'], $keyprefix . $key . $keysuffix . '_end', 0, 0, 1)
|
|
||||||
. '</div></div>';
|
. '</div></div>';
|
||||||
} else {
|
} else {
|
||||||
// TODO Must also support $moreparam
|
// TODO Must also support $moreparam
|
||||||
|
|||||||
@ -1949,7 +1949,7 @@ class Form
|
|||||||
* @param string $nooutput No print, return the output into a string
|
* @param string $nooutput No print, return the output into a string
|
||||||
* @return void|string
|
* @return void|string
|
||||||
*/
|
*/
|
||||||
public function select_produits($selected = '', $htmlname = 'productid', $filtertype = '', $limit = 20, $price_level = 0, $status = 1, $finished = 2, $selected_input_value = '', $hidelabel = 0, $ajaxoptions = array(), $socid = 0, $showempty = '1', $forcecombo = 0, $morecss = '', $hidepriceinlabel = 0, $warehouseStatus = '', $selected_combinations = array(), $nooutput = 0)
|
public function select_produits($selected = '', $htmlname = 'productid', $filtertype = '', $limit = 0, $price_level = 0, $status = 1, $finished = 2, $selected_input_value = '', $hidelabel = 0, $ajaxoptions = array(), $socid = 0, $showempty = '1', $forcecombo = 0, $morecss = '', $hidepriceinlabel = 0, $warehouseStatus = '', $selected_combinations = array(), $nooutput = 0)
|
||||||
{
|
{
|
||||||
// phpcs:enable
|
// phpcs:enable
|
||||||
global $langs, $conf;
|
global $langs, $conf;
|
||||||
@ -4495,10 +4495,15 @@ class Form
|
|||||||
if (inputok.length>0) {
|
if (inputok.length>0) {
|
||||||
$.each(inputok, function(i, inputname) {
|
$.each(inputok, function(i, inputname) {
|
||||||
var more = "";
|
var more = "";
|
||||||
if ($("#" + inputname).attr("type") == "checkbox") { more = ":checked"; }
|
var inputvalue;
|
||||||
if ($("#" + inputname).attr("type") == "radio") { more = ":checked"; }
|
if ($("input[name=\'" + inputname + "\']").attr("type") == "radio") {
|
||||||
var inputvalue = $("#" + inputname + more).val();
|
inputvalue = $("input[name=\'" + inputname + "\']").val();
|
||||||
|
} else {
|
||||||
|
if ($("#" + inputname).attr("type") == "checkbox") { more = ":checked"; }
|
||||||
|
inputvalue = $("#" + inputname + more).val();
|
||||||
|
}
|
||||||
if (typeof inputvalue == "undefined") { inputvalue=""; }
|
if (typeof inputvalue == "undefined") { inputvalue=""; }
|
||||||
|
console.log("check inputname="+inputname+" inputvalue="+inputvalue);
|
||||||
options += "&" + inputname + "=" + encodeURIComponent(inputvalue);
|
options += "&" + inputname + "=" + encodeURIComponent(inputvalue);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -5760,7 +5765,7 @@ class Form
|
|||||||
$retstring .= '<div class="nowrap inline-block divfordateinput">';
|
$retstring .= '<div class="nowrap inline-block divfordateinput">';
|
||||||
$retstring .= '<input id="'.$prefix.'" name="'.$prefix.'" type="text" class="maxwidthdate" maxlength="11" value="'.$formated_date.'"';
|
$retstring .= '<input id="'.$prefix.'" name="'.$prefix.'" type="text" class="maxwidthdate" maxlength="11" value="'.$formated_date.'"';
|
||||||
$retstring .= ($disabled ? ' disabled' : '');
|
$retstring .= ($disabled ? ' disabled' : '');
|
||||||
$retstring .= ($placeholder ? ' placeholder="'.$placeholder.'"' : '');
|
$retstring .= ($placeholder ? ' placeholder="'.dol_escape_htmltag($placeholder).'"' : '');
|
||||||
$retstring .= ' onChange="dpChangeDay(\''.$prefix.'\',\''.$langs->trans("FormatDateShortJavaInput").'\'); "'; // FormatDateShortInput for dol_print_date / FormatDateShortJavaInput that is same for javascript
|
$retstring .= ' onChange="dpChangeDay(\''.$prefix.'\',\''.$langs->trans("FormatDateShortJavaInput").'\'); "'; // FormatDateShortInput for dol_print_date / FormatDateShortJavaInput that is same for javascript
|
||||||
$retstring .= '>';
|
$retstring .= '>';
|
||||||
|
|
||||||
|
|||||||
@ -78,7 +78,8 @@ class modUser extends DolibarrModules
|
|||||||
// Boxes
|
// Boxes
|
||||||
$this->boxes = array(
|
$this->boxes = array(
|
||||||
0=>array('file'=>'box_lastlogin.php', 'enabledbydefaulton'=>'Home'),
|
0=>array('file'=>'box_lastlogin.php', 'enabledbydefaulton'=>'Home'),
|
||||||
1=>array('file'=>'box_birthdays.php', 'enabledbydefaulton'=>'Home')
|
1=>array('file'=>'box_birthdays.php', 'enabledbydefaulton'=>'Home'),
|
||||||
|
2=>array('file'=>'box_dolibarr_state_board.php', 'enabledbydefaulton'=>'Home')
|
||||||
);
|
);
|
||||||
|
|
||||||
// Permissions
|
// Permissions
|
||||||
|
|||||||
@ -26,11 +26,13 @@ if (!empty($extrafieldsobjectkey) && !empty($search_array_options) && is_array($
|
|||||||
if (is_numeric($crit)) {
|
if (is_numeric($crit)) {
|
||||||
$sql .= " AND ".$extrafieldsobjectprefix.$tmpkey." = '".$db->idate($crit)."'";
|
$sql .= " AND ".$extrafieldsobjectprefix.$tmpkey." = '".$db->idate($crit)."'";
|
||||||
} elseif (is_array($crit)) {
|
} elseif (is_array($crit)) {
|
||||||
$sql .= ' AND (' . $extrafieldsobjectprefix.$tmpkey
|
if ($crit['start'] !== '' && $crit['end'] !== '') {
|
||||||
.' BETWEEN "'
|
$sql .= ' AND ('.$extrafieldsobjectprefix.$tmpkey." BETWEEN '". $db->idate($crit['start']). "' AND '".$db->idate($crit['end']) . "')";
|
||||||
. $db->idate($crit['start'])
|
} elseif ($crit['start'] !== '') {
|
||||||
. '" AND "'
|
$sql .= ' AND ('.$extrafieldsobjectprefix.$tmpkey." >= '". $db->idate($crit['start'])."')";
|
||||||
. $db->idate($crit['end']) . '")';
|
} elseif ($crit['end'] !== '') {
|
||||||
|
$sql .= ' AND ('.$extrafieldsobjectprefix.$tmpkey." <= '". $db->idate($crit['end'])."')";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} elseif (in_array($typ, array('boolean')))
|
} elseif (in_array($typ, array('boolean')))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1075,11 +1075,83 @@ class ProductFournisseur extends Product
|
|||||||
|
|
||||||
$result = '';
|
$result = '';
|
||||||
|
|
||||||
$label = '<u>'.$langs->trans("SupplierRef").'</u>';
|
if (!empty($this->entity)) {
|
||||||
$label .= '<br>';
|
$tmpphoto = $this->show_photos('product', $conf->product->multidir_output[$this->entity], 1, 1, 0, 0, 0, 80);
|
||||||
$label .= '<b>'.$langs->trans('Product').':</b> '.$this->product_ref;
|
if ($this->nbphoto > 0) {
|
||||||
|
$label .= '<div class="photointooltip">';
|
||||||
|
$label .= $tmpphoto;
|
||||||
|
$label .= '</div><div style="clear: both;"></div>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->type == Product::TYPE_PRODUCT) {
|
||||||
|
$label .= img_picto('', 'product').' <u class="paddingrightonly">'.$langs->trans("Product").'</u>';
|
||||||
|
} elseif ($this->type == Product::TYPE_SERVICE) {
|
||||||
|
$label .= img_picto('', 'service').' <u class="paddingrightonly">'.$langs->trans("Service").'</u>';
|
||||||
|
}
|
||||||
|
if (isset($this->status) && isset($this->status_buy)) {
|
||||||
|
$label .= ' '.$this->getLibStatut(5, 0);
|
||||||
|
$label .= ' '.$this->getLibStatut(5, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($this->ref)) {
|
||||||
|
$label .= '<br><b>'.$langs->trans('ProductRef').':</b> '.($this->ref ? $this->ref : $this->product_ref);
|
||||||
|
}
|
||||||
|
if (!empty($this->label)) {
|
||||||
|
$label .= '<br><b>'.$langs->trans('ProductLabel').':</b> '.$this->label;
|
||||||
|
}
|
||||||
$label .= '<br><b>'.$langs->trans('RefSupplier').':</b> '.$this->ref_supplier;
|
$label .= '<br><b>'.$langs->trans('RefSupplier').':</b> '.$this->ref_supplier;
|
||||||
|
|
||||||
|
if ($this->type == Product::TYPE_PRODUCT || !empty($conf->global->STOCK_SUPPORTS_SERVICES)) {
|
||||||
|
if (!empty($conf->productbatch->enabled)) {
|
||||||
|
$langs->load("productbatch");
|
||||||
|
$label .= "<br><b>".$langs->trans("ManageLotSerial").'</b>: '.$this->getLibStatut(0, 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!empty($conf->barcode->enabled)) {
|
||||||
|
$label .= '<br><b>'.$langs->trans('BarCode').':</b> '.$this->barcode;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->type == Product::TYPE_PRODUCT)
|
||||||
|
{
|
||||||
|
if ($this->weight) {
|
||||||
|
$label .= "<br><b>".$langs->trans("Weight").'</b>: '.$this->weight.' '.measuringUnitString(0, "weight", $this->weight_units);
|
||||||
|
}
|
||||||
|
$labelsize = "";
|
||||||
|
if ($this->length) {
|
||||||
|
$labelsize .= ($labelsize ? " - " : "")."<b>".$langs->trans("Length").'</b>: '.$this->length.' '.measuringUnitString(0, 'size', $this->length_units);
|
||||||
|
}
|
||||||
|
if ($this->width) {
|
||||||
|
$labelsize .= ($labelsize ? " - " : "")."<b>".$langs->trans("Width").'</b>: '.$this->width.' '.measuringUnitString(0, 'size', $this->width_units);
|
||||||
|
}
|
||||||
|
if ($this->height) {
|
||||||
|
$labelsize .= ($labelsize ? " - " : "")."<b>".$langs->trans("Height").'</b>: '.$this->height.' '.measuringUnitString(0, 'size', $this->height_units);
|
||||||
|
}
|
||||||
|
if ($labelsize) $label .= "<br>".$labelsize;
|
||||||
|
|
||||||
|
$labelsurfacevolume = "";
|
||||||
|
if ($this->surface) {
|
||||||
|
$labelsurfacevolume .= ($labelsurfacevolume ? " - " : "")."<b>".$langs->trans("Surface").'</b>: '.$this->surface.' '.measuringUnitString(0, 'surface', $this->surface_units);
|
||||||
|
}
|
||||||
|
if ($this->volume) {
|
||||||
|
$labelsurfacevolume .= ($labelsurfacevolume ? " - " : "")."<b>".$langs->trans("Volume").'</b>: '.$this->volume.' '.measuringUnitString(0, 'volume', $this->volume_units);
|
||||||
|
}
|
||||||
|
if ($labelsurfacevolume) $label .= "<br>".$labelsurfacevolume;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($conf->accounting->enabled) && $this->status) {
|
||||||
|
include_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
|
||||||
|
$label .= '<br><b>'.$langs->trans('ProductAccountancySellCode').':</b> '.length_accountg($this->accountancy_code_sell);
|
||||||
|
$label .= '<br><b>'.$langs->trans('ProductAccountancySellIntraCode').':</b> '.length_accountg($this->accountancy_code_sell_intra);
|
||||||
|
$label .= '<br><b>'.$langs->trans('ProductAccountancySellExportCode').':</b> '.length_accountg($this->accountancy_code_sell_export);
|
||||||
|
}
|
||||||
|
if (!empty($conf->accounting->enabled) && $this->status_buy) {
|
||||||
|
include_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
|
||||||
|
$label .= '<br><b>'.$langs->trans('ProductAccountancyBuyCode').':</b> '.length_accountg($this->accountancy_code_buy);
|
||||||
|
$label .= '<br><b>'.$langs->trans('ProductAccountancyBuyIntraCode').':</b> '.length_accountg($this->accountancy_code_buy_intra);
|
||||||
|
$label .= '<br><b>'.$langs->trans('ProductAccountancyBuyExportCode').':</b> '.length_accountg($this->accountancy_code_buy_export);
|
||||||
|
}
|
||||||
|
|
||||||
$logPrices = $this->listProductFournisseurPriceLog($this->product_fourn_price_id, 'pfpl.datec', 'DESC'); // set sort order here
|
$logPrices = $this->listProductFournisseurPriceLog($this->product_fourn_price_id, 'pfpl.datec', 'DESC'); // set sort order here
|
||||||
if (is_array($logPrices) && count($logPrices) > 0) {
|
if (is_array($logPrices) && count($logPrices) > 0) {
|
||||||
$label .= '<br><br>';
|
$label .= '<br><br>';
|
||||||
|
|||||||
259
htdocs/index.php
259
htdocs/index.php
@ -112,219 +112,6 @@ $boxstatFromHook = '';
|
|||||||
// Load translation files required by page
|
// Load translation files required by page
|
||||||
$langs->loadLangs(array('commercial', 'bills', 'orders', 'contracts'));
|
$langs->loadLangs(array('commercial', 'bills', 'orders', 'contracts'));
|
||||||
|
|
||||||
// Load global statistics of objects
|
|
||||||
if (empty($user->socid) && empty($conf->global->MAIN_DISABLE_GLOBAL_BOXSTATS))
|
|
||||||
{
|
|
||||||
$object = new stdClass();
|
|
||||||
$parameters = array();
|
|
||||||
$action = '';
|
|
||||||
$reshook = $hookmanager->executeHooks('addStatisticLine', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
|
|
||||||
$boxstatFromHook = $hookmanager->resPrint;
|
|
||||||
|
|
||||||
if (empty($reshook))
|
|
||||||
{
|
|
||||||
// Cle array returned by the method load_state_board for each line
|
|
||||||
$keys = array(
|
|
||||||
'users',
|
|
||||||
'members',
|
|
||||||
'expensereports',
|
|
||||||
'holidays',
|
|
||||||
'customers',
|
|
||||||
'prospects',
|
|
||||||
'suppliers',
|
|
||||||
'contacts',
|
|
||||||
'products',
|
|
||||||
'services',
|
|
||||||
'projects',
|
|
||||||
'proposals',
|
|
||||||
'orders',
|
|
||||||
'invoices',
|
|
||||||
'donations',
|
|
||||||
'supplier_proposals',
|
|
||||||
'supplier_orders',
|
|
||||||
'supplier_invoices',
|
|
||||||
'contracts',
|
|
||||||
'interventions',
|
|
||||||
'ticket'
|
|
||||||
);
|
|
||||||
|
|
||||||
// Condition to be checked for each display line dashboard
|
|
||||||
$conditions = array(
|
|
||||||
'users' => $user->rights->user->user->lire,
|
|
||||||
'members' => !empty($conf->adherent->enabled) && $user->rights->adherent->lire,
|
|
||||||
'customers' => !empty($conf->societe->enabled) && $user->rights->societe->lire && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS_STATS),
|
|
||||||
'prospects' => !empty($conf->societe->enabled) && $user->rights->societe->lire && empty($conf->global->SOCIETE_DISABLE_PROSPECTS) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS_STATS),
|
|
||||||
'suppliers' => !empty($conf->fournisseur->enabled) && $user->rights->fournisseur->lire && empty($conf->global->SOCIETE_DISABLE_SUPPLIERS_STATS),
|
|
||||||
'contacts' => !empty($conf->societe->enabled) && $user->rights->societe->contact->lire,
|
|
||||||
'products' => !empty($conf->product->enabled) && $user->rights->produit->lire,
|
|
||||||
'services' => !empty($conf->service->enabled) && $user->rights->service->lire,
|
|
||||||
'proposals' => !empty($conf->propal->enabled) && $user->rights->propale->lire,
|
|
||||||
'orders' => !empty($conf->commande->enabled) && $user->rights->commande->lire,
|
|
||||||
'invoices' => !empty($conf->facture->enabled) && $user->rights->facture->lire,
|
|
||||||
'donations' => !empty($conf->don->enabled) && $user->rights->don->lire,
|
|
||||||
'contracts' => !empty($conf->contrat->enabled) && $user->rights->contrat->lire,
|
|
||||||
'interventions' => !empty($conf->ficheinter->enabled) && $user->rights->ficheinter->lire,
|
|
||||||
'supplier_orders' => !empty($conf->supplier_order->enabled) && $user->rights->fournisseur->commande->lire && empty($conf->global->SOCIETE_DISABLE_SUPPLIERS_ORDERS_STATS),
|
|
||||||
'supplier_invoices' => !empty($conf->supplier_invoice->enabled) && $user->rights->fournisseur->facture->lire && empty($conf->global->SOCIETE_DISABLE_SUPPLIERS_INVOICES_STATS),
|
|
||||||
'supplier_proposals' => !empty($conf->supplier_proposal->enabled) && $user->rights->supplier_proposal->lire && empty($conf->global->SOCIETE_DISABLE_SUPPLIERS_PROPOSAL_STATS),
|
|
||||||
'projects' => !empty($conf->projet->enabled) && $user->rights->projet->lire,
|
|
||||||
'expensereports' => !empty($conf->expensereport->enabled) && $user->rights->expensereport->lire,
|
|
||||||
'holidays' => !empty($conf->holiday->enabled) && $user->rights->holiday->read,
|
|
||||||
'ticket' => !empty($conf->ticket->enabled) && $user->rights->ticket->read
|
|
||||||
);
|
|
||||||
// Class file containing the method load_state_board for each line
|
|
||||||
$includes = array(
|
|
||||||
'users' => DOL_DOCUMENT_ROOT."/user/class/user.class.php",
|
|
||||||
'members' => DOL_DOCUMENT_ROOT."/adherents/class/adherent.class.php",
|
|
||||||
'customers' => DOL_DOCUMENT_ROOT."/societe/class/client.class.php",
|
|
||||||
'prospects' => DOL_DOCUMENT_ROOT."/societe/class/client.class.php",
|
|
||||||
'suppliers' => DOL_DOCUMENT_ROOT."/fourn/class/fournisseur.class.php",
|
|
||||||
'contacts' => DOL_DOCUMENT_ROOT."/contact/class/contact.class.php",
|
|
||||||
'products' => DOL_DOCUMENT_ROOT."/product/class/product.class.php",
|
|
||||||
'services' => DOL_DOCUMENT_ROOT."/product/class/product.class.php",
|
|
||||||
'proposals' => DOL_DOCUMENT_ROOT."/comm/propal/class/propal.class.php",
|
|
||||||
'orders' => DOL_DOCUMENT_ROOT."/commande/class/commande.class.php",
|
|
||||||
'invoices' => DOL_DOCUMENT_ROOT."/compta/facture/class/facture.class.php",
|
|
||||||
'donations' => DOL_DOCUMENT_ROOT."/don/class/don.class.php",
|
|
||||||
'contracts' => DOL_DOCUMENT_ROOT."/contrat/class/contrat.class.php",
|
|
||||||
'interventions' => DOL_DOCUMENT_ROOT."/fichinter/class/fichinter.class.php",
|
|
||||||
'supplier_orders' => DOL_DOCUMENT_ROOT."/fourn/class/fournisseur.commande.class.php",
|
|
||||||
'supplier_invoices' => DOL_DOCUMENT_ROOT."/fourn/class/fournisseur.facture.class.php",
|
|
||||||
'supplier_proposals' => DOL_DOCUMENT_ROOT."/supplier_proposal/class/supplier_proposal.class.php",
|
|
||||||
'projects' => DOL_DOCUMENT_ROOT."/projet/class/project.class.php",
|
|
||||||
'expensereports' => DOL_DOCUMENT_ROOT."/expensereport/class/expensereport.class.php",
|
|
||||||
'holidays' => DOL_DOCUMENT_ROOT."/holiday/class/holiday.class.php",
|
|
||||||
'ticket' => DOL_DOCUMENT_ROOT."/ticket/class/ticket.class.php"
|
|
||||||
);
|
|
||||||
// Name class containing the method load_state_board for each line
|
|
||||||
$classes = array(
|
|
||||||
'users' => 'User',
|
|
||||||
'members' => 'Adherent',
|
|
||||||
'customers' => 'Client',
|
|
||||||
'prospects' => 'Client',
|
|
||||||
'suppliers' => 'Fournisseur',
|
|
||||||
'contacts' => 'Contact',
|
|
||||||
'products' => 'Product',
|
|
||||||
'services' => 'ProductService',
|
|
||||||
'proposals' => 'Propal',
|
|
||||||
'orders' => 'Commande',
|
|
||||||
'invoices' => 'Facture',
|
|
||||||
'donations' => 'Don',
|
|
||||||
'contracts' => 'Contrat',
|
|
||||||
'interventions' => 'Fichinter',
|
|
||||||
'supplier_orders' => 'CommandeFournisseur',
|
|
||||||
'supplier_invoices' => 'FactureFournisseur',
|
|
||||||
'supplier_proposals' => 'SupplierProposal',
|
|
||||||
'projects' => 'Project',
|
|
||||||
'expensereports' => 'ExpenseReport',
|
|
||||||
'holidays' => 'Holiday',
|
|
||||||
'ticket' => 'Ticket',
|
|
||||||
);
|
|
||||||
// Translation keyword
|
|
||||||
$titres = array(
|
|
||||||
'users' => "Users",
|
|
||||||
'members' => "Members",
|
|
||||||
'customers' => "ThirdPartyCustomersStats",
|
|
||||||
'prospects' => "ThirdPartyProspectsStats",
|
|
||||||
'suppliers' => "Suppliers",
|
|
||||||
'contacts' => "Contacts",
|
|
||||||
'products' => "Products",
|
|
||||||
'services' => "Services",
|
|
||||||
'proposals' => "CommercialProposalsShort",
|
|
||||||
'orders' => "CustomersOrders",
|
|
||||||
'invoices' => "BillsCustomers",
|
|
||||||
'donations' => "Donations",
|
|
||||||
'contracts' => "Contracts",
|
|
||||||
'interventions' => "Interventions",
|
|
||||||
'supplier_orders' => "SuppliersOrders",
|
|
||||||
'supplier_invoices' => "SuppliersInvoices",
|
|
||||||
'supplier_proposals' => "SupplierProposalShort",
|
|
||||||
'projects' => "Projects",
|
|
||||||
'expensereports' => "ExpenseReports",
|
|
||||||
'holidays' => "Holidays",
|
|
||||||
'ticket' => "Ticket",
|
|
||||||
);
|
|
||||||
// Dashboard Link lines
|
|
||||||
$links = array(
|
|
||||||
'users' => DOL_URL_ROOT.'/user/list.php',
|
|
||||||
'members' => DOL_URL_ROOT.'/adherents/list.php?statut=1&mainmenu=members',
|
|
||||||
'customers' => DOL_URL_ROOT.'/societe/list.php?type=c&mainmenu=companies',
|
|
||||||
'prospects' => DOL_URL_ROOT.'/societe/list.php?type=p&mainmenu=companies',
|
|
||||||
'suppliers' => DOL_URL_ROOT.'/societe/list.php?type=f&mainmenu=companies',
|
|
||||||
'contacts' => DOL_URL_ROOT.'/contact/list.php?mainmenu=companies',
|
|
||||||
'products' => DOL_URL_ROOT.'/product/list.php?type=0&mainmenu=products',
|
|
||||||
'services' => DOL_URL_ROOT.'/product/list.php?type=1&mainmenu=products',
|
|
||||||
'proposals' => DOL_URL_ROOT.'/comm/propal/list.php?mainmenu=commercial&leftmenu=propals',
|
|
||||||
'orders' => DOL_URL_ROOT.'/commande/list.php?mainmenu=commercial&leftmenu=orders',
|
|
||||||
'invoices' => DOL_URL_ROOT.'/compta/facture/list.php?mainmenu=billing&leftmenu=customers_bills',
|
|
||||||
'donations' => DOL_URL_ROOT.'/don/list.php?leftmenu=donations',
|
|
||||||
'contracts' => DOL_URL_ROOT.'/contrat/list.php?mainmenu=commercial&leftmenu=contracts',
|
|
||||||
'interventions' => DOL_URL_ROOT.'/fichinter/list.php?mainmenu=commercial&leftmenu=ficheinter',
|
|
||||||
'supplier_orders' => DOL_URL_ROOT.'/fourn/commande/list.php?mainmenu=commercial&leftmenu=orders_suppliers',
|
|
||||||
'supplier_invoices' => DOL_URL_ROOT.'/fourn/facture/list.php?mainmenu=billing&leftmenu=suppliers_bills',
|
|
||||||
'supplier_proposals' => DOL_URL_ROOT.'/supplier_proposal/list.php?mainmenu=commercial&leftmenu=',
|
|
||||||
'projects' => DOL_URL_ROOT.'/projet/list.php?mainmenu=project',
|
|
||||||
'expensereports' => DOL_URL_ROOT.'/expensereport/list.php?mainmenu=hrm&leftmenu=expensereport',
|
|
||||||
'holidays' => DOL_URL_ROOT.'/holiday/list.php?mainmenu=hrm&leftmenu=holiday',
|
|
||||||
'ticket' => DOL_URL_ROOT.'/ticket/list.php?leftmenu=ticket'
|
|
||||||
);
|
|
||||||
// Translation lang files
|
|
||||||
$langfile = array(
|
|
||||||
'customers' => "companies",
|
|
||||||
'contacts' => "companies",
|
|
||||||
'services' => "products",
|
|
||||||
'proposals' => "propal",
|
|
||||||
'invoices' => "bills",
|
|
||||||
'supplier_orders' => "orders",
|
|
||||||
'supplier_invoices' => "bills",
|
|
||||||
'supplier_proposals' => 'supplier_proposal',
|
|
||||||
'expensereports' => "trips",
|
|
||||||
'holidays' => "holiday",
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
// Loop and displays each line of table
|
|
||||||
$boardloaded = array();
|
|
||||||
foreach ($keys as $val)
|
|
||||||
{
|
|
||||||
if ($conditions[$val])
|
|
||||||
{
|
|
||||||
$boxstatItem = '';
|
|
||||||
$class = $classes[$val];
|
|
||||||
// Search in cache if load_state_board is already realized
|
|
||||||
$classkeyforcache = $class;
|
|
||||||
if ($classkeyforcache == 'ProductService') $classkeyforcache = 'Product'; // ProductService use same load_state_board than Product
|
|
||||||
|
|
||||||
if (!isset($boardloaded[$classkeyforcache]) || !is_object($boardloaded[$classkeyforcache]))
|
|
||||||
{
|
|
||||||
include_once $includes[$val]; // Loading a class cost around 1Mb
|
|
||||||
|
|
||||||
$board = new $class($db);
|
|
||||||
$board->load_state_board();
|
|
||||||
$boardloaded[$class] = $board;
|
|
||||||
} else {
|
|
||||||
$board = $boardloaded[$classkeyforcache];
|
|
||||||
}
|
|
||||||
|
|
||||||
$langs->load(empty($langfile[$val]) ? $val : $langfile[$val]);
|
|
||||||
|
|
||||||
$text = $langs->trans($titres[$val]);
|
|
||||||
$boxstatItem .= '<a href="'.$links[$val].'" class="boxstatsindicator thumbstat nobold nounderline">';
|
|
||||||
$boxstatItem .= '<div class="boxstats">';
|
|
||||||
$boxstatItem .= '<span class="boxstatstext" title="'.dol_escape_htmltag($text).'">'.$text.'</span><br>';
|
|
||||||
$boxstatItem .= '<span class="boxstatsindicator">'.img_object("", $board->picto, 'class="inline-block"').' '.(!empty($board->nb[$val]) ? $board->nb[$val] : 0).'</span>';
|
|
||||||
$boxstatItem .= '</div>';
|
|
||||||
$boxstatItem .= '</a>';
|
|
||||||
|
|
||||||
$boxstatItems[$val] = $boxstatItem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Dolibarr Working Board with weather
|
// Dolibarr Working Board with weather
|
||||||
|
|
||||||
if (empty($conf->global->MAIN_DISABLE_GLOBAL_WORKBOARD)) {
|
if (empty($conf->global->MAIN_DISABLE_GLOBAL_WORKBOARD)) {
|
||||||
@ -901,54 +688,8 @@ $boxlist .= $resultboxes['boxlista'];
|
|||||||
|
|
||||||
$boxlist .= '</div>';
|
$boxlist .= '</div>';
|
||||||
|
|
||||||
|
|
||||||
if (empty($user->socid) && empty($conf->global->MAIN_DISABLE_GLOBAL_BOXSTATS))
|
|
||||||
{
|
|
||||||
// Remove allready present info in new dash board
|
|
||||||
if (!empty($conf->global->MAIN_INCLUDE_GLOBAL_STATS_IN_OPENED_DASHBOARD) && is_array($boxstatItems) && count($boxstatItems) > 0) {
|
|
||||||
foreach ($boxstatItems as $boxstatItemKey => $boxstatItemHtml) {
|
|
||||||
if (in_array($boxstatItemKey, $globalStatInTopOpenedDashBoard)) {
|
|
||||||
unset($boxstatItems[$boxstatItemKey]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($boxstatFromHook) || !empty($boxstatItems)) {
|
|
||||||
$boxstat = '<!-- Database statistics -->'."\n";
|
|
||||||
$boxstat .= '<div class="box">';
|
|
||||||
$boxstat .= '<table summary="'.dol_escape_htmltag($langs->trans("DolibarrStateBoard")).'" class="noborder boxtable boxtablenobottom nohover widgetstats" width="100%">';
|
|
||||||
$boxstat .= '<tr class="liste_titre box_titre">';
|
|
||||||
$boxstat .= '<td>';
|
|
||||||
$boxstat .= '<div class="inline-block valignmiddle">'.$langs->trans("DolibarrStateBoard").'</div>';
|
|
||||||
$boxstat .= '</td>';
|
|
||||||
$boxstat .= '</tr>';
|
|
||||||
$boxstat .= '<tr class="nobottom nohover"><td class="tdboxstats nohover flexcontainer">';
|
|
||||||
|
|
||||||
$boxstat .= $boxstatFromHook;
|
|
||||||
|
|
||||||
if (is_array($boxstatItems) && count($boxstatItems) > 0)
|
|
||||||
{
|
|
||||||
$boxstat .= implode('', $boxstatItems);
|
|
||||||
}
|
|
||||||
|
|
||||||
$boxstat .= '<a class="boxstatsindicator thumbstat nobold nounderline"><div class="boxstatsempty"></div></a>';
|
|
||||||
$boxstat .= '<a class="boxstatsindicator thumbstat nobold nounderline"><div class="boxstatsempty"></div></a>';
|
|
||||||
$boxstat .= '<a class="boxstatsindicator thumbstat nobold nounderline"><div class="boxstatsempty"></div></a>';
|
|
||||||
$boxstat .= '<a class="boxstatsindicator thumbstat nobold nounderline"><div class="boxstatsempty"></div></a>';
|
|
||||||
$boxstat .= '<a class="boxstatsindicator thumbstat nobold nounderline"><div class="boxstatsempty"></div></a>';
|
|
||||||
$boxstat .= '<a class="boxstatsindicator thumbstat nobold nounderline"><div class="boxstatsempty"></div></a>';
|
|
||||||
$boxstat .= '<a class="boxstatsindicator thumbstat nobold nounderline"><div class="boxstatsempty"></div></a>';
|
|
||||||
$boxstat .= '<a class="boxstatsindicator thumbstat nobold nounderline"><div class="boxstatsempty"></div></a>';
|
|
||||||
|
|
||||||
$boxstat .= '</td></tr>';
|
|
||||||
$boxstat .= '</table>';
|
|
||||||
$boxstat .= '</div>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$boxlist .= '<div class="secondcolumn fichehalfright boxhalfright" id="boxhalfright">';
|
$boxlist .= '<div class="secondcolumn fichehalfright boxhalfright" id="boxhalfright">';
|
||||||
|
|
||||||
$boxlist .= $boxstat;
|
|
||||||
$boxlist .= $resultboxes['boxlistb'];
|
$boxlist .= $resultboxes['boxlistb'];
|
||||||
|
|
||||||
$boxlist .= '</div>';
|
$boxlist .= '</div>';
|
||||||
|
|||||||
@ -47,6 +47,10 @@ ALTER TABLE llx_bank_account ADD COLUMN ics_transfer varchar(32) NULL;
|
|||||||
|
|
||||||
ALTER TABLE llx_facture MODIFY COLUMN date_valid DATETIME NULL DEFAULT NULL;
|
ALTER TABLE llx_facture MODIFY COLUMN date_valid DATETIME NULL DEFAULT NULL;
|
||||||
|
|
||||||
|
|
||||||
|
-- VMYSQL4.1 INSERT INTO llx_boxes_def (file, entity) SELECT 'box_dolibarr_state_board.php', 1 FROM DUAL WHERE NOT EXISTS (SELECT * FROM llx_boxes_def WHERE file = 'box_dolibarr_state_board.php' AND entity = 1);
|
||||||
|
|
||||||
|
|
||||||
ALTER TABLE llx_website ADD COLUMN lastaccess datetime NULL;
|
ALTER TABLE llx_website ADD COLUMN lastaccess datetime NULL;
|
||||||
ALTER TABLE llx_website ADD COLUMN pageviews_month BIGINT UNSIGNED DEFAULT 0;
|
ALTER TABLE llx_website ADD COLUMN pageviews_month BIGINT UNSIGNED DEFAULT 0;
|
||||||
ALTER TABLE llx_website ADD COLUMN pageviews_total BIGINT UNSIGNED DEFAULT 0;
|
ALTER TABLE llx_website ADD COLUMN pageviews_total BIGINT UNSIGNED DEFAULT 0;
|
||||||
@ -100,3 +104,4 @@ ALTER TABLE llx_propal ADD INDEX idx_propal_fk_warehouse(fk_warehouse);
|
|||||||
|
|
||||||
ALTER TABLE llx_product_customer_price ADD COLUMN ref_customer varchar(30);
|
ALTER TABLE llx_product_customer_price ADD COLUMN ref_customer varchar(30);
|
||||||
ALTER TABLE llx_product_customer_price_log ADD COLUMN ref_customer varchar(30);
|
ALTER TABLE llx_product_customer_price_log ADD COLUMN ref_customer varchar(30);
|
||||||
|
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
* Copyright (C) 2016 Charlie Benke <charlie@patas-monkey.com>
|
* Copyright (C) 2016 Charlie Benke <charlie@patas-monkey.com>
|
||||||
* Copyright (C) 2016 Meziane Sof <virtualsof@yahoo.fr>
|
* Copyright (C) 2016 Meziane Sof <virtualsof@yahoo.fr>
|
||||||
* Copyright (C) 2017 Josep Lluís Amador <joseplluis@lliuretic.cat>
|
* Copyright (C) 2017 Josep Lluís Amador <joseplluis@lliuretic.cat>
|
||||||
* Copyright (C) 2019 Frédéric France <frederic.france@netlogic.fr>
|
* Copyright (C) 2019-2021 Frédéric France <frederic.france@netlogic.fr>
|
||||||
* Copyright (C) 2019-2020 Thibault FOUCART <support@ptibogxiv.net>
|
* Copyright (C) 2019-2020 Thibault FOUCART <support@ptibogxiv.net>
|
||||||
* Copyright (C) 2020 Pierre Ardoin <mapiolca@me.com>
|
* Copyright (C) 2020 Pierre Ardoin <mapiolca@me.com>
|
||||||
*
|
*
|
||||||
@ -1311,12 +1311,11 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action))
|
|||||||
// Accountancy_code_buy
|
// Accountancy_code_buy
|
||||||
print '<tr><td>'.$langs->trans("ProductAccountancyBuyCode").'</td>';
|
print '<tr><td>'.$langs->trans("ProductAccountancyBuyCode").'</td>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
if ($type == 0)
|
if ($type == 0) {
|
||||||
{
|
$accountancy_code_buy = (GETPOST('accountancy_code_buy', 'alpha') ? (GETPOST('accountancy_code_buy', 'alpha')) : $conf->global->ACCOUNTING_PRODUCT_BUY_ACCOUNT);
|
||||||
$accountancy_code_buy = (GETPOST('accountancy_code_buy', 'alpha') ? (GETPOST('accountancy_code_buy', 'alpha')) : $conf->global->ACCOUNTING_PRODUCT_BUY_ACCOUNT);
|
} else {
|
||||||
} else {
|
$accountancy_code_buy = (GETPOST('accountancy_code_buy', 'alpha') ? (GETPOST('accountancy_code_buy', 'alpha')) : $conf->global->ACCOUNTING_SERVICE_BUY_ACCOUNT);
|
||||||
$accountancy_code_buy = GETPOST('accountancy_code_buy', 'alpha');
|
}
|
||||||
}
|
|
||||||
print $formaccounting->select_account($accountancy_code_buy, 'accountancy_code_buy', 1, null, 1, 1, '');
|
print $formaccounting->select_account($accountancy_code_buy, 'accountancy_code_buy', 1, null, 1, 1, '');
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
|
|||||||
@ -252,7 +252,7 @@ if (empty($reshook))
|
|||||||
'FactureFournisseur' => '/fourn/class/fournisseur.facture.class.php',
|
'FactureFournisseur' => '/fourn/class/fournisseur.facture.class.php',
|
||||||
'SupplierProposal' => '/supplier_proposal/class/supplier_proposal.class.php',
|
'SupplierProposal' => '/supplier_proposal/class/supplier_proposal.class.php',
|
||||||
'ProductFournisseur' => '/fourn/class/fournisseur.product.class.php',
|
'ProductFournisseur' => '/fourn/class/fournisseur.product.class.php',
|
||||||
'Livraison' => '/delivery/class/delivery.class.php',
|
'Delivery' => '/delivery/class/delivery.class.php',
|
||||||
'Product' => '/product/class/product.class.php',
|
'Product' => '/product/class/product.class.php',
|
||||||
'Project' => '/projet/class/project.class.php',
|
'Project' => '/projet/class/project.class.php',
|
||||||
'Ticket' => '/ticket/class/ticket.class.php',
|
'Ticket' => '/ticket/class/ticket.class.php',
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user