Merge pull request #13944 from atm-maxime/fix_board_expensereport

Fix board expensereport and holiday
This commit is contained in:
Laurent Destailleur 2020-05-23 14:20:28 +02:00 committed by GitHub
commit 475abbe24b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 29 additions and 11 deletions

View File

@ -2274,7 +2274,7 @@ class ExpenseReport extends CommonObject
public function load_state_board() public function load_state_board()
{ {
// phpcs:enable // phpcs:enable
global $conf; global $conf, $user;
$this->nb=array(); $this->nb=array();
@ -2282,6 +2282,12 @@ class ExpenseReport extends CommonObject
$sql.= " FROM ".MAIN_DB_PREFIX."expensereport as ex"; $sql.= " FROM ".MAIN_DB_PREFIX."expensereport as ex";
$sql.= " WHERE ex.fk_statut > 0"; $sql.= " WHERE ex.fk_statut > 0";
$sql.= " AND ex.entity IN (".getEntity('expensereport').")"; $sql.= " AND ex.entity IN (".getEntity('expensereport').")";
if(!$user->rights->expensereport->readall)
{
$userchildids = $user->getAllChildIds(1);
$sql.= " AND (ex.fk_user_author IN (".join(',', $userchildids).")";
$sql.= " OR ex.fk_user_validator IN (".join(',', $userchildids)."))";
}
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
if ($resql) { if ($resql) {
@ -2316,15 +2322,17 @@ class ExpenseReport extends CommonObject
$now=dol_now(); $now=dol_now();
$userchildids = $user->getAllChildIds(1);
$sql = "SELECT ex.rowid, ex.date_valid"; $sql = "SELECT ex.rowid, ex.date_valid";
$sql.= " FROM ".MAIN_DB_PREFIX."expensereport as ex"; $sql.= " FROM ".MAIN_DB_PREFIX."expensereport as ex";
if ($option == 'toapprove') $sql.= " WHERE ex.fk_statut = 2"; if ($option == 'toapprove') $sql.= " WHERE ex.fk_statut = 2";
else $sql.= " WHERE ex.fk_statut = 5"; else $sql.= " WHERE ex.fk_statut = 5";
$sql.= " AND ex.entity IN (".getEntity('expensereport').")"; $sql.= " AND ex.entity IN (".getEntity('expensereport').")";
if(!$user->rights->expensereport->readall)
{
$userchildids = $user->getAllChildIds(1);
$sql.= " AND (ex.fk_user_author IN (".join(',', $userchildids).")"; $sql.= " AND (ex.fk_user_author IN (".join(',', $userchildids).")";
$sql.= " OR ex.fk_user_validator IN (".join(',', $userchildids)."))"; $sql.= " OR ex.fk_user_validator IN (".join(',', $userchildids)."))";
}
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
if ($resql) if ($resql)

View File

@ -2182,12 +2182,20 @@ class Holiday extends CommonObject
public function load_state_board() public function load_state_board()
{ {
// phpcs:enable // phpcs:enable
global $user;
$this->nb=array(); $this->nb=array();
$sql = "SELECT count(h.rowid) as nb"; $sql = "SELECT count(h.rowid) as nb";
$sql.= " FROM ".MAIN_DB_PREFIX."holiday as h"; $sql.= " FROM ".MAIN_DB_PREFIX."holiday as h";
$sql.= " WHERE h.statut > 1"; $sql.= " WHERE h.statut > 1";
$sql.= " AND h.entity IN (".getEntity('holiday').")"; $sql.= " AND h.entity IN (".getEntity('holiday').")";
if(!$user->rights->expensereport->read_all)
{
$userchildids = $user->getAllChildIds(1);
$sql.= " AND (h.fk_user IN (".join(',', $userchildids).")";
$sql.= " OR h.fk_validator IN (".join(',', $userchildids)."))";
}
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
if ($resql) { if ($resql) {
@ -2221,14 +2229,16 @@ class Holiday extends CommonObject
$now=dol_now(); $now=dol_now();
$userchildids = $user->getAllChildIds(1);
$sql = "SELECT h.rowid, h.date_debut"; $sql = "SELECT h.rowid, h.date_debut";
$sql.= " FROM ".MAIN_DB_PREFIX."holiday as h"; $sql.= " FROM ".MAIN_DB_PREFIX."holiday as h";
$sql.= " WHERE h.statut = 2"; $sql.= " WHERE h.statut = 2";
$sql.= " AND h.entity IN (".getEntity('holiday').")"; $sql.= " AND h.entity IN (".getEntity('holiday').")";
if(!$user->rights->expensereport->read_all)
{
$userchildids = $user->getAllChildIds(1);
$sql.= " AND (h.fk_user IN (".join(',', $userchildids).")"; $sql.= " AND (h.fk_user IN (".join(',', $userchildids).")";
$sql.= " OR h.fk_validator IN (".join(',', $userchildids)."))"; $sql.= " OR h.fk_validator IN (".join(',', $userchildids)."))";
}
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
if ($resql) if ($resql)

View File

@ -324,7 +324,7 @@ if (empty($user->societe_id))
include_once $includes[$key]; // Loading a class cost around 1Mb include_once $includes[$key]; // Loading a class cost around 1Mb
$board=new $classe($db); $board=new $classe($db);
$board->load_state_board($user); $board->load_state_board();
$boardloaded[$classe]=$board; $boardloaded[$classe]=$board;
} }
else else