Commit c844df0e authored by Feu's avatar Feu
Browse files

ameliorations dans l'integration de la bibliotheque & co

parent dc714f76
......@@ -159,6 +159,52 @@ elseif ( $_REQUEST["action"] == "borrowbooks" && $is_admin )
$Message = new contents("Pret enregistré.","<p>Pret de matériel n°".$emp->id."</p>");
}
}
elseif ( $_REQUEST["action"] == "addlivres" && $is_admin )
{
$objtype = new objtype($site->db);
$asso = new asso($site->db);
$asso_prop = new asso($site->db);
$asso->load_by_id($_POST["id_asso_prop"]);
$asso_gest->load_by_id($_POST["id_asso"]);
$objtype->load_by_id($_POST["id_objtype"]);
$salle->load_by_id($_POST["id_salle"]);
$lines = explode("\n",$_POST["data"]);
foreach ( $lines as $line )
{
$rows = explode(";",$line);
if ( $rows[0] != "Serie" )
{
$serie = trim($rows[0]);
$nom = trim($rows[1]);
$num = trim($rows[2]);
$auteurs = trim($rows[3]);
$editeur = trim($rows[4]);
$isbn = trim($rows[5]);
$editeur->load_or_create($editeur);
$serie->load_or_create($serie);
$livre->add_book ( $asso->id, $asso_prop->id, $salle->id, $objtype->id, 0, $nom,
$objtype->code, "", $_POST["prix"], $_POST["caution"], 0, 0,
true, $_POST["date_achat"], "",
$serie->id, $editeur->id, $num, $isbn );
if ( !empty($auteurs) )
{
$auteurs = explode(",",$auteurs);
foreach ( $auteurs as $nom )
{
$auteur->load_or_create($nom);
$livre->add_auteur($auteur->id);
}
}
}
}
}
elseif ( $_REQUEST["action"] == "addlivre" && $is_admin )
{
......@@ -169,8 +215,8 @@ elseif ( $_REQUEST["action"] == "addlivre" && $is_admin )
$auteur2 = new auteur($site->db);
$auteur3 = new auteur($site->db);
$asso->load_by_id($_POST["id_asso_prop"]);
$asso_gest->load_by_id($_POST["id_asso"]);
$asso_prop->load_by_id($_POST["id_asso_prop"]);
$asso->load_by_id($_POST["id_asso"]);
$objtype->load_by_id($_POST["id_objtype"]);
$salle->load_by_id($_POST["id_salle"]);
$editeur->load_by_id($_POST["id_editeur"]);
......@@ -739,9 +785,10 @@ elseif ( $_REQUEST["view"] == "livres" )
$frm->add_entity_select("id_asso_prop", "Propriètaire", $site->db, "asso", false, false, array("id_asso_parent"=>NULL));
$frm->add_entity_select("id_asso", "Gestionnaire", $site->db, "asso");
$frm->add_entity_select("id_salle", "Salle", $site->db, "salle");
$frm->add_entity_select("id_objtype", "Type", $site->db, "objtype", $objtype->id);
$frm->add_price_field("prix","Prix d'achat");
$frm->add_price_field("caution","Prix de la caution");
$frm->add_text_area("data","Tableau CSV","Serie; Nom; Num; Auteur(s); Editeur; ISBN(ou EAN13)\n",80,12);
$frm->add_text_area("data","Tableau CSV","Serie; Nom; Num; Auteur 1, Auteur 2, Auteur 3; Editeur; ISBN(ou EAN13)\n",80,12);
$frm->add_submit("valide","Ajouter");
$cts->add($frm,true);
}
......
......@@ -47,6 +47,21 @@ class editeur extends stdentity
return false;
}
function load_or_create( $nom )
{
$req = new requete($this->db, "SELECT * FROM `bk_editeur`
WHERE `nom_editeur` = '" . mysql_real_escape_string($nom) . "'
LIMIT 1");
if ( $req->lines == 1 )
{
$this->_load($req->get_row());
return;
}
$this->add_editeur($nom);
}
function _load ( $row )
{
$this->id = $row['id_editeur'];
......@@ -107,6 +122,21 @@ class serie extends stdentity
return false;
}
function load_or_create ( $nom )
{
$req = new requete($this->db, "SELECT * FROM `bk_serie`
WHERE `nom_serie` = '" . mysql_real_escape_string($nom) . "'
LIMIT 1");
if ( $req->lines == 1 )
{
$this->_load($req->get_row());
return;
}
$this->add_serie($nom);
}
function _load ( $row )
{
$this->id = $row['id_serie'];
......@@ -166,6 +196,21 @@ class auteur extends stdentity
return false;
}
function load_or_create ( $nom )
{
$req = new requete($this->db, "SELECT * FROM `bk_auteur`
WHERE `nom_auteur` = '" . mysql_real_escape_string($nom) . "'
LIMIT 1");
if ( $req->lines == 1 )
{
$this->_load($req->get_row());
return;
}
$this->add_auteur($nom);
}
function _load ( $row )
{
$this->id = $row['id_auteur'];
......@@ -266,6 +311,7 @@ class livre extends objet
$this->id_editeur = $row['id_editeur'];
$this->num_livre = $row['num_livre'];
$this->isbn = $row['isbn_livre'];
$this->_is_book = true;
parent::_load($row);
}
......@@ -284,6 +330,7 @@ class livre extends objet
$this->id_editeur = $id_editeur;
$this->num_livre = $num_livre;
$this->isbn = $isbn;
$this->_is_book = true;
if ( $this->is_valid() )
{
......
......@@ -96,6 +96,7 @@ class jeu extends objet
$this->duree = $row['duree_jeu'];
$this->langue = $row['langue_jeu'];
$this->difficulte = $row['difficulte_jeu'];
$this->_is_jeu = true;
parent::_load($row);
}
......@@ -122,6 +123,7 @@ class jeu extends objet
$this->duree = $duree;
$this->langue = $langue;
$this->difficulte = $difficulte;
$this->_is_jeu = true;
if ( $this->is_valid() )
{
......
......@@ -182,6 +182,8 @@ class objet extends stdentity
var $archive;
var $notes;
var $_is_book;
var $_is_jeu;
/** Charge un objet en fonction de son id
* $this->id est égal à -1 en cas d'erreur
......@@ -266,6 +268,39 @@ class objet extends stdentity
$this->date_achat = strtotime($row['date_achat']);
}
function _determine_special()
{
if ( !$this->is_valid() )
return;
if ( !isset($this->_is_book) )
{
$req = new requete($this->db, "SELECT id_objet FROM `bk_book`
WHERE `id_objet` = '" . mysql_real_escape_string($this->id) . "'
LIMIT 1");
$this->_is_book = $req->lines == 1;
$req = new requete($this->db, "SELECT id_objet FROM `inv_jeu`
WHERE `id_objet` = '" . mysql_real_escape_string($this->id) . "'
LIMIT 1");
$this->_is_jeu = $req->lines == 1;
}
}
function is_book()
{
$this->_determine_special();
return $this->_is_book;
}
function is_jeu()
{
$this->_determine_special();
return $this->_is_jeu;
}
function add ( $id_asso, $id_asso_prop, $id_salle, $id_objtype, $id_op, $nom,
$code_objtype, $num_serie, $prix, $caution, $prix_emprunt, $empruntable,
......@@ -427,8 +462,14 @@ class objet extends stdentity
*/
function delete_objet()
{
$req = new delete($this->dbrw,"inv_objet",array("id_objet" => $this->id));
$req = new delete($this->dbrw,"inv_objet_evenement",array("id_objet" => $this->id));
new delete($this->dbrw,"inv_objet",array("id_objet" => $this->id));
new delete($this->dbrw,"inv_objet_evenement",array("id_objet" => $this->id));
// Nettoyage des extentions
new delete($this->dbrw,"inv_jeu",array("id_objet" => $this->id));
new delete($this->dbrw,"bk_book",array("id_objet" => $this->id));
new delete($this->dbrw,"bk_livre_auteur",array("id_objet" => $this->id));
$this->id=null;
}
......
......@@ -270,7 +270,7 @@ if ( isset($_REQUEST["id_objet"]) )
$emp = new emprunt($site->db);
$emp->load_by_objet($objet->id);
if ( $emp->id > 0 )
if ( $emp->is_valid() )
{
$user = new utilisateur($site->db);
$user->load_by_id($emp->id_utilisateur);
......@@ -286,6 +286,12 @@ if ( isset($_REQUEST["id_objet"]) )
$tbl->add_row(array("Actuellment emprunté par",$text));
}
if ( $objet->is_book() )
$tbl->add_row(array("Special","Cet objet est un livre : <a href=\"biblio/?id_livre=".$objet->id."\">Voir sa fiche livre</a>"));
if ( $objet->is_jeu() )
$tbl->add_row(array("Special","Cet objet est un jeu : <a href=\"#\">Voir sa fiche jeu</a>"));
$cts->add($tbl,true);
}
$site->add_contents($cts);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment