num_thesaurus = $th->id_thesaurus;
$n->num_parent = $num_parent;
$n->autorite = $num_aut;
$n->save();
$c = new categories($n->id_noeud, 'fr_FR');
$c->libelle_categorie = $libelle;
$c->index_categorie = $index;
$c->save();
return $n->id_noeud;
}
function del_notice($item) {
global $dbh ;
$requete_suppr = "delete from analysis where analysis_notice='".$item."' ";
$result_suppr = @pmb_mysql_query($requete_suppr, $dbh);
$requete_suppr = "delete from notices_categories WHERE notcateg_notice='".$item."' ";
$result_suppr = @pmb_mysql_query($requete_suppr, $dbh);
$requete_suppr = "delete from notices_langues WHERE num_notice='".$item."' ";
$result_suppr = @pmb_mysql_query($requete_suppr, $dbh);
$requete_suppr = "delete from responsability WHERE responsability_notice='".$item."' ";
$result_suppr = @pmb_mysql_query($requete_suppr, $dbh);
$requete_suppr = "delete from bannette_contenu WHERE num_notice='".$item."' ";
$result_suppr = @pmb_mysql_query($requete_suppr, $dbh);
$requete_suppr = "delete from audit WHERE object_id='".$item."' and type_obj=1 ";
$result_suppr = @pmb_mysql_query($requete_suppr, $dbh);
$requete_suppr = "delete from notices_custom_values WHERE notices_custom_origine='".$item."' ";
$result_suppr = @pmb_mysql_query($requete_suppr, $dbh);
$requete_suppr = "delete from notices where notice_id='".$item."' ";
$result_suppr = @pmb_mysql_query($requete_suppr, $dbh);
}
$tpl_beforeupload_expl = "
";
$tpl_beforeupload_notices = "";
xml_save_test("$include_path/marc_tables/$lang/function_subst.xml");
function recup_noticeunimarc_suite($notice) {
global $info_001,$info_464,$info_464_a,$info_464_e,$info_464_f,$info_461_3,$info_461_t,$info_200_a,$info_200_e,$info_210_d,$info_902_a,$info_686_a,$info_462_3,$info_462_t;
global $aut_700,$aut_701,$aut_702,$aut_710,$aut_711,$aut_712;
global $accomp_345_c;
global $info_675_a;
global $info_600_b,$info_601_b,$info_602_b,$info_605_b,$info_606_b,$info_607_b,$info_610_b;
global $info_610_a,$info_610_b,$info_610_e,$info_610_j,$info_610_x,$info_610_y,$info_610_z,$info_610_3,$info_610;
global $info_345_d,$info_071_a,$info_071_b;
global $info_901;
$record = new iso2709_record($notice, AUTO_UPDATE);
$info_001=$record->get_subfield("001");
$info_464=$record->get_subfield_array_array("464");
$info_464_a=$record->get_subfield_array("464","a");
$info_464_e=$record->get_subfield_array("464","e");
$info_464_f=$record->get_subfield_array("464","f");
$info_461_3=$record->get_subfield("461","3");
$info_461_t=$record->get_subfield("461","t");
$info_200_a=$record->get_subfield("200","a");
$info_200_e=$record->get_subfield_array("200","e");
$info_210_d=$record->get_subfield("210","d");
$info_902_a=$record->get_subfield_array_array("902","a");
$info_686_a=$record->get_subfield("686","a");
$info_462_3=$record->get_subfield("462","3");
$info_462_t=$record->get_subfield("462","t");
$info_600_b=$record->get_subfield_array_array("600","b");
$info_601_b=$record->get_subfield_array_array("601","b");
$info_602_b=$record->get_subfield_array_array("602","b");
$info_605_b=$record->get_subfield_array_array("605","b");
$info_606_b=$record->get_subfield_array_array("606","b");
$info_607_b=$record->get_subfield_array_array("607","b");
$info_610_b=$record->get_subfield_array_array("610","b");
$info_610_a=$record->get_subfield_array_array("610","a");
$info_610_b=$record->get_subfield_array_array("610","b");
$info_610_e=$record->get_subfield_array_array("610","e");
$info_610_j=$record->get_subfield_array_array("610","j");
$info_610_x=$record->get_subfield_array_array("610","x");
$info_610_y=$record->get_subfield_array_array("610","y");
$info_610_z=$record->get_subfield_array_array("610","z");
$info_610_3=$record->get_subfield_array_array("610","3");
$info_610=$record->get_subfield_array_array("610");
//$info_610=$record->get_subfield_array_array("610","a","b","3","e");
$aut_700=$record->get_subfield("700","a","b","3","p","4");
$aut_701=$record->get_subfield("701","a","b","3","p","4");
$aut_702=$record->get_subfield("702","a","b","3","p","4");
$aut_710=$record->get_subfield("710","a","b","3","p","4");
$aut_711=$record->get_subfield("711","a","b","3","p","4");
$aut_712=$record->get_subfield("712","a","b","3","p","4");
$accomp_345_c=$record->get_subfield("345","c");
//CDU : classification décimale universelle
$info_675_a=$record->get_subfield("675","a");
// Prix pour disque et video
$info_345_d=$record->get_subfield("345","d");
// Code commercial
$info_071_a=$record->get_subfield("071","a");
// Producteur -> editeur
$info_071_b=$record->get_subfield("071","b");
// Centre d'intérêt
//$info_901_a=$record->get_subfield_array_array("901","a");
$info_901=$record->get_subfield("901","a","3");
}
function xml_save_table($filename,$table) {
global $table_responsability_function;
global $charset;
$fp = fopen($filename, "w");
fwrite($fp,"\n\n\n");
foreach ($table_responsability_function as $key=>$val) {
//$texte=htmlspecialchars($table_responsability_function[$key],ENT_QUOTES,$charset);
fwrite($fp,"".$val."\n");
}
fwrite($fp,"\n");
fclose($fp);
}
function xml_save_test($filename) {
global $table_responsability_function;
$fp = fopen($filename, "a");
fclose($fp);
}
function clean_xml_text($texte) {
global $charset;
$texte=htmlspecialchars($texte,ENT_QUOTES,$charset);
return $texte;
}
function update_authors_num_opsys($aut_ ,$responsability_type)
{
global $notice_id ;
global $table_responsability_function;
global $lang,$include_path;
global $xml_changement;
global $charset;
if(!is_array($table_responsability_function)) {
//$table_responsability_function=unserialize_file("table_responsability_function.tmp");
$parser = new XMLlist("$include_path/marc_tables/$lang/function.xml");
$parser->analyser();
$table = $parser->table;
$table_responsability_function = $parser->tablefav;
if($table_responsability_function)foreach ($table_responsability_function as $key=>$val) {
// htmlspecialchars: pour comparer avec une chaine déja netoyée
$table_responsability_function[$key]=htmlspecialchars($table[$key],ENT_QUOTES,$charset);
}
}
//print"";print_r($aut_);print"
";
for($i=0;$i=900) {
$index='';
if($table_responsability_function)foreach ($table_responsability_function as $key=>$val) {
if($val==$aut_i_4) {
$index=$key;
break;
}
}
if (!$index) {
// creer
$index=count($table_responsability_function)+900;
$table_responsability_function[$index]=$aut_i_4;
$xml_changement=1;
}
$requete="update responsability SET responsability_fonction='$index' where responsability_notice='$notice_id' and responsability_author = $author_id ";
$result=pmb_mysql_query($requete);
}
if ($aut_i_p!="") {
$requete="delete from responsability where responsability_fonction='' and responsability_author = $author_id and responsability_type=$responsability_type and responsability_notice='$notice_id'";
$result=pmb_mysql_query($requete);
$index='';
if($table_responsability_function)foreach ($table_responsability_function as $key=>$val) {
if($val==$aut_i_p) {
$index=$key;
break;
}
}
if (!$index) {
// creer
$index=count($table_responsability_function)+900;
$table_responsability_function[$index]=$aut_i_p;
$xml_changement=1;
}
//$requete="update responsability SET responsability_fonction='$index' where responsability_notice='$notice_id' and responsability_author = $author_id";
$requete="insert into responsability SET responsability_fonction='$index' , responsability_notice='$notice_id' , responsability_author = $author_id, responsability_type=$responsability_type";
$result=pmb_mysql_query($requete);
}
}
}
}
}
function import_new_notice_suite() {
global $dbh ;
global $notice_id ;
global $index_sujets ;
global $pmb_keyword_sep ;
global $id_notices_custom_opsys,$id_notices_custom_type_opsys;
global $info_001,$info_464,$info_464_a,$info_464_e,$info_464_f,$info_461_3,$info_461_t,$info_200_a,$info_200_e,$info_210_d,$info_902_a,$info_686_a,$info_462_3,$info_462_t;
global $num_thesaurus,$thes;
global $info_675_a;
global $info_600_a, $info_600_b, $info_600_j, $info_600_x, $info_600_y, $info_600_z ;
global $info_601_a, $info_601_b, $info_601_j, $info_601_x, $info_601_y, $info_601_z ;
global $info_602_a, $info_602_b, $info_602_j, $info_602_x, $info_602_y, $info_602_z ;
global $info_605_a, $info_605_b, $info_605_j, $info_605_x, $info_605_y, $info_605_z ;
global $info_606_a, $info_606_b, $info_606_j, $info_606_x, $info_606_y, $info_606_z ;
global $info_607_a, $info_607_b, $info_607_j, $info_607_x, $info_607_y, $info_607_z ;
global $info_610_a, $info_610_e, $info_610_b, $info_610_j, $info_610_x, $info_610_y, $info_610_z,$info_610_3,$info_610 ;
global $bulletin_id;
global $flag_titre_serie_recuperation;
global $flag_depouillements_464;
global $aut_700,$aut_701,$aut_702,$aut_710,$aut_711,$aut_712;
global $accomp_345_c;
global $table_responsability_function;
global $lang,$include_path,$xml_changement;
global $info_345_d;
global $info_071_a,$info_071_b;
global $thes_centre_interet,$num_thesaurus_centre_interet,$info_901;
global $flag_import_610_in_mot_cles,$thes_610, $num_thesaurus_610;
// prix dvd et video
if($info_345_d[0]) {
$requete="update notices set prix='".addslashes($info_345_d[0])."' where notice_id='$notice_id' ";
pmb_mysql_query($requete);
}
// EAN
if($info_071_a[0]) {
$requete="update notices set code='".addslashes($info_071_a[0])."' where notice_id='$notice_id' ";
pmb_mysql_query($requete);
}
// Producteur -> Editeur
if($info_071_b[0]) {
$nom = $info_071_b[0];
$requete="select ed_id from publishers where ed_name='".addslashes($nom)."' ";
$result=pmb_mysql_query($requete);
if($row = pmb_mysql_fetch_row($result)){
$ed_id=$row[0];
} else {
$requete = "insert into publishers SET ed_name='$nom', ";
$requete .= "index_publisher=' ".strip_empty_words($nom)." '";
pmb_mysql_query($requete);
$ed_id=pmb_mysql_insert_id();
}
$requete="update notices set ed1_id='".$ed_id."' where notice_id='$notice_id' ";
pmb_mysql_query($requete);
}
// 345_c Matériel d'accompagnement
if($accomp_345_c[0]) {
$requete="update notices set accomp='".addslashes($accomp_345_c[0])."' where notice_id='$notice_id' ";
pmb_mysql_query($requete);
}
update_authors_num_opsys($aut_700,0);
update_authors_num_opsys($aut_701,1);
update_authors_num_opsys($aut_702,2);
update_authors_num_opsys($aut_710,2);
update_authors_num_opsys($aut_711,2);
update_authors_num_opsys($aut_712,2);
if($xml_changement) {
xml_save_table("$include_path/marc_tables/$lang/function_subst.xml",$table_responsability_function);
$xml_changement=0;
}
//UDC
if($info_675_a[0]) {
$indexint_id = indexint::import(clean_string($info_675_a[0]));
$requete="update notices set indexint='$indexint_id' where notice_id='$notice_id' ";
pmb_mysql_query($requete);
}
if ($aut_700[0]['a']!="") {
if ($aut_700[0][3]!="") {
$requete="select author_id from authors where author_name='".addslashes($aut_700[0]['a'])."' and author_rejete='".addslashes($aut_700[0]['b'])."' ";
$result=pmb_mysql_query($requete);
if($row = pmb_mysql_fetch_row($result)){
$author_id=$row[0];
$requete="update authors set author_comment='".addslashes($aut_700[0][3])."' where author_id='$author_id' ";
pmb_mysql_query($requete);
}
}
}
$bulletin_id=0;
// Effacement de la notice temporaire eventuelle
list($num_opsys,$type_opsys)= explode(" ",$info_001[0]);
if(($type_opsys=='UMO:13') ){
$requete="update notices set niveau_biblio='b', niveau_hierar='2' where notice_id='$notice_id' ";
//print "$requete
";
pmb_mysql_query($requete);
}
if(($type_opsys=='UMO:23') || ($type_opsys=='UMO:3')) { // Titre de périodique
$requete="select * from notices_custom_values where notices_custom_small_text='".$num_opsys."'";
//print "new $type_opsys: $requete
";
$resultat=pmb_mysql_query($requete);
//Notice existe-t-elle comme notice temporaire?
if (@pmb_mysql_num_rows($resultat)) {
//Si oui, récupération id notice temporaire a supprimer
$old_n=pmb_mysql_fetch_object($resultat);
$notice_id_old=$old_n->notices_custom_origine;
// modifie les anciennes relations sur la vrai notice
notice_relations::update_linked_notice($notice_id, $notice_id_old);
$requete="update bulletins set bulletin_notice='$notice_id' where bulletin_notice='$notice_id_old' ";
//print "$requete
";
pmb_mysql_query($requete);
$requete="update notices set niveau_biblio='s', niveau_hierar='1' where notice_id='$notice_id' ";
//print "$requete
";
pmb_mysql_query($requete);
// suppression de la notice temporaire
$requete="delete from notices where notice_id=".$notice_id_old;
pmb_mysql_query($requete);
$requete="delete from notices_custom_values where notices_custom_origine='".$notice_id_old."'";
pmb_mysql_query($requete);
//print "$requete
";
} else {
$requete="update notices set niveau_biblio='s', niveau_hierar='1' where notice_id='$notice_id' ";
pmb_mysql_query($requete);
}
} else if(($type_opsys=='UMO:41') || ($type_opsys=='UMO:42')){ // Dépouillement (hors article)
//Rien
} else if($type_opsys=='UMO:43'){ // Dépouillement article de périodique
$requete="select * from notices_custom_values where notices_custom_small_text='".$num_opsys."'";
//print "new $type_opsys: $requete
";
$resultat=pmb_mysql_query($requete);
//Notice existe-t-elle comme notice temporaire?
if (@pmb_mysql_num_rows($resultat)) {
//Si oui, récupération id notice temporaire a supprimer
$old_n=pmb_mysql_fetch_object($resultat);
$notice_id_old=$old_n->notices_custom_origine;
// modifie les anciennes relations sur la vrai notice
$requete="update analysis set analysis_notice='$notice_id' where analysis_notice='$notice_id_old' ";
//print "$requete
";
pmb_mysql_query($requete);
$requete="update notices set niveau_biblio='a', niveau_hierar='2', code='' where notice_id='$notice_id' ";
//print "$requete
";
pmb_mysql_query($requete);
// suppression de la notice temporaire
$requete="delete from notices where notice_id=".$notice_id_old;
pmb_mysql_query($requete);
$requete="delete from notices_custom_values where notices_custom_origine='".$notice_id_old."'";
pmb_mysql_query($requete);
} else {
$requete="update notices set niveau_biblio='a', niveau_hierar='2', code='' where notice_id='$notice_id' ";
pmb_mysql_query($requete);
//print "$requete
";
}
} else { // UMO 1 2 4 8 21 22 24 28
$is_serie=($type_opsys=='UMO:21')||($type_opsys=='UMO:22')||($type_opsys=='UMO:24')||($type_opsys=='UMO:28');
if((($flag_titre_serie_recuperation)&&($is_serie))||(!$is_serie)) {
$requete="select * from notices_custom_values where notices_custom_small_text='".$num_opsys."'";
//print "new $type_opsys: $requete
";
$resultat=pmb_mysql_query($requete);
//Notice existe-t-elle comme notice temporaire?
if (@pmb_mysql_num_rows($resultat)) {
//Si oui, récupération id notice temporaire a supprimer
$old_n=pmb_mysql_fetch_object($resultat);
$notice_id_old=$old_n->notices_custom_origine;
// modifie les anciennes relations sur la vrai notice
notice_relations::update_linked_notice($notice_id, $notice_id_old);
// suppression de la notice temporaire
$requete="delete from notices where notice_id=".$notice_id_old;
pmb_mysql_query($requete);
$requete="delete from notices_custom_values where notices_custom_origine='".$notice_id_old."'";
pmb_mysql_query($requete);
//print "$requete
";
}
} else if ($is_serie) { // suprimer la notice car on en veut pas
del_notice($notice_id);
return;
}
}
//Genre dans Thesaurus
for ($i=0; $inum_noeud_racine, $info_902_a[$i][$j], ' '.strip_empty_words($info_902_a[$i][$j]).' ');
}
/* ajout de l'indexation à la notice dans la table notices_categories*/
$rqt_ajout = "insert into notices_categories set notcateg_notice='".$notice_id."', num_noeud='".$resultat."' " ;
$res_ajout = @pmb_mysql_query($rqt_ajout, $dbh);
}
}
//centre interet dans Thesaurus
for ($i=0; $inum_noeud_racine, $info_901[$i]['a'], ' '.strip_empty_words($info_901[$i]['a']).' ',$info_901[$i][3]);
}
/* ajout de l'indexation à la notice dans la table notices_categories*/
$rqt_ajout = "insert into notices_categories set notcateg_notice='".$notice_id."', num_noeud='".$resultat."' " ;
$res_ajout = @pmb_mysql_query($rqt_ajout, $dbh);
}
// Pcdm (686) dans le plan de classement
// print ""; print_r($info_686_a);print "
";
if(count($info_686_a) ) {
//vérification de l'existence des categs, sinon création
$requete="select indexint_id from indexint where indexint_name='".addslashes($info_686_a[0])."' and num_pclass='2'";
//print "$requete
";
$result=pmb_mysql_query($requete);
if($row = pmb_mysql_fetch_row($result)){
$indexint_id=$row[0];
} else {
$requete="insert into indexint SET indexint_name='".addslashes($info_686_a[0])."', num_pclass='2' ";
//print "$requete
";
pmb_mysql_query($requete);
$indexint_id=pmb_mysql_insert_id();
}
$requete="update notices set indexint='$indexint_id' where notice_id='$notice_id' ";
// print "$requete
";
@pmb_mysql_query($requete, $dbh);
}
// if (is_array($index_sujets)) $mots_cles = implode (" $pmb_keyword_sep ",$index_sujets);
// else $mots_cles = $index_sujets;
$mots_cles='';
for ($a=0; $a";print_r($info_610_a);print_r($info_610_e);print"";
for ($a=0; $anum_noeud_racine, $Libelle, ' '.strip_empty_words($Libelle).' ',$info_610_3[$a][0]);
}
// ajout de l'indexation à la notice dans la table notices_categories
$rqt_ajout = "insert into notices_categories set notcateg_notice='".$notice_id."', num_noeud='".$resultat."' " ;
$res_ajout = @pmb_mysql_query($rqt_ajout, $dbh);
}
/*
for ($a=0; $anum_noeud_racine, $info_610_a[$a][0], ' '.strip_empty_words($info_610_a[$a][0]).' ',$info_610_3[$a][0]);
}
for ($j=0; $jidchamp;
$rqt="select idchamp from notices_custom where name='type_opsys'";
$res = pmb_mysql_query($rqt, $dbh);
if ($res && ($r = pmb_mysql_fetch_object($res))) $id_notices_custom_type_opsys= $r->idchamp;
}
import_records::insert_value_custom_field($id_notices_custom_opsys, $notice_id, $num_opsys);
import_records::insert_value_custom_field($id_notices_custom_opsys, $notice_id, $type_opsys);
$requete="select * from notices where notice_id=$notice_id";
$resultat=pmb_mysql_query($requete);
$r=pmb_mysql_fetch_object($resultat);
// Traiter les dépouillement du champ 464
if ($flag_depouillements_464) {
if(is_array($info_464)) {
switch ($type_opsys) {
case 'UMO:1': // Documents imprimés Unimarc moyen
$niveau_biblio='m';
$niveau_hierar= '0';
break;
case 'UMO:2': // Documents sonores Unimarc moyen
$niveau_biblio='m';
$niveau_hierar= '0';
break;
case 'UMO:13': // bulletin
$niveau_biblio='a';
$niveau_hierar= '2';
break;
case 'UMO:4': // Documents audiovisuel Unimarc moyen
$niveau_biblio='m';
$niveau_hierar= '0';
break;
case 'UMO:8': // Logiciels - CDrom
$niveau_biblio='m';
$niveau_hierar= '0';
break;
default:
$niveau_biblio='m';
$niveau_hierar= '0';
break;
}
//print "";print_r ($info_464);print "
";
for ($i=0; $i";print_r ($_3_464);print "";
for ($j=0; $j";
}
}
if($a_464[$j] != '...') {
$requete="insert into notices set typdoc='$r->typdoc', tit1 ='".addslashes($a_464[$j])."',tit2 ='".addslashes($e_464[$j])."', niveau_biblio='$niveau_biblio',niveau_hierar='$niveau_hierar' ";
//if ($type_opsys="UMO:2") print $requete ."
";
pmb_mysql_query($requete);
$depouille_id=pmb_mysql_insert_id();
if ($depouille_id) {
//link notice
notice_relations::insert($depouille_id, $notice_id, 'a');
if( $author_id ) {
$requete="insert into responsability SET responsability_fonction='070' , responsability_notice='$depouille_id' , responsability_author = $author_id, responsability_type=0";
//print $requete."
";
$result=pmb_mysql_query($requete);
}
}
}
}
}
}
}
// $info_461_3,$info_461_t : dépendance d'une notice chapeau
for ($_3=0; $_3";
$resultat=pmb_mysql_query($requete);
//Notice chapeau existe-t-elle ?
if (@pmb_mysql_num_rows($resultat)) {
//Si oui, récupération id
$chapeau_id=pmb_mysql_result($resultat,0,0);
} else {
$niveau_biblio='m';
$niveau_hierar='1';
// Création de la notice temporaire chapeau
$requete="insert into notices set typdoc='$r->typdoc', tit1 ='".addslashes($info_461_t[$a])."' , niveau_biblio='$niveau_biblio',niveau_hierar='$niveau_hierar' ";
//print "$requete
";
pmb_mysql_query($requete);
$chapeau_id=pmb_mysql_insert_id();
$requete="insert into notices_custom_values (notices_custom_champ,notices_custom_origine,notices_custom_small_text) values($id_notices_custom_opsys,$chapeau_id,'".addslashes($info_461_3[$_3])."')";
//print "$requete
";
pmb_mysql_query($requete);
}
if ($chapeau_id) {
//link notice
notice_relations::insert($notice_id, $chapeau_id, 'a');
}
}
break;
case 'UMO:13': // bulletin de périodique
$requete="select notices_custom_origine from notices_custom_values where notices_custom_small_text='".$info_461_3[$_3]."'";
//print "$requete
";
$resultat=pmb_mysql_query($requete);
//Notice chapeau existe-t-elle ?
if (@pmb_mysql_num_rows($resultat)) {
//Si oui, récupération id
$chapeau_id=pmb_mysql_result($resultat,0,0);
} else {
$niveau_biblio='s';
$niveau_hierar='1';
// Création de la notice temporaire chapeau
$requete="insert into notices set typdoc='$r->typdoc', tit1 ='".addslashes($info_461_t[$a])."' , niveau_biblio='$niveau_biblio',niveau_hierar='$niveau_hierar' ";
//print "$requete
";
pmb_mysql_query($requete);
$chapeau_id=pmb_mysql_insert_id();
$requete="insert into notices_custom_values (notices_custom_champ,notices_custom_origine,notices_custom_small_text) values($id_notices_custom_opsys,$chapeau_id,'".addslashes($info_461_3[$_3])."')";
//print "$requete
";
pmb_mysql_query($requete);
}
if ($chapeau_id) {
//link notice
notice_relations::insert($notice_id, $chapeau_id, 'b', 1, 'up', false);
// création bulletin
$info=array();
$bulletin=new bulletinage("",$chapeau_id);
$info['bul_titre']=addslashes($info_200_a[0]);
$info['bul_no']=addslashes($info_200_e[0]);
$info['bul_date']=addslashes($info_200_e[1]);
$info['date_date']=gen_date($info_200_e[1],$info_210_d[0]);
$bulletin->bull_num_notice=$notice_id;
$bulletin_id=$bulletin->update($info,true);
}
break;
default:
break;
}
}
// $info_462_3,$info_462_t : Dépouillement, article
for ($_3=0; $_3";
$resultat=pmb_mysql_query($requete);
//Notice chapeau existe-t-elle ?
if (@pmb_mysql_num_rows($resultat)) {
//Si oui, récupération id
$chapeau_id=pmb_mysql_result($resultat,0,0);
} else {
$niveau_biblio='m';
$niveau_hierar='0';
// Création de la notice temporaire chapeau
$requete="insert into notices set typdoc='$r->typdoc', tit1 ='".addslashes($info_462_t[$a])."' , niveau_biblio='$niveau_biblio',niveau_hierar='$niveau_hierar' ";
//print "$requete
";
pmb_mysql_query($requete);
$chapeau_id=pmb_mysql_insert_id();
$requete="insert into notices_custom_values (notices_custom_champ,notices_custom_origine,notices_custom_small_text) values($id_notices_custom_opsys,$chapeau_id,'".addslashes($info_462_3[$_3])."')";
//print "$requete
";
pmb_mysql_query($requete);
}
if ($chapeau_id) {
//link notice
notice_relations::insert($notice_id, $chapeau_id, 'a');
}
break;
case 'UMO:13': // bulletin de périodique => création des articles
$requete="select notices_custom_origine from notices_custom_values where notices_custom_small_text='".$info_462_3[$_3]."'";
//print "$requete
";
$resultat=pmb_mysql_query($requete);
//Notice article existe-t-elle ?
if (@pmb_mysql_num_rows($resultat)) {
//Si oui, récupération id
$article_id=pmb_mysql_result($resultat,0,0);
} else {
$niveau_biblio='a';
$niveau_hierar='2';
// Création de la notice temporaire de l'article
$requete="insert into notices set typdoc='$r->typdoc', tit1 ='".addslashes($info_462_t[$a])."' , niveau_biblio='$niveau_biblio',niveau_hierar='$niveau_hierar' ";
//print "$requete
";
pmb_mysql_query($requete);
$article_id=pmb_mysql_insert_id();
$requete="insert into notices_custom_values (notices_custom_champ,notices_custom_origine,notices_custom_small_text) values($id_notices_custom_opsys,$article_id,'".addslashes($info_462_3[$_3])."')";
//print "$requete
";
pmb_mysql_query($requete);
}
if ($article_id) {
//lien article de bulletin créé dans table analitique
$requete="insert into analysis set analysis_bulletin='$bulletin_id', analysis_notice ='$article_id' ";
//print "$requete
";
pmb_mysql_query($requete);
}
break;
default:
break;
}
}
} // fin import_new_notice_suite
function gen_date($bul_date,$ed_date) {
$d_field=explode(' ',trim($bul_date));
$nb=count($d_field);
$mysql_date='';
if($nb==0) {
if(is_numeric ($ed_date)) {
$year=$ed_date;
$month='01';
$day='01';
$mysql_date = $year.'-'.$month.'-'.$day;
} else {
$rqt= "SELECT curdate()";
if($result=pmb_mysql_query($rqt))
if($row = pmb_mysql_fetch_row($result)) $mysql_date = $row[0];
}
return $mysql_date;
}
if($nb>0) {
$year=$d_field[count($d_field)-1];
}
if($nb>1) {
$str_month=strtolower($d_field[count($d_field)-2]);
switch($str_month) {
case "janvier":$month='01';break;
case "février":case "fevrier":$month='02';break;
case "mars":$month='03';break;
case "avril":$month='04';break;
case "mai":$month='05';break;
case "juin":$month='06';break;
case "juillet":$month='07';break;
case "aout":case "août":$month='08';break;
case "septembre":$month='09';break;
case "octobre":$month='10';break;
case "novembre":$month='11';break;
case "décembre":case "decembre":$month='12';break;
default:
$month='01';
break;
}
}
if($nb>2) {
$day=$d_field[count($d_field)-3];
} else $day='01';
$date = $year.'-'.$month.'-'.$day;
$rqt= "SELECT DATE_ADD('" .$date. "', INTERVAL 0 YEAR)";
if($result=pmb_mysql_query($rqt))
if($row = pmb_mysql_fetch_row($result)) $mysql_date= $row[0];
if(!$mysql_date) {
$rqt= "SELECT curdate()";
if($result=pmb_mysql_query($rqt))
if($row = pmb_mysql_fetch_row($result)) $mysql_date = $row[0];
}
return $mysql_date;
}
// TRAITEMENT DES EXEMPLAIRES ICI
function traite_exemplaires () {
global $msg, $dbh ;
global $nb_expl_ignores ;
global $prix, $notice_id, $info_996, $info_995, $info_001,$info_345_d ;
global $bulletin_id;
global $id_expl_fournisseur_opsys,$id_expl_inventaire_opsys;
// Afin de ne pas remettre en cause le script programmé en 995 :
$info_995 = $info_996 ;
// lu en 010$d de la notice
$price = $prix[0];
// prix dvd et video
if($info_345_d[0]) {
$price=$info_345_d[0];
}
// la zone 995 est répétable
for ($nb_expl = 0; $nb_expl < count($info_995); $nb_expl++) {
/* RAZ expl */
$expl = array();
/* préparation du tableau à passer à la méthode */
$expl['notice'] = $notice_id ;
$expl['cb'] = $info_995[$nb_expl]['f'];
$expl['cote'] = $info_995[$nb_expl]['k'];
$expl['note'] = $info_995[$nb_expl]['u'].$info_995[$nb_expl]['5'];
$expl['prix'] = $price;
$expl['cote_mandatory'] = 0 ;
$expl['date_depot'] = substr($info_995[$nb_expl]['m'],0,4)."-".substr($info_995[$nb_expl]['m'],4,2)."-".substr($info_995[$nb_expl]['m'],6,2) ;
$expl['date_retour'] = substr($info_995[$nb_expl]['n'],0,4)."-".substr($info_995[$nb_expl]['n'],4,2)."-".substr($info_995[$nb_expl]['n'],6,2) ;
// propriétaire
$owner=array();
$owner['lender_libelle'] = $info_995[$nb_expl]['a'] ;
if (!$owner['lender_libelle']) $owner['lender_libelle'] = $info_995[$nb_expl]['b'] ;
if (!$owner['lender_libelle']) $owner['lender_libelle'] = 'defaut' ;
$expl['expl_owner'] = lender::import($owner);
$book_lender_id = $expl['expl_owner'] ;
// docs_location
$data_doc=array();
$data_doc['location_libelle'] = $info_995[$nb_expl]['v'] ;
$data_doc['locdoc_codage_import'] = $info_995[$nb_expl]['w'] ;
if (!$data_doc['locdoc_codage_import']) $data_doc['locdoc_codage_import'] = $data_doc['location_libelle'] ;
//$data_doc['locdoc_owner'] = $book_lender_id ;
$data_doc['locdoc_owner'] = 0 ;
$expl['location'] = docs_location::import($data_doc);
// docs_section
$data_doc=array();
$data_doc['section_libelle'] = $info_995[$nb_expl]['x'] ;
$data_doc['sdoc_codage_import'] = $info_995[$nb_expl]['y'] ;
if (!$data_doc['sdoc_codage_import']) $data_doc['sdoc_codage_import'] = $data_doc['section_libelle'] ;
//$data_doc['sdoc_owner'] = $book_lender_id ;
$data_doc['sdoc_owner'] = 0;
$expl['section'] = docs_section::import($data_doc);
// typedoc
$data_doc=array();
$data_doc['tdoc_libelle'] = $info_995[$nb_expl]['e'];
if(!$data_doc['tdoc_libelle']) $data_doc['tdoc_libelle']= $info_995[$nb_expl]['r'];
$data_doc['tdoc_codage_import'] = $info_995[$nb_expl]['r'] ;
if (!$data_doc['tdoc_codage_import']) $data_doc['tdoc_codage_import'] = $info_995[$nb_expl]['e'] ;
$data_doc['duree_pret'] = 28 ; /* valeur par défaut */
$data_doc['tdoc_owner'] = $book_lender_id ;
$expl['typdoc'] = docs_type::import($data_doc);
// statut doc
$data_doc=array();
$data_doc['statut_libelle'] = $info_995[$nb_expl]['1'];
$data_doc['statusdoc_codage_import'] = $info_995[$nb_expl]['2'] ;
if (!$data_doc['statusdoc_codage_import']) $data_doc['statusdoc_codage_import'] = $info_995[$nb_expl]['1'] ;
$data_doc['pret_flag'] = $info_995[$nb_expl]['3'] ;
$data_doc['statusdoc_owner'] = $book_lender_id ;
$expl['statut'] = docs_statut::import($data_doc);
// codestat
//$expl['codestat'] = 10 ;
$data_codestat['codestat_libelle'] = $info_995[$nb_expl]['x'] ;
$expl['codestat'] = docs_codestat::import($data_codestat);
// quoi_faire
// $que_faire vient du formulaire de chargement, à utiliser en attente de l'info dans la zone 996
global $que_faire ;
if ($que_faire=="") {
if ($info_995[$nb_expl]['0']) $expl['quoi_faire'] = $info_995[$nb_expl]['0'] ;
else $expl['quoi_faire'] = 2 ;
} else {
$expl['quoi_faire'] = $que_faire ;
}
// 0 : supprimer, 1 ou vide : Mettre à jour ou ajouter, 2 : ajouter si possible, sinon rien.
//print "";print_r($info_995);print_r($expl);print "
";
$expl_id = exemplaire::import($expl);
if ($expl_id == 0) {
$nb_expl_ignores++;
}
list($num_opsys,$type_opsys)= explode(" ",$info_001[0]);
if(($type_opsys=='UMO:13') ){
$requete="update exemplaires set expl_notice='0', expl_bulletin='$bulletin_id' where expl_id='$expl_id' ";
//print "$requete
";
pmb_mysql_query($requete);
}
if(!$id_expl_fournisseur_opsys) {
$rqt="select idchamp from expl_custom where name='fournisseur'";
$res = pmb_mysql_query($rqt, $dbh);
if ($res && ($r = pmb_mysql_fetch_object($res))) $id_expl_fournisseur_opsys= $r->idchamp;
$rqt="select idchamp from expl_custom where name='inventaire'";
$res = pmb_mysql_query($rqt, $dbh);
if ($res && ($r = pmb_mysql_fetch_object($res))) $id_expl_inventaire_opsys= $r->idchamp;
}
//inventaire en champ perso
if($field=$info_995[$nb_expl]['6']) {
$requete="insert into expl_custom_values (expl_custom_champ,expl_custom_origine,expl_custom_small_text) values($id_expl_inventaire_opsys,$expl_id,'".addslashes($field)."')";
pmb_mysql_query($requete);
}
//Fournisseur en champ perso
if($field=$info_995[$nb_expl]['7']) {
$requete="insert into expl_custom_values (expl_custom_champ,expl_custom_origine,expl_custom_small_text) values($id_expl_fournisseur_opsys,$expl_id,'".addslashes($field)."')";
pmb_mysql_query($requete);
}
//Date de création
if($field=$info_995[$nb_expl]['8']) {
$requete="update exemplaires set create_date='$field 12:00:00' where expl_id='$expl_id' ";
//print $requete;
pmb_mysql_query($requete);
}
} // fin for
} // fin traite_exemplaires TRAITEMENT DES EXEMPLAIRES JUSQU'ICI
// fonction spécifique d'export de la zone 995
function export_traite_exemplaires ($ex=array()) {
return import_expl::export_traite_exemplaires($ex);
}