mirror of
https://github.com/Dolibarr/dolibarr.git
synced 2025-02-20 13:46:52 +01:00
NEW Notification module support expense report+holiday validation and
approval event.
This commit is contained in:
parent
277655b911
commit
25a374bd9a
|
|
@ -166,12 +166,15 @@ foreach($listofnotifiedevents as $notifiedevent)
|
|||
{
|
||||
|
||||
$label=$langs->trans("Notify_".$notifiedevent['code']); //!=$langs->trans("Notify_".$notifiedevent['code'])?$langs->trans("Notify_".$notifiedevent['code']):$notifiedevent['label'];
|
||||
$elementLabel = $langs->trans(ucfirst($notifiedevent['elementtype']));
|
||||
|
||||
if ($notifiedevent['elementtype'] == 'order_supplier') $elementLabel = $langs->trans('SupplierOrder');
|
||||
elseif ($notifiedevent['elementtype'] == 'propal') $elementLabel = $langs->trans('Proposal');
|
||||
elseif ($notifiedevent['elementtype'] == 'facture') $elementLabel = $langs->trans('Bill');
|
||||
elseif ($notifiedevent['elementtype'] == 'commande') $elementLabel = $langs->trans('Order');
|
||||
elseif ($notifiedevent['elementtype'] == 'ficheinter') $elementLabel = $langs->trans('Intervention');
|
||||
elseif ($notifiedevent['elementtype'] == 'shipping') $elementLabel = $langs->trans('Shipping');
|
||||
elseif ($notifiedevent['elementtype'] == 'expensereport') $elementLabel = $langs->trans('ExpenseReport');
|
||||
|
||||
if ($i) print ', ';
|
||||
print $label;
|
||||
|
|
@ -209,11 +212,15 @@ foreach($listofnotifiedevents as $notifiedevent)
|
|||
|
||||
$label=$langs->trans("Notify_".$notifiedevent['code']); //!=$langs->trans("Notify_".$notifiedevent['code'])?$langs->trans("Notify_".$notifiedevent['code']):$notifiedevent['label'];
|
||||
|
||||
$elementLabel = $langs->trans(ucfirst($notifiedevent['elementtype']));
|
||||
// Special cases
|
||||
if ($notifiedevent['elementtype'] == 'order_supplier') $elementLabel = $langs->trans('SupplierOrder');
|
||||
elseif ($notifiedevent['elementtype'] == 'propal') $elementLabel = $langs->trans('Proposal');
|
||||
elseif ($notifiedevent['elementtype'] == 'facture') $elementLabel = $langs->trans('Bill');
|
||||
elseif ($notifiedevent['elementtype'] == 'commande') $elementLabel = $langs->trans('Order');
|
||||
elseif ($notifiedevent['elementtype'] == 'ficheinter') $elementLabel = $langs->trans('Intervention');
|
||||
elseif ($notifiedevent['elementtype'] == 'shipping') $elementLabel = $langs->trans('Shipping');
|
||||
elseif ($notifiedevent['elementtype'] == 'expensereport') $elementLabel = $langs->trans('ExpenseReport');
|
||||
|
||||
print '<tr class="oddeven">';
|
||||
print '<td>'.$elementLabel.'</td>';
|
||||
|
|
|
|||
|
|
@ -65,6 +65,7 @@ class Notify
|
|||
// Les codes actions sont definis dans la table llx_notify_def
|
||||
|
||||
// codes actions supported are
|
||||
// @TODO defined also into interface_50_modNotificiation_Notificiation.class.php
|
||||
public $arrayofnotifsupported = array(
|
||||
'BILL_VALIDATE',
|
||||
'BILL_PAYED',
|
||||
|
|
@ -76,7 +77,11 @@ class Notify
|
|||
'ORDER_SUPPLIER_VALIDATE',
|
||||
'ORDER_SUPPLIER_APPROVE',
|
||||
'ORDER_SUPPLIER_REFUSE',
|
||||
'SHIPPING_VALIDATE'
|
||||
'SHIPPING_VALIDATE',
|
||||
'EXPENSE_REPORT_VALIDATE',
|
||||
'EXPENSE_REPORT_APPROVE',
|
||||
'HOLIDAY_VALIDATE',
|
||||
'HOLIDAY_APPROVE'
|
||||
);
|
||||
|
||||
|
||||
|
|
@ -340,22 +345,27 @@ class Notify
|
|||
$oldref=(empty($object->oldref)?$object->ref:$object->oldref);
|
||||
$newref=(empty($object->newref)?$object->ref:$object->newref);
|
||||
|
||||
$sql = '';
|
||||
|
||||
// Check notification per third party
|
||||
$sql = "SELECT 'tocontactid' as type_target, c.email, c.rowid as cid, c.lastname, c.firstname, c.default_lang,";
|
||||
$sql.= " a.rowid as adid, a.label, a.code, n.rowid, n.type";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."socpeople as c,";
|
||||
$sql.= " ".MAIN_DB_PREFIX."c_action_trigger as a,";
|
||||
$sql.= " ".MAIN_DB_PREFIX."notify_def as n,";
|
||||
$sql.= " ".MAIN_DB_PREFIX."societe as s";
|
||||
$sql.= " WHERE n.fk_contact = c.rowid AND a.rowid = n.fk_action";
|
||||
$sql.= " AND n.fk_soc = s.rowid";
|
||||
if (is_numeric($notifcode)) $sql.= " AND n.fk_action = ".$notifcode; // Old usage
|
||||
else $sql.= " AND a.code = '".$notifcode."'"; // New usage
|
||||
$sql .= " AND s.rowid = ".$object->socid;
|
||||
if ($object->socid > 0)
|
||||
{
|
||||
$sql.= "SELECT 'tocontactid' as type_target, c.email, c.rowid as cid, c.lastname, c.firstname, c.default_lang,";
|
||||
$sql.= " a.rowid as adid, a.label, a.code, n.rowid, n.type";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."socpeople as c,";
|
||||
$sql.= " ".MAIN_DB_PREFIX."c_action_trigger as a,";
|
||||
$sql.= " ".MAIN_DB_PREFIX."notify_def as n,";
|
||||
$sql.= " ".MAIN_DB_PREFIX."societe as s";
|
||||
$sql.= " WHERE n.fk_contact = c.rowid AND a.rowid = n.fk_action";
|
||||
$sql.= " AND n.fk_soc = s.rowid";
|
||||
if (is_numeric($notifcode)) $sql.= " AND n.fk_action = ".$notifcode; // Old usage
|
||||
else $sql.= " AND a.code = '".$notifcode."'"; // New usage
|
||||
$sql .= " AND s.rowid = ".$object->socid;
|
||||
|
||||
$sql.= "\nUNION\n";
|
||||
}
|
||||
|
||||
// Check notification per user
|
||||
$sql.= "\nUNION\n";
|
||||
|
||||
$sql.= "SELECT 'touserid' as type_target, c.email, c.rowid as cid, c.lastname, c.firstname, c.lang as default_lang,";
|
||||
$sql.= " a.rowid as adid, a.label, a.code, n.rowid, n.type";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."user as c,";
|
||||
|
|
@ -363,7 +373,7 @@ class Notify
|
|||
$sql.= " ".MAIN_DB_PREFIX."notify_def as n";
|
||||
$sql.= " WHERE n.fk_user = c.rowid AND a.rowid = n.fk_action";
|
||||
if (is_numeric($notifcode)) $sql.= " AND n.fk_action = ".$notifcode; // Old usage
|
||||
else $sql.= " AND a.code = '".$notifcode."'"; // New usage
|
||||
else $sql.= " AND a.code = '".$this->db->escape($notifcode)."'"; // New usage
|
||||
|
||||
$result = $this->db->query($sql);
|
||||
if ($result)
|
||||
|
|
@ -473,6 +483,26 @@ class Notify
|
|||
$object_type = 'order_supplier';
|
||||
$mesg = $outputlangs->transnoentitiesnoconv("EMailTextExpeditionValidated",$newref);
|
||||
break;
|
||||
case 'EXPENSE_REPORT_VALIDATE':
|
||||
$dir_output = $conf->expensereport->dir_output;
|
||||
$object_type = 'expensereport';
|
||||
$mesg = $outputlangs->transnoentitiesnoconv("EMailTextExpenseReportValidated",$newref);
|
||||
break;
|
||||
case 'EXPENSE_REPORT_APPROVE':
|
||||
$dir_output = $conf->expensereport->dir_output;
|
||||
$object_type = 'expensereport';
|
||||
$mesg = $outputlangs->transnoentitiesnoconv("EMailTextExpenseReportApproved",$newref);
|
||||
break;
|
||||
case 'HOLIDAY_VALIDATE':
|
||||
$dir_output = $conf->holiday->dir_output;
|
||||
$object_type = 'holiday';
|
||||
$mesg = $outputlangs->transnoentitiesnoconv("EMailTextHolidayValidated",$newref);
|
||||
break;
|
||||
case 'HOLIDAY_APPROVE':
|
||||
$dir_output = $conf->holiday->dir_output;
|
||||
$object_type = 'holiday';
|
||||
$mesg = $outputlangs->transnoentitiesnoconv("EMailTextHolidayApproved",$newref);
|
||||
break;
|
||||
}
|
||||
$ref = dol_sanitizeFileName($newref);
|
||||
$pdf_path = $dir_output."/".$ref."/".$ref.".pdf";
|
||||
|
|
@ -663,6 +693,26 @@ class Notify
|
|||
$object_type = 'order_supplier';
|
||||
$mesg = $langs->transnoentitiesnoconv("EMailTextExpeditionValidated",$newref);
|
||||
break;
|
||||
case 'EXPENSE_REPORT_VALIDATE':
|
||||
$dir_output = $conf->expensereport->dir_output;
|
||||
$object_type = 'expensereport';
|
||||
$mesg = $langs->transnoentitiesnoconv("EMailTextExpenseReportValidated",$newref);
|
||||
break;
|
||||
case 'EXPENSE_REPORT_APPROVE':
|
||||
$dir_output = $conf->expensereport->dir_output;
|
||||
$object_type = 'expensereport';
|
||||
$mesg = $langs->transnoentitiesnoconv("EMailTextExpenseReportApproved",$newref);
|
||||
break;
|
||||
case 'HOLIDAY_VALIDATE':
|
||||
$dir_output = $conf->holiday->dir_output;
|
||||
$object_type = 'holiday';
|
||||
$mesg = $langs->transnoentitiesnoconv("EMailTextHolidayValidated",$newref);
|
||||
break;
|
||||
case 'HOLIDAY_APPROVE':
|
||||
$dir_output = $conf->holiday->dir_output;
|
||||
$object_type = 'holiday';
|
||||
$mesg = $langs->transnoentitiesnoconv("EMailTextHolidayApproved",$newref);
|
||||
break;
|
||||
}
|
||||
$ref = dol_sanitizeFileName($newref);
|
||||
$pdf_path = $dir_output."/".$ref."/".$ref.".pdf";
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ class InterfaceNotification extends DolibarrTriggers
|
|||
*/
|
||||
public $picto = 'email';
|
||||
|
||||
// @TODO Defined also into notify.class.php)
|
||||
public $listofmanagedevents=array(
|
||||
'BILL_VALIDATE',
|
||||
'BILL_PAYED',
|
||||
|
|
@ -55,8 +56,12 @@ class InterfaceNotification extends DolibarrTriggers
|
|||
'ORDER_SUPPLIER_VALIDATE',
|
||||
'ORDER_SUPPLIER_APPROVE',
|
||||
'ORDER_SUPPLIER_REFUSE',
|
||||
'SHIPPING_VALIDATE'
|
||||
);
|
||||
'SHIPPING_VALIDATE',
|
||||
'EXPENSE_REPORT_VALIDATE',
|
||||
'EXPENSE_REPORT_APPROVE',
|
||||
'HOLIDAY_VALIDATE',
|
||||
'HOLIDAY_APPROVE'
|
||||
);
|
||||
|
||||
/**
|
||||
* Function called when a Dolibarrr business event is done.
|
||||
|
|
@ -112,7 +117,7 @@ class InterfaceNotification extends DolibarrTriggers
|
|||
|
||||
$qualified=0;
|
||||
// Check is this event is supported by notification module
|
||||
if (in_array($obj->code,$this->listofmanagedevents)) $qualified=1;
|
||||
if (in_array($obj->code, $this->listofmanagedevents)) $qualified=1;
|
||||
// Check if module for this event is active
|
||||
if ($qualified)
|
||||
{
|
||||
|
|
@ -125,7 +130,7 @@ class InterfaceNotification extends DolibarrTriggers
|
|||
elseif ($element == 'withdraw' && empty($conf->prelevement->enabled)) $qualified=0;
|
||||
elseif ($element == 'shipping' && empty($conf->expedition->enabled)) $qualified=0;
|
||||
elseif ($element == 'member' && empty($conf->adherent->enabled)) $qualified=0;
|
||||
elseif (! in_array($element,array('order_supplier','invoice_supplier','withdraw','shipping','member')) && empty($conf->$element->enabled)) $qualified=0;
|
||||
elseif (! in_array($element,array('order_supplier','invoice_supplier','withdraw','shipping','member','expensereport')) && empty($conf->$element->enabled)) $qualified=0;
|
||||
}
|
||||
|
||||
if ($qualified)
|
||||
|
|
|
|||
|
|
@ -214,7 +214,7 @@ if ($action == 'update')
|
|||
$object->fetch($id);
|
||||
|
||||
// If under validation
|
||||
if ($object->statut == 1)
|
||||
if ($object->statut == Holiday::STATUS_DRAFT)
|
||||
{
|
||||
// If this is the requestor or has read/write rights
|
||||
if ($cancreate)
|
||||
|
|
@ -298,7 +298,7 @@ if ($action == 'confirm_delete' && GETPOST('confirm') == 'yes' && $user->rights-
|
|||
$object->fetch($id);
|
||||
|
||||
// If this is a rough draft, approved, canceled or refused
|
||||
if ($object->statut == 1 || $object->statut == 4 || $object->statut == 5)
|
||||
if ($object->statut == Holiday::STATUS_DRAFT || $object->statut == Holiday::STATUS_CANCELED || $object->statut == Holiday::STATUS_REFUSED)
|
||||
{
|
||||
// Si l'utilisateur à le droit de lire cette demande, il peut la supprimer
|
||||
if ($candelete)
|
||||
|
|
@ -332,11 +332,13 @@ if ($action == 'confirm_send')
|
|||
$object->fetch($id);
|
||||
|
||||
// Si brouillon et créateur
|
||||
if($object->statut == 1 && $cancreate)
|
||||
if($object->statut == Holiday::STATUS_DRAFT && $cancreate)
|
||||
{
|
||||
$object->statut = 2;
|
||||
$object->oldcopy = dol_clone($object);
|
||||
|
||||
$verif = $object->update($user);
|
||||
$object->statut = Holiday::STATUS_VALIDATED;
|
||||
|
||||
$verif = $object->validate($user);
|
||||
|
||||
// Si pas d'erreur SQL on redirige vers la fiche de la demande
|
||||
if ($verif > 0)
|
||||
|
|
@ -435,13 +437,15 @@ if ($action == 'confirm_valid')
|
|||
$object->fetch($id);
|
||||
|
||||
// Si statut en attente de validation et valideur = utilisateur
|
||||
if ($object->statut == 2 && $user->id == $object->fk_validator)
|
||||
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->statut = 3;
|
||||
$object->statut = Holiday::STATUS_APPROVED;
|
||||
|
||||
$verif = $object->update($user);
|
||||
$verif = $object->approve($user);
|
||||
|
||||
// Si pas d'erreur SQL on redirige vers la fiche de la demande
|
||||
if ($verif > 0)
|
||||
|
|
@ -530,11 +534,11 @@ if ($action == 'confirm_refuse' && GETPOST('confirm','alpha') == 'yes')
|
|||
$object->fetch($id);
|
||||
|
||||
// Si statut en attente de validation et valideur = utilisateur
|
||||
if ($object->statut == 2 && $user->id == $object->fk_validator)
|
||||
if ($object->statut == Holiday::STATUS_VALIDATED && $user->id == $object->fk_validator)
|
||||
{
|
||||
$object->date_refuse = dol_print_date('dayhour', dol_now());
|
||||
$object->fk_user_refuse = $user->id;
|
||||
$object->statut = 5;
|
||||
$object->statut = Holiday::STATUS_REFUSED;
|
||||
$object->detail_refuse = GETPOST('detail_refuse','alphanohtml');
|
||||
|
||||
$verif = $object->update($user);
|
||||
|
|
@ -615,7 +619,7 @@ if ($action == 'confirm_draft' && GETPOST('confirm') == 'yes')
|
|||
$object->fetch($id);
|
||||
|
||||
$oldstatus = $object->statut;
|
||||
$object->statut = 1;
|
||||
$object->statut = Holiday::STATUS_DRAFT;
|
||||
|
||||
$result = $object->update($user);
|
||||
if ($result < 0)
|
||||
|
|
@ -646,18 +650,18 @@ if ($action == 'confirm_cancel' && GETPOST('confirm') == 'yes')
|
|||
$object->fetch($id);
|
||||
|
||||
// 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 || in_array($object->fk_user, $childids) || ! empty($user->rights->holiday->write_all)))
|
||||
if (($object->statut == Holiday::STATUS_VALIDATED || $object->statut == Holiday::STATUS_APPROVED) && ($user->id == $object->fk_validator || in_array($object->fk_user, $childids) || ! empty($user->rights->holiday->write_all)))
|
||||
{
|
||||
$db->begin();
|
||||
|
||||
$oldstatus = $object->statut;
|
||||
$object->date_cancel = dol_now();
|
||||
$object->fk_user_cancel = $user->id;
|
||||
$object->statut = 4;
|
||||
$object->statut = Holiday::STATUS_CANCELED;
|
||||
|
||||
$result = $object->update($user);
|
||||
|
||||
if ($result >= 0 && $oldstatus == 3) // holiday was already validated, status 3, so we must increase back sold
|
||||
if ($result >= 0 && $oldstatus == Holiday::STATUS_APPROVED) // holiday was already validated, status 3, so we must increase back sold
|
||||
{
|
||||
// Calculcate number of days consummed
|
||||
$nbopenedday=num_open_day($object->date_debut_gmt,$object->date_fin_gmt,0,1,$object->halfday);
|
||||
|
|
|
|||
|
|
@ -598,6 +598,234 @@ class Holiday extends CommonObject
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Validate leave request
|
||||
*
|
||||
* @param User $user User that validate
|
||||
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
function validate($user=null, $notrigger=0)
|
||||
{
|
||||
global $conf, $langs;
|
||||
$error=0;
|
||||
|
||||
// Update request
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."holiday SET";
|
||||
|
||||
$sql.= " description= '".$this->db->escape($this->description)."',";
|
||||
|
||||
if(!empty($this->date_debut)) {
|
||||
$sql.= " date_debut = '".$this->db->idate($this->date_debut)."',";
|
||||
} else {
|
||||
$error++;
|
||||
}
|
||||
if(!empty($this->date_fin)) {
|
||||
$sql.= " date_fin = '".$this->db->idate($this->date_fin)."',";
|
||||
} else {
|
||||
$error++;
|
||||
}
|
||||
$sql.= " halfday = ".$this->halfday.",";
|
||||
if(!empty($this->statut) && is_numeric($this->statut)) {
|
||||
$sql.= " statut = ".$this->statut.",";
|
||||
} else {
|
||||
$error++;
|
||||
}
|
||||
if(!empty($this->fk_validator)) {
|
||||
$sql.= " fk_validator = '".$this->db->escape($this->fk_validator)."',";
|
||||
} else {
|
||||
$error++;
|
||||
}
|
||||
if(!empty($this->date_valid)) {
|
||||
$sql.= " date_valid = '".$this->db->idate($this->date_valid)."',";
|
||||
} else {
|
||||
$sql.= " date_valid = NULL,";
|
||||
}
|
||||
if(!empty($this->fk_user_valid)) {
|
||||
$sql.= " fk_user_valid = '".$this->db->escape($this->fk_user_valid)."',";
|
||||
} else {
|
||||
$sql.= " fk_user_valid = 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)."',";
|
||||
} else {
|
||||
$sql.= " fk_user_refuse = NULL,";
|
||||
}
|
||||
if(!empty($this->date_cancel)) {
|
||||
$sql.= " date_cancel = '".$this->db->idate($this->date_cancel)."',";
|
||||
} else {
|
||||
$sql.= " date_cancel = NULL,";
|
||||
}
|
||||
if(!empty($this->fk_user_cancel)) {
|
||||
$sql.= " fk_user_cancel = '".$this->db->escape($this->fk_user_cancel)."',";
|
||||
} else {
|
||||
$sql.= " fk_user_cancel = NULL,";
|
||||
}
|
||||
if(!empty($this->detail_refuse)) {
|
||||
$sql.= " detail_refuse = '".$this->db->escape($this->detail_refuse)."'";
|
||||
} else {
|
||||
$sql.= " detail_refuse = NULL";
|
||||
}
|
||||
|
||||
$sql.= " WHERE rowid= ".$this->id;
|
||||
|
||||
$this->db->begin();
|
||||
|
||||
dol_syslog(get_class($this)."::validate", LOG_DEBUG);
|
||||
$resql = $this->db->query($sql);
|
||||
if (! $resql) {
|
||||
$error++; $this->errors[]="Error ".$this->db->lasterror();
|
||||
}
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
if (! $notrigger)
|
||||
{
|
||||
// Call trigger
|
||||
$result=$this->call_trigger('HOLIDAY_VALIDATE',$user);
|
||||
if ($result < 0) { $error++; }
|
||||
// End call triggers
|
||||
}
|
||||
}
|
||||
|
||||
// Commit or rollback
|
||||
if ($error)
|
||||
{
|
||||
foreach($this->errors as $errmsg)
|
||||
{
|
||||
dol_syslog(get_class($this)."::validate ".$errmsg, LOG_ERR);
|
||||
$this->error.=($this->error?', '.$errmsg:$errmsg);
|
||||
}
|
||||
$this->db->rollback();
|
||||
return -1*$error;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db->commit();
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Approve leave request
|
||||
*
|
||||
* @param User $user User that approve
|
||||
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
function approve($user=null, $notrigger=0)
|
||||
{
|
||||
global $conf, $langs;
|
||||
$error=0;
|
||||
|
||||
// Update request
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."holiday SET";
|
||||
|
||||
$sql.= " description= '".$this->db->escape($this->description)."',";
|
||||
|
||||
if(!empty($this->date_debut)) {
|
||||
$sql.= " date_debut = '".$this->db->idate($this->date_debut)."',";
|
||||
} else {
|
||||
$error++;
|
||||
}
|
||||
if(!empty($this->date_fin)) {
|
||||
$sql.= " date_fin = '".$this->db->idate($this->date_fin)."',";
|
||||
} else {
|
||||
$error++;
|
||||
}
|
||||
$sql.= " halfday = ".$this->halfday.",";
|
||||
if(!empty($this->statut) && is_numeric($this->statut)) {
|
||||
$sql.= " statut = ".$this->statut.",";
|
||||
} else {
|
||||
$error++;
|
||||
}
|
||||
if(!empty($this->fk_validator)) {
|
||||
$sql.= " fk_validator = '".$this->db->escape($this->fk_validator)."',";
|
||||
} else {
|
||||
$error++;
|
||||
}
|
||||
if(!empty($this->date_valid)) {
|
||||
$sql.= " date_valid = '".$this->db->idate($this->date_valid)."',";
|
||||
} else {
|
||||
$sql.= " date_valid = NULL,";
|
||||
}
|
||||
if(!empty($this->fk_user_valid)) {
|
||||
$sql.= " fk_user_valid = '".$this->db->escape($this->fk_user_valid)."',";
|
||||
} else {
|
||||
$sql.= " fk_user_valid = 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)."',";
|
||||
} else {
|
||||
$sql.= " fk_user_refuse = NULL,";
|
||||
}
|
||||
if(!empty($this->date_cancel)) {
|
||||
$sql.= " date_cancel = '".$this->db->idate($this->date_cancel)."',";
|
||||
} else {
|
||||
$sql.= " date_cancel = NULL,";
|
||||
}
|
||||
if(!empty($this->fk_user_cancel)) {
|
||||
$sql.= " fk_user_cancel = '".$this->db->escape($this->fk_user_cancel)."',";
|
||||
} else {
|
||||
$sql.= " fk_user_cancel = NULL,";
|
||||
}
|
||||
if(!empty($this->detail_refuse)) {
|
||||
$sql.= " detail_refuse = '".$this->db->escape($this->detail_refuse)."'";
|
||||
} else {
|
||||
$sql.= " detail_refuse = NULL";
|
||||
}
|
||||
|
||||
$sql.= " WHERE rowid= ".$this->id;
|
||||
|
||||
$this->db->begin();
|
||||
|
||||
dol_syslog(get_class($this)."::approve", LOG_DEBUG);
|
||||
$resql = $this->db->query($sql);
|
||||
if (! $resql) {
|
||||
$error++; $this->errors[]="Error ".$this->db->lasterror();
|
||||
}
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
if (! $notrigger)
|
||||
{
|
||||
// Call trigger
|
||||
$result=$this->call_trigger('HOLIDAY_APPROVE',$user);
|
||||
if ($result < 0) { $error++; }
|
||||
// End call triggers
|
||||
}
|
||||
}
|
||||
|
||||
// Commit or rollback
|
||||
if ($error)
|
||||
{
|
||||
foreach($this->errors as $errmsg)
|
||||
{
|
||||
dol_syslog(get_class($this)."::approve ".$errmsg, LOG_ERR);
|
||||
$this->error.=($this->error?', '.$errmsg:$errmsg);
|
||||
}
|
||||
$this->db->rollback();
|
||||
return -1*$error;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db->commit();
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Update database
|
||||
*
|
||||
|
|
|
|||
|
|
@ -101,6 +101,8 @@ insert into llx_c_action_trigger (code,label,description,elementtype,rang) value
|
|||
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_APPROVE','Expense report approved','Executed when an expense report is approved','expensereport',203);
|
||||
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_PAYED','Expense report billed','Executed when an expense report is set as billed','expensereport',204);
|
||||
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_DELETE','Expense report deleted','Executed when an expense report is deleted','expensereport',204);
|
||||
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_VALIDATE','Expense report validated','Executed when an expense report is validated','expensereport',202);
|
||||
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_APPROVE','Expense report approved','Executed when an expense report is approved','expensereport',203);
|
||||
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROJECT_VALIDATE','Project validation','Executed when a project is validated','project',141);
|
||||
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROJECT_DELETE','Project deleted','Executed when a project is deleted','project',143);
|
||||
-- actions not enabled by default (no constant created for that) when we enable module agenda
|
||||
|
|
|
|||
|
|
@ -69,6 +69,8 @@ insert into llx_c_action_trigger (code,label,description,elementtype,rang) value
|
|||
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('CONTRACT_DELETE','Contract deleted','Executed when a contract is deleted','contrat',18);
|
||||
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('FICHINTER_DELETE','Intervention is deleted','Executed when a intervention is deleted','ficheinter',35);
|
||||
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_DELETE','Expense report deleted','Executed when an expense report is deleted','expensereport',204);
|
||||
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_VALIDATE','Expense report validated','Executed when an expense report is validated','expensereport',202);
|
||||
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_APPROVE','Expense report approved','Executed when an expense report is approved','expensereport',203);
|
||||
|
||||
ALTER TABLE llx_payment_salary ADD COLUMN fk_projet integer DEFAULT NULL after amount;
|
||||
|
||||
|
|
|
|||
|
|
@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
|
|||
DateNextInvoiceBeforeGen=Date of next invoice (before generation)
|
||||
DateNextInvoiceAfterGen=Date of next invoice (after generation)
|
||||
|
||||
Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
|
||||
Notify_FICHINTER_VALIDATE=Intervention validated
|
||||
Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
|
||||
Notify_ORDER_VALIDATE=Customer order validated
|
||||
Notify_ORDER_SENTBYMAIL=Customer order sent by mail
|
||||
Notify_ORDER_SUPPLIER_SENTBYMAIL=Supplier order sent by mail
|
||||
|
|
@ -60,6 +57,8 @@ Notify_BILL_SUPPLIER_SENTBYMAIL=Supplier invoice sent by mail
|
|||
Notify_BILL_SUPPLIER_CANCELED=Supplier invoice cancelled
|
||||
Notify_CONTRACT_VALIDATE=Contract validated
|
||||
Notify_FICHEINTER_VALIDATE=Intervention validated
|
||||
Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
|
||||
Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
|
||||
Notify_SHIPPING_VALIDATE=Shipping validated
|
||||
Notify_SHIPPING_SENTBYMAIL=Shipping sent by mail
|
||||
Notify_MEMBER_VALIDATE=Member validated
|
||||
|
|
@ -71,6 +70,10 @@ Notify_PROJECT_CREATE=Project creation
|
|||
Notify_TASK_CREATE=Task created
|
||||
Notify_TASK_MODIFY=Task modified
|
||||
Notify_TASK_DELETE=Task deleted
|
||||
Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
|
||||
Notify_EXPENSE_REPORT_APPROVE=Expense report approved
|
||||
Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
|
||||
Notify_HOLIDAY_APPROVE=Leave request approved
|
||||
SeeModuleSetup=See setup of module %s
|
||||
NbOfAttachedFiles=Number of attached files/documents
|
||||
TotalSizeOfAttachedFiles=Total size of attached files/documents
|
||||
|
|
@ -198,6 +201,10 @@ EMailTextOrderApprovedBy=The order %s has been approved by %s.
|
|||
EMailTextOrderRefused=The order %s has been refused.
|
||||
EMailTextOrderRefusedBy=The order %s has been refused by %s.
|
||||
EMailTextExpeditionValidated=The shipping %s has been validated.
|
||||
EMailTextExpenseReportValidated=The expense report %s has been validated.
|
||||
EMailTextExpenseReportApproved=The expensereport %s has been approved.
|
||||
EMailTextHolidayValidated=The leave request %s has been validated.
|
||||
EMailTextHolidayApproved=The leave request %s has been approved.
|
||||
ImportedWithSet=Importation data set
|
||||
DolibarrNotification=Automatic notification
|
||||
ResizeDesc=Enter new width <b>OR</b> new height. Ratio will be kept during resizing...
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user