Amélioration gestion erreur pour faciliter debuggage

This commit is contained in:
Laurent Destailleur 2007-09-22 01:47:43 +00:00
parent 5310168047
commit 686ee76b1c
2 changed files with 83 additions and 70 deletions

View File

@ -35,7 +35,7 @@ require_once(DOL_DOCUMENT_ROOT."/lib/fichinter.lib.php");
if ($conf->projet->enabled) require_once(DOL_DOCUMENT_ROOT."/project.class.php"); if ($conf->projet->enabled) require_once(DOL_DOCUMENT_ROOT."/project.class.php");
if (defined("FICHEINTER_ADDON") && is_readable(DOL_DOCUMENT_ROOT ."/includes/modules/fichinter/".FICHEINTER_ADDON.".php")) if (defined("FICHEINTER_ADDON") && is_readable(DOL_DOCUMENT_ROOT ."/includes/modules/fichinter/".FICHEINTER_ADDON.".php"))
{ {
require_once(DOL_DOCUMENT_ROOT ."/includes/modules/fichinter/".FICHEINTER_ADDON.".php"); require_once(DOL_DOCUMENT_ROOT ."/includes/modules/fichinter/".FICHEINTER_ADDON.".php");
} }
$langs->load("companies"); $langs->load("companies");
@ -75,7 +75,7 @@ if ($_POST["action"] == 'add')
{ {
$fichinter = new Fichinter($db); $fichinter = new Fichinter($db);
$fichinter->date = $db->idate(dolibarr_mktime(12, 1 , 1, $_POST["pmonth"], $_POST["pday"], $_POST["pyear"])); $fichinter->date = dolibarr_mktime(12, 0 , 0, $_POST["pmonth"], $_POST["pday"], $_POST["pyear"]);
$fichinter->socid = $_POST["socid"]; $fichinter->socid = $_POST["socid"];
$fichinter->duree = $_POST["duree"]; $fichinter->duree = $_POST["duree"];
$fichinter->projet_id = $_POST["projetidp"]; $fichinter->projet_id = $_POST["projetidp"];
@ -84,16 +84,24 @@ if ($_POST["action"] == 'add')
$fichinter->ref = $_POST["ref"]; $fichinter->ref = $_POST["ref"];
$fichinter->modelpdf = $_POST["model"]; $fichinter->modelpdf = $_POST["model"];
$result = $fichinter->create(); if ($fichinter->socid > 0)
if ($result > 0)
{ {
$_GET["id"]=$result; // Force raffraichissement sur fiche venant d'etre créée $result = $fichinter->create();
$fichinterid=$result; if ($result > 0)
{
$_GET["id"]=$result; // Force raffraichissement sur fiche venant d'etre créée
$fichinterid=$result;
}
else
{
$mesg='<div class="error">'.$fichinter->error.'</div>';
$_GET["action"] = 'create';
}
} }
else else
{ {
$mesg='<div class="error">'.$fichinter->error.'</div>'; $mesg='<div class="error">'.$langs->trans("ErrorFieldRequired",$langs->trans("ThirdParty")).'</div>';
$_GET["action"] = 'create';
} }
} }
@ -225,7 +233,6 @@ if ($_POST['action'] == 'updateligne' && $user->rights->ficheinter->creer && $_P
fichinter_pdf_create($db, $fichinter->id, $fichinter->modelpdf, $outputlangs); fichinter_pdf_create($db, $fichinter->id, $fichinter->modelpdf, $outputlangs);
} }
/* /*
* Supprime une ligne d'intervention SANS confirmation * Supprime une ligne d'intervention SANS confirmation
*/ */
@ -310,15 +317,16 @@ if ($_GET["action"] == 'create')
* Mode creation * Mode creation
* Creation d'une nouvelle fiche d'intervention * Creation d'une nouvelle fiche d'intervention
*/ */
if ($_GET["socid"] > 0)
if ($_GET["socid"])
{ {
$societe=new Societe($db); $societe=new Societe($db);
$societe->fetch($_GET["socid"]); $societe->fetch($_GET["socid"]);
} }
print_titre($langs->trans("AddIntervention")); print_titre($langs->trans("AddIntervention"));
if ($mesg) print $mesg.'<br>';
if (! $conf->global->FICHEINTER_ADDON) if (! $conf->global->FICHEINTER_ADDON)
{ {
dolibarr_print_error($db,$langs->trans("Error")." ".$langs->trans("Error_FICHEINTER_ADDON_NotDefined")); dolibarr_print_error($db,$langs->trans("Error")." ".$langs->trans("Error_FICHEINTER_ADDON_NotDefined"));
@ -336,8 +344,6 @@ if ($_GET["action"] == 'create')
print "<form name='fichinter' action=\"fiche.php\" method=\"post\">"; print "<form name='fichinter' action=\"fiche.php\" method=\"post\">";
$smonth = 1;
$syear = date("Y", time());
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
if ($_GET["socid"]) if ($_GET["socid"])
@ -411,7 +417,7 @@ if ($_GET["action"] == 'create')
} }
else else
{ {
print '<textarea name="description" wrap="soft" cols="70" rows="15"></textarea>'; print '<textarea name="description" wrap="soft" cols="70" rows="12"></textarea>';
} }
print '</td></tr>'; print '</td></tr>';

