function create_empr($empr_cb = '', $fields) { global $dbh, $lang; global $msg; global $charset; global $pmb_num_carte_auto, $deflt2docs_location, $pmb_gestion_abonnement, $pmb_gestion_financiere; object_to_array($fields); $result = array('empr_id' => 0, 'empr_cb' => "0"); $empr_cb = $this->clean_field((string) $empr_cb); if (!$empr_cb && $pmb_num_carte_auto) { $empr_cb = emprunteur::gen_num_carte_auto(); } if (!$empr_cb) { return $this->build_ok($result, "Un code barre est obligatoire.", false); } $sql = "SELECT id_empr, empr_cb FROM empr WHERE empr_cb = '" . addslashes($empr_cb) . "' "; $res = pmb_mysql_query($sql); if (pmb_mysql_num_rows($res)) { return $this->build_ok($result, "Le code {$empr_cb} est deja utilise.", false); } // clean des entrées $fields = $this->clean_fields($fields); /* $fields['nom']=$this->clean_field($fields['nom']); $fields['prenom']=$this->clean_field($fields['prenom']); $fields['adr1']=$this->clean_field($fields['adr1']); $fields['adr2']=$this->clean_field($fields['adr2']); $fields['cp']=$this->clean_field($fields['cp']); $fields['ville']=$this->clean_field($fields['ville']); $fields['pays']=$this->clean_field($fields['pays']); $fields['mail']=$this->clean_field($fields['mail']); $fields['tel1']=$this->clean_field($fields['tel1']); $fields['sms']=$this->clean_field($fields['sms'])+0; $fields['tel2']=$this->clean_field($fields['tel2']); $fields['prof']=$this->clean_field($fields['prof']); $fields['birth']=$this->clean_field($fields['birth']); $fields['sexe']=$this->clean_field($fields['sexe'])+0; $fields['login']=$this->clean_field($fields['login']); $fields['pwd']=$this->clean_field($fields['pwd']); $fields['msg']=$this->clean_field($fields['msg']); $fields['lang']=$this->clean_field($fields['lang']); $fields['location']=$this->clean_field($fields['location']+0); $fields['date_adhesion']=$this->clean_field($fields['date_adhesion']); $fields['date_expiration']=$this->clean_field($fields['date_expiration']); $fields['categ']=$this->clean_field($fields['categ'])+0; $fields['statut']=$this->clean_field($fields['statut']+0); $fields['lang']=$this->clean_field($fields['lang']); $fields['cstat']=$this->clean_field($fields['cstat'])+0; $fields['type_abt']=$this->clean_field($fields['type_abt']+0); $fields['ldap']=$this->clean_field($fields['ldap'])+0;*/ $fields['sexe'] += 0; $fields['location'] += 0; $fields['categ'] += 0; $fields['statut'] += 0; $fields['lang'] += 0; $fields['cstat'] += 0; $fields['type_abt'] += 0; $fields['ldap'] += 0; // vérification des champs obligatoie, et des Id... if (!$fields['nom']) { return $this->build_ok($result, "Le champ 'nom' n'est pas renseigne.", false); } if (!$fields['categ']) { return $this->build_ok($result, "Le champ 'categ' n'est pas renseigne.", false); } if (!$fields['statut']) { return $this->build_ok($result, "Le champ 'statut' n'est pas renseigne.", false); } if (!$fields['cstat']) { return $this->build_ok($result, "Le champ 'cstat' n'est pas renseigne.", false); } $q = "select idstatut from empr_statut where idstatut='" . $fields['statut'] . "' limit 1"; $r = pmb_mysql_query($q, $dbh); if (!pmb_mysql_num_rows($r)) { return $this->build_ok($result, "Le champ 'statut' = " . $fields['statut'] . " n'est pas un Id present dans la base de donnee.", false); } $q = "select idcode from empr_codestat where idcode='" . $fields['cstat'] . "' limit 1"; $r = pmb_mysql_query($q, $dbh); if (!pmb_mysql_num_rows($r)) { return $this->build_ok($result, "Le champ 'cstat' = " . $fields['cstat'] . " n'est pas un Id present dans la base de donnee.", false); } $q = "select id_categ_empr from empr_categ where id_categ_empr='" . $fields['categ'] . "' limit 1"; $r = pmb_mysql_query($q, $dbh); if (!pmb_mysql_num_rows($r)) { return $this->build_ok($result, "Le champ 'categ' = " . $fields['categ'] . " n'est pas un Id present dans la base de donnee.", false); } if ($fields['location']) { $q = "select idlocation from docs_location where idlocation='" . $fields['location'] . "' limit 1"; $r = pmb_mysql_query($q, $dbh); if (!pmb_mysql_num_rows($r)) { $fields['location'] = 0; } } if (!$fields['location']) { $loca = pmb_mysql_query("select min(idlocation) as idlocation from docs_location", $dbh); $locaid = pmb_mysql_fetch_object($loca); $fields['location'] = $locaid->idlocation; } if ($fields['mail']) { if (!filter_var($fields['mail'], FILTER_VALIDATE_EMAIL)) { return $this->build_ok($result, "Le champ 'mail' = " . $fields['mail'] . " n'est pas un mail valide.", false); } } if (!$fields['sexe']) { $fields['sexe'] = 0; } if (!$fields['lang']) { $fields['lang'] = $lang; } $requete = "INSERT INTO empr SET "; $requete .= "empr_cb='" . addslashes($empr_cb) . "', "; $requete .= "empr_nom='" . addslashes($fields['nom']) . "', "; $requete .= "empr_prenom='" . addslashes($fields['prenom']) . "', "; $requete .= "empr_adr1='" . addslashes($fields['adr1']) . "', "; $requete .= "empr_adr2='" . addslashes($fields['adr2']) . "', "; $requete .= "empr_cp='" . addslashes($fields['cp']) . "', "; $requete .= "empr_ville='" . addslashes($fields['ville']) . "', "; $requete .= "empr_pays='" . addslashes($fields['pays']) . "', "; $requete .= "empr_mail='" . addslashes($fields['mail']) . "', "; $requete .= "empr_tel1='" . addslashes($fields['tel1']) . "', "; $requete .= "empr_sms='" . addslashes($fields['sms']) . "', "; $requete .= "empr_tel2='" . addslashes($fields['tel2']) . "', "; $requete .= "empr_prof='" . addslashes($fields['prof']) . "', "; $requete .= "empr_year='" . addslashes($fields['birth']) . "', "; $requete .= "empr_categ='" . $fields['categ'] . "', "; $requete .= "empr_statut='" . $fields['statut'] . "', "; $requete .= "empr_lang='" . addslashes($fields['lang']) . "', "; if ($fields['date_adhesion'] == "") { $requete .= "empr_date_adhesion=CURRENT_DATE(), "; } else { $requete .= "empr_date_adhesion='" . addslashes($fields['date_adhesion']) . "', "; } if ($fields['date_expiration'] == "" or $fields['date_expiration'] == $fields['date_adhesion']) { /* AJOUTER ICI LE CALCUL EN FONCTION DE LA CATEGORIE */ $rqt_empr_categ = "select duree_adhesion from empr_categ where id_categ_empr = " . $fields['categ'] . " "; $res_empr_categ = pmb_mysql_query($rqt_empr_categ, $dbh); $empr_categ = pmb_mysql_fetch_object($res_empr_categ); if ($fields['date_adhesion']) { $rqt_date = "select date_add('" . addslashes($fields['date_adhesion']) . "', INTERVAL " . $empr_categ->duree_adhesion . " DAY) as date_expiration "; } else { $rqt_date = "select date_add(CURRENT_DATE(), INTERVAL " . $empr_categ->duree_adhesion . " DAY) as date_expiration "; } $resultatdate = pmb_mysql_query($rqt_date); $resdate = pmb_mysql_fetch_object($resultatdate); $requete .= "empr_date_expiration='" . $resdate->date_expiration . "', "; } else { $requete .= "empr_date_expiration='" . $fields['date_expiration'] . "', "; } $requete .= "empr_codestat=" . $fields['cstat'] . ", "; $requete .= "empr_creation=CURRENT_TIMESTAMP(), "; $requete .= "empr_modif=CURRENT_DATE(), "; $requete .= "empr_sexe='" . $fields['sexe'] . "', "; $requete .= "empr_msg='" . addslashes($fields['msg']) . "', "; $requete .= "empr_login='******'login']) . "', "; $requete .= "empr_location='" . $fields['location'] . "', "; // ldap - MaxMan if ($fields['ldap']) { $requete .= "empr_ldap='1', "; $fields['pwd'] = ""; } else { $requete .= "empr_ldap='0', "; } //Gestion financière if ($pmb_gestion_abonnement == 2 && $pmb_gestion_financiere) { $requete .= "type_abt='" . $fields['type_abt'] . "', "; } else { $requete .= "type_abt=0, "; } if ($fields['pwd'] != "") { $requete .= "empr_password='******'pwd']) . "' "; } else { $requete .= "empr_password='******'birth']) . "' "; } $res = pmb_mysql_query($requete, $dbh); if (!$res) { return $this->build_ok($result, "Impossible de creer le lecteur: {$requete}", false); } // on récupère l'id du de l'emprunteur $empr_id = pmb_mysql_insert_id($dbh); if (is_array($fields['pperso_list'])) { if (count($fields['pperso_list'])) { $p_perso = new parametres_perso("empr"); foreach ($fields['pperso_list'] as $pp) { $name = $pp["name"]; global ${$name}; ${$name} = $pp["value_list"]; } $p_perso->rec_fields_perso($empr_id); } } if (is_array($fields['groupe_list'])) { emprunteur::rec_groupe_empr($empr_id, $fields['groupe_list']); } emprunteur::ins_lect_categ_dsi($empr_id, $fields['categ'], 0); if ($pmb_gestion_financiere && $pmb_gestion_abonnement) { emprunteur::rec_abonnement($empr_id, $type_abt, $fields['categ']); } $result = array('empr_id' => $empr_id, 'empr_cb' => $empr_cb); return $this->build_ok($result); }