Split fk_user_valid that was used for 2 purpose in fk_user_valid/approve
This commit is contained in:
parent
6526cd413e
commit
11b9314023
@ -284,7 +284,7 @@ if (empty($reshook)) {
|
||||
}
|
||||
}
|
||||
|
||||
// If this is an update and we are an approver, we can update to change the approver
|
||||
// If this is an update and we are an approver, we can update to change the expected approver with another one (including himself)
|
||||
if ($action == 'update' && GETPOSTISSET('savevalidator') && !empty($user->rights->holiday->approve)) {
|
||||
$object->fetch($id);
|
||||
|
||||
@ -558,9 +558,10 @@ if (empty($reshook)) {
|
||||
if ($object->statut == Holiday::STATUS_VALIDATED && $user->id == $object->fk_validator) {
|
||||
$object->oldcopy = dol_clone($object);
|
||||
|
||||
$object->date_valid = dol_now();
|
||||
$object->fk_user_valid = $user->id;
|
||||
$object->date_approval = dol_now();
|
||||
$object->fk_user_approve = $user->id;
|
||||
$object->statut = Holiday::STATUS_APPROVED;
|
||||
$object->status = Holiday::STATUS_APPROVED;
|
||||
|
||||
$db->begin();
|
||||
|
||||
@ -663,6 +664,7 @@ if (empty($reshook)) {
|
||||
$object->date_refuse = dol_print_date('dayhour', dol_now());
|
||||
$object->fk_user_refuse = $user->id;
|
||||
$object->statut = Holiday::STATUS_REFUSED;
|
||||
$object->status = Holiday::STATUS_REFUSED;
|
||||
$object->detail_refuse = GETPOST('detail_refuse', 'alphanohtml');
|
||||
|
||||
$db->begin();
|
||||
@ -751,6 +753,7 @@ if (empty($reshook)) {
|
||||
|
||||
$oldstatus = $object->statut;
|
||||
$object->statut = Holiday::STATUS_DRAFT;
|
||||
$object->status = Holiday::STATUS_DRAFT;
|
||||
|
||||
$result = $object->update($user);
|
||||
if ($result < 0) {
|
||||
@ -783,6 +786,7 @@ if (empty($reshook)) {
|
||||
$object->date_cancel = dol_now();
|
||||
$object->fk_user_cancel = $user->id;
|
||||
$object->statut = Holiday::STATUS_CANCELED;
|
||||
$object->status = Holiday::STATUS_CANCELED;
|
||||
|
||||
$result = $object->update($user);
|
||||
|
||||
@ -1497,8 +1501,8 @@ if ((empty($id) && empty($ref)) || $action == 'create' || $action == 'add') {
|
||||
}
|
||||
}
|
||||
if ($object->statut == Holiday::STATUS_APPROVED) { // If validated and approved
|
||||
if ($user->id == $object->fk_validator || $cancreate || $cancreateall) {
|
||||
if (($object->date_debut > dol_now()) || !empty($user->admin)) {
|
||||
if ($user->id == $object->fk_validator || $user->id == $object->fk_user_approve || $cancreate || $cancreateall) {
|
||||
if (($object->date_debut > dol_now()) || !empty($user->admin) || $user->id == $object->fk_user_approve) {
|
||||
print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=cancel&token='.newToken().'" class="butAction">'.$langs->trans("ActionCancelCP").'</a>';
|
||||
} else {
|
||||
print '<a href="#" class="butActionRefused classfortooltip" title="'.$langs->trans("HolidayStarted").'-'.$langs->trans("NotAllowed").'">'.$langs->trans("ActionCancelCP").'</a>';
|
||||
|
||||
@ -89,14 +89,19 @@ class Holiday extends CommonObject
|
||||
public $date_valid = '';
|
||||
|
||||
/**
|
||||
* @var int ID of user that has approved (empty if not approved)
|
||||
* @var int ID of user that has validated
|
||||
*/
|
||||
public $fk_user_valid;
|
||||
|
||||
/**
|
||||
* @var int Date approbation
|
||||
* @var int Date approval
|
||||
*/
|
||||
public $date_approbation;
|
||||
public $date_approval;
|
||||
|
||||
/**
|
||||
* @var int ID of user that has approved
|
||||
*/
|
||||
public $fk_user_approve;
|
||||
|
||||
/**
|
||||
* @var int Date for refuse
|
||||
@ -377,6 +382,8 @@ class Holiday extends CommonObject
|
||||
$sql .= " cp.fk_validator,";
|
||||
$sql .= " cp.date_valid,";
|
||||
$sql .= " cp.fk_user_valid,";
|
||||
$sql .= " cp.date_approval,";
|
||||
$sql .= " cp.fk_user_approve,";
|
||||
$sql .= " cp.date_refuse,";
|
||||
$sql .= " cp.fk_user_refuse,";
|
||||
$sql .= " cp.date_cancel,";
|
||||
@ -414,6 +421,8 @@ class Holiday extends CommonObject
|
||||
$this->fk_validator = $obj->fk_validator;
|
||||
$this->date_valid = $this->db->jdate($obj->date_valid);
|
||||
$this->fk_user_valid = $obj->fk_user_valid;
|
||||
$this->date_approval = $this->db->jdate($obj->date_approval);
|
||||
$this->fk_user_approve = $obj->fk_user_approve;
|
||||
$this->date_refuse = $this->db->jdate($obj->date_refuse);
|
||||
$this->fk_user_refuse = $obj->fk_user_refuse;
|
||||
$this->date_cancel = $this->db->jdate($obj->date_cancel);
|
||||
@ -467,6 +476,8 @@ class Holiday extends CommonObject
|
||||
$sql .= " cp.fk_validator,";
|
||||
$sql .= " cp.date_valid,";
|
||||
$sql .= " cp.fk_user_valid,";
|
||||
$sql .= " cp.date_approval,";
|
||||
$sql .= " cp.fk_user_approve,";
|
||||
$sql .= " cp.date_refuse,";
|
||||
$sql .= " cp.fk_user_refuse,";
|
||||
$sql .= " cp.date_cancel,";
|
||||
@ -535,6 +546,8 @@ class Holiday extends CommonObject
|
||||
$tab_result[$i]['fk_validator'] = $obj->fk_validator;
|
||||
$tab_result[$i]['date_valid'] = $this->db->jdate($obj->date_valid);
|
||||
$tab_result[$i]['fk_user_valid'] = $obj->fk_user_valid;
|
||||
$tab_result[$i]['date_approval'] = $this->db->jdate($obj->date_approval);
|
||||
$tab_result[$i]['fk_user_approve'] = $obj->fk_user_approve;
|
||||
$tab_result[$i]['date_refuse'] = $this->db->jdate($obj->date_refuse);
|
||||
$tab_result[$i]['fk_user_refuse'] = $obj->fk_user_refuse;
|
||||
$tab_result[$i]['date_cancel'] = $this->db->jdate($obj->date_cancel);
|
||||
@ -593,6 +606,8 @@ class Holiday extends CommonObject
|
||||
$sql .= " cp.fk_validator,";
|
||||
$sql .= " cp.date_valid,";
|
||||
$sql .= " cp.fk_user_valid,";
|
||||
$sql .= " cp.date_approval,";
|
||||
$sql .= " cp.fk_user_approve,";
|
||||
$sql .= " cp.date_refuse,";
|
||||
$sql .= " cp.fk_user_refuse,";
|
||||
$sql .= " cp.date_cancel,";
|
||||
@ -661,6 +676,8 @@ class Holiday extends CommonObject
|
||||
$tab_result[$i]['fk_validator'] = $obj->fk_validator;
|
||||
$tab_result[$i]['date_valid'] = $this->db->jdate($obj->date_valid);
|
||||
$tab_result[$i]['fk_user_valid'] = $obj->fk_user_valid;
|
||||
$tab_result[$i]['date_approval'] = $this->db->jdate($obj->date_approval);
|
||||
$tab_result[$i]['fk_user_approve'] = $obj->fk_user_approve;
|
||||
$tab_result[$i]['date_refuse'] = $obj->date_refuse;
|
||||
$tab_result[$i]['fk_user_refuse'] = $obj->fk_user_refuse;
|
||||
$tab_result[$i]['date_cancel'] = $obj->date_cancel;
|
||||
@ -865,6 +882,16 @@ class Holiday extends CommonObject
|
||||
} else {
|
||||
$sql .= " fk_user_valid = NULL,";
|
||||
}
|
||||
if (!empty($this->date_approval)) {
|
||||
$sql .= " date_approval = '".$this->db->idate($this->date_approval)."',";
|
||||
} else {
|
||||
$sql .= " date_approval = NULL,";
|
||||
}
|
||||
if (!empty($this->fk_user_approve)) {
|
||||
$sql .= " fk_user_approve = '".$this->db->escape($this->fk_user_approve)."',";
|
||||
} else {
|
||||
$sql .= " fk_user_approve = NULL,";
|
||||
}
|
||||
if (!empty($this->date_refuse)) {
|
||||
$sql .= " date_refuse = '".$this->db->idate($this->date_refuse)."',";
|
||||
} else {
|
||||
@ -980,17 +1007,27 @@ class Holiday extends CommonObject
|
||||
$sql .= " date_valid = NULL,";
|
||||
}
|
||||
if (!empty($this->fk_user_valid)) {
|
||||
$sql .= " fk_user_valid = '".$this->db->escape($this->fk_user_valid)."',";
|
||||
$sql .= " fk_user_valid = ".((int) $this->fk_user_valid).",";
|
||||
} else {
|
||||
$sql .= " fk_user_valid = NULL,";
|
||||
}
|
||||
if (!empty($this->date_approval)) {
|
||||
$sql .= " date_approval = '".$this->db->idate($this->date_approval)."',";
|
||||
} else {
|
||||
$sql .= " date_approval = NULL,";
|
||||
}
|
||||
if (!empty($this->fk_user_approve)) {
|
||||
$sql .= " fk_user_approve = ".((int) $this->fk_user_approve).",";
|
||||
} else {
|
||||
$sql .= " fk_user_approve = NULL,";
|
||||
}
|
||||
if (!empty($this->date_refuse)) {
|
||||
$sql .= " date_refuse = '".$this->db->idate($this->date_refuse)."',";
|
||||
} else {
|
||||
$sql .= " date_refuse = NULL,";
|
||||
}
|
||||
if (!empty($this->fk_user_refuse)) {
|
||||
$sql .= " fk_user_refuse = '".$this->db->escape($this->fk_user_refuse)."',";
|
||||
$sql .= " fk_user_refuse = ".((int) $this->fk_user_refuse).",";
|
||||
} else {
|
||||
$sql .= " fk_user_refuse = NULL,";
|
||||
}
|
||||
@ -1000,7 +1037,7 @@ class Holiday extends CommonObject
|
||||
$sql .= " date_cancel = NULL,";
|
||||
}
|
||||
if (!empty($this->fk_user_cancel)) {
|
||||
$sql .= " fk_user_cancel = '".$this->db->escape($this->fk_user_cancel)."',";
|
||||
$sql .= " fk_user_cancel = ".((int) $this->fk_user_cancel).",";
|
||||
} else {
|
||||
$sql .= " fk_user_cancel = NULL,";
|
||||
}
|
||||
@ -2206,12 +2243,13 @@ class Holiday extends CommonObject
|
||||
$sql .= " f.date_create as datec,";
|
||||
$sql .= " f.tms as date_modification,";
|
||||
$sql .= " f.date_valid as datev,";
|
||||
$sql .= " f.date_approve as datea,";
|
||||
$sql .= " f.date_approval as datea,";
|
||||
$sql .= " f.date_refuse as dater,";
|
||||
$sql .= " f.fk_user_create as fk_user_creation,";
|
||||
$sql .= " f.fk_user_modif as fk_user_modification,";
|
||||
$sql .= " f.fk_user_valid as fk_user_approve_done,";
|
||||
$sql .= " f.fk_validator as fk_user_approve_expected,";
|
||||
$sql .= " f.fk_user_valid as fk_user_validation,";
|
||||
$sql .= " f.fk_user_approve as fk_user_approval_done,";
|
||||
$sql .= " f.fk_validator as fk_user_approval_expected,";
|
||||
$sql .= " f.fk_user_refuse as fk_user_refuse";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."holiday as f";
|
||||
$sql .= " WHERE f.rowid = ".((int) $id);
|
||||
@ -2227,16 +2265,16 @@ class Holiday extends CommonObject
|
||||
$this->date_creation = $this->db->jdate($obj->datec);
|
||||
$this->date_modification = $this->db->jdate($obj->date_modification);
|
||||
$this->date_validation = $this->db->jdate($obj->datev);
|
||||
$this->date_approbation = $this->db->jdate($obj->datea);
|
||||
$this->date_approval = $this->db->jdate($obj->datea);
|
||||
|
||||
if (!empty($obj->fk_user_creation)) {
|
||||
$cuser = new User($this->db);
|
||||
$cuser->fetch($obj->fk_user_creation);
|
||||
$this->user_creation = $cuser;
|
||||
}
|
||||
if (!empty($obj->fk_user_approve_done)) {
|
||||
if (!empty($obj->fk_user_valid)) {
|
||||
$vuser = new User($this->db);
|
||||
$vuser->fetch($obj->fk_user_approve_done);
|
||||
$vuser->fetch($obj->fk_user_valid);
|
||||
$this->user_validation = $vuser;
|
||||
}
|
||||
if (!empty($obj->fk_user_modification)) {
|
||||
@ -2246,15 +2284,15 @@ class Holiday extends CommonObject
|
||||
}
|
||||
|
||||
if ($obj->status == Holiday::STATUS_APPROVED || $obj->status == Holiday::STATUS_CANCELED) {
|
||||
if ($obj->fk_user_approve_done) {
|
||||
if ($obj->fk_user_approval_done) {
|
||||
$auser = new User($this->db);
|
||||
$auser->fetch($obj->fk_user_approve_done);
|
||||
$auser->fetch($obj->fk_user_approval_done);
|
||||
$this->user_approve = $auser;
|
||||
}
|
||||
} else {
|
||||
if (!empty($obj->fk_user_approve_expected)) {
|
||||
if (!empty($obj->fk_user_approval_expected)) {
|
||||
$auser = new User($this->db);
|
||||
$auser->fetch($obj->fk_user_approve_expected);
|
||||
$auser->fetch($obj->fk_user_approval_expected);
|
||||
$this->user_approve = $auser;
|
||||
}
|
||||
}
|
||||
|
||||
@ -69,6 +69,10 @@ ALTER TABLE llx_adherent ADD COLUMN default_lang VARCHAR(6) DEFAULT NULL AFTER d
|
||||
|
||||
ALTER TABLE llx_adherent_type ADD COLUMN caneditamount integer DEFAULT 0 AFTER amount;
|
||||
|
||||
ALTER TABLE llx_holiday CHANGE COLUMN date_approve date_approval datetime;
|
||||
|
||||
UPDATE llx_holiday SET date_approval = date_valid WHEN statut = 3 AND date_approval IS NULL;
|
||||
UPDATE llx_holiday SET fk_user_approve = fk_user_valid WHEN statut = 3 AND fk_user_approve IS NULL;
|
||||
|
||||
ALTER TABLE llx_inventory ADD COLUMN categories_product VARCHAR(255) DEFAULT NULL AFTER fk_product;
|
||||
|
||||
|
||||
@ -34,10 +34,10 @@ halfday integer DEFAULT 0, -- 0=start morning and end afternoon, -1=st
|
||||
nb_open_day double(24,8) DEFAULT NULL, -- denormalized number of open days of holiday. Not always set. More reliable when re-calculated with num_open_days(date_debut, date_fin, halfday).
|
||||
statut integer NOT NULL DEFAULT 1, -- status of leave request
|
||||
fk_validator integer NOT NULL, -- who should approve the leave
|
||||
date_valid DATETIME DEFAULT NULL, -- date approval (currently both date valid and date_approval)
|
||||
fk_user_valid integer DEFAULT NULL, -- user approval (currently both user valid and user that approved)
|
||||
date_approve DATETIME DEFAULT NULL, -- date approval (not used yet)
|
||||
fk_user_approve integer DEFAULT NULL, -- user approval (not used yet)
|
||||
date_valid DATETIME DEFAULT NULL, -- date validation
|
||||
fk_user_valid integer DEFAULT NULL, -- user validation
|
||||
date_approval DATETIME DEFAULT NULL, -- date approval
|
||||
fk_user_approve integer DEFAULT NULL, -- user approval
|
||||
date_refuse DATETIME DEFAULT NULL,
|
||||
fk_user_refuse integer DEFAULT NULL,
|
||||
date_cancel DATETIME DEFAULT NULL,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user