Fix: correction delete ligne intervention
This commit is contained in:
parent
5280c7f549
commit
0080043dda
@ -249,9 +249,19 @@ if ($_POST['action'] == 'updateligne' && $user->rights->ficheinter->creer && $_P
|
|||||||
*/
|
*/
|
||||||
if ($_GET['action'] == 'deleteline' && $user->rights->ficheinter->creer && !$conf->global->PRODUIT_CONFIRM_DELETE_LINE)
|
if ($_GET['action'] == 'deleteline' && $user->rights->ficheinter->creer && !$conf->global->PRODUIT_CONFIRM_DELETE_LINE)
|
||||||
{
|
{
|
||||||
|
$fichinterline = new FichinterLigne($db);
|
||||||
|
if ($fichinterline->fetch($_GET['ligne']) <= 0)
|
||||||
|
{
|
||||||
|
dolibarr_print_error($db);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
$result=$fichinterline->delete_line();
|
||||||
$fichinter = new Fichinter($db);
|
$fichinter = new Fichinter($db);
|
||||||
$fichinter->fetch($_GET['id']);
|
if ($fichinter->fetch($fichinterline->fk_fichinter) <= 0)
|
||||||
$result=$fichinter->delete_line($_GET['ligne']);
|
{
|
||||||
|
dolibarr_print_error($db);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
if ($_REQUEST['lang_id'])
|
if ($_REQUEST['lang_id'])
|
||||||
{
|
{
|
||||||
$outputlangs = new Translate(DOL_DOCUMENT_ROOT ."/langs",$conf);
|
$outputlangs = new Translate(DOL_DOCUMENT_ROOT ."/langs",$conf);
|
||||||
@ -267,9 +277,19 @@ if ($_REQUEST['action'] == 'confirm_deleteline' && $_REQUEST['confirm'] == 'yes'
|
|||||||
{
|
{
|
||||||
if ($user->rights->ficheinter->creer)
|
if ($user->rights->ficheinter->creer)
|
||||||
{
|
{
|
||||||
|
$fichinterline = new FichinterLigne($db);
|
||||||
|
if ($fichinterline->fetch($_GET['ligne']) <= 0)
|
||||||
|
{
|
||||||
|
dolibarr_print_error($db);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
$result=$fichinterline->delete_line();
|
||||||
$fichinter = new Fichinter($db);
|
$fichinter = new Fichinter($db);
|
||||||
$fichinter->fetch($_GET['id']);
|
if ($fichinter->fetch($fichinterline->fk_fichinter) <= 0)
|
||||||
$result=$fichinter->delete_line($_GET['ligne']);
|
{
|
||||||
|
dolibarr_print_error($db);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
if ($_REQUEST['lang_id'])
|
if ($_REQUEST['lang_id'])
|
||||||
{
|
{
|
||||||
$outputlangs = new Translate(DOL_DOCUMENT_ROOT ."/langs",$conf);
|
$outputlangs = new Translate(DOL_DOCUMENT_ROOT ."/langs",$conf);
|
||||||
|
|||||||
@ -41,7 +41,7 @@ class Fichinter extends CommonObject
|
|||||||
var $id;
|
var $id;
|
||||||
|
|
||||||
var $socid; // Id client
|
var $socid; // Id client
|
||||||
var $client; // Objet societe client (<EFBFBD> charger par fetch_client)
|
var $client; // Objet societe client (a charger par fetch_client)
|
||||||
|
|
||||||
var $author;
|
var $author;
|
||||||
var $ref;
|
var $ref;
|
||||||
@ -57,7 +57,7 @@ class Fichinter extends CommonObject
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Constructeur de la classe
|
* \brief Constructeur de la classe
|
||||||
* \param DB Handler acc<EFBFBD>s base de donn<EFBFBD>es
|
* \param DB Handler acces base de donnees
|
||||||
* \param socid Id societe
|
* \param socid Id societe
|
||||||
*/
|
*/
|
||||||
function Fichinter($DB, $socid="")
|
function Fichinter($DB, $socid="")
|
||||||
@ -69,7 +69,7 @@ class Fichinter extends CommonObject
|
|||||||
$this->products = array();
|
$this->products = array();
|
||||||
$this->projet_id = 0;
|
$this->projet_id = 0;
|
||||||
|
|
||||||
// Statut 0=brouillon, 1=valid<EFBFBD>
|
// Statut 0=brouillon, 1=valide
|
||||||
$this->statuts[0]=$langs->trans("Draft");
|
$this->statuts[0]=$langs->trans("Draft");
|
||||||
$this->statuts[1]=$langs->trans("Validated");
|
$this->statuts[1]=$langs->trans("Validated");
|
||||||
$this->statuts_short[0]=$langs->trans("Draft");
|
$this->statuts_short[0]=$langs->trans("Draft");
|
||||||
@ -78,7 +78,7 @@ class Fichinter extends CommonObject
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* \brief Cr<EFBFBD>e une fiche intervention en base
|
* \brief Cree une fiche intervention en base
|
||||||
* \return int <0 if KO, >0 if OK
|
* \return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function create()
|
function create()
|
||||||
@ -95,7 +95,7 @@ class Fichinter extends CommonObject
|
|||||||
|
|
||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
|
|
||||||
// on v<EFBFBD>rifie si la ref n'est pas utilis<69>e
|
// on verifie si la ref n'est pas utilisee
|
||||||
$soc = new Societe($this->db);
|
$soc = new Societe($this->db);
|
||||||
$result=$soc->fetch($this->socid);
|
$result=$soc->fetch($this->socid);
|
||||||
$this->verifyNumRef($soc);
|
$this->verifyNumRef($soc);
|
||||||
@ -163,8 +163,8 @@ class Fichinter extends CommonObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Charge en m<EFBFBD>moire la fiche intervention
|
* \brief Charge en memoire la fiche intervention
|
||||||
* \param rowid Id de la fiche <EFBFBD> charger
|
* \param rowid Id de la fiche a charger
|
||||||
* \return int <0 si ko, >0 si ok
|
* \return int <0 si ko, >0 si ok
|
||||||
*/
|
*/
|
||||||
function fetch($rowid)
|
function fetch($rowid)
|
||||||
@ -240,8 +240,8 @@ class Fichinter extends CommonObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Retourne le libell<EFBFBD> du statut de l'intervantion
|
* \brief Retourne le libelle du statut de l'intervantion
|
||||||
* \return string Libell<EFBFBD>
|
* \return string Libelle
|
||||||
*/
|
*/
|
||||||
function getLibStatut($mode=0)
|
function getLibStatut($mode=0)
|
||||||
{
|
{
|
||||||
@ -249,9 +249,9 @@ class Fichinter extends CommonObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Renvoi le libell<EFBFBD> d'un statut donn<EFBFBD>
|
* \brief Renvoi le libelle d'un statut donne
|
||||||
* \param statut id statut
|
* \param statut id statut
|
||||||
* \return string Libell<EFBFBD>
|
* \return string Libelle
|
||||||
*/
|
*/
|
||||||
function LibStatut($statut,$mode=0)
|
function LibStatut($statut,$mode=0)
|
||||||
{
|
{
|
||||||
@ -312,7 +312,7 @@ class Fichinter extends CommonObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief V<EFBFBD>rifie si la ref n'est pas d<EFBFBD>j<EFBFBD> utilis<EFBFBD>e
|
* \brief Verifie si la ref n'est pas deja utilisee
|
||||||
* \param soc objet societe
|
* \param soc objet societe
|
||||||
*/
|
*/
|
||||||
function verifyNumRef($soc)
|
function verifyNumRef($soc)
|
||||||
@ -333,8 +333,8 @@ class Fichinter extends CommonObject
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Renvoie la r<EFBFBD>f<EFBFBD>rence de fiche intervention suivante non utilis<EFBFBD>e en fonction du module
|
* \brief Renvoie la reference de fiche intervention suivante non utilisee en fonction du module
|
||||||
* de num<EFBFBD>rotation actif d<EFBFBD>fini dans FICHEINTER_ADDON
|
* de numerotation actif defini dans FICHEINTER_ADDON
|
||||||
* \param soc objet societe
|
* \param soc objet societe
|
||||||
* \return string reference libre pour la fiche intervention
|
* \return string reference libre pour la fiche intervention
|
||||||
*/
|
*/
|
||||||
@ -349,7 +349,7 @@ class Fichinter extends CommonObject
|
|||||||
{
|
{
|
||||||
$file = FICHEINTER_ADDON.".php";
|
$file = FICHEINTER_ADDON.".php";
|
||||||
|
|
||||||
// Chargement de la classe de num<EFBFBD>rotation
|
// Chargement de la classe de numerotation
|
||||||
$classname = FICHEINTER_ADDON;
|
$classname = FICHEINTER_ADDON;
|
||||||
require_once($dir.$file);
|
require_once($dir.$file);
|
||||||
|
|
||||||
@ -376,7 +376,7 @@ class Fichinter extends CommonObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Mets <EFBFBD> jour les commentaires publiques et priv<EFBFBD>s
|
* \brief Mets a jour les commentaires publiques et prives
|
||||||
* \param note Commentaire
|
* \param note Commentaire
|
||||||
* \param type Type de note
|
* \param type Type de note
|
||||||
* \return int <0 si ko, >0 si ok
|
* \return int <0 si ko, >0 si ok
|
||||||
@ -453,7 +453,7 @@ class Fichinter extends CommonObject
|
|||||||
{
|
{
|
||||||
if ($user->rights->ficheinter->creer)
|
if ($user->rights->ficheinter->creer)
|
||||||
{
|
{
|
||||||
//verif que le projet et la soci<EFBFBD>t<EFBFBD> concordent
|
//verif que le projet et la societe concordent
|
||||||
$sql = 'SELECT p.rowid, p.title FROM '.MAIN_DB_PREFIX.'projet as p WHERE p.fk_soc ='.$this->socid.' AND p.rowid='.$project_id;
|
$sql = 'SELECT p.rowid, p.title FROM '.MAIN_DB_PREFIX.'projet as p WHERE p.fk_soc ='.$this->socid.' AND p.rowid='.$project_id;
|
||||||
$sqlres = $this->db->query($sql);
|
$sqlres = $this->db->query($sql);
|
||||||
if ($sqlres)
|
if ($sqlres)
|
||||||
@ -490,7 +490,7 @@ class Fichinter extends CommonObject
|
|||||||
if ( $this->db->query($sql) )
|
if ( $this->db->query($sql) )
|
||||||
{
|
{
|
||||||
|
|
||||||
// On efface le r<EFBFBD>pertoire du pdf
|
// On efface le repertoire du pdf
|
||||||
$fichinterref = sanitize_string($this->ref);
|
$fichinterref = sanitize_string($this->ref);
|
||||||
if ($conf->fichinter->dir_output)
|
if ($conf->fichinter->dir_output)
|
||||||
{
|
{
|
||||||
@ -531,7 +531,7 @@ class Fichinter extends CommonObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief D<EFBFBD>finit une date de livraison du bon d'intervention
|
* \brief Definit une date de livraison du bon d'intervention
|
||||||
* \param user Objet utilisateur qui modifie
|
* \param user Objet utilisateur qui modifie
|
||||||
* \param date_creation date de livraison
|
* \param date_creation date de livraison
|
||||||
* \return int <0 si ko, >0 si ok
|
* \return int <0 si ko, >0 si ok
|
||||||
@ -559,7 +559,7 @@ class Fichinter extends CommonObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief D<EFBFBD>finit le label de l'intervention
|
* \brief Definit le label de l'intervention
|
||||||
* \param user Objet utilisateur qui modifie
|
* \param user Objet utilisateur qui modifie
|
||||||
* \param description description
|
* \param description description
|
||||||
* \return int <0 si ko, >0 si ok
|
* \return int <0 si ko, >0 si ok
|
||||||
@ -591,7 +591,7 @@ class Fichinter extends CommonObject
|
|||||||
* \param fichinterid Id de la fiche d'intervention
|
* \param fichinterid Id de la fiche d'intervention
|
||||||
* \param desc Description de la ligne
|
* \param desc Description de la ligne
|
||||||
* \param date_intervention Date de l'intervention
|
* \param date_intervention Date de l'intervention
|
||||||
* \param duration Dur<EFBFBD>e de l'intervention
|
* \param duration Duree de l'intervention
|
||||||
* \return int >0 si ok, <0 si ko
|
* \return int >0 si ok, <0 si ko
|
||||||
*/
|
*/
|
||||||
function addline($fichinterid, $desc, $date_intervention, $duration)
|
function addline($fichinterid, $desc, $date_intervention, $duration)
|
||||||
@ -626,38 +626,8 @@ class Fichinter extends CommonObject
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Supprime une ligne d'intervention
|
* \brief Stocke un numero de rang pour toutes les lignes de
|
||||||
* \param idligne Id de la ligne detail <EFBFBD> supprimer
|
|
||||||
* \return int >0 si ok, <0 si ko
|
|
||||||
*/
|
|
||||||
function delete_line($idligne)
|
|
||||||
{
|
|
||||||
if ($this->statut == 0)
|
|
||||||
{
|
|
||||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."fichinterdet WHERE rowid = ".$idligne;
|
|
||||||
|
|
||||||
if ($this->db->query($sql) )
|
|
||||||
{
|
|
||||||
//Todo : faire un update du total de la dur<75>e
|
|
||||||
//$this->update_price();
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return -2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Stocke un num<EFBFBD>ro de rang pour toutes les lignes de
|
|
||||||
* detail d'une fiche d'intervention qui n'en ont pas.
|
* detail d'une fiche d'intervention qui n'en ont pas.
|
||||||
*/
|
*/
|
||||||
function line_order()
|
function line_order()
|
||||||
@ -781,14 +751,14 @@ class Fichinter extends CommonObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Initialise la fiche intervention avec valeurs fictives al<EFBFBD>atoire
|
* \brief Initialise la fiche intervention avec valeurs fictives aleatoire
|
||||||
* Sert <EFBFBD> g<EFBFBD>n<EFBFBD>rer une fiche intervention pour l'aperu des mod<EFBFBD>les ou demo
|
* Sert a generer une fiche intervention pour l'aperu des modeles ou demo
|
||||||
*/
|
*/
|
||||||
function initAsSpecimen()
|
function initAsSpecimen()
|
||||||
{
|
{
|
||||||
global $user,$langs;
|
global $user,$langs;
|
||||||
|
|
||||||
// Charge tableau des id de soci<EFBFBD>t<EFBFBD> socids
|
// Charge tableau des id de societe socids
|
||||||
$socids = array();
|
$socids = array();
|
||||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe WHERE client=1 LIMIT 10";
|
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe WHERE client=1 LIMIT 10";
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
@ -821,7 +791,7 @@ class Fichinter extends CommonObject
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialise param<EFBFBD>tres
|
// Initialise parametres
|
||||||
$this->id=0;
|
$this->id=0;
|
||||||
$this->ref = 'SPECIMEN';
|
$this->ref = 'SPECIMEN';
|
||||||
$this->specimen=1;
|
$this->specimen=1;
|
||||||
@ -871,13 +841,13 @@ class FichinterLigne
|
|||||||
var $fk_fichinter;
|
var $fk_fichinter;
|
||||||
var $desc; // Description ligne
|
var $desc; // Description ligne
|
||||||
var $datei; // Date intervention
|
var $datei; // Date intervention
|
||||||
var $duration; // Dur<EFBFBD>e de l'intervention
|
var $duration; // Duree de l'intervention
|
||||||
var $rang = 0;
|
var $rang = 0;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Constructeur d'objets ligne d'intervention
|
* \brief Constructeur d'objets ligne d'intervention
|
||||||
* \param DB handler d'acc<EFBFBD>s base de donn<EFBFBD>e
|
* \param DB handler d'acces base de donnee
|
||||||
*/
|
*/
|
||||||
function FichinterLigne($DB)
|
function FichinterLigne($DB)
|
||||||
{
|
{
|
||||||
@ -885,7 +855,7 @@ class FichinterLigne
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Recup<EFBFBD>re l'objet ligne d'intervention
|
* \brief Recupere l'objet ligne d'intervention
|
||||||
* \param rowid id de la ligne
|
* \param rowid id de la ligne
|
||||||
*/
|
*/
|
||||||
function fetch($rowid)
|
function fetch($rowid)
|
||||||
@ -919,7 +889,7 @@ class FichinterLigne
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Ins<EFBFBD>re l'objet ligne d'intervention en base
|
* \brief Insere l'objet ligne d'intervention en base
|
||||||
* \return int <0 si ko, >0 si ok
|
* \return int <0 si ko, >0 si ok
|
||||||
*/
|
*/
|
||||||
function insert()
|
function insert()
|
||||||
@ -930,7 +900,7 @@ class FichinterLigne
|
|||||||
$rangToUse=$this->rang;
|
$rangToUse=$this->rang;
|
||||||
if ($rangToUse == -1)
|
if ($rangToUse == -1)
|
||||||
{
|
{
|
||||||
// R<EFBFBD>cup<EFBFBD>re rang max de la ligne d'intervention dans $rangmax
|
// Recupere rang max de la ligne d'intervention dans $rangmax
|
||||||
$sql = 'SELECT max(rang) as max FROM '.MAIN_DB_PREFIX.'fichinterdet';
|
$sql = 'SELECT max(rang) as max FROM '.MAIN_DB_PREFIX.'fichinterdet';
|
||||||
$sql.= ' WHERE fk_fichinter ='.$this->fk_fichinter;
|
$sql.= ' WHERE fk_fichinter ='.$this->fk_fichinter;
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
@ -1071,6 +1041,49 @@ class FichinterLigne
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Supprime une ligne d'intervention
|
||||||
|
* \return int >0 si ok, <0 si ko
|
||||||
|
*/
|
||||||
|
function delete_line()
|
||||||
|
{
|
||||||
|
if ($this->statut == 0)
|
||||||
|
{
|
||||||
|
dolibarr_syslog("FichinterLigne::delete_line lineid=".$this->rowid);
|
||||||
|
$this->db->begin();
|
||||||
|
|
||||||
|
$sql = "DELETE FROM ".MAIN_DB_PREFIX."fichinterdet WHERE rowid = ".$this->rowid;
|
||||||
|
$resql = $this->db->query($sql);
|
||||||
|
dolibarr_syslog("FichinterLigne::delete_line sql=".$sql);
|
||||||
|
|
||||||
|
if ($resql)
|
||||||
|
{
|
||||||
|
$result = $this->update_total();
|
||||||
|
if ($result > 0)
|
||||||
|
{
|
||||||
|
$this->db->commit();
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->db->rollback();
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->error=$this->db->error()." sql=".$sql;
|
||||||
|
dolibarr_syslog("FichinterLigne::delete_line Error ".$this->error);
|
||||||
|
$this->db->rollback();
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return -2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user