View File

@ -78,52 +78,54 @@ class Fichinter extends CommonObject
/* /*
* \brief Crée une fiche intervention en base * \brief Crée une fiche intervention en base
* * \return int <0 if KO, >0 if OK
*/ */
function create() function create()
{ {
if (! is_numeric($this->duree)) { $this->duree = 0; } dolibarr_syslog("Fichinter.class::create ref=".$this->ref);
// on vérifie si la ref n'est pas utilisée if (! is_numeric($this->duree)) { $this->duree = 0; }
$soc = new Societe($this->db); if ($this->socid <= 0)
$soc->fetch($this->socid); {
$this->verifyNumRef($soc); $this->error='ErrorBadParameterForFunc';
dolibarr_syslog("Fichinter::create ".$this->error,LOG_ERR);
return -1;
}
dolibarr_syslog("Fichinter.class::create ref=".$this->ref); $this->db->begin();
$this->db->begin(); // on vérifie si la ref n'est pas utilisée
$soc = new Societe($this->db);
$result=$soc->fetch($this->socid);
$this->verifyNumRef($soc);
$sql = "INSERT INTO ".MAIN_DB_PREFIX."fichinter (fk_soc, datei, datec, ref, fk_user_author, description, model_pdf"; $sql = "INSERT INTO ".MAIN_DB_PREFIX."fichinter (fk_soc, datei, datec, ref, fk_user_author, description, model_pdf";
if ($this->projet_id) { if ($this->projet_id) $sql .= ", fk_projet";
$sql .= ", fk_projet"; $sql .= ") ";
} $sql .= " VALUES (".$this->socid.", ".$this->date.", now(), '".$this->ref."', ".$this->author;
$sql .= ") "; $sql .= ", '".addslashes($this->description)."', '".$this->modelpdf."'";
$sql .= " VALUES (".$this->socid.", ".$this->date.", now(), '".$this->ref."', ".$this->author; if ($this->projet_id) $sql .= ", ".$this->projet_id;
$sql .= ", '".addslashes($this->description)."', '".$this->modelpdf."'"; $sql .= ")";
if ($this->projet_id) { $sqlok = 0;
$sql .= ", ".$this->projet_id;
}
$sql .= ")";
$sqlok = 0;
dolibarr_syslog("Fichinter::create sql=".$sql); dolibarr_syslog("Fichinter::create sql=".$sql);
$result=$this->db->query($sql); $result=$this->db->query($sql);
if ($result) if ($result)
{ {
$this->id=$this->db->last_insert_id(MAIN_DB_PREFIX."fichinter"); $this->id=$this->db->last_insert_id(MAIN_DB_PREFIX."fichinter");
$this->db->commit(); $this->db->commit();
return $this->id; return $this->id;
} }
else else
{ {
$this->error=$this->db->error(); $this->error=$this->db->error();
dolibarr_syslog("Fichinter::create ".$this->error); dolibarr_syslog("Fichinter::create ".$this->error,LOG_ERR);
$this->db->rollback(); $this->db->rollback();
return -1; return -1;
} }
} }
/* /*
* \brief Met a jour une intervention * \brief Met a jour une intervention
@ -145,11 +147,13 @@ class Fichinter extends CommonObject
$sql .= ", description = '".addslashes($this->description)."'"; $sql .= ", description = '".addslashes($this->description)."'";
$sql .= ", duree = ".$this->duree; $sql .= ", duree = ".$this->duree;
$sql .= ", fk_projet = ".$this->projet_id; $sql .= ", fk_projet = ".$this->projet_id;
$sql .= " WHERE rowid = $id"; $sql .= " WHERE rowid = ".$id;
if (! $this->db->query($sql) ) dolibarr_syslog("Fichinter::update sql=".$sql);
if (! $this->db->query($sql))
{ {
$this->error=$this->db->error().' sql='.$sql; $this->error=$this->db->error();
dolibarr_syslog("Fichinter::update error ".$this->error,LOG_ERR);
return -1; return -1;
} }
@ -168,8 +172,7 @@ class Fichinter extends CommonObject
$sql.= " FROM ".MAIN_DB_PREFIX."fichinter"; $sql.= " FROM ".MAIN_DB_PREFIX."fichinter";
$sql.= " WHERE rowid=".$rowid; $sql.= " WHERE rowid=".$rowid;
dolibarr_syslog("Fichinter.class::fetch rowid=$rowid sql=$sql"); dolibarr_syslog("Fichinter::fetch sql=".$sql);
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
if ($resql) if ($resql)
{ {
@ -196,7 +199,8 @@ class Fichinter extends CommonObject
} }
else else
{ {
$this->error=$this->db->error().' sql='.$sql; $this->error=$this->db->error();
dolibarr_syslog("Fichinter::update error ".$this->error,LOG_ERR);
return -1; return -1;
} }
} }
@ -211,6 +215,8 @@ class Fichinter extends CommonObject
$sql = "UPDATE ".MAIN_DB_PREFIX."fichinter"; $sql = "UPDATE ".MAIN_DB_PREFIX."fichinter";
$sql.= " SET fk_statut = 1, date_valid=now(), fk_user_valid=".$user->id; $sql.= " SET fk_statut = 1, date_valid=now(), fk_user_valid=".$user->id;
$sql.= " WHERE rowid = ".$this->id." AND fk_statut = 0"; $sql.= " WHERE rowid = ".$this->id." AND fk_statut = 0";
dolibarr_syslog("Fichinter::valid sql=".$sql);
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
if ($resql) if ($resql)
{ {
@ -224,7 +230,8 @@ class Fichinter extends CommonObject
} }
else else
{ {
$this->error=$this->db->error().' sql='.$sql; $this->error=$this->db->error();
dolibarr_syslog("Fichinter::update error ".$this->error,LOG_ERR);
return -1; return -1;
} }
} }
@ -377,7 +384,7 @@ class Fichinter extends CommonObject
$sql.= " SET ".$type." = '".addslashes($note)."'"; $sql.= " SET ".$type." = '".addslashes($note)."'";
$sql.= " WHERE rowid =". $this->id; $sql.= " WHERE rowid =". $this->id;
dolibarr_syslog("Fichinter.class::update_note type=".$type." sql=".$sql); dolibarr_syslog("Fichinter::update_note type=".$type." sql=".$sql);
if ($this->db->query($sql)) if ($this->db->query($sql))
{ {
@ -460,7 +467,7 @@ class Fichinter extends CommonObject
else else
{ {
dolibarr_syslog("Fichinter.class::set_project Erreur SQL"); dolibarr_syslog("Fichinter::set_project Erreur SQL");
} }
} }
} }
@ -542,7 +549,7 @@ class Fichinter extends CommonObject
else else
{ {
$this->error=$this->db->error(); $this->error=$this->db->error();
dolibarr_syslog("Fichinter.class::set_date_delivery Erreur SQL"); dolibarr_syslog("Fichinter::set_date_delivery Erreur SQL");
return -1; return -1;
} }
} }
@ -570,7 +577,7 @@ class Fichinter extends CommonObject
else else
{ {
$this->error=$this->db->error(); $this->error=$this->db->error();
dolibarr_syslog("Fichinter.class::set_description Erreur SQL"); dolibarr_syslog("Fichinter::set_description Erreur SQL");
return -1; return -1;
} }
} }
@ -650,13 +657,13 @@ class Fichinter extends CommonObject
{ {
$this->error=$this->db->error(); $this->error=$this->db->error();
$this->db->rollback(); $this->db->rollback();
dolibarr_syslog("Fichinter.class::UpdateLine Erreur sql=$sql, error=".$this->error); dolibarr_syslog("Fichinter::UpdateLine Erreur sql=$sql, error=".$this->error);
return -1; return -1;
} }
} }
else else
{ {
dolibarr_syslog("Fichinter.class::UpdateLigne Erreur -2 Fiche intervention en mode incompatible pour cette action"); dolibarr_syslog("Fichinter::UpdateLigne Erreur -2 Fiche intervention en mode incompatible pour cette action");
return -2; return -2;
} }
} }
@ -953,7 +960,7 @@ class FichinterLigne
*/ */
function insert() function insert()
{ {
dolibarr_syslog("FichinterLigne.class::insert rang=".$this->rang); dolibarr_syslog("FichinterLigne::insert rang=".$this->rang);
$this->db->begin(); $this->db->begin();
$rangToUse=$this->rang; $rangToUse=$this->rang;
@ -1021,7 +1028,7 @@ class FichinterLigne
$sql.= ",rang='".$this->rang."'"; $sql.= ",rang='".$this->rang."'";
$sql.= " WHERE rowid = ".$this->rowid; $sql.= " WHERE rowid = ".$this->rowid;
dolibarr_syslog("FichinterLigne::update sql=$sql"); dolibarr_syslog("FichinterLigne::update sql=".$sql);
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
if ($resql) if ($resql)