From dc03355315f716fa01cdb079085cfad291e7a3e1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 22 Sep 2022 19:10:20 +0200 Subject: [PATCH] FIX Separation of date_valid and date approval for leaves --- htdocs/core/lib/functions2.lib.php | 4 ++-- htdocs/holiday/card.php | 4 ++-- htdocs/holiday/class/holiday.class.php | 20 +++++++++----------- 3 files changed, 13 insertions(+), 15 deletions(-) diff --git a/htdocs/core/lib/functions2.lib.php b/htdocs/core/lib/functions2.lib.php index ba34b1283c9..5f497377798 100644 --- a/htdocs/core/lib/functions2.lib.php +++ b/htdocs/core/lib/functions2.lib.php @@ -439,7 +439,7 @@ function dol_print_object_info($object, $usetable = 0) } // Date approve - if (!empty($object->date_approve)) { + if (!empty($object->date_approve) || !empty($object->date_approval)) { if ($usetable) { print ''; } @@ -449,7 +449,7 @@ function dol_print_object_info($object, $usetable = 0) } else { print ': '; } - print dol_print_date($object->date_approve, 'dayhour', 'tzserver'); + print dol_print_date($object->date_approve ? $object->date_approve : $object->date_approval, 'dayhour', 'tzserver'); if ($deltadateforuser) { print ' '.$langs->trans("CurrentHour").'   /   '.dol_print_date($object->date_approve, "dayhour", 'tzuserrel').'  '.$langs->trans("ClientHour").''; } diff --git a/htdocs/holiday/card.php b/htdocs/holiday/card.php index 6224248dcb5..1443a92a113 100644 --- a/htdocs/holiday/card.php +++ b/htdocs/holiday/card.php @@ -439,7 +439,7 @@ if (empty($reshook)) { } } - // Action validate (+ send email for approval) + // Action validate (+ send email for approval to the expected approver) if ($action == 'confirm_send') { $object->fetch($id); @@ -1408,7 +1408,7 @@ if ((empty($id) && empty($ref)) || $action == 'create' || $action == 'add') { if ($object->statut == Holiday::STATUS_APPROVED || $object->statut == Holiday::STATUS_CANCELED) { print ''; print ''.$langs->trans('DateValidCP').''; - print ''.dol_print_date($object->date_valid, 'dayhour', 'tzuser').''; // warning: date_valid is approval date on holiday module + print ''.dol_print_date($object->date_approval, 'dayhour', 'tzuser').''; // warning: date_valid is approval date on holiday module print ''; } if ($object->statut == Holiday::STATUS_CANCELED) { diff --git a/htdocs/holiday/class/holiday.class.php b/htdocs/holiday/class/holiday.class.php index 102d37620bc..0125becd21c 100644 --- a/htdocs/holiday/class/holiday.class.php +++ b/htdocs/holiday/class/holiday.class.php @@ -421,6 +421,7 @@ 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->user_validation_id = $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); @@ -743,9 +744,12 @@ class Holiday extends CommonObject // Update status $sql = "UPDATE ".MAIN_DB_PREFIX."holiday SET"; + $sql .= " fk_user_valid = ".((int) $user->id).","; + $sql .= " date_valid = '".$this->db->idate(dol_now())."',"; if (!empty($this->statut) && is_numeric($this->statut)) { $sql .= " statut = ".((int) $this->statut).","; } else { + $this->error = 'Property status must be a numeric value'; $error++; } $sql .= " ref = '".$this->db->escape($num)."'"; @@ -868,7 +872,7 @@ class Holiday extends CommonObject $error++; } if (!empty($this->fk_validator)) { - $sql .= " fk_validator = '".$this->db->escape($this->fk_validator)."',"; + $sql .= " fk_validator = ".((int) $this->fk_validator).","; } else { $error++; } @@ -878,7 +882,7 @@ 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,"; } @@ -888,7 +892,7 @@ class Holiday extends CommonObject $sql .= " date_approval = NULL,"; } if (!empty($this->fk_user_approve)) { - $sql .= " fk_user_approve = '".$this->db->escape($this->fk_user_approve)."',"; + $sql .= " fk_user_approve = ".((int) $this->fk_user_approve).","; } else { $sql .= " fk_user_approve = NULL,"; } @@ -898,7 +902,7 @@ class Holiday extends CommonObject $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,"; } @@ -908,7 +912,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,"; } @@ -2289,12 +2293,6 @@ class Holiday extends CommonObject $auser->fetch($obj->fk_user_approval_done); $this->user_approve = $auser; } - } else { - if (!empty($obj->fk_user_approval_expected)) { - $auser = new User($this->db); - $auser->fetch($obj->fk_user_approval_expected); - $this->user_approve = $auser; - } } } $this->db->free($resql);