Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop
This commit is contained in:
commit
25ba9d2c97
@ -6,6 +6,7 @@
|
||||
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
||||
* Copyright (C) 2009-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* Copyright (C) 2014 Alexandre Spangaro <alexandre.spangaro@gmail.com>
|
||||
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
||||
*
|
||||
* 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
|
||||
@ -1725,17 +1726,15 @@ class Adherent extends CommonObject
|
||||
* Load indicators for dashboard (this->nbtodo and this->nbtodolate)
|
||||
*
|
||||
* @param User $user Objet user
|
||||
* @return int <0 if KO, >0 if OK
|
||||
* @return WorkboardResponse|int <0 if KO, WorkboardResponse if OK
|
||||
*/
|
||||
function load_board($user)
|
||||
{
|
||||
global $conf;
|
||||
|
||||
$now=dol_now();
|
||||
global $conf, $langs;
|
||||
|
||||
if ($user->societe_id) return -1; // protection pour eviter appel par utilisateur externe
|
||||
|
||||
$this->nbtodo=$this->nbtodolate=0;
|
||||
$now=dol_now();
|
||||
|
||||
$sql = "SELECT a.rowid, a.datefin";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."adherent as a";
|
||||
@ -1746,12 +1745,24 @@ class Adherent extends CommonObject
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$langs->load("members");
|
||||
|
||||
$response = new WorkboardResponse();
|
||||
$response->warning_delay=$conf->adherent->cotisation->warning_delay/60/60/24;
|
||||
$response->label=$langs->trans("MembersWithSubscriptionToReceive");
|
||||
$response->url=DOL_URL_ROOT.'/adherents/list.php?mainmenu=members&statut=1';
|
||||
$response->img=img_object($langs->trans("Members"),"user");
|
||||
|
||||
while ($obj=$this->db->fetch_object($resql))
|
||||
{
|
||||
$this->nbtodo++;
|
||||
if ($this->db->jdate($obj->datefin) < ($now - $conf->adherent->cotisation->warning_delay)) $this->nbtodolate++;
|
||||
$response->nbtodo++;
|
||||
|
||||
if ($this->db->jdate($obj->datefin) < ($now - $conf->adherent->cotisation->warning_delay)) {
|
||||
$response->nbtodolate++;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
|
||||
return $response;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es>
|
||||
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
||||
*
|
||||
* 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
|
||||
@ -712,18 +713,14 @@ class ActionComm extends CommonObject
|
||||
}
|
||||
|
||||
/**
|
||||
* Load indicators for dashboard (this->nbtodo and this->nbtodolate)
|
||||
* Load indicators for dashboard (this->nbtodo and this->nbtodolate)
|
||||
*
|
||||
* @param User $user Objet user
|
||||
* @return int <0 if KO, >0 if OK
|
||||
* @param User $user Objet user
|
||||
* @return WorkboardResponse|int <0 if KO, WorkboardResponse if OK
|
||||
*/
|
||||
function load_board($user)
|
||||
{
|
||||
global $conf, $user;
|
||||
|
||||
$now=dol_now();
|
||||
|
||||
$this->nbtodo=$this->nbtodolate=0;
|
||||
global $conf, $user, $langs;
|
||||
|
||||
$sql = "SELECT a.id, a.datep as dp";
|
||||
$sql.= " FROM (".MAIN_DB_PREFIX."actioncomm as a";
|
||||
@ -739,13 +736,25 @@ class ActionComm extends CommonObject
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$now = dol_now();
|
||||
|
||||
$response = new WorkboardResponse();
|
||||
$response->warning_delay = $conf->actions->warning_delay/60/60/24;
|
||||
$response->label = $langs->trans("ActionsToDo");
|
||||
$response->url = DOL_URL_ROOT.'/comm/action/listactions.php?status=todo&mainmenu=agenda';
|
||||
$response->img = img_object($langs->trans("Actions"),"action");
|
||||
|
||||
// This assignment in condition is not a bug. It allows walking the results.
|
||||
while ($obj=$this->db->fetch_object($resql))
|
||||
{
|
||||
$this->nbtodo++;
|
||||
if (isset($obj->dp) && $this->db->jdate($obj->dp) < ($now - $conf->actions->warning_delay)) $this->nbtodolate++;
|
||||
$response->nbtodo++;
|
||||
|
||||
if (isset($obj->dp) && $this->db->jdate($obj->dp) < ($now - $conf->actions->warning_delay)) {
|
||||
$response->nbtodolate++;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
|
||||
return $response;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -140,9 +140,7 @@ if (empty($reshook))
|
||||
{
|
||||
if (empty($conf->global->MAILING_LIMIT_SENDBYWEB))
|
||||
{
|
||||
//TODO: What is this for?
|
||||
// Pour des raisons de securite, on ne permet pas cette fonction via l'IHM,
|
||||
// on affiche donc juste un message
|
||||
// As security measure, we don't allow send from the GUI
|
||||
setEventMessage($langs->trans("MailingNeedCommand"), 'warnings');
|
||||
setEventMessage('<textarea cols="70" rows="'.ROWS_2.'" wrap="soft">php ./scripts/emailings/mailing-send.php '.$object->id.'</textarea>', 'warnings');
|
||||
setEventMessage($langs->trans("MailingNeedCommand2"), 'warnings');
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
* Copyright (C) 2010-2011 Philippe Grand <philippe.grand@atoo-net.com>
|
||||
* Copyright (C) 2012-2014 Christophe Battarel <christophe.battarel@altairis.fr>
|
||||
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
|
||||
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.com>
|
||||
* Copyright (C) 2014-2015 Marcos García <marcosgdf@gmail.com>
|
||||
*
|
||||
* 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
|
||||
@ -116,10 +116,6 @@ class Propal extends CommonObject
|
||||
var $labelstatut=array();
|
||||
var $labelstatut_short=array();
|
||||
|
||||
// Pour board
|
||||
var $nbtodo;
|
||||
var $nbtodolate;
|
||||
|
||||
var $specimen;
|
||||
|
||||
|
||||
@ -2349,15 +2345,12 @@ class Propal extends CommonObject
|
||||
*
|
||||
* @param User $user Object user
|
||||
* @param int $mode "opened" for proposal to close, "signed" for proposal to invoice
|
||||
* @return int <0 if KO, >0 if OK
|
||||
* @return WorkboardResponse|int <0 if KO, WorkboardResponse if OK
|
||||
*/
|
||||
function load_board($user,$mode)
|
||||
{
|
||||
global $conf, $user;
|
||||
global $conf, $user, $langs;
|
||||
|
||||
$now=dol_now();
|
||||
|
||||
$this->nbtodo=$this->nbtodolate=0;
|
||||
$clause = " WHERE";
|
||||
|
||||
$sql = "SELECT p.rowid, p.ref, p.datec as datec, p.fin_validite as datefin";
|
||||
@ -2376,25 +2369,43 @@ class Propal extends CommonObject
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
if ($mode == 'opened') $delay_warning=$conf->propal->cloture->warning_delay;
|
||||
if ($mode == 'signed') $delay_warning=$conf->propal->facturation->warning_delay;
|
||||
$langs->load("propal");
|
||||
$now=dol_now();
|
||||
|
||||
if ($mode == 'opened') {
|
||||
$delay_warning=$conf->propal->cloture->warning_delay;
|
||||
$statut = 1;
|
||||
$label = $langs->trans("PropalsToClose");
|
||||
}
|
||||
if ($mode == 'signed') {
|
||||
$delay_warning=$conf->propal->facturation->warning_delay;
|
||||
$statut = 2;
|
||||
$label = $langs->trans("PropalsToBill");
|
||||
}
|
||||
|
||||
$response = new WorkboardResponse();
|
||||
$response->warning_delay = $delay_warning;
|
||||
$response->label = $label;
|
||||
$response->url = DOL_URL_ROOT.'/comm/propal/list.php?viewstatut='.$statut;
|
||||
$response->img = img_object($langs->trans("Propals"),"propal");
|
||||
|
||||
// This assignment in condition is not a bug. It allows walking the results.
|
||||
while ($obj=$this->db->fetch_object($resql))
|
||||
{
|
||||
$this->nbtodo++;
|
||||
$response->nbtodo++;
|
||||
if ($mode == 'opened')
|
||||
{
|
||||
$datelimit = $this->db->jdate($obj->datefin);
|
||||
if ($datelimit < ($now - $delay_warning))
|
||||
{
|
||||
$this->nbtodolate++;
|
||||
$response->nbtodolate++;
|
||||
}
|
||||
}
|
||||
// TODO Definir regle des propales a facturer en retard
|
||||
// if ($mode == 'signed' && ! count($this->FactureListeArray($obj->rowid))) $this->nbtodolate++;
|
||||
}
|
||||
return 1;
|
||||
|
||||
return $response;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
* Copyright (C) 2011 Jean Heimburger <jean@tiaris.info>
|
||||
* Copyright (C) 2012-2014 Christophe Battarel <christophe.battarel@altairis.fr>
|
||||
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
|
||||
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.com>
|
||||
* Copyright (C) 2014-2015 Marcos García <marcosgdf@gmail.com>
|
||||
*
|
||||
* 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
|
||||
@ -106,10 +106,6 @@ class Commande extends CommonOrder
|
||||
|
||||
var $lines = array();
|
||||
|
||||
// Pour board
|
||||
var $nbtodo;
|
||||
var $nbtodolate;
|
||||
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
@ -2729,15 +2725,12 @@ class Commande extends CommonOrder
|
||||
* Load indicators for dashboard (this->nbtodo and this->nbtodolate)
|
||||
*
|
||||
* @param User $user Object user
|
||||
* @return int <0 if KO, >0 if OK
|
||||
* @return WorkboardResponse|int <0 if KO, WorkboardResponse if OK
|
||||
*/
|
||||
function load_board($user)
|
||||
{
|
||||
global $conf, $user;
|
||||
global $conf, $user, $langs;
|
||||
|
||||
$now=dol_now();
|
||||
|
||||
$this->nbtodo=$this->nbtodolate=0;
|
||||
$clause = " WHERE";
|
||||
|
||||
$sql = "SELECT c.rowid, c.date_creation as datec, c.date_livraison as delivery_date, c.fk_statut";
|
||||
@ -2756,14 +2749,26 @@ class Commande extends CommonOrder
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$now=dol_now();
|
||||
|
||||
$response = new WorkboardResponse();
|
||||
$response->warning_delay=$conf->commande->client->warning_delay/60/60/24;
|
||||
$response->label=$langs->trans("OrdersToProcess");
|
||||
$response->url=DOL_URL_ROOT.'/commande/list.php?viewstatut=-3';
|
||||
$response->img=img_object($langs->trans("Orders"),"order");
|
||||
|
||||
while ($obj=$this->db->fetch_object($resql))
|
||||
{
|
||||
$this->nbtodo++;
|
||||
$response->nbtodo++;
|
||||
|
||||
$date_to_test = empty($obj->delivery_date) ? $obj->datec : $obj->delivery_date;
|
||||
if ($obj->fk_statut != 3 && $this->db->jdate($date_to_test) < ($now - $conf->commande->client->warning_delay)) $this->nbtodolate++;
|
||||
|
||||
if ($obj->fk_statut != 3 && $this->db->jdate($date_to_test) < ($now - $conf->commande->client->warning_delay)) {
|
||||
$response->nbtodolate++;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
|
||||
return $response;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -5,6 +5,7 @@
|
||||
* Copyright (C) 2004 Christophe Combelles <ccomb@free.fr>
|
||||
* Copyright (C) 2005-2010 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* Copytight (C) 2013 Florian Henry <florian.henry@open-concept.pro>
|
||||
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
||||
*
|
||||
* 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
|
||||
@ -881,18 +882,14 @@ class Account extends CommonObject
|
||||
*
|
||||
* @param User $user Objet user
|
||||
* @param int $filteraccountid To get info for a particular account id
|
||||
* @return int <0 if KO, 0=Nothing to show, >0 if OK
|
||||
* @return WorkboardResponse|int <0 if KO, WorkboardResponse if OK
|
||||
*/
|
||||
function load_board($user,$filteraccountid=0)
|
||||
{
|
||||
global $conf;
|
||||
global $conf, $langs;
|
||||
|
||||
if ($user->societe_id) return -1; // protection pour eviter appel par utilisateur externe
|
||||
|
||||
$now=dol_now();
|
||||
|
||||
$this->nbtodo=$this->nbtodolate=0;
|
||||
|
||||
$sql = "SELECT b.rowid, b.datev as datefin";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."bank as b,";
|
||||
$sql.= " ".MAIN_DB_PREFIX."bank_account as ba";
|
||||
@ -902,17 +899,27 @@ class Account extends CommonObject
|
||||
$sql.= " AND (ba.rappro = 1 AND ba.courant != 2)"; // Compte rapprochable
|
||||
if ($filteraccountid) $sql.=" AND ba.rowid = ".$filteraccountid;
|
||||
|
||||
//print $sql;
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$num=$this->db->num_rows($resql);
|
||||
$langs->load("banks");
|
||||
$now=dol_now();
|
||||
|
||||
$response = new WorkboardResponse();
|
||||
$response->warning_delay=$conf->bank->rappro->warning_delay/60/60/24;
|
||||
$response->label=$langs->trans("TransactionsToConciliate");
|
||||
$response->url=DOL_URL_ROOT.'/compta/bank/index.php?leftmenu=bank&mainmenu=bank';
|
||||
$response->img=img_object($langs->trans("TransactionsToConciliate"),"payment");
|
||||
|
||||
while ($obj=$this->db->fetch_object($resql))
|
||||
{
|
||||
$this->nbtodo++;
|
||||
if ($this->db->jdate($obj->datefin) < ($now - $conf->bank->rappro->warning_delay)) $this->nbtodolate++;
|
||||
$response->nbtodo++;
|
||||
if ($this->db->jdate($obj->datefin) < ($now - $conf->bank->rappro->warning_delay)) {
|
||||
$response->nbtodolate++;
|
||||
}
|
||||
}
|
||||
return $num;
|
||||
|
||||
return $response;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
* Copyright (C) 2007 Franky Van Liedekerke <franky.van.liedekerke@telenet.be>
|
||||
* Copyright (C) 2010-2014 Juanjo Menent <jmenent@2byte.es>
|
||||
* Copyright (C) 2012-2014 Christophe Battarel <christophe.battarel@altairis.fr>
|
||||
* Copyright (C) 2012-2014 Marcos García <marcosgdf@gmail.com>
|
||||
* Copyright (C) 2012-2015 Marcos García <marcosgdf@gmail.com>
|
||||
* Copyright (C) 2012 Cédric Salvador <csalvador@gpcsolutions.fr>
|
||||
* Copyright (C) 2012-2014 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
||||
* Copyright (C) 2013 Cedric Gross <c.gross@kreiz-it.fr>
|
||||
@ -117,9 +117,6 @@ class Facture extends CommonInvoice
|
||||
var $lines=array();
|
||||
var $line;
|
||||
var $extraparams=array();
|
||||
//! Pour board
|
||||
var $nbtodo;
|
||||
var $nbtodolate;
|
||||
var $specimen;
|
||||
|
||||
var $fac_rec;
|
||||
@ -3088,15 +3085,12 @@ class Facture extends CommonInvoice
|
||||
* Load indicators for dashboard (this->nbtodo and this->nbtodolate)
|
||||
*
|
||||
* @param User $user Object user
|
||||
* @return int <0 if KO, >0 if OK
|
||||
* @return WorkboardResponse|int <0 if KO, WorkboardResponse if OK
|
||||
*/
|
||||
function load_board($user)
|
||||
{
|
||||
global $conf, $user;
|
||||
global $conf, $user, $langs;
|
||||
|
||||
$now=dol_now();
|
||||
|
||||
$this->nbtodo=$this->nbtodolate=0;
|
||||
$clause = " WHERE";
|
||||
|
||||
$sql = "SELECT f.rowid, f.date_lim_reglement as datefin";
|
||||
@ -3115,12 +3109,25 @@ class Facture extends CommonInvoice
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$langs->load("bills");
|
||||
$now=dol_now();
|
||||
|
||||
$response = new WorkboardResponse();
|
||||
$response->warning_delay=$conf->facture->client->warning_delay/60/60/24;
|
||||
$response->label=$langs->trans("CustomerBillsUnpaid");
|
||||
$response->url=DOL_URL_ROOT.'/compta/facture/impayees.php';
|
||||
$response->img=img_object($langs->trans("Bills"),"bill");
|
||||
|
||||
while ($obj=$this->db->fetch_object($resql))
|
||||
{
|
||||
$this->nbtodo++;
|
||||
if ($this->db->jdate($obj->datefin) < ($now - $conf->facture->client->warning_delay)) $this->nbtodolate++;
|
||||
$response->nbtodo++;
|
||||
|
||||
if ($this->db->jdate($obj->datefin) < ($now - $conf->facture->client->warning_delay)) {
|
||||
$response->nbtodolate++;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
|
||||
return $response;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Copyright (C) 2007-2011 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2005-2009 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es>
|
||||
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
||||
*
|
||||
* 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
|
||||
@ -432,18 +433,14 @@ class RemiseCheque extends CommonObject
|
||||
* Load indicators for dashboard (this->nbtodo and this->nbtodolate)
|
||||
*
|
||||
* @param User $user Objet user
|
||||
* @return int <0 if KO, >0 if OK
|
||||
* @return WorkboardResponse|int <0 if KO, WorkboardResponse if OK
|
||||
*/
|
||||
function load_board($user)
|
||||
{
|
||||
global $conf;
|
||||
global $conf, $langs;
|
||||
|
||||
if ($user->societe_id) return -1; // protection pour eviter appel par utilisateur externe
|
||||
|
||||
$now=dol_now();
|
||||
|
||||
$this->nbtodo=$this->nbtodolate=0;
|
||||
|
||||
$sql = "SELECT b.rowid, b.datev as datefin";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."bank as b";
|
||||
$sql.= ", ".MAIN_DB_PREFIX."bank_account as ba";
|
||||
@ -456,12 +453,25 @@ class RemiseCheque extends CommonObject
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$langs->load("banks");
|
||||
$now=dol_now();
|
||||
|
||||
$response = new WorkboardResponse();
|
||||
$response->warning_delay=$conf->bank->cheque->warning_delay/60/60/24;
|
||||
$response->label=$langs->trans("BankChecksToReceipt");
|
||||
$response->url=DOL_URL_ROOT.'/compta/paiement/cheque/index.php?leftmenu=checks&mainmenu=accountancy';
|
||||
$response->img=img_object($langs->trans("BankChecksToReceipt"),"payment");
|
||||
|
||||
while ($obj=$this->db->fetch_object($resql))
|
||||
{
|
||||
$this->nbtodo++;
|
||||
if ($this->db->jdate($obj->datefin) < ($now - $conf->bank->cheque->warning_delay)) $this->nbtodolate++;
|
||||
$response->nbtodo++;
|
||||
|
||||
if ($this->db->jdate($obj->datefin) < ($now - $conf->bank->cheque->warning_delay)) {
|
||||
$response->nbtodolate++;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
|
||||
return $response;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
* Copyright (C) 2010-2014 Juanjo Menent <jmenent@2byte.es>
|
||||
* Copyright (C) 2013 Christophe Battarel <christophe.battarel@altairis.fr>
|
||||
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
|
||||
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.com>
|
||||
* Copyright (C) 2014-2015 Marcos García <marcosgdf@gmail.com>
|
||||
*
|
||||
* 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
|
||||
@ -1881,15 +1881,11 @@ class Contrat extends CommonObject
|
||||
*
|
||||
* @param User $user Objet user
|
||||
* @param string $mode "inactive" pour services a activer, "expired" pour services expires
|
||||
* @return int <0 if KO, >0 if OK
|
||||
* @return WorkboardResponse|int <0 if KO, WorkboardResponse if OK
|
||||
*/
|
||||
function load_board($user,$mode)
|
||||
{
|
||||
global $conf, $user;
|
||||
|
||||
$now=dol_now();
|
||||
|
||||
$this->nbtodo=$this->nbtodolate=0;
|
||||
global $conf, $user, $langs;
|
||||
|
||||
$this->from = " FROM ".MAIN_DB_PREFIX."contrat as c";
|
||||
$this->from.= ", ".MAIN_DB_PREFIX."contratdet as cd";
|
||||
@ -1920,15 +1916,35 @@ class Contrat extends CommonObject
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$langs->load("contracts");
|
||||
$now=dol_now();
|
||||
|
||||
if ($mode == 'inactives') {
|
||||
$warning_delay = $conf->contrat->services->inactifs->warning_delay;
|
||||
$label = $langs->trans("BoardNotActivatedServices");
|
||||
$url = DOL_URL_ROOT.'/contrat/services.php?mainmenu=commercial&leftmenu=contracts&mode=0';
|
||||
} else {
|
||||
$warning_delay = $conf->contrat->services->expires->warning_delay;
|
||||
$url = DOL_URL_ROOT.'/contrat/services.php?mainmenu=commercial&leftmenu=contracts&mode=4&filter=expired';
|
||||
$label = $langs->trans("BoardRunningServices");
|
||||
}
|
||||
|
||||
$response = new WorkboardResponse();
|
||||
$response->warning_delay = $warning_delay/60/60/24;
|
||||
$response->label = $label;
|
||||
$response->url = $url;
|
||||
$response->img = img_object($langs->trans("Contract"),"contract");
|
||||
|
||||
while ($obj=$this->db->fetch_object($resql))
|
||||
{
|
||||
$this->nbtodo++;
|
||||
if ($mode == 'inactives')
|
||||
if ($obj->datefin && $this->db->jdate($obj->datefin) < ($now - $conf->contrat->services->inactifs->warning_delay)) $this->nbtodolate++;
|
||||
if ($mode == 'expired')
|
||||
if ($obj->datefin && $this->db->jdate($obj->datefin) < ($now - $conf->contrat->services->expires->warning_delay)) $this->nbtodolate++;
|
||||
$response->nbtodo++;
|
||||
|
||||
if ($obj->datefin && $this->db->jdate($obj->datefin) < ($now - $warning_delay)) {
|
||||
$response->nbtodolate++;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
|
||||
return $response;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
69
htdocs/core/class/WorkboardResponse.class.php
Normal file
69
htdocs/core/class/WorkboardResponse.class.php
Normal file
@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
/* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file htdocs/core/class/WorkboardResponse.class.php
|
||||
* \brief Class that represents response of load_board functions
|
||||
*/
|
||||
|
||||
class WorkboardResponse
|
||||
{
|
||||
|
||||
/**
|
||||
* Image URL to represent the board item
|
||||
* @var string
|
||||
*/
|
||||
public $img;
|
||||
|
||||
/**
|
||||
* Label of the warning
|
||||
* @var string
|
||||
*/
|
||||
public $label;
|
||||
|
||||
/**
|
||||
* URL to list to do items
|
||||
* @var string
|
||||
*/
|
||||
public $url;
|
||||
|
||||
/**
|
||||
* (optional) If set, to do late items will link to this url
|
||||
* @var string
|
||||
*/
|
||||
public $url_late;
|
||||
|
||||
/**
|
||||
* Delay time to mark an item as late
|
||||
* @var int
|
||||
*/
|
||||
public $warning_delay;
|
||||
|
||||
/**
|
||||
* Number of items to do
|
||||
* @var int
|
||||
*/
|
||||
public $nbtodo = 0;
|
||||
|
||||
/**
|
||||
* Number of to do items which are late
|
||||
* @var int
|
||||
*/
|
||||
public $nbtodolate = 0;
|
||||
|
||||
}
|
||||
@ -3,6 +3,7 @@
|
||||
* Copyright (C) 2004-2008 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2005-2007 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* Copyright (C) 2007 Simon Desee <simon@dedisoft.com>
|
||||
* Copyright (C) 2015 Cedric GROSS <c.gross@kreiz-it.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
|
||||
@ -146,7 +147,7 @@ class DoliDBMssql extends DoliDB
|
||||
*/
|
||||
function select_db($database)
|
||||
{
|
||||
return mssql_select_db($database, $this->db);
|
||||
return @mssql_select_db($database, $this->db);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -171,6 +172,15 @@ class DoliDBMssql extends DoliDB
|
||||
// les nouvelles version de Dolibarr car force par l'install Dolibarr.
|
||||
//$this->query('SET NAMES '.$this->forcecharset);
|
||||
//print "Resultat fonction connect: ".$this->db;
|
||||
$set_options=array('SET ANSI_PADDING ON;',
|
||||
"SET ANSI_NULLS ON;",
|
||||
"SET ANSI_WARNINGS ON;",
|
||||
"SET ARITHABORT ON;",
|
||||
"SET CONCAT_NULL_YIELDS_NULL ON;",
|
||||
"SET QUOTED_IDENTIFIER ON;"
|
||||
);
|
||||
mssql_query(implode(' ',$set_options),$this->db);
|
||||
|
||||
return $this->db;
|
||||
}
|
||||
|
||||
@ -224,19 +234,22 @@ class DoliDBMssql extends DoliDB
|
||||
*/
|
||||
function begin()
|
||||
{
|
||||
if (! $this->transaction_opened)
|
||||
|
||||
$res=mssql_query('select @@TRANCOUNT');
|
||||
$this->transaction_opened=mssql_result($res, 0, 0);
|
||||
|
||||
if ($this->transaction_opened == 0)
|
||||
{
|
||||
$ret=$this->query("BEGIN TRANSACTION");
|
||||
//return 1; //There is a mess with auto_commit and 'SET IMPLICIT_TRANSACTIONS ON' generate also a mess
|
||||
$ret=mssql_query("SET IMPLICIT_TRANSACTIONS OFF;BEGIN TRANSACTION;",$this->db);
|
||||
if ($ret)
|
||||
{
|
||||
$this->transaction_opened++;
|
||||
dol_syslog("BEGIN Transaction",LOG_DEBUG);
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->transaction_opened++;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@ -249,12 +262,15 @@ class DoliDBMssql extends DoliDB
|
||||
*/
|
||||
function commit($log='')
|
||||
{
|
||||
if ($this->transaction_opened <= 1)
|
||||
$res=mssql_query('select @@TRANCOUNT');
|
||||
$this->transaction_opened=mssql_result($res, 0, 0);
|
||||
|
||||
if ($this->transaction_opened == 1)
|
||||
{
|
||||
$ret=$this->query("COMMIT TRANSACTION");
|
||||
//return 1; //There is a mess with auto_commit and 'SET IMPLICIT_TRANSACTION ON' generate also a mess
|
||||
$ret=mssql_query("COMMIT TRANSACTION",$this->db);
|
||||
if ($ret)
|
||||
{
|
||||
$this->transaction_opened=0;
|
||||
dol_syslog("COMMIT Transaction",LOG_DEBUG);
|
||||
return 1;
|
||||
}
|
||||
@ -263,11 +279,11 @@ class DoliDBMssql extends DoliDB
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
elseif ($this->transaction_opened > 1)
|
||||
{
|
||||
$this->transaction_opened--;
|
||||
return 1;
|
||||
}
|
||||
} else
|
||||
trigger_error("Commit requested but no transaction remain");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -278,18 +294,20 @@ class DoliDBMssql extends DoliDB
|
||||
*/
|
||||
function rollback($log='')
|
||||
{
|
||||
if ($this->transaction_opened<=1)
|
||||
$res=mssql_query('select @@TRANCOUNT');
|
||||
$this->transaction_opened=mssql_result($res, 0, 0);
|
||||
|
||||
if ($this->transaction_opened == 1)
|
||||
{
|
||||
$ret=$this->query("ROLLBACK TRANSACTION");
|
||||
$this->transaction_opened=0;
|
||||
$ret=mssql_query("ROLLBACK TRANSACTION",$this->db);
|
||||
dol_syslog("ROLLBACK Transaction".($log?' '.$log:''),LOG_DEBUG);
|
||||
return $ret;
|
||||
}
|
||||
else
|
||||
elseif ($this->transaction_opened > 1)
|
||||
{
|
||||
$this->transaction_opened--;
|
||||
return 1;
|
||||
}
|
||||
} else
|
||||
trigger_error("Rollback requested but no transaction remain");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -304,54 +322,98 @@ class DoliDBMssql extends DoliDB
|
||||
function query($query,$usesavepoint=0,$type='auto')
|
||||
{
|
||||
$query = trim($query);
|
||||
|
||||
if (preg_match('/^--/',$query)) return true;
|
||||
|
||||
// Conversion syntaxe MySql vers MSDE.
|
||||
$query = str_ireplace("now()", "getdate()", $query);
|
||||
// Erreur SQL: cannot update timestamp field
|
||||
$query = str_ireplace(", tms = tms", "", $query);
|
||||
// Voir si l'on peut directement utiliser $query = str_ireplace("file", "[file]", $query);
|
||||
// au lieu des 3 lignes ci-dessous
|
||||
$query = str_ireplace(".file", ".[file]", $query);
|
||||
$query = str_ireplace(" file ", " [file] ", $query);
|
||||
$query = str_ireplace(" file,", " [file],", $query);
|
||||
// Idem file
|
||||
$query = str_ireplace(".percent", ".[percent]", $query);
|
||||
$query = str_ireplace(" percent ", " [percent] ", $query);
|
||||
$query = str_ireplace("percent,", "[percent],", $query);
|
||||
$query = str_ireplace("percent=", "[percent]=", $query);
|
||||
$query = str_ireplace("\'", "''", $query);
|
||||
|
||||
|
||||
$itemfound = stripos($query, " limit ");
|
||||
if ($itemfound !== false) {
|
||||
// Extraire le nombre limite
|
||||
$number = stristr($query, " limit ");
|
||||
$number = substr($number, 7);
|
||||
// Inserer l'instruction TOP et le nombre limite
|
||||
$query = str_ireplace("select ", "select top ".$number." ", $query);
|
||||
// Supprimer l'instruction MySql
|
||||
$query = str_ireplace(" limit ".$number, "", $query);
|
||||
$query=preg_replace("/([. ,\t(])(percent|file|public)([. ,=\t)])/","$1[$2]$3",$query);
|
||||
|
||||
if ($type=="auto" || $type='dml')
|
||||
{
|
||||
$query=preg_replace('/AUTO_INCREMENT/i','IDENTITY',$query);
|
||||
$query=preg_replace('/double/i','float',$query);
|
||||
$query=preg_replace('/float\((.*)\)/','numeric($1)',$query);
|
||||
$query=preg_replace('/([ \t])unsigned|IF NOT EXISTS[ \t]/i','$1',$query);
|
||||
$query=preg_replace('/([ \t])(MEDIUM|TINY|LONG){0,1}TEXT([ \t,])/i',"$1VARCHAR(MAX)$3",$query);
|
||||
|
||||
$matches=array();
|
||||
$original_query='';
|
||||
if (preg_match('/ALTER TABLE\h+(\w+?)\h+ADD\h+(?:(UNIQUE)|INDEX)\h+(?:INDEX)?\h*(\w+?)\h*\((.+)\)/is', $query,$matches))
|
||||
{
|
||||
$original_query=$query;
|
||||
$query="CREATE ".trim($matches[2])." INDEX [".trim($matches[3])."] ON [".trim($matches[1])."] (".trim($matches[4]).")";
|
||||
if ($matches[2]) {
|
||||
//check if columun is nullable cause Sql server only allow 1 null value if unique index.
|
||||
$fields=explode(",",trim($matches[4]));
|
||||
$fields_clear=array_map('trim',$fields);
|
||||
$infos=$this->GetFieldInformation(trim($matches[1]), $fields_clear);
|
||||
$query_comp=array();
|
||||
foreach($infos as $fld) {
|
||||
if ($fld->IS_NULLABLE == 'YES') {
|
||||
$query_comp[]=$fld->COLUMN_NAME." IS NOT NULL";
|
||||
}
|
||||
}
|
||||
if ($query_comp)
|
||||
$query.=" WHERE ".implode(" AND ",$query_comp);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (preg_match('/ALTER TABLE\h+(\w+?)\h+ADD\h+PRIMARY\h+KEY\h+(\w+?)\h*\((.+)\)/is', $query, $matches))
|
||||
{
|
||||
$original_query=$query;
|
||||
$query="ALTER TABLE [".$matches[1]."] ADD CONSTRAINT [".$matches[2]."] PRIMARY KEY CLUSTERED (".$matches[3].")";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$itemfound = stripos($query, " week(");
|
||||
if ($itemfound !== false) {
|
||||
// Recreer une requete sans instruction Mysql
|
||||
$positionMySql = stripos($query, " week(");
|
||||
$newquery = substr($query, 0, $positionMySql);
|
||||
|
||||
// Recuperer la date passee en parametre
|
||||
$extractvalue = stristr($query, " week(");
|
||||
$extractvalue = substr($extractvalue, 6);
|
||||
$positionMySql = stripos($extractvalue, ")");
|
||||
// Conserver la fin de la requete
|
||||
$endofquery = substr($extractvalue, $positionMySql);
|
||||
$extractvalue = substr($extractvalue, 0, $positionMySql);
|
||||
|
||||
// Remplacer l'instruction MySql en Sql Server
|
||||
// Inserer la date en parametre et le reste de la requete
|
||||
$query = $newquery." DATEPART(week, ".$extractvalue.$endofquery;
|
||||
if ($type=="auto" || $type='ddl')
|
||||
{
|
||||
$itemfound = stripos($query, " limit ");
|
||||
if ($itemfound !== false) {
|
||||
// Extraire le nombre limite
|
||||
$number = stristr($query, " limit ");
|
||||
$number = substr($number, 7);
|
||||
// Inserer l'instruction TOP et le nombre limite
|
||||
$query = str_ireplace("select ", "select top ".$number." ", $query);
|
||||
// Supprimer l'instruction MySql
|
||||
$query = str_ireplace(" limit ".$number, "", $query);
|
||||
}
|
||||
|
||||
$itemfound = stripos($query, " week(");
|
||||
if ($itemfound !== false) {
|
||||
// Recreer une requete sans instruction Mysql
|
||||
$positionMySql = stripos($query, " week(");
|
||||
$newquery = substr($query, 0, $positionMySql);
|
||||
|
||||
// Recuperer la date passee en parametre
|
||||
$extractvalue = stristr($query, " week(");
|
||||
$extractvalue = substr($extractvalue, 6);
|
||||
$positionMySql = stripos($extractvalue, ")");
|
||||
// Conserver la fin de la requete
|
||||
$endofquery = substr($extractvalue, $positionMySql);
|
||||
$extractvalue = substr($extractvalue, 0, $positionMySql);
|
||||
|
||||
// Remplacer l'instruction MySql en Sql Server
|
||||
// Inserer la date en parametre et le reste de la requete
|
||||
$query = $newquery." DATEPART(week, ".$extractvalue.$endofquery;
|
||||
}
|
||||
if (preg_match('/^insert\h+(?:INTO)?\h*(\w+?)\h*\(.*\b(?:row)?id\b.*\)\h+VALUES/i',$query,$matches))
|
||||
{
|
||||
//var_dump($query);
|
||||
//var_dump($matches);
|
||||
if (stripos($query,'llx_c_departements') !== false) var_dump($query);
|
||||
$sql='SET IDENTITY_INSERT ['.trim($matches[1]).'] ON;';
|
||||
@mssql_query($sql, $this->db);
|
||||
$post_query='SET IDENTITY_INSERT ['.trim($matches[1]).'] OFF;';
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//print "<!--".$query."-->";
|
||||
|
||||
if (! in_array($query,array('BEGIN','COMMIT','ROLLBACK'))) dol_syslog('sql='.$query, LOG_DEBUG);
|
||||
@ -365,6 +427,11 @@ class DoliDBMssql extends DoliDB
|
||||
{
|
||||
$ret = mssql_query($query, $this->db);
|
||||
}
|
||||
|
||||
if (!empty($post_query))
|
||||
{
|
||||
@mssql_query($post_query, $this->db);
|
||||
}
|
||||
|
||||
if (! preg_match("/^COMMIT/i",$query) && ! preg_match("/^ROLLBACK/i",$query))
|
||||
{
|
||||
@ -379,6 +446,7 @@ class DoliDBMssql extends DoliDB
|
||||
$this->lasterrno = $row["code"];
|
||||
|
||||
dol_syslog(get_class($this)."::query SQL Error query: ".$query, LOG_ERR);
|
||||
if ($original_query) dol_syslog(get_class($this)."::query SQL Original query: ".$original_query, LOG_ERR);
|
||||
dol_syslog(get_class($this)."::query SQL Error message: ".$this->lasterror." (".$this->lasterrno.")", LOG_ERR);
|
||||
}
|
||||
$this->lastquery=$query;
|
||||
@ -539,7 +607,8 @@ class DoliDBMssql extends DoliDB
|
||||
1146 => 'DB_ERROR_NOSUCHTABLE',
|
||||
1216 => 'DB_ERROR_NO_PARENT',
|
||||
1217 => 'DB_ERROR_CHILD_EXISTS',
|
||||
1451 => 'DB_ERROR_CHILD_EXISTS'
|
||||
1451 => 'DB_ERROR_CHILD_EXISTS',
|
||||
1913 => 'DB_ERROR_KEY_NAME_ALREADY_EXISTS'
|
||||
);
|
||||
|
||||
if (isset($errorcode_map[$this->lasterrno]))
|
||||
@ -563,7 +632,7 @@ class DoliDBMssql extends DoliDB
|
||||
return 'Not connected. Check setup parameters in conf/conf.php file and your mssql client and server versions';
|
||||
}
|
||||
else {
|
||||
return mssql_get_last_message($this->db);
|
||||
return mssql_get_last_message();
|
||||
}
|
||||
}
|
||||
|
||||
@ -655,21 +724,27 @@ class DoliDBMssql extends DoliDB
|
||||
*/
|
||||
function DDLCreateDb($database,$charset='',$collation='',$owner='')
|
||||
{
|
||||
if (empty($charset)) $charset=$this->forcecharset;
|
||||
/*if (empty($charset)) $charset=$this->forcecharset;
|
||||
if (empty($collation)) $collation=$this->forcecollate;
|
||||
*/
|
||||
|
||||
// ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci
|
||||
$sql = 'CREATE DATABASE '.$database;
|
||||
$sql.= ' DEFAULT CHARACTER SET '.$charset.' DEFAULT COLLATE '.$collation;
|
||||
$sql = 'CREATE DATABASE '.$this->EscapeFieldName($database);
|
||||
//TODO: Check if we need to force a charset
|
||||
//$sql.= ' DEFAULT CHARACTER SET '.$charset.' DEFAULT COLLATE '.$collation;
|
||||
$ret=$this->query($sql);
|
||||
if (! $ret)
|
||||
{
|
||||
// On reessaie pour compatibilite avec mssql < 5.0
|
||||
$sql = 'CREATE DATABASE '.$database;
|
||||
$ret=$this->query($sql);
|
||||
}
|
||||
|
||||
$this->select_db($database);
|
||||
$sql="CREATE USER [$owner] FOR LOGIN [$owner]";
|
||||
mssql_query($sql,$this->db);
|
||||
$sql="ALTER ROLE [db_owner] ADD MEMBER [$owner]";
|
||||
mssql_query($sql,$this->db);
|
||||
|
||||
$sql="ALTER DATABASE [$database] SET ANSI_NULL_DEFAULT ON;";
|
||||
@mssql_query($sql,$this->db);
|
||||
$sql="ALTER DATABASE [$database] SET ANSI_NULL ON;";
|
||||
@mssql_query($sql,$this->db);
|
||||
|
||||
return $ret;
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -884,12 +959,40 @@ class DoliDBMssql extends DoliDB
|
||||
*/
|
||||
function DDLCreateUser($dolibarr_main_db_host,$dolibarr_main_db_user,$dolibarr_main_db_pass,$dolibarr_main_db_name)
|
||||
{
|
||||
// FIXME: Dummy method
|
||||
// TODO: Implement
|
||||
// May help: http://msdn.microsoft.com/fr-fr/library/ms173463.aspx
|
||||
|
||||
// Always fail for now
|
||||
return -1;
|
||||
$sql = "CREATE LOGIN ".$this->EscapeFieldName($dolibarr_main_db_user)." WITH PASSWORD='$dolibarr_main_db_pass'";
|
||||
dol_syslog(get_class($this)."::DDLCreateUser", LOG_DEBUG); // No sql to avoid password in log
|
||||
$resql=$this->query($sql);
|
||||
if (! $resql)
|
||||
{
|
||||
if ($this->lasterrno != '15025')
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
// If user already exists, we continue to set permissions
|
||||
dol_syslog(get_class($this)."::DDLCreateUser sql=".$sql, LOG_WARNING);
|
||||
}
|
||||
}
|
||||
$sql="SELECT name from sys.databases where name='".$dolibarr_main_db_name."'";
|
||||
$ressql=$this->query($sql);
|
||||
if (! $ressql)
|
||||
{
|
||||
dol_syslog(get_class($this)."::DDLCreateUser sql=".$sql, LOG_WARNING);
|
||||
return -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($num)
|
||||
{
|
||||
$this->select_db($dolibarr_main_db_name);
|
||||
$sql="CREATE USER [$dolibarr_main_db_user] FOR LOGIN [$dolibarr_main_db_user]";
|
||||
$this->query($sql);
|
||||
$sql="ALTER ROLE [db_owner] ADD MEMBER [$dolibarr_main_db_user]";
|
||||
$this->query($sql);
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1003,5 +1106,49 @@ class DoliDBMssql extends DoliDB
|
||||
|
||||
return array();
|
||||
}
|
||||
|
||||
/**
|
||||
* Escape a field name according to escape's syntax
|
||||
*
|
||||
* @param string $fieldname Field's name to escape
|
||||
* @return string field's name escaped
|
||||
*/
|
||||
function EscapeFieldName($fieldname) {
|
||||
return "[".$fieldname."]";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get information on field
|
||||
*
|
||||
* @param string $table Table name which contains fields
|
||||
* @param mixed $fields String for one field or array of string for multiple field
|
||||
* @return boolean|multitype:object
|
||||
*/
|
||||
function GetFieldInformation($table,$fields) {
|
||||
$sql="SELECT * from INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='".$this->escape($table)."' AND COLUMN_NAME";
|
||||
if (is_array($fields))
|
||||
{
|
||||
$where=" IN ('".implode("','",$fields)."')";
|
||||
}
|
||||
else
|
||||
{
|
||||
$where="='".$this->escape($fields)."'";
|
||||
}
|
||||
$result=array();
|
||||
$ret=mssql_query($sql.$where,$this->db);
|
||||
if ($ret)
|
||||
{
|
||||
while($obj=mssql_fetch_object($ret))
|
||||
{
|
||||
$result[]=$obj;
|
||||
}
|
||||
}
|
||||
else
|
||||
return false;
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
* Copyright (C) 2007 Franky Van Liedekerke <franky.van.liedekerke@telenet.be>
|
||||
* Copyright (C) 2010-2014 Juanjo Menent <jmenent@2byte.es>
|
||||
* Copyright (C) 2010-2014 Philippe Grand <philippe.grand@atoo-net.com>
|
||||
* Copyright (C) 2012-2014 Marcos García <marcosgdf@gmail.com>
|
||||
* Copyright (C) 2012-2015 Marcos García <marcosgdf@gmail.com>
|
||||
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
|
||||
* Copyright (C) 2013 Cédric Salvador <csalvador@gpcsolutions.fr>
|
||||
*
|
||||
@ -2009,15 +2009,12 @@ class CommandeFournisseur extends CommonOrder
|
||||
* Load indicators for dashboard (this->nbtodo and this->nbtodolate)
|
||||
*
|
||||
* @param User $user Objet user
|
||||
* @return int <0 if KO, >0 if OK
|
||||
* @return WorkboardResponse|int <0 if KO, WorkboardResponse if OK
|
||||
*/
|
||||
function load_board($user)
|
||||
{
|
||||
global $conf, $user;
|
||||
global $conf, $user, $langs;
|
||||
|
||||
$now=dol_now();
|
||||
|
||||
$this->nbtodo=$this->nbtodolate=0;
|
||||
$clause = " WHERE";
|
||||
|
||||
$sql = "SELECT c.rowid, c.date_creation as datec, c.fk_statut,c.date_livraison as delivery_date";
|
||||
@ -2035,14 +2032,25 @@ class CommandeFournisseur extends CommonOrder
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$now=dol_now();
|
||||
|
||||
$response = new WorkboardResponse();
|
||||
$response->warning_delay=$conf->commande->fournisseur->warning_delay/60/60/24;
|
||||
$response->label=$langs->trans("SuppliersOrdersToProcess");
|
||||
$response->url=DOL_URL_ROOT.'/fourn/commande/index.php';
|
||||
$response->img=img_object($langs->trans("Orders"),"order");
|
||||
|
||||
while ($obj=$this->db->fetch_object($resql))
|
||||
{
|
||||
$this->nbtodo++;
|
||||
$response->nbtodo++;
|
||||
|
||||
$date_to_test = empty($obj->delivery_date) ? $obj->datec : $obj->delivery_date;
|
||||
if ($obj->fk_statut != 3 && $this->db->jdate($date_to_test) < ($now - $conf->commande->fournisseur->warning_delay)) $this->nbtodolate++;
|
||||
if ($obj->fk_statut != 3 && $this->db->jdate($date_to_test) < ($now - $conf->commande->fournisseur->warning_delay)) {
|
||||
$response->nbtodolate++;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
|
||||
return $response;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
* Copyright (C) 2010-2014 Juanjo Menent <jmenent@2byte.es>
|
||||
* Copyright (C) 2013 Philippe Grand <philippe.grand@atoo-net.com>
|
||||
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
|
||||
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.com>
|
||||
* Copyright (C) 2014-2015 Marcos García <marcosgdf@gmail.com>
|
||||
*
|
||||
* 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
|
||||
@ -1421,15 +1421,12 @@ class FactureFournisseur extends CommonInvoice
|
||||
* Load indicators for dashboard (this->nbtodo and this->nbtodolate)
|
||||
*
|
||||
* @param User $user Object user
|
||||
* @return int <0 if KO, >0 if OK
|
||||
* @return WorkboardResponse|int <0 if KO, WorkboardResponse if OK
|
||||
*/
|
||||
function load_board($user)
|
||||
{
|
||||
global $conf, $user;
|
||||
global $conf, $user, $langs;
|
||||
|
||||
$now=dol_now();
|
||||
|
||||
$this->nbtodo=$this->nbtodolate=0;
|
||||
$sql = 'SELECT ff.rowid, ff.date_lim_reglement as datefin';
|
||||
$sql.= ' FROM '.MAIN_DB_PREFIX.'facture_fourn as ff';
|
||||
if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
|
||||
@ -1442,13 +1439,24 @@ class FactureFournisseur extends CommonInvoice
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$langs->load("bills");
|
||||
$now=dol_now();
|
||||
|
||||
$response = new WorkboardResponse();
|
||||
$response->warning_delay=$conf->facture->fournisseur->warning_delay/60/60/24;
|
||||
$response->label=$langs->trans("SupplierBillsToPay");
|
||||
$response->url=DOL_URL_ROOT.'/fourn/facture/list.php?filtre=paye:0';
|
||||
$response->img=img_object($langs->trans("Bills"),"bill");
|
||||
|
||||
while ($obj=$this->db->fetch_object($resql))
|
||||
{
|
||||
$this->nbtodo++;
|
||||
if (! empty($obj->datefin) && $this->db->jdate($obj->datefin) < ($now - $conf->facture->fournisseur->warning_delay)) $this->nbtodolate++;
|
||||
$response->nbtodo++;
|
||||
if (! empty($obj->datefin) && $this->db->jdate($obj->datefin) < ($now - $conf->facture->fournisseur->warning_delay)) {
|
||||
$response->nbtodolate++;
|
||||
}
|
||||
}
|
||||
$this->db->free($resql);
|
||||
return 1;
|
||||
return $response;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
164
htdocs/index.php
164
htdocs/index.php
@ -3,6 +3,7 @@
|
||||
* Copyright (C) 2004-2013 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* Copyright (C) 2011-2012 Juanjo Menent <jmenent@2byte.es>
|
||||
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
||||
*
|
||||
* 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
|
||||
@ -291,7 +292,8 @@ print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
||||
* Dolibarr Working Board with weather
|
||||
*/
|
||||
$showweather=empty($conf->global->MAIN_DISABLE_METEO)?1:0;
|
||||
$rowspan=0;
|
||||
|
||||
//Array that contains all WorkboardResponse classes to process them
|
||||
$dashboardlines=array();
|
||||
|
||||
print '<table class="noborder" width="100%">'."\n";
|
||||
@ -309,18 +311,14 @@ print '</tr>'."\n";
|
||||
// Do not include sections without management permission
|
||||
//
|
||||
|
||||
require DOL_DOCUMENT_ROOT.'/core/class/WorkboardResponse.class.php';
|
||||
|
||||
// Number of actions to do (late)
|
||||
if (! empty($conf->agenda->enabled) && $user->rights->agenda->myactions->read)
|
||||
{
|
||||
include_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php';
|
||||
$board=new ActionComm($db);
|
||||
$board->load_board($user);
|
||||
$board->warning_delay=$conf->actions->warning_delay/60/60/24;
|
||||
$board->label=$langs->trans("ActionsToDo");
|
||||
$board->url=DOL_URL_ROOT.'/comm/action/listactions.php?status=todo&mainmenu=agenda';
|
||||
$board->img=img_object($langs->trans("Actions"),"action");
|
||||
$rowspan++;
|
||||
$dashboardlines[]=$board;
|
||||
$dashboardlines[] = $board->load_board($user);
|
||||
}
|
||||
|
||||
// Number of customer orders a deal
|
||||
@ -328,13 +326,8 @@ if (! empty($conf->commande->enabled) && $user->rights->commande->lire)
|
||||
{
|
||||
include_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php';
|
||||
$board=new Commande($db);
|
||||
$board->load_board($user);
|
||||
$board->warning_delay=$conf->commande->client->warning_delay/60/60/24;
|
||||
$board->label=$langs->trans("OrdersToProcess");
|
||||
$board->url=DOL_URL_ROOT.'/commande/list.php?viewstatut=-3';
|
||||
$board->img=img_object($langs->trans("Orders"),"order");
|
||||
$rowspan++;
|
||||
$dashboardlines[]=$board;
|
||||
|
||||
$dashboardlines[] = $board->load_board($user);
|
||||
}
|
||||
|
||||
// Number of suppliers orders a deal
|
||||
@ -342,172 +335,91 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->commande
|
||||
{
|
||||
include_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php';
|
||||
$board=new CommandeFournisseur($db);
|
||||
$board->load_board($user);
|
||||
$board->warning_delay=$conf->commande->fournisseur->warning_delay/60/60/24;
|
||||
$board->label=$langs->trans("SuppliersOrdersToProcess");
|
||||
$board->url=DOL_URL_ROOT.'/fourn/commande/index.php';
|
||||
$board->img=img_object($langs->trans("Orders"),"order");
|
||||
$rowspan++;
|
||||
$dashboardlines[]=$board;
|
||||
|
||||
$dashboardlines[] = $board->load_board($user);
|
||||
}
|
||||
|
||||
// Number of commercial proposals opened (expired)
|
||||
if (! empty($conf->propal->enabled) && $user->rights->propale->lire)
|
||||
{
|
||||
$langs->load("propal");
|
||||
|
||||
include_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php';
|
||||
$board=new Propal($db);
|
||||
$board->load_board($user,"opened");
|
||||
$board->warning_delay=$conf->propal->cloture->warning_delay/60/60/24;
|
||||
$board->label=$langs->trans("PropalsToClose");
|
||||
$board->url=DOL_URL_ROOT.'/comm/propal/list.php?viewstatut=1';
|
||||
$board->img=img_object($langs->trans("Propals"),"propal");
|
||||
$rowspan++;
|
||||
$dashboardlines[]=$board;
|
||||
}
|
||||
$dashboardlines[] = $board->load_board($user,"opened");
|
||||
|
||||
// Number of commercial proposals CLOSED signed (billed)
|
||||
if (! empty($conf->propal->enabled) && $user->rights->propale->lire)
|
||||
{
|
||||
$langs->load("propal");
|
||||
|
||||
include_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php';
|
||||
$board=new Propal($db);
|
||||
$board->load_board($user,"signed");
|
||||
$board->warning_delay=$conf->propal->facturation->warning_delay/60/60/24;
|
||||
$board->label=$langs->trans("PropalsToBill");
|
||||
$board->url=DOL_URL_ROOT.'/comm/propal/list.php?viewstatut=2';
|
||||
$board->img=img_object($langs->trans("Propals"),"propal");
|
||||
$rowspan++;
|
||||
$dashboardlines[]=$board;
|
||||
// Number of commercial proposals CLOSED signed (billed)
|
||||
$dashboardlines[] = $board->load_board($user,"signed");
|
||||
}
|
||||
|
||||
// Number of services enabled (delayed)
|
||||
if (! empty($conf->contrat->enabled) && $user->rights->contrat->lire)
|
||||
{
|
||||
$langs->load("contracts");
|
||||
|
||||
include_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php';
|
||||
$board=new Contrat($db);
|
||||
$board->load_board($user,"inactives");
|
||||
$board->warning_delay=$conf->contrat->services->inactifs->warning_delay/60/60/24;
|
||||
$board->label=$langs->trans("BoardNotActivatedServices");
|
||||
$board->url=DOL_URL_ROOT.'/contrat/services.php?mainmenu=commercial&leftmenu=contracts&mode=0';
|
||||
$board->img=img_object($langs->trans("Contract"),"contract");
|
||||
$rowspan++;
|
||||
$dashboardlines[]=$board;
|
||||
}
|
||||
$dashboardlines[] = $board->load_board($user,"inactives");
|
||||
|
||||
// Number of active services (expired)
|
||||
if (! empty($conf->contrat->enabled) && $user->rights->contrat->lire)
|
||||
{
|
||||
$langs->load("contracts");
|
||||
|
||||
include_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php';
|
||||
$board=new Contrat($db);
|
||||
$board->load_board($user,"expired");
|
||||
$board->warning_delay=$conf->contrat->services->expires->warning_delay/60/60/24;
|
||||
$board->label=$langs->trans("BoardRunningServices");
|
||||
$board->url=DOL_URL_ROOT.'/contrat/services.php?mainmenu=commercial&leftmenu=contracts&mode=4&filter=expired';
|
||||
$board->img=img_object($langs->trans("Contract"),"contract");
|
||||
$rowspan++;
|
||||
$dashboardlines[]=$board;
|
||||
// Number of active services (expired)
|
||||
$dashboardlines[] = $board->load_board($user,"expired");
|
||||
}
|
||||
// Number of invoices customers (has paid)
|
||||
if (! empty($conf->facture->enabled) && $user->rights->facture->lire)
|
||||
{
|
||||
$langs->load("bills");
|
||||
|
||||
include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
|
||||
$board=new Facture($db);
|
||||
$board->load_board($user);
|
||||
$board->warning_delay=$conf->facture->client->warning_delay/60/60/24;
|
||||
$board->label=$langs->trans("CustomerBillsUnpaid");
|
||||
$board->url=DOL_URL_ROOT.'/compta/facture/impayees.php';
|
||||
$board->img=img_object($langs->trans("Bills"),"bill");
|
||||
$rowspan++;
|
||||
$dashboardlines[]=$board;
|
||||
$dashboardlines[] = $board->load_board($user);
|
||||
}
|
||||
|
||||
// Number of supplier invoices (has paid)
|
||||
if (! empty($conf->fournisseur->enabled) && ! empty($conf->facture->enabled) && $user->rights->facture->lire)
|
||||
{
|
||||
$langs->load("bills");
|
||||
|
||||
include_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php';
|
||||
$board=new FactureFournisseur($db);
|
||||
$board->load_board($user);
|
||||
$board->warning_delay=$conf->facture->fournisseur->warning_delay/60/60/24;
|
||||
$board->label=$langs->trans("SupplierBillsToPay");
|
||||
$board->url=DOL_URL_ROOT.'/fourn/facture/list.php?filtre=paye:0';
|
||||
$board->img=img_object($langs->trans("Bills"),"bill");
|
||||
$rowspan++;
|
||||
$dashboardlines[]=$board;
|
||||
$dashboardlines[] = $board->load_board($user);
|
||||
}
|
||||
|
||||
// Number of transactions to conciliate
|
||||
if (! empty($conf->banque->enabled) && $user->rights->banque->lire && ! $user->societe_id)
|
||||
{
|
||||
$langs->load("banks");
|
||||
|
||||
include_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
|
||||
$board=new Account($db);
|
||||
$found=$board->load_board($user);
|
||||
if ($found > 0)
|
||||
{
|
||||
$board->warning_delay=$conf->bank->rappro->warning_delay/60/60/24;
|
||||
$board->label=$langs->trans("TransactionsToConciliate");
|
||||
$board->url=DOL_URL_ROOT.'/compta/bank/index.php?leftmenu=bank&mainmenu=bank';
|
||||
$board->img=img_object($langs->trans("TransactionsToConciliate"),"payment");
|
||||
$rowspan++;
|
||||
$dashboardlines[]=$board;
|
||||
}
|
||||
$dashboardlines[] = $board->load_board($user);
|
||||
}
|
||||
|
||||
// Number of cheque to send
|
||||
if (! empty($conf->banque->enabled) && $user->rights->banque->lire && ! $user->societe_id)
|
||||
{
|
||||
$langs->load("banks");
|
||||
|
||||
include_once DOL_DOCUMENT_ROOT.'/compta/paiement/cheque/class/remisecheque.class.php';
|
||||
$board=new RemiseCheque($db);
|
||||
$board->load_board($user);
|
||||
$board->warning_delay=$conf->bank->cheque->warning_delay/60/60/24;
|
||||
$board->label=$langs->trans("BankChecksToReceipt");
|
||||
$board->url=DOL_URL_ROOT.'/compta/paiement/cheque/index.php?leftmenu=checks&mainmenu=accountancy';
|
||||
$board->img=img_object($langs->trans("BankChecksToReceipt"),"payment");
|
||||
$rowspan++;
|
||||
$dashboardlines[]=$board;
|
||||
$dashboardlines[] = $board->load_board($user);
|
||||
}
|
||||
|
||||
// Number of foundation members
|
||||
if (! empty($conf->adherent->enabled) && $user->rights->adherent->lire && ! $user->societe_id)
|
||||
{
|
||||
$langs->load("members");
|
||||
|
||||
include_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php';
|
||||
$board=new Adherent($db);
|
||||
$board->load_board($user);
|
||||
$board->warning_delay=$conf->adherent->cotisation->warning_delay/60/60/24;
|
||||
$board->label=$langs->trans("MembersWithSubscriptionToReceive");
|
||||
$board->url=DOL_URL_ROOT.'/adherents/list.php?mainmenu=members&statut=1';
|
||||
$board->img=img_object($langs->trans("Members"),"user");
|
||||
$rowspan++;
|
||||
$dashboardlines[]=$board;
|
||||
$dashboardlines[] = $board->load_board($user);
|
||||
}
|
||||
|
||||
// Calculate total nb of late
|
||||
$totallate=0;
|
||||
foreach($dashboardlines as $key => $board)
|
||||
{
|
||||
if ($board->nbtodolate > 0) $totallate+=$board->nbtodolate;
|
||||
}
|
||||
|
||||
// Show dashboard
|
||||
$var=true;
|
||||
foreach($dashboardlines as $key => $board)
|
||||
|
||||
//Remove any invalid response
|
||||
//load_board can return an integer if failed or WorkboardResponse if OK
|
||||
$valid_dashboardlines = array_filter($dashboardlines, function ($board) {
|
||||
return $board instanceof WorkboardResponse;
|
||||
});
|
||||
|
||||
$rowspan = count($valid_dashboardlines);
|
||||
|
||||
foreach($valid_dashboardlines as $board)
|
||||
{
|
||||
if ($board->nbtodolate > 0) {
|
||||
$totallate += $board->nbtodolate;
|
||||
}
|
||||
|
||||
// Show dashboard
|
||||
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'><td width="16">'.$board->img.'</td><td>'.$board->label.'</td>';
|
||||
print '<td align="right"><a href="'.$board->url.'">'.$board->nbtodo.'</a></td>';
|
||||
@ -531,8 +443,6 @@ foreach($dashboardlines as $key => $board)
|
||||
if ($rowspan <= 2) $options='height="24"'; // Weather logo is smaller if dashboard has few elements
|
||||
else if ($rowspan <= 3) $options='height="48"'; // Weather logo is smaller if dashboard has few elements
|
||||
print showWeather($totallate,$text,$options);
|
||||
//print showWeather(0,'');
|
||||
//print showWeather(40,$text);
|
||||
print '</td>';
|
||||
$showweather=0;
|
||||
}
|
||||
|
||||
@ -175,7 +175,7 @@ if (! $error)
|
||||
}
|
||||
else
|
||||
{
|
||||
$databasefortest='mssql';
|
||||
$databasefortest='master';
|
||||
}
|
||||
}
|
||||
//print $_POST["db_type"].",".$_POST["db_host"].",$userroot,$passroot,$databasefortest,".$_POST["db_port"];
|
||||
@ -486,7 +486,7 @@ if (! $error && $db->connected && $action == "set")
|
||||
}
|
||||
else if ($conf->db->type == 'mssql')
|
||||
{
|
||||
$databasefortest='mssql';
|
||||
$databasefortest='master';
|
||||
}
|
||||
|
||||
// Creation handler de base, verification du support et connexion
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2015 Cedric GROSS <c.gross@kreiz-it.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
|
||||
@ -192,6 +193,11 @@ if ($action == "set")
|
||||
{
|
||||
$buffer=preg_replace('/type=innodb/i','ENGINE=innodb',$buffer);
|
||||
}
|
||||
else if ($conf->db->type == 'mssql')
|
||||
{
|
||||
$buffer=preg_replace('/type=innodb/i','',$buffer);
|
||||
$buffer=preg_replace('/ENGINE=innodb/i','',$buffer);
|
||||
}
|
||||
|
||||
// Replace the prefix tables
|
||||
if ($dolibarr_main_db_prefix != 'llx_')
|
||||
@ -219,7 +225,7 @@ if ($action == "set")
|
||||
else
|
||||
{
|
||||
print "<tr><td>".$langs->trans("CreateTableAndPrimaryKey",$name);
|
||||
print "<br>\n".$langs->trans("Request").' '.$requestnb.' : '.$buffer;
|
||||
print "<br>\n".$langs->trans("Request").' '.$requestnb.' : '.$buffer.' <br>Executed query : '.$db->lastquery;
|
||||
print "\n</td>";
|
||||
print '<td><font class="error">'.$langs->trans("ErrorSQL")." ".$db->errno()." ".$db->error().'</font></td></tr>';
|
||||
$error++;
|
||||
|
||||
Binary file not shown.
@ -270,4 +270,4 @@ INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (24
|
||||
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (244,'ME','MNE','Monténégro',1,0);
|
||||
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (245,'BL','BLM','Saint-Barthélemy',1,0);
|
||||
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (246,'MF','MAF','Saint-Martin',1,0);
|
||||
INSERT INTO llx_c_country (rowid,code,code_iso,label,active,favorite) VALUES (247,'BU', null, 'Burundi',1,0);
|
||||
|
||||
|
||||
@ -270,5 +270,3 @@ INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom, active) v
|
||||
INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom, active) values ( 12, 1215, '', 0, 'Laâyoune-Boujdour-Sakia el Hamra', 1);
|
||||
INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom, active) values ( 12, 1216, '', 0, 'Oued Ed-Dahab Lagouira', 1);
|
||||
|
||||
-- Regions Tunisia (id country=10)
|
||||
INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom, active) values ( 10, 1001, '', 0, 'Algerie', 1);
|
||||
|
||||
@ -187,8 +187,8 @@ insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (17
|
||||
insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1734, 173, '0','0','VAT Rate 0', 1);
|
||||
|
||||
-- PERU (id country=181)
|
||||
insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1841, 181, '18','0','VAT standard rate',1);
|
||||
insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1843, 181, '0','0','VAT Rate 0',1);
|
||||
insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1811, 181, '18','0','VAT standard rate',1);
|
||||
insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1812, 181, '0','0','VAT Rate 0',1);
|
||||
|
||||
-- POLAND (id country=184)
|
||||
insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1841, 184, '20','0','VAT standard rate',1);
|
||||
|
||||
@ -24,7 +24,7 @@ create table llx_c_regions
|
||||
fk_pays integer NOT NULL,
|
||||
cheflieu varchar(50),
|
||||
tncc integer,
|
||||
nom varchar(50),
|
||||
nom varchar(100),
|
||||
active tinyint DEFAULT 1 NOT NULL
|
||||
)ENGINE=innodb;
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
|
||||
create table llx_rights_def
|
||||
(
|
||||
id integer,
|
||||
id integer NOT NULL,
|
||||
libelle varchar(255),
|
||||
module varchar(64),
|
||||
entity integer DEFAULT 1 NOT NULL,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user