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

Last change on this file since 3550 was 3550, checked in by jrpelegrina, 3 years ago

Change date cad to 1 year and 3 months

File size: 37.9 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('+455 day'));
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                                $sql_user_cad="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)] . "' AND  `empr`. `empr_date_expiration`< '" . $fecha . "')";
235                                $resul_cad= @mysql_query($sql_user_cad, $link2);
236                               
237                                //echo "$msg[usur_imp_b] <b>" . $tot[$num-23] . "</b><br>";
238                                $row1 = mysql_fetch_array($resul1);
239                                $requete = "UPDATE empr SET ";
240                                $requete .= "empr_nom='".fields_slashes($tot[$num-(22+$correctorVacia)])."',";
241                                $requete .= "empr_prenom='".fields_slashes($tot[$num-(21+$correctorVacia)])."',";
242                                $requete .= "empr_adr1='".fields_slashes($tot[$num-(20+$correctorVacia)])."',";
243                                $requete .= "empr_adr2='".fields_slashes($tot[$num-(19+$correctorVacia)])."',";
244                                $requete .= "empr_cp='".fields_slashes($tot[$num-(18+$correctorVacia)])."',";
245                                $requete .= "empr_ville='".fields_slashes($tot[$num-(17+$correctorVacia)])."',";
246                                $requete .= "empr_pays='".fields_slashes($tot[$num-(16+$correctorVacia)])."',";
247                                $requete .= "empr_mail='".fields_slashes($tot[$num-(15+$correctorVacia)])."',";
248                                $requete .= "empr_tel1='".fields_slashes($tot[$num-(14+$correctorVacia)])."',";
249                                $requete .= "empr_tel2='".fields_slashes($tot[$num-(13+$correctorVacia)])."',";
250                                $requete .= "empr_prof='".fields_slashes($tot[$num-(12+$correctorVacia)])."',";
251                                $requete .= "empr_year=".intval(($tot[$num-(11+$correctorVacia)])).",";
252                                if ($idused=="Exp" && $tipo_user=="A"){
253                                        $requete .= "empr_NIA='".fields_slashes($tot[$num])."',";
254                                        $requete .= "empr_Tipo='".$tipo_user."',";
255                                }
256                               
257                                if ($idused=="Exp" && $tipo_user=="P"){
258                                        $requete .= "empr_Tipo='".$tipo_user."',";
259                                }
260               
261                                if ($row1['empr_login'] == "") {
262                                        $requete .= "empr_login='".$user_a."', ";
263                                        $requete .= "empr_password='".$pass_a."', ";
264                                }
265                                //$requete .= "empr_msg='".$tot[$num-7]."' ";
266                                //$requete .= "empr_lang='".$lang."', ";
267                                //$requete .= "type_abt='".$tot[$num-5]."', ";
268                                //$requete .= "last_loan_date='".$tot[$num-4]."', ";
269                                if ($row1['empr_location'] == "" || intval($row1['empr_location']) == 0) $requete .= "empr_location='".$loca."', ";
270                                //$requete .= "date_fin_blocage=$tot[$num-22],";
271                                //$requete .= "total_loans=$tot[$num-22],";
272                                //$requete .= "empr_statut='"$tot[$num-22]."',";
273                                $requete .= "empr_modif='".$fecha."',";
274                                if (@mysql_num_rows($resul_cad) != 0) {
275                                        $requete .= "empr_date_expiration='".$fecha_cad."',";
276                                }
277                                $requete .= "empr_sexe=".intval(($tot[$num-(10+$correctorVacia)]))."";
278                                $requete .= " WHERE id_empr=".intval($row1['id_empr'])." ";
279                                $resul2 = @mysql_query($requete, $link2);
280                                $contAct++;
281
282                        }else{ 
283                               
284                                if ($tot[$num-$correctorVacia] == "") $tot[$num-$correctorVacia] = 1;
285                                if ($idused=="Exp"){
286                                               
287                                        if ($tipo_user=="A"){
288                                                $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 . "')";
289
290                                        }
291
292                                        if ($tipo_user=="P"){
293                                                $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 . "')";
294
295                                        }       
296                                }else{
297                       
298                                        $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 )";
299                                }
300                       
301                                $resul2 = @mysql_query($sql, $link2);
302                                $cont++;
303                        }               
304                }
305               
306                $num++;
307        }       // Fin del While
308
309        $resul_comp[0]=$num;
310        $resul_comp[1]=$cont;
311        $resul_comp[2]=$contAct;
312    $resul_comp[3]=$fecha;
313        $resul_comp[4]=$fecha_cad;     
314        return $resul_comp;     
315
316}
317
318
319//Funcion para comprobar que tipo de identificador (Número de Expediente o NIA) se esta usando
320function identificador_usado($tot,$campos,$link2){
321        $idUsado=0;
322        $usanExp=0;
323        $j=0;
324        $k=0;
325       
326       
327//Comprobamos si en la base de datos estan usando el número de Expediente
328        while ($j<$campos){
329        if(((($j+1)%25)== 0) && ($j != 0)){     
330                        $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] . "')";
331                        $resul_exp= @mysql_query($sql_comp_exp, $link2);
332                        if(@mysql_num_rows($resul_exp)!=0){
333                                $usanExp++;
334                        } 
335                }
336                $j++;
337        }
338       
339        $usanNia=0;
340
341//Comprobamos si en la base de datos estan usando el NIA       
342        while ($k<$campos){
343        if(((($k+1)%25)== 0) && ($k != 0)){     
344                        $sql_comp_nia= "SELECT `empr`.`id_empr`, `empr`.`empr_login`, `empr`.`empr_password`, `empr`.`empr_location` FROM `empr` WHERE (`empr`.`empr_cb`='" . $tot[$k] . "')";
345                        $resul_nia= @mysql_query($sql_comp_nia, $link2);
346                        if(@mysql_num_rows($resul_nia)!=0){
347                                $usanNia++;
348                               
349                        } 
350                }
351                $k++;
352        }
353       
354   
355        if ($usanExp>$usanNia){
356                $idUsado="Exp";
357        }else{
358                $idUsado="NIA";
359        }
360       
361        return $idUsado;
362
363}
364
365//Funcion para comprobar si es posible lanzar la migración
366
367function comprueba_migracion($link2){
368        global $msg;
369
370
371        //1.Comprobamos si ya se ha realizado un migración anteriormente
372        $name_cb='empr_cb_old';
373        $sql_idcb_old="SELECT idchamp from empr_custom where name='" .$name_cb. "'";
374        $id_cb_old=@mysql_query($sql_idcb_old, $link2);
375        $valor=mysql_fetch_array($id_cb_old);
376   
377        $sql_comprobacion="SELECT * from empr_custom_values where empr_custom_champ='" .$valor['idchamp']. "'";
378        $existen_registros=@mysql_num_rows(@mysql_query($sql_comprobacion,$link2));
379       
380       
381         if ($existen_registros==0){
382
383                // 2. Comprobamos si exisge el campo empr_NIA en la tabla empr
384
385                $sql_NIA="SELECT column_name from INFORMATION_SCHEMA.columns where table_schema='pmb' and table_name='empr' AND column_name='empr_NIA'";
386                $existeNIA=@mysql_query($sql_NIA, $link2);
387                                       
388                if (@mysql_num_rows($existeNIA)>0){
389                        $sql_alu_nia="SELECT count(empr_cb) FROM empr WHERE empr_Tipo='A' AND NOT ISNULL(empr_NIA)";
390                        $alu_con_nia=mysql_fetch_row(@mysql_query($sql_alu_nia, $link2));
391       
392                        //$sql_alu_sinia="SELECT empr_cb FROM empr WHERE empr_Tipo<>'P' AND ISNULL(empr_NIA) AND (YEAR(UTC_DATE())-YEAR(empr_modif))<2";
393                          $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";               
394                         $alu_sin_nia=mysql_fetch_row(@mysql_query($sql_alu_sinnia, $link2));
395       
396                //2. Comprobamos que la mayoria de los alumnos dispone del nia
397               
398                        if ($alu_con_nia[0]>$alu_sin_nia[0]){
399                  //echo "<h3>$msg[usur_migr_a]</h3><br>$msg[usur_migr_b]</br><UI><ul><br>";
400                                //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>";
401                                  echo "<h3><center><a href=./admin.php?categ=empr&sub=migration>$msg[usur_migr_a]</a></center></h3>";         
402               
403                        }
404       
405                }
406        }
407}
408
409/* FIN LLIUREX 24/09/2015 */
410
411function fields_slashes($field) {
412       
413        $que = array("&", "<", ">", "\\", "/");
414        $por = array("&amp;", "&lt;", "&gt;", "_", "_");
415
416        return addslashes(str_replace($que, $por, $field));
417}
418
419
420$base_path=".";                           
421$base_auth = "ADMINISTRATION_AUTH"; 
422$base_title = "\$msg[7]";   
423require_once ("$base_path/includes/init.inc.php"); 
424
425
426$categor = $_GET['categor'];
427
428switch($categor){ // Selección de opciones.
429       
430        case 'import': {
431// Formulario de tablas de importacion
432
433                $nomfich = "./temp/".$_FILES['fich']['name']; //nombre fichero en el cliente
434
435                $tipo = $_FILES['fich']['type']; //tipo fichero
436
437                $sep= $_POST['separador'];
438
439               
440                // Se admiten ficheros xml y .dat
441                /* INICIO LLIUREX 24/09/2015 */
442                if (!strcmp($tipo, "text/xml") || !strcmp($tipo, "application/x-ns-proxy-autoconfig")){
443                        require("$base_path/includes/db_param.inc.php");
444                        $link2 = @mysql_connect(SQL_SERVER, USER_NAME, USER_PASS) OR die("Error MySQL");
445                        // Comprobamos si la tabla de usuarios (empr) esta vacia
446                        $sql_vacia="SELECT * FROM empr";
447                        $vacia=@mysql_num_rows(@mysql_query($sql_vacia, $link2));
448
449                        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.
450                       
451                                if ($vacia==0){
452                                        $tipo="NIA";
453                                        $referencia=24; //Si la tabla esta vacia el número  máximo de campos será 24
454                                       
455                                }else{
456                                        $tipo="Exp";
457                                        $referencia=25; //Si la tabla esta vacia el número  máximo de campos será 25
458               
459                                }                               
460       
461                                $totAlu = sacaCamposItacaAlu($nomfich,$tipo);
462                                $totProf= sacaCamposItacaProf($nomfich);
463                               
464                        }
465                /* FIN LLIUREX 24/09/2015 */
466           
467                        $camposAlu=(count($totAlu))-1; //total de campos, se le resta 1 debido a que coge un campo mas (vacio)
468                       
469                        if (($camposAlu%$referencia) != 0){                     
470                                exit("Campos $camposAlu");      //Se muestra mensaje advirtiendo que el fichero no tiene la estructura correcta
471                                exit("<b><center>$msg[usur_imp_a]</center></b>");
472                        }
473       
474                /* INICIO LLIUREX 24/09/2015 */
475                /*      while($num<$campos){
476                                if ($tot[$num] == " ") {
477                                        $tot[$num] = NULL;
478                                }
479                                     
480                                if(((($num+1)%$referencia)== 0) && ($num != 0)){//cada 24 debido a que hay 24 campos
481                        // Comprobamos si existe ya un alumno el mismo nombre y apellidos en la BD del PMB, si está actualizamos
482                        // su datos personales si no los incorporamos al PMB
483                                       
484                                        $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] . "' )";
485
486                                        $resul1= @mysql_query($sql_comp, $link2);
487                                        $fecha= date('Y-m-d');
488                                        $fecha_cad= date('Y-m-d', strtotime('+1 year'));
489                       
490                                                //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
491                                        if (trim($tot[$num-9]) != "") {
492                                                $user_a=addslashes($tot[$num-9]);
493                                                if (trim($tot[$num-8]) != "") $pass_a=addslashes($tot[$num-8]);
494                                                else $pass_a=$tot[$num-23];
495                                        } else {
496                               
497                                                $user_a=$tot[$num-23];
498                                                $pass_a=$tot[$num-23];
499                                //echo "a".$user_a." ".$pass_a."a";
500                                //exit(0);
501                                        }
502                                        if (trim($tot[$num-3]) != "") $loca=intval(($tot[$num-3]));
503                                        else $loca=1;
504
505                                        //Si el alumno esta repetido se actualizan sus datos a excepción del empr_cb
506                                        if (@mysql_num_rows($resul1) != 0) {
507                                //echo "$msg[usur_imp_b] <b>" . $tot[$num-23] . "</b><br>";
508                                                echo ("alumno repetido");
509                                                $row1 = mysql_fetch_array($resul1);
510                                                $requete = "UPDATE empr SET ";
511                                                $requete .= "empr_nom='".fields_slashes($tot[$num-22])."',";
512                                                $requete .= "empr_prenom='".fields_slashes($tot[$num-21])."',";
513                                                $requete .= "empr_adr1='".fields_slashes($tot[$num-20])."',";
514                                                $requete .= "empr_adr2='".fields_slashes($tot[$num-19])."',";
515                                                $requete .= "empr_cp='".fields_slashes($tot[$num-18])."',";
516                                                $requete .= "empr_ville='".fields_slashes($tot[$num-17])."',";
517                                                $requete .= "empr_pays='".fields_slashes($tot[$num-16])."',";
518                                                $requete .= "empr_mail='".fields_slashes($tot[$num-15])."',";
519                                                $requete .= "empr_tel1='".fields_slashes($tot[$num-14])."',";
520                                                $requete .= "empr_tel2='".fields_slashes($tot[$num-13])."',";
521                                                $requete .= "empr_prof='".fields_slashes($tot[$num-12])."',";
522                                                $requete .= "empr_year=".intval(($tot[$num-11])).",";
523                                               
524                                                if ($row1['empr_login'] == "") {
525                                                        $requete .= "empr_login='".$user_a."', ";
526                                                        $requete .= "empr_password='".$pass_a."', ";
527                                                }
528                                                //$requete .= "empr_msg='".$tot[$num-7]."' ";
529                                                //$requete .= "empr_lang='".$lang."', ";
530                                                //$requete .= "type_abt='".$tot[$num-5]."', ";
531                                                //$requete .= "last_loan_date='".$tot[$num-4]."', ";
532                                                if ($row1['empr_location'] == "" || intval($row1['empr_location']) == 0) $requete .= "empr_location='".$loca."', ";
533                                                //$requete .= "date_fin_blocage=$tot[$num-22],";
534                                                //$requete .= "total_loans=$tot[$num-22],";
535                                                //$requete .= "empr_statut='"$tot[$num-22]."',";
536                                                $requete .= "empr_sexe=".intval(($tot[$num-10]))."";
537                                                $requete .= " WHERE id_empr=".intval($row1['id_empr'])." ";
538                                                $resul2 = @mysql_query($requete, $link2);
539                                                $cont++;
540
541                                        }
542                                        else{
543                                                        echo ("Alumno nuevo en tabla vacia");
544                                                       
545                                                        if ($tot[$num] == "") $tot[$num] = 1;
546                        $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 )";
547                        $resul2 = @mysql_query($sql, $link2);
548                        $cont++;
549                                                }               
550                                        }
551                                        $num++;
552                                }       // Fin del While */
553
554                           
555   
556            //Si la tabla esta vacia se utilizará el NIA como identificador
557            $tipo_user=0; 
558            $existeNIA=0;       
559            if ($vacia!=0){
560                     $idused=identificador_usado($totAlu,$camposAlu,$link2);
561                       
562                     if ($idused=="Exp"){       
563                        $sql="SELECT column_name from INFORMATION_SCHEMA.columns where table_schema='pmb' and table_name='empr' AND column_name='empr_NIA'";
564                                         $existeNIA=@mysql_query($sql, $link2);
565                                        //Si el campo empr_NIA no existe se crea
566                                        if (@mysql_num_rows($existeNIA)==0){
567                                                $sql="ALTER TABLE empr ADD empr_NIA varchar(15)";
568                                                $insert=@mysql_query($sql, $link2);
569                                               
570                                        }
571                        //Comprobamos si existe el campo empr_Tipo para distinguir entre alumnos y profesores
572                        $sql="SELECT column_name from INFORMATION_SCHEMA.columns where table_schema='pmb' and table_name='empr' AND column_name='empr_Tipo'";
573                        $existeTipo=@mysql_query($sql, $link2);
574                                        //Si el campo empr_Tipo no existe se crea
575                                        if (@mysql_num_rows($existeTipo)==0){
576                                                $sql="ALTER TABLE empr ADD empr_Tipo varchar(1)";
577                                                $insert=@mysql_query($sql, $link2);
578                                               
579                                        }
580                                       
581                       }
582                        $tipo_user="A";
583             }                 
584                        //Importamos datos alumnos
585                        $resul_comp=inserta_datos($vacia,$referencia,$totAlu,$camposAlu,$link2,$idused,$lang,$tipo_user);
586                       
587                        //Importamos datos profesores;
588
589                        $camposProf=(count($totProf))-1;
590                        $tipo_user="P";
591                        $resul_prof=inserta_datos($vacia,24,$totProf,$camposProf,$link2,$idused,$lang,$tipo_user);                                     
592                        $contR=$resul_comp[1]+$resul_prof[1];
593                        $contAct=$resul_comp[2]+$resul_prof[2];
594                                                   
595            //Se muestra mensaje indicado el número de registros importados
596                        echo "<b>$msg[usur_imp_c] </b>";
597                        if ($contR>0){
598                                echo "<b>$msg[usur_imp_d]  " .$contR . "</b>";
599                        }
600                        if ($contAct>0){
601                                echo " <b>$msg[usur_imp_q]  " .$contAct . "</b>";
602                        }
603                        $migracion=comprueba_migracion($link2);
604
605                        if ($resul_comp[0]>0){ //comparativa campos con los valores a insertar. Se muestra a modo de ejemplo el primer registro importado
606                                $fecha=$resul_comp[3];
607                                $fecha_cad=$resul_comp[4];
608                                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>";
609        /* FIN LLIUREX 24/09/2015 */
610                        fclose($archivo);
611                        unlink($nomfich);
612                        break;
613                        }
614        }else { //Si el fichero no es xml o .dat se muestra mensaje de advertencia
615                echo "<b><center> ". $nomfich ." ". $msg["usur_imp_l"]."</center></b>";
616               
617        }
618        break;
619}
620
621default:
622
623// Formulario para elegir fichero a importar de itaca
624echo "<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>";
625
626break;
627
628}
629//-------------------------------------> L L I U R E X <--------------------------------------//
630
631?>
632
Note: See TracBrowser for help on using the repository browser.