Fix: Amélioration gestion erreur création action (avec ou sans lien webcal)

This commit is contained in:
Laurent Destailleur 2005-07-07 22:47:02 +00:00
parent 29ded029b4
commit 6b10605068
3 changed files with 44 additions and 29 deletions

View File

@ -41,15 +41,14 @@ $langs->load("commercial");
$langs->load("other"); $langs->load("other");
$langs->load("bills"); $langs->load("bills");
// Sécurité accés client
/*
* Sécurité accés client
*/
if ($user->societe_id > 0) if ($user->societe_id > 0)
{ {
$action = ''; $action = '';
$socidp = $user->societe_id; $socidp = $user->societe_id;
} }
if (isset($_GET["error"])) $error=$_GET["error"];
/* /*
* Action création de l'action * Action création de l'action
@ -109,13 +108,15 @@ if ($_POST["action"] == 'add_action')
$webcal=0; $webcal=0;
if ($conf->webcal->enabled && $_POST["todo_webcal"] == 'on') if ($conf->webcal->enabled && $_POST["todo_webcal"] == 'on')
{ {
// Crée objet webcal et connexion avec params $conf->webcal->db->xxx
$webcal = new Webcal(); $webcal = new Webcal();
if (! $webcal->localdb->ok) if (! $webcal->localdb->ok)
{ {
// Si la creation de l'objet n'as pu se connecter // Si la creation de l'objet n'as pu se connecter
$error="Dolibarr n'a pu se connecter à la base Webcalendar avec les identifiants définis (host=".$conf->webcal->db->host." dbname=".$conf->webcal->db->name." user=".$conf->webcal->db->user."). L'option de mise a jour Webcalendar a été ignorée."; $error ="Dolibarr n'a pu se connecter à la base Webcalendar avec les identifiants définis (host=".$conf->webcal->db->host." dbname=".$conf->webcal->db->name." user=".$conf->webcal->db->user.").";
$webcal=-1; $error.=" L'option de mise a jour Webcalendar a été ignorée.";
$webcal->error=$error;
} }
else else
{ {
@ -144,15 +145,26 @@ if ($_POST["action"] == 'add_action')
} }
// On crée l'action (avec ajout eventuel dans webcal si défini) // On crée l'action (avec ajout eventuel dans webcal si défini)
$idaction=$actioncomm->add($user, $webcal); $idaction=$actioncomm->add($user, ($webcal->localdb->ok?$webcal:0) );
if ($idaction > 0) if ($idaction > 0)
{ {
if (! $actioncomm->error) if (! $actioncomm->error)
{ {
// Si pas d'erreur // Si pas d'erreur creation action
$db->commit(); if (! $webcal->error)
Header("Location: ".$_POST["from"]); {
// Pas d'erreur webcal
$db->commit();
Header("Location: ".$_POST["from"]);
return;
}
else
{
// Pas d'erreur action mais erreur webcal
$db->commit();
$_GET["id"]=$idaction;
}
} }
else else
{ {
@ -165,7 +177,6 @@ if ($_POST["action"] == 'add_action')
else else
{ {
$db->rollback(); $db->rollback();
$_GET["id"]=$idaction;
dolibarr_print_error($db); dolibarr_print_error($db);
} }
} }
@ -419,7 +430,7 @@ if ($_GET["action"] == 'create')
if ($_GET["id"]) if ($_GET["id"])
{ {
if ($error) { if ($error) {
print '<font class="error">'.$error.'</font><br><br>'; print '<div class="error">'.$error.'</div><br>';
} }
$act = new ActionComm($db); $act = new ActionComm($db);
@ -447,6 +458,7 @@ if ($_GET["id"])
if ($_GET["action"] == 'delete') if ($_GET["action"] == 'delete')
{ {
$html->form_confirm("fiche.php?id=".$_GET["id"],$langs->trans("DeleteAction"),$langs->trans("ConfirmDeleteAction"),"confirm_delete"); $html->form_confirm("fiche.php?id=".$_GET["id"],$langs->trans("DeleteAction"),$langs->trans("ConfirmDeleteAction"),"confirm_delete");
print '<br>';
} }
if ($_GET["action"] == 'edit') if ($_GET["action"] == 'edit')

View File

@ -506,34 +506,35 @@ if ($_socid > 0)
if ($conf->propal->enabled && $user->rights->propale->creer) if ($conf->propal->enabled && $user->rights->propale->creer)
{ {
$langs->load("propal"); $langs->load("propal");
print '<a class="tabAction" href="addpropal.php?socidp='.$objsoc->id.'&amp;action=create">'.$langs->trans("AddProp").'</a>'; print '<a class="butAction" href="addpropal.php?socidp='.$objsoc->id.'&amp;action=create">'.$langs->trans("AddProp").'</a>';
} }
if ($conf->commande->enabled && $user->rights->commande->creer) if ($conf->commande->enabled && $user->rights->commande->creer)
{ {
$langs->load("orders"); $langs->load("orders");
print '<a class="tabAction" href="'.DOL_URL_ROOT.'/commande/fiche.php?socidp='.$objsoc->id.'&amp;action=create">'.$langs->trans("AddOrder").'</a>'; print '<a class="butAction" href="'.DOL_URL_ROOT.'/commande/fiche.php?socidp='.$objsoc->id.'&amp;action=create">'.$langs->trans("AddOrder").'</a>';
} }
if ($user->rights->contrat->creer) if ($user->rights->contrat->creer)
{ {
$langs->load("contracts"); $langs->load("contracts");
print '<a class="tabAction" href="'.DOL_URL_ROOT.'/contrat/fiche.php?socid='.$objsoc->id.'&amp;action=create">'.$langs->trans("AddContract").'</a>'; print '<a class="butAction" href="'.DOL_URL_ROOT.'/contrat/fiche.php?socid='.$objsoc->id.'&amp;action=create">'.$langs->trans("AddContract").'</a>';
} }
if ($conf->fichinter->enabled) if ($conf->fichinter->enabled)
{ {
$langs->load("fichinter"); $langs->load("fichinter");
print '<a class="tabAction" href="../fichinter/fiche.php?socidp='.$objsoc->id.'&amp;action=create">'.$langs->trans("AddIntervention").'</a>'; print '<a class="butAction" href="../fichinter/fiche.php?socidp='.$objsoc->id.'&amp;action=create">'.$langs->trans("AddIntervention").'</a>';
} }
if ($conf->projet->enabled && $user->rights->projet->creer) if ($conf->projet->enabled && $user->rights->projet->creer)
{ {
print '<a class="tabAction" href="../projet/fiche.php?socidp='.$objsoc->id.'&action=create">'.$langs->trans("AddProject").'</a>'; print '<a class="butAction" href="../projet/fiche.php?socidp='.$objsoc->id.'&action=create">'.$langs->trans("AddProject").'</a>';
} }
print '<a class="butAction" href="'.DOL_URL_ROOT.'/contact/fiche.php?socid='.$objsoc->id.'&amp;action=create">'.$langs->trans("AddContact").'</a>';
print '<a class="tabAction" href="'.DOL_URL_ROOT.'/contact/fiche.php?socid='.$objsoc->id.'&amp;action=create">'.$langs->trans("AddContact").'</a>'; print '<a class="butAction" href="action/fiche.php?action=create&socid='.$objsoc->id.'">'.$langs->trans("AddAction").'</a>';
print '</div>'; print '</div>';
print '<br>'; print '<br>';
@ -637,7 +638,7 @@ if ($_socid > 0)
* *
*/ */
print '<table width="100%" class="noborder">'; print '<table width="100%" class="noborder">';
print '<tr class="liste_titre"><td colspan="7"><a href="action/index.php?socid='.$objsoc->id.'">'.$langs->trans("ActionsToDo").'</a></td><td align="right"> <a href="action/fiche.php?action=create&socid='.$objsoc->id.'&afaire=1">'.$langs->trans("AddActionToDo").'</a></td></tr>'; print '<tr class="liste_titre"><td colspan="7"><a href="action/index.php?socid='.$objsoc->id.'">'.$langs->trans("ActionsToDo").'</a></td><td align="right">&nbsp;</td></tr>';
$sql = "SELECT a.id, ".$db->pdate("a.datea")." as da, c.code as acode, c.libelle, u.code, a.propalrowid, a.fk_user_author, fk_contact, u.rowid "; $sql = "SELECT a.id, ".$db->pdate("a.datea")." as da, c.code as acode, c.libelle, u.code, a.propalrowid, a.fk_user_author, fk_contact, u.rowid ";
$sql .= " FROM ".MAIN_DB_PREFIX."actioncomm as a, ".MAIN_DB_PREFIX."c_actioncomm as c, ".MAIN_DB_PREFIX."user as u "; $sql .= " FROM ".MAIN_DB_PREFIX."actioncomm as a, ".MAIN_DB_PREFIX."c_actioncomm as c, ".MAIN_DB_PREFIX."user as u ";
@ -687,7 +688,7 @@ if ($_socid > 0)
if ($obj->propalrowid) if ($obj->propalrowid)
{ {
print '<td><a href="propal.php?propalid='.$obj->propalrowid.'">'.img_object($langs->trans("ShowTask"),"task"); print '<td><a href="propal.php?propalid='.$obj->propalrowid.'">'.img_object($langs->trans("ShowAction"),"task");
$transcode=$langs->trans("Action".$obj->acode); $transcode=$langs->trans("Action".$obj->acode);
$libelle=($transcode!="Action".$obj->acode?$transcode:$obj->libelle); $libelle=($transcode!="Action".$obj->acode?$transcode:$obj->libelle);
print $libelle; print $libelle;
@ -695,7 +696,7 @@ if ($_socid > 0)
} }
else else
{ {
print '<td><a href="action/fiche.php?id='.$obj->id.'">'.img_object($langs->trans("ShowTask"),"task"); print '<td><a href="action/fiche.php?id='.$obj->id.'">'.img_object($langs->trans("ShowAction"),"task");
$transcode=$langs->trans("Action".$obj->acode); $transcode=$langs->trans("Action".$obj->acode);
$libelle=($transcode!="Action".$obj->acode?$transcode:$obj->libelle); $libelle=($transcode!="Action".$obj->acode?$transcode:$obj->libelle);
print $libelle; print $libelle;
@ -780,7 +781,7 @@ if ($_socid > 0)
if ($obj->propalrowid) if ($obj->propalrowid)
{ {
print '<td><a href="'.DOL_URL_ROOT.'/comm/propal.php?propalid='.$obj->propalrowid.'">'.img_object($langs->trans("ShowTask"),"task"); print '<td><a href="'.DOL_URL_ROOT.'/comm/propal.php?propalid='.$obj->propalrowid.'">'.img_object($langs->trans("ShowAction"),"task");
$transcode=$langs->trans("Action".$obj->acode); $transcode=$langs->trans("Action".$obj->acode);
$libelle=($transcode!="Action".$obj->acode?$transcode:$obj->libelle); $libelle=($transcode!="Action".$obj->acode?$transcode:$obj->libelle);
print $libelle; print $libelle;
@ -788,7 +789,7 @@ if ($_socid > 0)
} }
else else
{ {
print '<td><a href="'.DOL_URL_ROOT.'/comm/action/fiche.php?id='.$obj->id.'">'.img_object($langs->trans("ShowTask"),"task"); print '<td><a href="'.DOL_URL_ROOT.'/comm/action/fiche.php?id='.$obj->id.'">'.img_object($langs->trans("ShowAction"),"task");
$transcode=$langs->trans("Action".$obj->acode); $transcode=$langs->trans("Action".$obj->acode);
$libelle=($transcode!="Action".$obj->acode?$transcode:$obj->libelle); $libelle=($transcode!="Action".$obj->acode?$transcode:$obj->libelle);
print $libelle; print $libelle;

View File

@ -1,6 +1,6 @@
<?php <?php
/* Copyright (C) 2002-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2002-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2005 Laurent Destailleur <eldy@users.sourceforge.net>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -21,7 +21,7 @@
* *
*/ */
/*! /**
\file htdocs/lib/webcal.class.php \file htdocs/lib/webcal.class.php
\ingroup webcal \ingroup webcal
\brief Ensemble des fonctions permettant d'acceder a la database webcalendar. \brief Ensemble des fonctions permettant d'acceder a la database webcalendar.
@ -31,12 +31,13 @@
require_once (DOL_DOCUMENT_ROOT ."/lib/".$conf->webcal->db->type.".lib.php"); require_once (DOL_DOCUMENT_ROOT ."/lib/".$conf->webcal->db->type.".lib.php");
/*! /**
\class Webcal \class Webcal
\brief Classe permettant d'acceder a la database webcalendar \brief Classe permettant d'acceder a la database webcalendar
*/ */
class Webcal { class Webcal {
var $localdb; var $localdb;
var $heure = -1; var $heure = -1;
var $duree = 0; var $duree = 0;
@ -45,7 +46,7 @@ class Webcal {
var $desc; var $desc;
var $error; var $error;
/*! /**
\brief Constructeur de la classe d'interface à Webcalendar \brief Constructeur de la classe d'interface à Webcalendar
*/ */
@ -63,7 +64,7 @@ class Webcal {
} }
/*! /**
\brief Ajoute une entree dans le calendrier de l'utilisateur \brief Ajoute une entree dans le calendrier de l'utilisateur
\param[in] user le login de l'utilisateur \param[in] user le login de l'utilisateur
\param[in] date la date de l'evenement dans le calendrier \param[in] date la date de l'evenement dans le calendrier
@ -135,7 +136,7 @@ class Webcal {
} }
/*! /**
\brief Obtient l'id suivant dans le webcalendar \brief Obtient l'id suivant dans le webcalendar
\return int retourne l'id suivant dans le webcalendar ou -1 si erreur \return int retourne l'id suivant dans le webcalendar ou -1 si erreur
*/ */
@ -155,5 +156,6 @@ class Webcal {
return -1; return -1;
} }
} }
} }
?> ?>