diff --git a/htdocs/holiday/card.php b/htdocs/holiday/card.php
index c875caab271..78e2940942f 100644
--- a/htdocs/holiday/card.php
+++ b/htdocs/holiday/card.php
@@ -570,14 +570,43 @@ if ($action == 'confirm_refuse')
}
}
+
+// Si Validation de la demande
+if ($action == 'confirm_draft' && GETPOST('confirm') == 'yes')
+{
+ $object = new Holiday($db);
+ $object->fetch($id);
+
+ $oldstatus = $object->statut;
+ $object->statut = 1;
+
+ $result = $object->update($user);
+ if ($result < 0)
+ {
+ $error = $langs->trans('ErrorBackToDraft');
+ }
+
+ if (! $error)
+ {
+ $db->commit();
+
+ header('Location: '.$_SERVER["PHP_SELF"].'?id='.$object->id);
+ exit;
+ }
+ else
+ {
+ $db->rollback();
+ }
+}
+
// Si Validation de la demande
if ($action == 'confirm_cancel' && GETPOST('confirm') == 'yes')
{
$object = new Holiday($db);
$object->fetch($id);
- // Si statut en attente de validation et valideur = utilisateur
- if (($object->statut == 2 || $object->statut == 3) && ($user->id == $object->fk_validator || $user->id == $object->fk_user))
+ // Si statut en attente de validation et valideur = valideur ou utilisateur, ou droits de faire pour les autres
+ if (($object->statut == 2 || $object->statut == 3) && ($user->id == $object->fk_validator || $user->id == $object->fk_user || ! empty($user->rights->holiday->write_all)))
{
$db->begin();
@@ -989,6 +1018,12 @@ else
print $form->formconfirm($_SERVER["PHP_SELF"]."?id=".$object->id,$langs->trans("TitleCancelCP"),$langs->trans("ConfirmCancelCP"),"confirm_cancel", '', 1, 1);
}
+ // Si back to draft
+ if ($action == 'backtodraft')
+ {
+ print $form->formconfirm($_SERVER["PHP_SELF"]."?id=".$object->id,$langs->trans("TitleSetToDraft"),$langs->trans("ConfirmSetToDraft"),"confirm_draft", '', 1, 1);
+ }
+
$head=holiday_prepare_head($object);
@@ -1208,18 +1243,31 @@ else
print 'id.'&action=delete" class="butActionDelete">'.$langs->trans("DeleteCP").'';
}
- if ($user->id == $object->fk_validator && $object->statut == 2)
+ if ($object->statut == 2)
{
- print 'id.'&action=valid" class="butAction">'.$langs->trans("Approve").'';
- print 'id.'&action=refuse" class="butAction">'.$langs->trans("ActionRefuseCP").'';
+ if ($user->id == $object->fk_validator)
+ {
+ print 'id.'&action=valid" class="butAction">'.$langs->trans("Approve").'';
+ print 'id.'&action=refuse" class="butAction">'.$langs->trans("ActionRefuseCP").'';
+ }
+ else
+ {
+ print ''.$langs->trans("Approve").'';
+ print ''.$langs->trans("ActionRefuseCP").'';
+ }
}
- if (($user->id == $object->fk_validator || $user->id == $object->fk_user) && ($object->statut == 2 || $object->statut == 3)) // Status validated or approved
+ if (($user->id == $object->fk_validator || $user->id == $object->fk_user || ! empty($user->rights->holiday->write_all)) && ($object->statut == 2 || $object->statut == 3)) // Status validated or approved
{
if (($object->date_debut > dol_now()) || $user->admin) print 'id.'&action=cancel" class="butAction">'.$langs->trans("ActionCancelCP").'';
else print ''.$langs->trans("ActionCancelCP").'';
}
+ if ($canedit && $object->statut == 4)
+ {
+ print 'id.'&action=backtodraft" class="butAction">'.$langs->trans("SetToDraft").'';
+ }
+
print '';
}
diff --git a/htdocs/langs/en_US/holiday.lang b/htdocs/langs/en_US/holiday.lang
index 441701c098d..e8d225d5af6 100644
--- a/htdocs/langs/en_US/holiday.lang
+++ b/htdocs/langs/en_US/holiday.lang
@@ -16,7 +16,7 @@ CancelCP=Canceled
RefuseCP=Refused
ValidatorCP=Approbator
ListeCP=List of leaves
-ReviewedByCP=Will be reviewed by
+ReviewedByCP=Will be approved by
DescCP=Description
SendRequestCP=Create leave request
DelayToRequestCP=Leave requests must be made at least %s day(s) before them.
diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang
index ec4e218a11e..ba95ce233f8 100644
--- a/htdocs/langs/en_US/main.lang
+++ b/htdocs/langs/en_US/main.lang
@@ -757,6 +757,8 @@ SomeTranslationAreUncomplete=Some languages may be partially translated or may c
DirectDownloadLink=Direct download link
Download=Download
ActualizeCurrency=Update currency rate
+TitleSetToDraft=Go back to draft
+ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
# Week day
Monday=Monday
Tuesday=Tuesday