diff --git a/htdocs/societe/notify/fiche.php b/htdocs/societe/notify/fiche.php index 4222a4dacab..e5d42b5cafd 100644 --- a/htdocs/societe/notify/fiche.php +++ b/htdocs/societe/notify/fiche.php @@ -52,6 +52,8 @@ $pagenext = $page + 1; if (! $sortorder) $sortorder="ASC"; if (! $sortfield) $sortfield="c.name"; +$now=dol_now(); + /* * Actions @@ -60,33 +62,61 @@ if (! $sortfield) $sortfield="c.name"; // Add a notification if ($action == 'add') { - $sql = "DELETE FROM ".MAIN_DB_PREFIX."notify_def"; - $sql .= " WHERE fk_soc=".$socid." AND fk_contact=".$_POST["contactid"]." AND fk_action=".$_POST["actionid"]; - if ($db->query($sql)) - { - $sql = "INSERT INTO ".MAIN_DB_PREFIX."notify_def (datec,fk_soc, fk_contact, fk_action)"; - $sql .= " VALUES (".$db->idate(mktime()).",".$socid.",".$_POST["contactid"].",".$_POST["actionid"].")"; + $error=0; - if ($db->query($sql)) - { + if (empty($contactid)) + { + $mesg='
'.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Contact")).'
'; + $error++; + } + if ($actionid <= 0) + { + $mesg='
'.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Action")).'
'; + $error++; + } - } - else - { - dol_print_error($db); - } - } - else - { - dol_print_error($db); - } + if (! $error) + { + $db->begin(); + + $sql = "DELETE FROM ".MAIN_DB_PREFIX."notify_def"; + $sql .= " WHERE fk_soc=".$socid." AND fk_contact=".$contactid." AND fk_action=".$actionid; + if ($db->query($sql)) + { + $sql = "INSERT INTO ".MAIN_DB_PREFIX."notify_def (datec,fk_soc, fk_contact, fk_action)"; + $sql .= " VALUES ('".$db->idate($now)."',".$socid.",".$contactid.",".$actionid.")"; + + if ($db->query($sql)) + { + + } + else + { + $error++; + dol_print_error($db); + } + } + else + { + dol_print_error($db); + } + + if (! $error) + { + $db->commit(); + } + else + { + $db->rollback(); + } + } } // Remove a notification if ($action == 'delete') { - $sql = "DELETE FROM ".MAIN_DB_PREFIX."notify_def where rowid=".$_GET["actid"].";"; - $db->query($sql); + $sql = "DELETE FROM ".MAIN_DB_PREFIX."notify_def where rowid=".$_GET["actid"].";"; + $db->query($sql); } @@ -104,75 +134,100 @@ $result=$soc->fetch($socid); if ($result > 0) { - $html = new Form($db); - $langs->load("other"); + $html = new Form($db); + $langs->load("other"); - $head = societe_prepare_head($soc); + $head = societe_prepare_head($soc); - dol_fiche_head($head, 'notify', $langs->trans("ThirdParty"),0,'company'); + dol_fiche_head($head, 'notify', $langs->trans("ThirdParty"),0,'company'); - print ''; + print '
'; - print ''; + print ''; - print ''; - print ''; - print '
'.$langs->trans("ThirdPartyName").''; - print $form->showrefnav($soc,'socid','',($user->societe_id?0:1),'rowid','nom'); - print '
'.$langs->trans("ThirdPartyName").''; + print $form->showrefnav($soc,'socid','',($user->societe_id?0:1),'rowid','nom'); + print '
'.$langs->trans("NbOfActiveNotifications").''; - $sql = "SELECT COUNT(n.rowid) as nb"; - $sql.= " FROM ".MAIN_DB_PREFIX."notify_def as n"; - $sql.= " WHERE fk_soc = ".$soc->id; - $resql=$db->query($sql); - if ($resql) - { - $num = $db->num_rows($resql); - $i = 0; - while ($i < $num) - { - $obj = $db->fetch_object($resql); - $nb=$obj->nb; - $i++; - } - } - else { - dol_print_error($db); - } - print $nb; - print '
'; + // Prefix + if (! empty($conf->global->SOCIETE_USEPREFIX)) // Old not used prefix field + { + print ''.$langs->trans('Prefix').''.$object->prefix_comm.''; + } - print ''; + if ($object->client) + { + print ''; + print $langs->trans('CustomerCode').''; + print $object->code_client; + if ($object->check_codeclient() <> 0) print ' ('.$langs->trans("WrongCustomerCode").')'; + print ''; + } + + if ($object->fournisseur) + { + print ''; + print $langs->trans('SupplierCode').''; + print $object->code_fournisseur; + if ($object->check_codefournisseur() <> 0) print ' ('.$langs->trans("WrongSupplierCode").')'; + print ''; + } + + print ''.$langs->trans("NbOfActiveNotifications").''; + print ''; + $sql = "SELECT COUNT(n.rowid) as nb"; + $sql.= " FROM ".MAIN_DB_PREFIX."notify_def as n"; + $sql.= " WHERE fk_soc = ".$soc->id; + $resql=$db->query($sql); + if ($resql) + { + $num = $db->num_rows($resql); + $i = 0; + while ($i < $num) + { + $obj = $db->fetch_object($resql); + $nb=$obj->nb; + $i++; + } + } + else { + dol_print_error($db); + } + print $nb; + print ''; + print ''; + + print ''; - // Help - print $langs->trans("NotificationsDesc").'

'; + // Help + print $langs->trans("NotificationsDesc").'

'; - print "\n"; + print "\n"; - // Add notification form - print_fiche_titre($langs->trans("AddNewNotification"),'',''); + // Add notification form + print_fiche_titre($langs->trans("AddNewNotification"),'',''); - print '
'; - print ''; + print ''; + print ''; + print ''; - // Line with titles - print ''; - print ''; - $param="&socid=".$socid; - print_liste_field_titre($langs->trans("Contact"),"fiche.php","c.name",'',$param,'"width="45%"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Action"),"fiche.php","a.titre",'',$param,'"width="35%"',$sortfield,$sortorder); + // Line with titles + print '
'; + print ''; + $param="&socid=".$socid; + print_liste_field_titre($langs->trans("Contact"),"fiche.php","c.name",'',$param,'"width="45%"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Action"),"fiche.php","a.titre",'',$param,'"width="35%"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Type"),"fiche.php","",'',$param,'"width="10%"',$sortfield,$sortorder); - print_liste_field_titre(''); - print ''; + print_liste_field_titre(''); + print ''; - $var=false; - $listofemails=$soc->thirdparty_and_contact_email_array(); - if (count($listofemails) > 0) - { - $actions=array(); + $var=false; + $listofemails=$soc->thirdparty_and_contact_email_array(); + if (count($listofemails) > 0) + { + $actions=array(); // Load array of available notifications $notificationtrigger=new InterfaceNotification($db); @@ -183,172 +238,172 @@ if ($result > 0) $label=$langs->trans("Notify_".$notifiedevent['code'])!=$langs->trans("Notify_".$notifiedevent['code'])?$langs->trans("Notify_".$notifiedevent['code']):$notifiedevent['label']; $actions[$notifiedevent['rowid']]=$label; } - print ''; - print ''; - print ''; + print ''; + print ''; print ''; - print ''; - print ''; - } - else - { - print ''; - } + print ''; + print ''; + } + else + { + print ''; + } - print '
'; - print $html->selectarray("contactid",$listofemails); - print ''; - print $html->selectarray("actionid",$actions,'',1); - print '
'; + print $html->selectarray("contactid",$listofemails); + print ''; + print $html->selectarray("actionid",$actions,'',1); + print ''; $type=array('email'=>$langs->trans("EMail")); print $html->selectarray("typeid",$type); print '
'; - print $langs->trans("YouMustCreateContactFirst"); - print '
'; + print $langs->trans("YouMustCreateContactFirst"); + print '
'; + print ''; - print '
'; - print '
'; + print ''; + print '
'; + dol_htmloutput_mesg($mesg); - // List of active notifications - print_fiche_titre($langs->trans("ListOfActiveNotifications"),'',''); - $var=true; + // List of active notifications + print_fiche_titre($langs->trans("ListOfActiveNotifications"),'',''); + $var=true; - // Line with titles - print ''; - print ''; - print_liste_field_titre($langs->trans("Contact"),"fiche.php","c.name",'',$param,'"width="45%"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Action"),"fiche.php","a.titre",'',$param,'"width="35%"',$sortfield,$sortorder); + // Line with titles + print '
'; + print ''; + print_liste_field_titre($langs->trans("Contact"),"fiche.php","c.name",'',$param,'"width="45%"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Action"),"fiche.php","a.titre",'',$param,'"width="35%"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Type"),"fiche.php","",'',$param,'"width="10%"',$sortfield,$sortorder); - print_liste_field_titre('','',''); - print ''; + print_liste_field_titre('','',''); + print ''; - // List of notifications for contacts - $sql = "SELECT n.rowid, n.type,"; - $sql.= " a.code, a.label,"; + // List of notifications for contacts + $sql = "SELECT n.rowid, n.type,"; + $sql.= " a.code, a.label,"; $sql.= " c.rowid as contactid, c.name, c.firstname, c.email"; - $sql.= " FROM ".MAIN_DB_PREFIX."c_action_trigger as a,"; - $sql.= " ".MAIN_DB_PREFIX."notify_def as n,"; - $sql.= " ".MAIN_DB_PREFIX."socpeople c"; - $sql.= " WHERE a.rowid = n.fk_action"; - $sql.= " AND c.rowid = n.fk_contact"; - $sql.= " AND c.fk_soc = ".$soc->id; + $sql.= " FROM ".MAIN_DB_PREFIX."c_action_trigger as a,"; + $sql.= " ".MAIN_DB_PREFIX."notify_def as n,"; + $sql.= " ".MAIN_DB_PREFIX."socpeople c"; + $sql.= " WHERE a.rowid = n.fk_action"; + $sql.= " AND c.rowid = n.fk_contact"; + $sql.= " AND c.fk_soc = ".$soc->id; - $resql=$db->query($sql); - if ($resql) - { - $num = $db->num_rows($resql); - $i = 0; + $resql=$db->query($sql); + if ($resql) + { + $num = $db->num_rows($resql); + $i = 0; - $contactstatic=new Contact($db); + $contactstatic=new Contact($db); - while ($i < $num) - { - $var = !$var; + while ($i < $num) + { + $var = !$var; - $obj = $db->fetch_object($resql); + $obj = $db->fetch_object($resql); - $contactstatic->id=$obj->contactid; - $contactstatic->name=$obj->name; - $contactstatic->firstname=$obj->firstname; - print ''; - print ''; + $contactstatic->id=$obj->contactid; + $contactstatic->name=$obj->name; + $contactstatic->firstname=$obj->firstname; + print ''; + print ''; print ''; print ''; - print ''; - $i++; - } - $db->free($resql); - } - else - { - dol_print_error($db); - } + print ''; + $i++; + } + $db->free($resql); + } + else + { + dol_print_error($db); + } - print '
'.$contactstatic->getNomUrl(1); - if ($obj->type == 'email') - { - if (isValidEmail($obj->email)) - { - print ' <'.$obj->email.'>'; - } - else - { - $langs->load("errors"); - print '   '.img_warning().' '.$langs->trans("ErrorBadEMail",$obj->email); - } - } - print ''; - $label=($langs->trans("Notify_".$obj->code)!="Notify_".$obj->code?$langs->trans("Notify_".$obj->code):$obj->label); - print $label; - print '
'.$contactstatic->getNomUrl(1); + if ($obj->type == 'email') + { + if (isValidEmail($obj->email)) + { + print ' <'.$obj->email.'>'; + } + else + { + $langs->load("errors"); + print '   '.img_warning().' '.$langs->trans("ErrorBadEMail",$obj->email); + } + } + print ''; + $label=($langs->trans("Notify_".$obj->code)!="Notify_".$obj->code?$langs->trans("Notify_".$obj->code):$obj->label); + print $label; + print ''; if ($obj->type == 'email') print $langs->trans("Email"); if ($obj->type == 'sms') print $langs->trans("SMS"); print ''.img_delete().'
'; - print '
'; + print ''; + print '
'; - // List of notifications done - print_fiche_titre($langs->trans("ListOfNotificationsDone"),'',''); - $var=true; + // List of notifications done + print_fiche_titre($langs->trans("ListOfNotificationsDone"),'',''); + $var=true; - // Line with titles - print ''; - print ''; - print_liste_field_titre($langs->trans("Contact"),"fiche.php","c.name",'',"&socid=$socid",'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Action"),"fiche.php","a.titre",'',"&socid=$socid",'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Date"),"fiche.php","a.titre",'',"&socid=$socid",'align="right"',$sortfield,$sortorder); - print ''; + // Line with titles + print '
'; + print ''; + print_liste_field_titre($langs->trans("Contact"),"fiche.php","c.name",'',"&socid=$socid",'',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Action"),"fiche.php","a.titre",'',"&socid=$socid",'',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Date"),"fiche.php","a.titre",'',"&socid=$socid",'align="right"',$sortfield,$sortorder); + print ''; - // List - $sql = "SELECT n.rowid, n.daten, n.email, n.objet_type, n.objet_id,"; - $sql.= " c.rowid as id, c.name, c.firstname, c.email,"; - $sql.= " a.code, a.label"; - $sql.= " FROM ".MAIN_DB_PREFIX."c_action_trigger as a,"; - $sql.= " ".MAIN_DB_PREFIX."notify as n, "; + // List + $sql = "SELECT n.rowid, n.daten, n.email, n.objet_type, n.objet_id,"; + $sql.= " c.rowid as id, c.name, c.firstname, c.email,"; + $sql.= " a.code, a.label"; + $sql.= " FROM ".MAIN_DB_PREFIX."c_action_trigger as a,"; + $sql.= " ".MAIN_DB_PREFIX."notify as n, "; $sql.= " ".MAIN_DB_PREFIX."socpeople as c"; $sql.= " WHERE a.rowid = n.fk_action"; $sql.= " AND c.rowid = n.fk_contact"; $sql.= " AND c.fk_soc = ".$soc->id; - $resql=$db->query($sql); - if ($resql) - { - $num = $db->num_rows($resql); - $i = 0; + $resql=$db->query($sql); + if ($resql) + { + $num = $db->num_rows($resql); + $i = 0; - $contactstatic=new Contact($db); + $contactstatic=new Contact($db); - while ($i < $num) - { - $var = !$var; + while ($i < $num) + { + $var = !$var; - $obj = $db->fetch_object($resql); + $obj = $db->fetch_object($resql); - $contactstatic->id=$obj->id; - $contactstatic->name=$obj->name; - $contactstatic->firstname=$obj->firstname; - print ''; - print ''; - // TODO Add link to object here - // print - print''; - print ''; - $i++; - } - $db->free($resql); - } - else - { - dol_print_error($db); - } + $contactstatic->id=$obj->id; + $contactstatic->name=$obj->name; + $contactstatic->firstname=$obj->firstname; + print ''; + print ''; + // TODO Add link to object here + // print + print''; + print ''; + $i++; + } + $db->free($resql); + } + else + { + dol_print_error($db); + } - print '
'.$contactstatic->getNomUrl(1); - print $obj->email?' <'.$obj->email.'>':$langs->trans("NoMail"); - print ''; - $label=($langs->trans("Notify_".$obj->code)!="Notify_".$obj->code?$langs->trans("Notify_".$obj->code):$obj->label); - print $label; - print ''.dol_print_date($db->jdate($obj->daten), 'dayhour').'
'.$contactstatic->getNomUrl(1); + print $obj->email?' <'.$obj->email.'>':$langs->trans("NoMail"); + print ''; + $label=($langs->trans("Notify_".$obj->code)!="Notify_".$obj->code?$langs->trans("Notify_".$obj->code):$obj->label); + print $label; + print ''.dol_print_date($db->jdate($obj->daten), 'dayhour').'
'; + print ''; } else dol_print_error('','RecordNotFound');