1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
| Function prestationDelete($id)
{
global $smarty;
/**
* Déclaration du tableau qui contiendra les id d'objets
* dont les images sont à supprimer
*/
$tabObjet = array();
/**
* Lancement de la transaction qui va supprimé
*/
$db = &bddConnexionPGSQL();
$db->autoCommit(false);
$res = $db->query("SELECT count(id_objet), nb_objets_max, nb_objets, pre.id_antiquaire ".
"FROM prestations pre ".
"INNER JOIN objet_commun oc ".
"ON oc.id_antiquaire = pre.id_antiquaire ".
"INNER JOIN antiquaire_client ac ".
"ON pre.id_antiquaire = ac.id_antiquaire ".
"INNER JOIN produits pro ".
"ON pro.id_produit = pre.id_produit ".
"WHERE pre.id_prestation = ".$id." ".
"GROUP BY nb_objets_max, nb_objets, pre.id_antiquaire ");
IF ( DB::isError($res) )
{
$db->rollback();
return "Erreur dans la selection du nombre d'objets";
}ELSE{
$resPrest = $db->query("SELECT deleteprestation(".$_GET['id'].")");
IF ( DB::isError($resPrest) )
{
$db->rollback();
return "Erreur dans l'execution de la procédure stockée : deleteprestation pour la prestation : ".$_GET['id'];
}
$row = $res->fetchRow();
$res->free();
$nbAnt = $row[0];
$nbMax = $row[1];
$nbPre = $row[2];
$suppr = $nbAnt - ( $nbMax - $nbPre );
echo $suppr." = $nbAnt - ( $nbMax - $nbPre )";
IF ($suppr > 0)
{
$res = $db->query("SELECT id_objet ".
"FROM objet_commun ".
"WHERE id_antiquaire = ".$row[3]." ".
"ORDER BY date_modif ASC ".
"LIMIT ".$suppr);
IF ( DB::isError($res) )
{
$res->free();
$db->rollback();
return "Erreur dans la selection d'un des objets";
}ELSE{
WHILE ( $row = $res->fetchRow() )
{
$res2 = $db->query("deleteObjet(".$row[0].")");
IF ( DB::isError($res2) )
{
$res->free();
$db->rollback;
return "Erreur dans l'execution de la procédure stockée : deleteobjet pour l'objet ".$row[0];
}ELSE{
$tabObjet[] = $row[0];
}
}
$idObjet = reset($tabObjet);
WHILE ( $idObjet != FALSE )
{
/**
* Suppression des images de l'objets
*/
$ret = unlink("../../img/chargimages/objets/".$idObjet."*");
IF (!$ret)
{
echo "Les images de l'objets $idObjet n'ont pas pu être supprimé. Veuillez le faire manuellement, merci.";
}
// SUPPRESSION DU CACHE
$smarty->clear_cache(null,"Objet|".$idObjet);
$idObjet = next($tabObjet);
}
$db->commit();
return TRUE;
}
}ELSE{
$db->commit();
return true;
}
}
} |
Partager