source: pmb4.2/trunk/fuentes/pmb/usur_imp_itaca.php @ 828

Last change on this file since 828 was 828, checked in by jrpelegrina, 4 years ago

WIP in lliurex features and modifications 4

File size: 37.4 KB
Line 
1<?php
2//-------------------------------------> L L I U R E X <--------------------------------------//
3// Modulo de importación/exportacion de usuarios de pmb, a partir de un fichero de texto plano
4               
5function string_to_array($string) {
6   $largo = strlen($string); //Largo de cadena
7   $final_array = array();
8   for($i = 0; $i < $largo; $i++)  {
9       $caracter = $string[$i];
10       array_push($final_array,$caracter);
11   }
12   return $final_array;
13}
14
15function sacaCamposItacaAlu($archivo,$ide) {
16       
17        $vectorA = array();
18        $indice =0;
19       
20        /*Instancio la clase DOM que nos permitira operar con el XML*/
21        $doc = new DOMDocument();
22 
23        /* Cargo el XML, En este caso es un archivo llamado llxgesc.xml, podriamos usar loadXML si desamos leer de un string*/
24        $doc->load( $archivo );
25   
26        // Obtengo el nodo alumne (listaAlumnos) del XML a traves del metodo getElementsByTagName, retorna una lista de todos los nodos encontrados
27        $listaAlumnos = $doc->getElementsByTagName( "alumne" );
28
29        /*Al ser $listaAlumnos una lista de nodos   lo puedo recorrer y obtener todo  su contenido*/
30        foreach( $listaAlumnos as $alumno )
31        {
32                /* Obtengo el valor del primer elemento 'item(0)' de la lista $autors.  Si existiera un atributo en el nodo para obtenerlo usaria
33                   $authors->getAttribute('atributo');    */
34                $nombres = $alumno->getElementsByTagName( "nom" ); // $authors = $book->getElementsByTagName( "author" );
35                $nombre = $nombres->item(0)->nodeValue;
36   
37                $apellidos = $alumno->getElementsByTagName( "cognoms" ); // $publishers = $book->getElementsByTagName( "publisher" );
38                $apellido = $apellidos->item(0)->nodeValue; // $publisher = $publishers->item(0)->nodeValue;
39   
40               
41                /* INI LLIUREX 24/09/2015 */
42                //Si la tabla no esta vacia             
43                if ($ide=="Exp"){
44                        $expedientes = $alumno->getElementsByTagName( "numeroExpedient" ); // $publishers = $book->getElementsByTagName( "publisher" );
45                        $expediente = $expedientes->item(0)->nodeValue; // $publisher = $publishers->item(0)->nodeValue;
46                        // Eliminamos la barra del numero de expediente
47                        if ($expediente !=""){
48                           
49                                $expediente = trim($expediente);
50                                // Para separar el numero de expediente y extraer sólo los números tenemos que eliminar separadores que pueden ser barra, punto, espacio o sin separador
51                                $cadena="";             
52                                $expediente = string_to_array($expediente);             
53                                if (count($expediente)>0) {
54                                        for ($i=0; $i<count($expediente);$i++) {
55                                                $digito = $expediente[$i];
56                                                if ($digito >= "0" && $digito <="9")
57                                                        $cadena .= $digito;
58                                                }               
59                                }
60                                $cadena=trim($cadena); 
61                                if (strlen($cadena)<4) 
62                                $cadena = str_pad($cadena, 4, "0", STR_PAD_LEFT);
63                       }else{
64                         
65                          $expedientes = $alumno->getElementsByTagName( "nia" ); // $publishers = $book->getElementsByTagName( "publisher" );
66                          $expediente = $expedientes->item(0)->nodeValue; // $publisher = $publishers->item(0)->nodeValue;
67                          $cadena=$expediente;
68                         
69                       }
70                }
71                $nias = $alumno->getElementsByTagName( "nia" ); // $publishers = $book->getElementsByTagName( "publisher" );
72                $nia = $nias->item(0)->nodeValue; // $publisher = $publishers->item(0)->nodeValue;
73               
74               
75/*              $posicionBarra = strpos ($expediente, "/");     
76                if (!$posicionBarra) $posicionBarra = strpos ($expediente, "-");         
77               
78                $trozo1 = substr ( $expediente , 0, $posicionBarra );
79                $trozo2 = substr ( $expediente , $posicionBarra+1, strlen($expediente)-$posicionBarra);
80                $cadena = $trozo1 . $trozo2; */
81
82                               
83                // Tenemos que añadir ceros delante hasta completar un minimo de 4 digitos en el numero de expediente
84                // con menos digitos el lector de CB no funciona
85
86                if ($ide=="Exp"){
87                        // Inicializamos el vector
88                        for ($i=$indice;$i<$indice+25;$i++) 
89                                $vectorA[$i]= "";
90                        $vectorA[$indice] = $cadena;
91                        $vectorA[$indice+24]=$nia;
92                       
93                }else{
94                       
95                        // Inicializamos el vector
96                        for ($i=$indice;$i<$indice+24;$i++) 
97                                $vectorA[$i]= "";
98                       $vectorA[$indice] = $nia;
99                                                               
100                }
101       
102 
103                //$vector[$indice] = $cadena;
104                $vectorA[$indice+1] = utf8_decode(trim($apellido));     
105                $vectorA[$indice+2] = utf8_decode(trim($nombre));               
106                //$vector[$indice+17] = "va_ES";
107                $indice=$i;     
108                               
109        }
110        $vectorA[$indice]="Campo vacio";
111        return $vectorA;
112}
113
114function sacaCamposItacaProf($archivo) {
115
116               
117        $vectorP = array();
118        $indice =0;
119       
120        /*Instancio la clase DOM que nos permitira operar con el XML*/
121        $doc = new DOMDocument();
122 
123        /* Cargo el XML, En este caso es un archivo llamado llxgesc.xml, podriamos usar loadXML si desamos leer de un string*/
124        $doc->load( $archivo );
125
126        // Pasamos profesores
127        $listaProfesores = $doc->getElementsByTagName( "professor" );
128
129        foreach( $listaProfesores as $profesor )
130        {
131                /* Obtengo el valor del primer elemento 'item(0)' de la lista $autors.  Si existiera un atributo en el nodo para obtenerlo usaria
132                   $authors->getAttribute('atributo');    */
133                $nombres = $profesor->getElementsByTagName( "nom" ); // $authors = $book->getElementsByTagName( "author" );
134                $nombre = $nombres->item(0)->nodeValue;
135   
136                $apellidos = $profesor->getElementsByTagName( "cognoms" ); // $publishers = $book->getElementsByTagName( "publisher" );
137                $apellido = $apellidos->item(0)->nodeValue; // $publisher = $publishers->item(0)->nodeValue;
138   
139                $nifs = $profesor->getElementsByTagName( "document" ); // $publishers = $book->getElementsByTagName( "publisher" );
140
141                // Si lo que se importa es un fichero GESCEN el campo nif a parsear es distinto
142                if ($nifs->length == 0) $nifs = $profesor->getElementsByTagName( "nif" );
143
144
145                $nif = $nifs->item(0)->nodeValue; // $publisher = $publishers->item(0)->nodeValue;
146               
147                for ($i=$indice;$i<$indice+24;$i++) 
148                        $vectorP[$i]= "";
149               
150
151
152                $tam = strlen($nif);           
153                $nif = substr(trim($nif), 1, $tam-2);
154                if (strlen($nif)<4) $nif=str_pad($nif, 4, "0", STR_PAD_LEFT);  // Comprobamos tam min 4 digitos         
155                $vectorP[$indice] = $nif;
156
157                                       
158                $vectorP[$indice+1] = utf8_decode(trim($apellido));     
159                $vectorP[$indice+2] = utf8_decode(trim($nombre));               
160                //$vector[$indice+17] = "va_ES";
161                $indice=$i;     
162        }
163       
164        $vectorP[$indice]="Campo vacio"; // Lo añadimos para hacerlo compatible con la importacion del fichero plano del GESCEN
165        return $vectorP;
166}
167
168//Funcion para insertar los datos en la base de datos
169function inserta_datos($vacia,$referencia,$tot,$campos,$link2,$idused,$lang,$tipo_user){
170    $resul_comp=array();
171        $correctorNIA=0;
172        $correctorVacia=0;
173        $num=0;
174        $cont=0;
175        $contAct=0;
176        $categ=0;
177       
178   if ($tipo_user=='A'){
179        $categ=5; 
180    }else{
181        $categ=7;
182    }   
183
184    if (!$vacia==0){
185               
186                if ($idused=="Exp" && $tipo_user=="A"){
187                        $correctorVacia++;                     
188                        $correctorNIA=24;
189                }
190
191                if ($idused=="NIA"&& $tipo_user=="A"){
192                        $correctorVacia++;
193                }
194                if ($tipo_user=="P"){
195                        $correctorNIA=23;
196                }
197               
198                       
199        }else{
200          $correctorNIA=23;
201        }       
202       
203       
204        while($num<$campos){
205                if ($tot[$num] == " ") {
206                        $tot[$num] = NULL;
207                }
208                                     
209                if(((($num+1)%$referencia)== 0) && ($num != 0)){//cada 24 debido a que hay 24 campos
210                // Comprobamos si existe ya un alumno el mismo nombre y apellidos en la BD del PMB, si está actualizamos
211                // su datos personales si no los incorporamos al PMB
212                        $sql_comp= "SELECT `empr`.`id_empr`, `empr`.`empr_login`, `empr`.`empr_password`, `empr`.`empr_location` FROM `empr` WHERE (`empr`.`empr_cb`='" . $tot[$num-$correctorNIA] . "' AND `empr`. `empr_nom` like '" . $tot[$num-(22+$correctorVacia)] . "' AND `empr`. `empr_prenom` like '" . $tot[$num-(21+$correctorVacia)] . "' )";
213                        $resul1= @mysql_query($sql_comp, $link2);
214                        $fecha= date('Y-m-d');
215                        $fecha_cad= date('Y-m-d', strtotime('+1 year'));
216                       
217                //Se actualiza el usuario y password del usuario si vien en el fichero. Si no se utiliza el Número Expediente o NIA como usuario y password
218                        if (trim($tot[$num-9]) != "") {
219                                $user_a=addslashes($tot[$num-9]);
220                                if (trim($tot[$num-8]) != "") $pass_a=addslashes($tot[$num-8]);
221                                else $pass_a=$tot[$num-$correctorNIA];
222                        } else {
223                                $user_a=$tot[$num-$correctorNIA];
224                                $pass_a=$tot[$num-$correctorNIA];
225                                //echo "a".$user_a." ".$pass_a."a";
226                                //exit(0);
227                        }
228                        if (trim($tot[$num-3]) != "") $loca=intval(($tot[$num-3]));
229                        else $loca=1;
230
231                        //Si el alumno esta repetido se actualizan sus datos a excepción del empr_cb
232                               
233                        if (@mysql_num_rows($resul1) != 0) {
234                                //echo "$msg[usur_imp_b] <b>" . $tot[$num-23] . "</b><br>";
235                                $row1 = mysql_fetch_array($resul1);
236                                $requete = "UPDATE empr SET ";
237                                $requete .= "empr_nom='".fields_slashes($tot[$num-(22+$correctorVacia)])."',";
238                                $requete .= "empr_prenom='".fields_slashes($tot[$num-(21+$correctorVacia)])."',";
239                                $requete .= "empr_adr1='".fields_slashes($tot[$num-(20+$correctorVacia)])."',";
240                                $requete .= "empr_adr2='".fields_slashes($tot[$num-(19+$correctorVacia)])."',";
241                                $requete .= "empr_cp='".fields_slashes($tot[$num-(18+$correctorVacia)])."',";
242                                $requete .= "empr_ville='".fields_slashes($tot[$num-(17+$correctorVacia)])."',";
243                                $requete .= "empr_pays='".fields_slashes($tot[$num-(16+$correctorVacia)])."',";
244                                $requete .= "empr_mail='".fields_slashes($tot[$num-(15+$correctorVacia)])."',";
245                                $requete .= "empr_tel1='".fields_slashes($tot[$num-(14+$correctorVacia)])."',";
246                                $requete .= "empr_tel2='".fields_slashes($tot[$num-(13+$correctorVacia)])."',";
247                                $requete .= "empr_prof='".fields_slashes($tot[$num-(12+$correctorVacia)])."',";
248                                $requete .= "empr_year=".intval(($tot[$num-(11+$correctorVacia)])).",";
249                                if ($idused=="Exp" && $tipo_user=="A"){
250                                        $requete .= "empr_NIA='".fields_slashes($tot[$num])."',";
251                                        $requete .= "empr_Tipo='".$tipo_user."',";
252                                }
253                               
254                                if ($idused=="Exp" && $tipo_user=="P"){
255                                        $requete .= "empr_Tipo='".$tipo_user."',";
256                                }
257               
258                                if ($row1['empr_login'] == "") {
259                                        $requete .= "empr_login='".$user_a."', ";
260                                        $requete .= "empr_password='".$pass_a."', ";
261                                }
262                                //$requete .= "empr_msg='".$tot[$num-7]."' ";
263                                //$requete .= "empr_lang='".$lang."', ";
264                                //$requete .= "type_abt='".$tot[$num-5]."', ";
265                                //$requete .= "last_loan_date='".$tot[$num-4]."', ";
266                                if ($row1['empr_location'] == "" || intval($row1['empr_location']) == 0) $requete .= "empr_location='".$loca."', ";
267                                //$requete .= "date_fin_blocage=$tot[$num-22],";
268                                //$requete .= "total_loans=$tot[$num-22],";
269                                //$requete .= "empr_statut='"$tot[$num-22]."',";
270                                $requete .= "empr_modif='".$fecha."',";
271                                $requete .= "empr_sexe=".intval(($tot[$num-(10+$correctorVacia)]))."";
272                                $requete .= " WHERE id_empr=".intval($row1['id_empr'])." ";
273                                $resul2 = @mysql_query($requete, $link2);
274                                $contAct++;
275
276                        }else{ 
277                               
278                                if ($tot[$num-$correctorVacia] == "") $tot[$num-$correctorVacia] = 1;
279                                if ($idused=="Exp"){
280                                               
281                                        if ($tipo_user=="A"){
282                                                $sql = "insert into empr (empr_cb, empr_nom, empr_prenom, empr_adr1, empr_adr2, empr_cp, empr_ville, empr_pays, empr_mail, empr_tel1, empr_tel2, empr_prof, empr_year, empr_sexe, empr_login, empr_password, empr_msg, empr_lang, type_abt, last_loan_date, empr_location, date_fin_blocage, total_loans, empr_statut, empr_creation, empr_modif, empr_date_adhesion, empr_date_expiration, empr_categ, empr_codestat,empr_NIA,empr_Tipo) values ( '" . fields_slashes($tot[$num-$correctorNIA]) . "', '" . fields_slashes($tot[$num-(22+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(21+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(20+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(19+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(18+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(17+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(16+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(15+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(14+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(13+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(12+$correctorVacia)]) . "', " . intval(($tot[$num-(11+$correctorVacia)])) . ", " . intval(($tot[$num-(10+$correctorVacia)])) . ", '" . $user_a . "', '" . $pass_a . "', '" . fields_slashes($tot[$num-(7+$correctorVacia)]) . "', '" . $lang . "', '" . fields_slashes($tot[$num-(5+$correctorVacia)]) . "', '" . $tot[$num-(4+$correctorVacia)] . "', $loca, '" . $tot[$num-(2+$correctorVacia)] . "', '" . $tot[$num-(1+$correctorVacia)] . "', '" . $tot[$num-($correctorVacia)] . "', '" . $fecha . "', '" . $fecha . "', '" . $fecha . "', '" . $fecha_cad . "','" .$categ . "', 2, '" . fields_slashes($tot[$num]) . "', '" .$tipo_user . "')";
283
284                                        }
285
286                                        if ($tipo_user=="P"){
287                                                $sql = "insert into empr (empr_cb, empr_nom, empr_prenom, empr_adr1, empr_adr2, empr_cp, empr_ville, empr_pays, empr_mail, empr_tel1, empr_tel2, empr_prof, empr_year, empr_sexe, empr_login, empr_password, empr_msg, empr_lang, type_abt, last_loan_date, empr_location, date_fin_blocage, total_loans, empr_statut, empr_creation, empr_modif, empr_date_adhesion, empr_date_expiration, empr_categ, empr_codestat,empr_Tipo) values ( '" . fields_slashes($tot[$num-$correctorNIA]) . "', '" . fields_slashes($tot[$num-(22+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(21+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(20+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(19+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(18+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(17+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(16+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(15+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(14+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(13+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(12+$correctorVacia)]) . "', " . intval(($tot[$num-(11+$correctorVacia)])) . ", " . intval(($tot[$num-(10+$correctorVacia)])) . ", '" . $user_a . "', '" . $pass_a . "', '" . fields_slashes($tot[$num-(7+$correctorVacia)]) . "', '" . $lang . "', '" . fields_slashes($tot[$num-(5+$correctorVacia)]) . "', '" . $tot[$num-(4+$correctorVacia)] . "', $loca, '" . $tot[$num-(2+$correctorVacia)] . "', '" . $tot[$num-(1+$correctorVacia)] . "', '" . $tot[$num-($correctorVacia)] . "', '" . $fecha . "', '" . $fecha . "', '" . $fecha . "', '" . $fecha_cad . "', '" .$categ . "', 2,'" .$tipo_user . "')";
288
289                                        }       
290                                }else{
291                       
292                                        $sql = "insert into empr (empr_cb, empr_nom, empr_prenom, empr_adr1, empr_adr2, empr_cp, empr_ville, empr_pays, empr_mail, empr_tel1, empr_tel2, empr_prof, empr_year, empr_sexe, empr_login, empr_password, empr_msg, empr_lang, type_abt, last_loan_date, empr_location, date_fin_blocage, total_loans, empr_statut, empr_creation, empr_modif, empr_date_adhesion, empr_date_expiration, empr_categ, empr_codestat) values ( '" . fields_slashes($tot[$num-$correctorNIA]) . "', '" . fields_slashes($tot[$num-(22+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(21+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(20+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(19+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(18+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(17+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(16+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(15+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(14+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(13+$correctorVacia)]) . "', '" . fields_slashes($tot[$num-(12+$correctorVacia)]) . "', " . intval(($tot[$num-(11+$correctorVacia)])) . ", " . intval(($tot[$num-(10+$correctorVacia)])) . ", '" . $user_a . "', '" . $pass_a . "', '" . fields_slashes($tot[$num-(7+$correctorVacia)]) . "', '" . $lang . "', '" . fields_slashes($tot[$num-(5+$correctorVacia)]) . "', '" . $tot[$num-(4+$correctorVacia)] . "', $loca, '" . $tot[$num-(2+$correctorVacia)] . "', '" . $tot[$num-(1+$correctorVacia)] . "', '" . $tot[$num-($correctorVacia)] . "', '" . $fecha . "', '" . $fecha . "', '" . $fecha . "', '" . $fecha_cad . "', '" .$categ . "', 2 )";
293                                }
294                       
295                                $resul2 = @mysql_query($sql, $link2);
296                                $cont++;
297                        }               
298                }
299               
300                $num++;
301        }       // Fin del While
302
303        $resul_comp[0]=$num;
304        $resul_comp[1]=$cont;
305        $resul_comp[2]=$contAct;
306    $resul_comp[3]=$fecha;
307        $resul_comp[4]=$fecha_cad;     
308        return $resul_comp;     
309
310}
311
312
313//Funcion para comprobar que tipo de identificador (Número de Expediente o NIA) se esta usando
314function identificador_usado($tot,$campos,$link2){
315        $idUsado=0;
316        $usanExp=0;
317        $j=0;
318        $k=0;
319       
320       
321//Comprobamos si en la base de datos estan usando el número de Expediente
322        while ($j<$campos){
323        if(((($j+1)%25)== 0) && ($j != 0)){     
324                        $sql_comp_exp= "SELECT `empr`.`id_empr`, `empr`.`empr_login`, `empr`.`empr_password`, `empr`.`empr_location` FROM `empr` WHERE (`empr`.`empr_cb`='" . $tot[$j-24] . "')";
325                        $resul_exp= @mysql_query($sql_comp_exp, $link2);
326                        if(@mysql_num_rows($resul_exp)!=0){
327                                $usanExp++;
328                        } 
329                }
330                $j++;
331        }
332       
333        $usanNia=0;
334
335//Comprobamos si en la base de datos estan usando el NIA       
336        while ($k<$campos){
337        if(((($k+1)%25)== 0) && ($k != 0)){     
338                        $sql_comp_nia= "SELECT `empr`.`id_empr`, `empr`.`empr_login`, `empr`.`empr_password`, `empr`.`empr_location` FROM `empr` WHERE (`empr`.`empr_cb`='" . $tot[48-$k] . "')";
339                        $resul_nia= @mysql_query($sql_comp_nia, $link2);
340                        if(@mysql_num_rows($resul_nia)!=0){
341                                $usanNia++;
342                               
343                        } 
344                }
345                $k++;
346        }
347       
348   
349        if ($usanNia>$usanExp){
350                $idUsado="NIA";
351        }else{
352                $idUsado="Exp";
353        }
354       
355        return $idUsado;
356
357}
358
359//Funcion para comprobar si es posible lanzar la migración
360
361function comprueba_migracion($link2){
362        global $msg;
363
364
365        //1.Comprobamos si ya se ha realizado un migración anteriormente
366        $name_cb='empr_cb_old';
367        $sql_idcb_old="SELECT idchamp from empr_custom where name='" .$name_cb. "'";
368        $id_cb_old=@mysql_query($sql_idcb_old, $link2);
369        $valor=mysql_fetch_array($id_cb_old);
370   
371        $sql_comprobacion="SELECT * from empr_custom_values where empr_custom_champ='" .$valor['idchamp']. "'";
372        $existen_registros=@mysql_num_rows(@mysql_query($sql_comprobacion,$link2));
373       
374       
375         if ($existen_registros==0){
376
377                // 2. Comprobamos si exisge el campo empr_NIA en la tabla empr
378
379                $sql_NIA="SELECT column_name from INFORMATION_SCHEMA.columns where table_schema='pmb' and table_name='empr' AND column_name='empr_NIA'";
380                $existeNIA=@mysql_query($sql_NIA, $link2);
381                                       
382                if (@mysql_num_rows($existeNIA)>0){
383                        $sql_alu_nia="SELECT count(empr_cb) FROM empr WHERE empr_Tipo='A' AND NOT ISNULL(empr_NIA)";
384                        $alu_con_nia=mysql_fetch_row(@mysql_query($sql_alu_nia, $link2));
385       
386                        //$sql_alu_sinia="SELECT empr_cb FROM empr WHERE empr_Tipo<>'P' AND ISNULL(empr_NIA) AND (YEAR(UTC_DATE())-YEAR(empr_modif))<2";
387                          $sql_alu_sinnia="SELECT count(*) from empr where (ISNULL(empr_NIA) or empr_NIA='') and ISNULL(empr_Tipo) and (YEAR(UTC_DATE())-YEAR(empr_date_expiration))<2";               
388                         $alu_sin_nia=mysql_fetch_row(@mysql_query($sql_alu_sinnia, $link2));
389       
390                //2. Comprobamos que la mayoria de los alumnos dispone del nia
391               
392                        if ($alu_con_nia[0]>$alu_sin_nia[0]){
393                  //echo "<h3>$msg[usur_migr_a]</h3><br>$msg[usur_migr_b]</br><UI><ul><br>";
394                                //echo "<h3><center>PROCESO DE MIGRACIÓN DEL ID DE LOS ALUMNOS AL NIA DISPONIBLE</center></h3><div><b>Mediante este proceso podrá sustituir el Número de Expediente usado como id de los alumnos por el NIA</b><b><UL><li>Total alumnos con NIA: $alu_con_nia</li><li>Total de alumnos sin nia: $alu_sin_nia</li><UL></b></div><div><b><center>Para iniciar el proceso de migración haga clic aqui</b></center></div>";
395                                  echo "<h3><center><a href=./admin.php?categ=empr&sub=migration>$msg[usur_migr_a]</a></center></h3>";         
396               
397                        }
398       
399                }
400        }
401}
402
403/* FIN LLIUREX 24/09/2015 */
404
405function fields_slashes($field) {
406       
407        $que = array("&", "<", ">", "\\", "/");
408        $por = array("&amp;", "&lt;", "&gt;", "_", "_");
409
410        return addslashes(str_replace($que, $por, $field));
411}
412
413
414$base_path=".";                           
415$base_auth = "ADMINISTRATION_AUTH"; 
416$base_title = "\$msg[7]";   
417require_once ("$base_path/includes/init.inc.php"); 
418
419
420$categor = $_GET['categor'];
421
422switch($categor){ // Selección de opciones.
423       
424        case 'import': {
425// Formulario de tablas de importacion
426
427                $nomfich = "./temp/".$_FILES['fich']['name']; //nombre fichero en el cliente
428
429                $tipo = $_FILES['fich']['type']; //tipo fichero
430
431                $sep= $_POST['separador'];
432
433               
434                // Se admiten ficheros xml y .dat
435                /* INICIO LLIUREX 24/09/2015 */
436                if (!strcmp($tipo, "text/xml") || !strcmp($tipo, "application/x-ns-proxy-autoconfig")){
437                        require("$base_path/includes/db_param.inc.php");
438                        $link2 = @mysql_connect(SQL_SERVER, USER_NAME, USER_PASS) OR die("Error MySQL");
439                        // Comprobamos si la tabla de usuarios (empr) esta vacia
440                        $sql_vacia="SELECT * FROM empr";
441                        $vacia=@mysql_num_rows(@mysql_query($sql_vacia, $link2));
442
443                        if (move_uploaded_file($_FILES['fich']['tmp_name'], $nomfich)){ //el POsT devuelve el nombre de archivo en el servidor y el segundo campo es a donde se va a mover.
444                       
445                                if ($vacia==0){
446                                        $tipo="NIA";
447                                        $referencia=24; //Si la tabla esta vacia el número  máximo de campos será 24
448                                       
449                                }else{
450                                        $tipo="Exp";
451                                        $referencia=25; //Si la tabla esta vacia el número  máximo de campos será 25
452               
453                                }                               
454       
455                                $totAlu = sacaCamposItacaAlu($nomfich,$tipo);
456                                $totProf= sacaCamposItacaProf($nomfich);
457                               
458                        }
459                /* FIN LLIUREX 24/09/2015 */
460           
461                        $camposAlu=(count($totAlu))-1; //total de campos, se le resta 1 debido a que coge un campo mas (vacio)
462                       
463                        if (($camposAlu%$referencia) != 0){                     
464                                exit("Campos $camposAlu");      //Se muestra mensaje advirtiendo que el fichero no tiene la estructura correcta
465                                exit("<b><center>$msg[usur_imp_a]</center></b>");
466                        }
467       
468                /* INICIO LLIUREX 24/09/2015 */
469                /*      while($num<$campos){
470                                if ($tot[$num] == " ") {
471                                        $tot[$num] = NULL;
472                                }
473                                     
474                                if(((($num+1)%$referencia)== 0) && ($num != 0)){//cada 24 debido a que hay 24 campos
475                        // Comprobamos si existe ya un alumno el mismo nombre y apellidos en la BD del PMB, si está actualizamos
476                        // su datos personales si no los incorporamos al PMB
477                                       
478                                        $sql_comp= "SELECT `empr`.`id_empr`, `empr`.`empr_login`, `empr`.`empr_password`, `empr`.`empr_location` FROM `empr` WHERE (`empr`.`empr_cb`='" . $tot[$num-23] . "' AND `empr`. `empr_nom` like '" . $tot[$num-22] . "' AND `empr`. `empr_prenom` like '" . $tot[$num-21] . "' )";
479
480                                        $resul1= @mysql_query($sql_comp, $link2);
481                                        $fecha= date('Y-m-d');
482                                        $fecha_cad= date('Y-m-d', strtotime('+1 year'));
483                       
484                                                //Se actualiza el usuario y password del usuario si vien en el fichero. Si no se utiliza el Número Expediente o NIA como usuario y password
485                                        if (trim($tot[$num-9]) != "") {
486                                                $user_a=addslashes($tot[$num-9]);
487                                                if (trim($tot[$num-8]) != "") $pass_a=addslashes($tot[$num-8]);
488                                                else $pass_a=$tot[$num-23];
489                                        } else {
490                               
491                                                $user_a=$tot[$num-23];
492                                                $pass_a=$tot[$num-23];
493                                //echo "a".$user_a." ".$pass_a."a";
494                                //exit(0);
495                                        }
496                                        if (trim($tot[$num-3]) != "") $loca=intval(($tot[$num-3]));
497                                        else $loca=1;
498
499                                        //Si el alumno esta repetido se actualizan sus datos a excepción del empr_cb
500                                        if (@mysql_num_rows($resul1) != 0) {
501                                //echo "$msg[usur_imp_b] <b>" . $tot[$num-23] . "</b><br>";
502                                                echo ("alumno repetido");
503                                                $row1 = mysql_fetch_array($resul1);
504                                                $requete = "UPDATE empr SET ";
505                                                $requete .= "empr_nom='".fields_slashes($tot[$num-22])."',";
506                                                $requete .= "empr_prenom='".fields_slashes($tot[$num-21])."',";
507                                                $requete .= "empr_adr1='".fields_slashes($tot[$num-20])."',";
508                                                $requete .= "empr_adr2='".fields_slashes($tot[$num-19])."',";
509                                                $requete .= "empr_cp='".fields_slashes($tot[$num-18])."',";
510                                                $requete .= "empr_ville='".fields_slashes($tot[$num-17])."',";
511                                                $requete .= "empr_pays='".fields_slashes($tot[$num-16])."',";
512                                                $requete .= "empr_mail='".fields_slashes($tot[$num-15])."',";
513                                                $requete .= "empr_tel1='".fields_slashes($tot[$num-14])."',";
514                                                $requete .= "empr_tel2='".fields_slashes($tot[$num-13])."',";
515                                                $requete .= "empr_prof='".fields_slashes($tot[$num-12])."',";
516                                                $requete .= "empr_year=".intval(($tot[$num-11])).",";
517                                               
518                                                if ($row1['empr_login'] == "") {
519                                                        $requete .= "empr_login='".$user_a."', ";
520                                                        $requete .= "empr_password='".$pass_a."', ";
521                                                }
522                                                //$requete .= "empr_msg='".$tot[$num-7]."' ";
523                                                //$requete .= "empr_lang='".$lang."', ";
524                                                //$requete .= "type_abt='".$tot[$num-5]."', ";
525                                                //$requete .= "last_loan_date='".$tot[$num-4]."', ";
526                                                if ($row1['empr_location'] == "" || intval($row1['empr_location']) == 0) $requete .= "empr_location='".$loca."', ";
527                                                //$requete .= "date_fin_blocage=$tot[$num-22],";
528                                                //$requete .= "total_loans=$tot[$num-22],";
529                                                //$requete .= "empr_statut='"$tot[$num-22]."',";
530                                                $requete .= "empr_sexe=".intval(($tot[$num-10]))."";
531                                                $requete .= " WHERE id_empr=".intval($row1['id_empr'])." ";
532                                                $resul2 = @mysql_query($requete, $link2);
533                                                $cont++;
534
535                                        }
536                                        else{
537                                                        echo ("Alumno nuevo en tabla vacia");
538                                                       
539                                                        if ($tot[$num] == "") $tot[$num] = 1;
540                        $sql = "insert into empr (empr_cb, empr_nom, empr_prenom, empr_adr1, empr_adr2, empr_cp, empr_ville, empr_pays, empr_mail, empr_tel1, empr_tel2, empr_prof, empr_year, empr_sexe, empr_login, empr_password, empr_msg, empr_lang, type_abt, last_loan_date, empr_location, date_fin_blocage, total_loans, empr_statut, empr_creation, empr_modif, empr_date_adhesion, empr_date_expiration, empr_categ, empr_codestat) values ( '" . fields_slashes($tot[$num-23]) . "', '" . fields_slashes($tot[$num-22]) . "', '" . fields_slashes($tot[$num-21]) . "', '" . fields_slashes($tot[$num-20]) . "', '" . fields_slashes($tot[$num-19]) . "', '" . fields_slashes($tot[$num-18]) . "', '" . fields_slashes($tot[$num-17]) . "', '" . fields_slashes($tot[$num-16]) . "', '" . fields_slashes($tot[$num-15]) . "', '" . fields_slashes($tot[$num-14]) . "', '" . fields_slashes($tot[$num-13]) . "', '" . fields_slashes($tot[$num-12]) . "', " . intval(($tot[$num-11])) . ", " . intval(($tot[$num-10])) . ", '" . $user_a . "', '" . $pass_a . "', '" . fields_slashes($tot[$num-7]) . "', '" . $lang . "', '" . fields_slashes($tot[$num-5]) . "', '" . $tot[$num-4] . "', $loca, '" . $tot[$num-2] . "', '" . $tot[$num-1] . "', '" . $tot[$num] . "', '" . $fecha . "', '" . $fecha . "', '" . $fecha . "', '" . $fecha_cad . "', 7, 2 )";
541                        $resul2 = @mysql_query($sql, $link2);
542                        $cont++;
543                                                }               
544                                        }
545                                        $num++;
546                                }       // Fin del While */
547
548                           
549   
550            //Si la tabla esta vacia se utilizará el NIA como identificador
551            $tipo_user=0; 
552            $existeNIA=0;       
553            if ($vacia!=0){
554                     $idused=identificador_usado($totAlu,$camposAlu,$link2);
555                       
556                     if ($idused=="Exp"){       
557                        $sql="SELECT column_name from INFORMATION_SCHEMA.columns where table_schema='pmb' and table_name='empr' AND column_name='empr_NIA'";
558                                         $existeNIA=@mysql_query($sql, $link2);
559                                        //Si el campo empr_NIA no existe se crea
560                                        if (@mysql_num_rows($existeNIA)==0){
561                                                $sql="ALTER TABLE empr ADD empr_NIA varchar(15)";
562                                                $insert=@mysql_query($sql, $link2);
563                                               
564                                        }
565                        //Comprobamos si existe el campo empr_Tipo para distinguir entre alumnos y profesores
566                        $sql="SELECT column_name from INFORMATION_SCHEMA.columns where table_schema='pmb' and table_name='empr' AND column_name='empr_Tipo'";
567                        $existeTipo=@mysql_query($sql, $link2);
568                                        //Si el campo empr_Tipo no existe se crea
569                                        if (@mysql_num_rows($existeTipo)==0){
570                                                $sql="ALTER TABLE empr ADD empr_Tipo varchar(1)";
571                                                $insert=@mysql_query($sql, $link2);
572                                               
573                                        }
574                                       
575                       }
576                        $tipo_user="A";
577             }                 
578                        //Importamos datos alumnos
579                        $resul_comp=inserta_datos($vacia,$referencia,$totAlu,$camposAlu,$link2,$idused,$lang,$tipo_user);
580                       
581                        //Importamos datos profesores;
582
583                        $camposProf=(count($totProf))-1;
584                        $tipo_user="P";
585                        $resul_prof=inserta_datos($vacia,24,$totProf,$camposProf,$link2,$idused,$lang,$tipo_user);                                     
586                        $contR=$resul_comp[1]+$resul_prof[1];
587                        $contAct=$resul_comp[2]+$resul_prof[2];
588                                                   
589            //Se muestra mensaje indicado el número de registros importados
590                        echo "<b>$msg[usur_imp_c] </b>";
591                        if ($contR>0){
592                                echo "<b>$msg[usur_imp_d]  " .$contR . "</b>";
593                        }
594                        if ($contAct>0){
595                                echo " <b>$msg[usur_imp_q]  " .$contAct . "</b>";
596                        }
597                        $migracion=comprueba_migracion($link2);
598
599                        if ($resul_comp[0]>0){ //comparativa campos con los valores a insertar. Se muestra a modo de ejemplo el primer registro importado
600                                $fecha=$resul_comp[3];
601                                $fecha_cad=$resul_comp[4];
602                                echo "<h3>$msg[usur_imp_e]&nbsp;&nbsp;&nbsp;</h3><div class='form-contenu'><table width='98%' border='0' cellspacing='10'><td class='jauge'><b>$msg[usur_imp_f] <br>$msg[usur_imp_g]</b></td><td class='jauge' width='27%'><center><b>$msg[usur_imp_h] <br>$msg[usur_imp_i]</b></center></td><td class='jauge' width='60%'><b>$msg[usur_imp_j]<br>$msg[usur_imp_k]</b></td><tr><td class='nobrd'><font color='#FF0000'>id_empr</font></td><td class='nobrd'><center><input name='id_empr' value='0' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem0' value='' type='text' disabled size='40'></td></tr><tr><td class='nobrd'>empr_cb</td><td class='nobrd'><center><input name='empr_cb' value='1' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem1' value='" . $totAlu[0] . "' type='text' disabled size='40'></td></tr><tr><td class='nobrd'>empr_nom</td><td class='nobrd'><center><input name='empr_nom' value='2' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem2' value='" . $totAlu[1] . "'  type='text' disabled size='40'></td></tr><tr><td class='nobrd'>empr_prenom</td><td class='nobrd'><center><input name='empr_prenom' value='3' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem3' value='" . $totAlu[2] . "' type='text' disabled size='40'></td></tr><tr><td class='nobrd'>empr_adr1</td><td class='nobrd'><center><input name='empr_adr1' value='4' type='text' size='1' disabled><td class='nobrd'><input name='exem5' value='" . $totAlu[3] . "' type='text' disabled size='40'></td></tr><tr><td class='nobrd'>empr_adr2</td><td class='nobrd'><center><input name='empr_adr2' value='5' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem6' value='" . $totAlu[4] . "' type='text' disabled size='40'></td></tr><tr><td class='nobrd'>empr_cp</td><td class='nobrd'><center><input name='empr_cp' value='6' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem7' value='" . $totAlu[5] . "' type='text' disabled size='40'></td></tr><tr><td class='nobrd'>empr_ville</td><td class='nobrd'><center><input name='empr_ville' value='7' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem8' value='" . $totAlu[6] . "' type='text' disabled size='40'></td></tr><tr><td class='nobrd'>empr_pays</td><td class='nobrd'><center><input name='empr_pays' value='8' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem9' value='" . $totAlu[7] . "' type='text' disabled size='40'></td></tr><tr><td class='nobrd'>empr_mail</td><td class='nobrd'><center><input name='empr_mail' value='9' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem10' value='" . $totAlu[8] . "' type='text' disabled size='40'></td></tr><tr><td class='nobrd'>empr_tel1</td><td class='nobrd'><center><input name='empr_tel1' value='10' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem11' value='" . $totAlu[9] . "' type='text' disabled size='40'></td></tr><tr><td class='nobrd'>empr_tel2</td><td class='nobrd'><center><input name='empr_tel2' value='11' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem12' value='" . $totAlu[10] . "' type='text' disabled size='40'></td></tr><tr><td class='nobrd'>empr_prof</td><td class='nobrd'><center><input name='empr_prof' value='12' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem13' value='" . $totalu[11] . "' type='text' disabled size='40'></td></tr><tr><td class='nobrd'>empr_year</td><td class='nobrd'><center><input name='empr_year' value='13' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem14' value='" . $totAlu[12] . "' type='text' disabled size='40'></td></tr><tr><td class='nobrd'><font color='#FF0000'>empr_categ</font></td><td class='nobrd'><center><input name='empr_categ' value='0' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem15' value='7' type='text' disabled size='40'></td></tr><tr><td class='nobrd'><font color='#FF0000'>empr_codestat</font></td><td class='nobrd'><center><input name='empr_codestat' value='0' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem16' value='2' type='text' disabled size='40'></td></tr><tr><td class='nobrd'><font color='#FF0000'>empr_creation</font></td><td class='nobrd'><center><input name='empr_creation' value='0' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem17' value='" . $fecha . "' type='text' disabled size='40'></td></tr><tr><td class='nobrd'><font color='#FF0000'>empr_modif</font></td><td class='nobrd'><center><input name='empr_modif' value='0' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem18' value='" . $fecha . "' type='text' disabled size='40'></td></tr><tr><td class='nobrd'>empr_sexe</td><td class='nobrd'><center><input name='empr_sexe' value='14' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem19' value='" . $totAlu[13] . "' type='text' disabled size='40'></td></tr><tr><td class='nobrd'>empr_login</td><td class='nobrd'><center><input name='empr_login' value='15' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem20' value='" . $totAlu[14] . "' type='text' disabled size='40'></td></tr><tr><td class='nobrd'>empr_password</td><td class='nobrd'><center><input name='empr_password' value='16' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem21' value='" . $totAlu[15] . "' type='text' disabled size='40'></td></tr><tr><td class='nobrd'><font color='#FF0000'>empr_date_adhesion</font></td><td class='nobrd'><center><input name='empr_date_adhesion' value='0' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem22' value='" . $fecha . "' type='text' disabled size='40'></td></tr><tr><td class='nobrd'><font color='#FF0000'>empr_date_expiration</font></td><td class='nobrd'><center><input name='empr_date_expiration' value='0' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem23' value='" . $fecha_cad . "' type='text' disabled size='40'></td></tr><tr><td class='nobrd'>empr_msg</td><td class='nobrd'><center><input name='empr_msg' value='17' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem24' value='" . $totAlu[16] . "' type='text' disabled size='40'></td></tr><tr><td class='nobrd'>empr_lang</td><td class='nobrd'><center><input name='empr_lang' value='18' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem25' value='" . $totAlu[17] . "' type='text' disabled size='40'></td></tr><tr><td class='nobrd'><font color='#FF0000'>empr_ldap</font></td><td class='nobrd'><center><input name='empr_ldap' value='0' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem26' value='' type='text' disabled size='40'></td></tr><tr><td class='nobrd'>type_abt</td><td class='nobrd'><center><input name='type_abt' value='19' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem27' value='" . $totAlu[18] . "' type='text' disabled size='40'></td></tr><tr><td class='nobrd'>last_loan_date</td><td class='nobrd'><center><input name='last_loan_date' value='20' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem28' value='" . $totAlu[19] . "' type='text' disabled size='40'></td></tr><tr><td class='nobrd'>empr_location</td><td class='nobrd'><center><input name='empr_location' value='21' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem29' value='" . $totAlu[20] . "' type='text' disabled size='40'></td></tr><tr><td class='nobrd'>date_fin_blocage</td><td class='nobrd'><center><input name='date_fin_blocage' value='22' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem30' value='" . $totAlu[21] . "' type='text' disabled size='40'></td></tr><tr><td class='nobrd'>total_loans</td><td class='nobrd'><center><input name='total_loans' value='23' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem31' value='" . $totAlu[22] . "' type='text' disabled size='40'></td></tr><tr><td class='nobrd'>empr_statut</td><td class='nobrd'><center><input name='empr_statut' value='24' type='text' size='1' disabled></center></td><td class='nobrd'><input name='exem32' value='" . $totAlu[23] . "' type='text' disabled size='40'></td></tr></table>";
603        /* FIN LLIUREX 24/09/2015 */
604                        fclose($archivo);
605                        unlink($nomfich);
606                        break;
607                        }
608        }else { //Si el fichero no es xml o .dat se muestra mensaje de advertencia
609                echo "<b><center> ". $nomfich ." ". $msg["usur_imp_l"]."</center></b>";
610               
611        }
612        break;
613}
614
615default:
616
617// Formulario para elegir fichero a importar de itaca
618echo "<form class='form-admin' name='form1' ENCTYPE=\"multipart/form-data\" method='post' action=\"./admin.php?categ=empr&sub=itaca&action=?&categor=import\"><h3>$msg[import_usu_from_itaca_a]</h3><div class='form-contenu'><div class='row'><div class='colonne60'><label class='etiquette' for='form_import_lec'>$msg[importa_d]&nbsp;</label><input name='fich' accept='text/plain, .xml, .dat' type='file'  size='40'></div><input type='button' name='fichero' value='Continuar' onclick='form.submit()'></div></form>";
619
620break;
621
622}
623//-------------------------------------> L L I U R E X <--------------------------------------//
624
625?>
626
Note: See TracBrowser for help on using the repository browser.