diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php index afb4fdacc6e..8f6dbd43d10 100644 --- a/htdocs/expensereport/card.php +++ b/htdocs/expensereport/card.php @@ -682,6 +682,10 @@ if ($action == "confirm_cancel" && GETPOST('confirm')=="yes" && GETPOST('detail_ setEventMessages($object->error, $object->errors, 'errors'); } } + else + { + setEventMessages($langs->transnoentitiesnoconv("OnlyOwnerCanCancel"), '', 'errors'); // Should not happened + } } if ($action == "confirm_brouillonner" && GETPOST('confirm')=="yes" && $id > 0 && $user->rights->expensereport->creer) @@ -1904,12 +1908,6 @@ if ($action != 'create' && $action != 'edit') { print 'id.'">'.$langs->trans('ValidateAndSubmit').''; } - - if ($user->rights->expensereport->supprimer) - { - // Delete - print 'id.'">'.$langs->trans('Delete').''; - } } } @@ -1929,12 +1927,6 @@ if ($action != 'create' && $action != 'edit') //print ''.$langs->trans('BROUILLONNER').''; // Enregistrer depuis le statut "Refusée" print 'id.'">'.$langs->trans('ValidateAndSubmit').''; - - if ($user->rights->expensereport->supprimer) - { - // Delete - print 'id.'">'.$langs->trans('Delete').''; - } } } @@ -1976,23 +1968,18 @@ if ($action != 'create' && $action != 'edit') // Cancel print 'id.'">'.$langs->trans('Cancel').''; } - - if($user->rights->expensereport->supprimer) - { - // Delete - print 'id.'">'.$langs->trans('Delete').''; - } } + + // If status is Appoved + // -------------------- + if ($user->rights->expensereport->approve && $object->fk_statut == 5) { print 'id.'">'.$langs->trans('Deny').''; } - /* Si l'état est "A payer" - * ET user à droit de "to_paid" - * Afficher : "Annuler" / "Payer" / "Supprimer" - */ + // If bank module is used if ($user->rights->expensereport->to_paid && ! empty($conf->banque->enabled) && $object->fk_statut == 5) { // Pay @@ -2006,59 +1993,41 @@ if ($action != 'create' && $action != 'edit') } } + // If bank module is not used if (($user->rights->expensereport->to_paid || empty($conf->banque->enabled)) && $object->fk_statut == 5) { if ((round($remaintopay) == 0 || empty($conf->banque->enabled)) && $object->paid == 0) { print '
'.$langs->trans("ClassifyPaid")."
"; } - - // Cancel - if ($user->id == $object->fk_user_author || $user->id == $object->fk_user_valid) - { - print 'id.'">'.$langs->trans('Cancel').''; - } - - // Delete - if($user->rights->expensereport->supprimer) - { - print 'id.'">'.$langs->trans('Delete').''; - } } - - /* Si l'état est "Payée" - * ET user à droit "approve" - * ET user à droit "to_paid" - * Afficher : "Annuler" - */ - if ($user->rights->expensereport->approve && $user->rights->expensereport->to_paid && $object->fk_statut==6) + + if ($user->rights->expensereport->creer && ($user->id == $object->fk_user_author || $user->id == $object->fk_user_valid) && $object->fk_statut == 5) { - // Cancel - print 'id.'">'.$langs->trans('Cancel').''; - if($user->rights->expensereport->supprimer) - { - // Delete - print 'id.'">'.$langs->trans('Delete').''; - } + // Cancel + print 'id.'">'.$langs->trans('Cancel').''; } - - /* Si l'état est "Annulée" - * ET user à droit "supprimer" - * Afficher : "Supprimer" - */ - if ($user->rights->expensereport->supprimer && $object->fk_statut==4) + + // TODO Replace this. It should be SetUnpaid and should go back to status unpaid not canceled. + if (($user->rights->expensereport->approve || $user->rights->expensereport->to_paid) && $object->fk_statut == 6) { - - if ($user->id == $object->fk_user_author || $user->id == $object->fk_user_valid) - { - // Brouillonner - print 'id.'">'.$langs->trans('ReOpen').''; - } - - // Delete + // Cancel + print 'id.'">'.$langs->trans('Cancel').''; + } + + + /* If draft, validated, cancel, and user can create, he can always delete its card before it is approved */ + if ($user->rights->expensereport->creer && $user->id == $object->fk_user_author && $object->fk_statut <= 4) + { + // Delete print 'id.'">'.$langs->trans('Delete').''; - } + else if($user->rights->expensereport->supprimer && $object->fk_statut != 6) + { + // Delete + print 'id.'">'.$langs->trans('Delete').''; + } + } print '';