198 lines
5.9 KiB
PHP
198 lines
5.9 KiB
PHP
<?php
|
|
require_once __DIR__.'/auth_guard.php';
|
|
ini_set('display_errors', 1);
|
|
ini_set('display_startup_errors', 1);
|
|
error_reporting(E_ALL);
|
|
require_once "../config.php";
|
|
require __DIR__ . '/../vendor/autoload.php';
|
|
$return = new stdClass();
|
|
//print_r($_FILES); die;
|
|
$files = $_FILES['customFile'];
|
|
$file_path = $files['tmp_name'][0]; // temporary upload path of the first file
|
|
$fileName = 'tmpusers.xlsx';
|
|
$dir_subida = '../data/tmpusers.xlsx';
|
|
move_uploaded_file($file_path, $dir_subida);
|
|
/** Identify the type of $inputFileName **/
|
|
$inputFileType = \PhpOffice\PhpSpreadsheet\IOFactory::identify($dir_subida);
|
|
/** Create a new Reader of the type that has been identified **/
|
|
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType);
|
|
/** Load $inputFileName to a Spreadsheet Object **/
|
|
$spreadsheet = $reader->load($dir_subida);
|
|
/** Convert Spreadsheet Object to an Array for ease of use **/
|
|
$schdeules = $spreadsheet->getActiveSheet()->toArray();
|
|
unlink($dir_subida);
|
|
$return = new stdClass();
|
|
//paso 1 verifcar headers
|
|
$headers = $schdeules[0];
|
|
global $link;
|
|
dbConnect();
|
|
|
|
//POSICIONES DE CAMPOS
|
|
$posnumempleado = '';
|
|
$poscorreo = '';
|
|
$posnombre = '';
|
|
$pospaterno = '';
|
|
$posmaterno = '';
|
|
$poscentrotrabajo ='';
|
|
$posdistrito = '';
|
|
$posposicion = '';
|
|
$possociedad = '';
|
|
$posdivision = '';
|
|
$posunidad = '';
|
|
$posceco = '';
|
|
$possupervisor= '';
|
|
foreach ($headers as $key => $head) {
|
|
if($head == 'No empleado'){
|
|
$posnumempleado = $key;
|
|
}
|
|
if ($head == 'Correo') {
|
|
$poscorreo = $key;
|
|
}
|
|
if ($head == 'Nombre(s)') {
|
|
$posnombre = $key;
|
|
}
|
|
if ($head == 'Apellido Paterno') {
|
|
$pospaterno = $key;
|
|
}
|
|
if ($head == 'Apellido Materno') {
|
|
$posmaterno = $key;
|
|
}
|
|
if ($head == 'Centro de trabajo Nombre') {
|
|
$poscentrotrabajo = $key;
|
|
}
|
|
if ($head == 'Distrito') {
|
|
$posdistrito = $key;
|
|
}
|
|
if ($head == 'Función Título de la función') {
|
|
$posposicion = $key;
|
|
}
|
|
if ($head == 'Sociedad Nombre') {
|
|
$possociedad = $key;
|
|
}
|
|
if ($head == 'División Nombre') {
|
|
$posdivision = $key;
|
|
}
|
|
if ($head == 'Unidad Organizativa Nombre') {
|
|
$posunidad = $key;
|
|
}
|
|
if ($head == 'Centro de costos Nombre') {
|
|
$posceco = $key;
|
|
}
|
|
if ($head == 'Supervisor') {
|
|
$possupervisor = $key;
|
|
}
|
|
}
|
|
|
|
|
|
if(!in_array ( "No empleado", $headers )){
|
|
$return->error = "1";
|
|
$return->msg = "No existe la columna número de empleado (No empleado)";
|
|
}else{
|
|
|
|
if ($poscorreo == '' || $posnombre == '' || $pospaterno == '' || $posmaterno == '' || $poscentrotrabajo == '' || $posdistrito == '' || $posposicion == '' || $possociedad == '' || $posdivision == '' || $posunidad == '' || $posceco == '' || $possupervisor == '') {
|
|
$return->error = "1";
|
|
$return->msg = "Hacen faltan columnas al template";
|
|
}else{
|
|
|
|
$values = array_splice ($schdeules, 1, sizeof($schdeules)-1);
|
|
$return->procesados = sizeof($values);
|
|
$return->correctos = 0;
|
|
$return->results = [];
|
|
|
|
|
|
foreach ($values as $value) {
|
|
if( $value[$posnumempleado] == "" ){
|
|
array_push ($return->results, '<span class="text-danger font-weight-bold">Usuario sin No empleado: '.$value[$posnombre]." ".$value[$pospaterno].'<span>');
|
|
}else if(!userExist($value[$posnumempleado])){
|
|
if(!valitelicencia()){
|
|
|
|
$sql = "INSERT INTO user (numempl, email , nombre, apellido, centrotrabajonom, distritonom, posicion, sociedad, division, unidad_organizativa, ceco, supervisor , idrol ) VALUES (";
|
|
$sql .= "'".$value[$posnumempleado]."', ";
|
|
$sql .= "'".$value[$poscorreo]."', ";
|
|
$sql .= "'".$value[$posnombre]."', ";
|
|
$sql .= "'".$value[$pospaterno]." ".$value[$posmaterno]."', ";
|
|
$sql .= "'".$value[$poscentrotrabajo]."', ";
|
|
$sql .= "'".$value[$posdistrito]."', ";
|
|
$sql .= "'".str_replace("'","'",$value[$posposicion])."', ";
|
|
$sql .= "'".$value[$possociedad]."', ";
|
|
$sql .= "'".$value[$posdivision]."', ";
|
|
$sql .= "'".$value[$posunidad]."', ";
|
|
$sql .= "'".$value[$posceco]."', ";
|
|
$sql .= "'".$value[$possupervisor]."', ";
|
|
$sql .= "1)";
|
|
if(mysqli_query($link, $sql)){
|
|
$return->correctos++;
|
|
|
|
if ($value[$poscorreo] == '' || $value[$posnombre] == '' || $value[$pospaterno] == '' || $value[$posmaterno] == '' || $value[$poscentrotrabajo] == '' || $value[$posdistrito] == '' || $value[$posposicion] == '' || $value[$possociedad] == '' || $value[$posdivision] == '' || $value[$posunidad] == '' || $value[$posceco] == '' || $value[$possupervisor] == '') {
|
|
array_push ($return->results, 'El usuario: ' . $value[$posnumempleado] . ' se ingreso correctamente, hicieron falta algunos datos.');
|
|
}else{
|
|
array_push ($return->results, 'El usuario: ' . $value[$posnumempleado] . ' se ingreso correctamente');
|
|
}
|
|
}else{
|
|
array_push ($return->results, 'El usuario: ' . $value[$posnumempleado] . ' error: '. mysqli_error($link));
|
|
}
|
|
}else{
|
|
array_push ($return->results, 'Se alcanzado el límite de usuarios para dar de alta.');
|
|
}
|
|
}else{
|
|
array_push ($return->results, 'El usuario: ' . $value[$posnumempleado] . ' ya existe');
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
function userExist($numempl){
|
|
global $link;
|
|
dbConnect();
|
|
$sql ="select * from user where numempl = '$numempl'";
|
|
$result = mysqli_query($link, $sql);
|
|
if ( mysqli_num_rows($result) <= 0 ) {
|
|
return false;
|
|
}else{
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
function valitelicencia(){
|
|
global $link;
|
|
dbConnect();
|
|
$sql = "SELECT
|
|
COUNT(*) as estadisticos
|
|
FROM
|
|
user
|
|
INNER JOIN rol ON rol.id = user.idrol
|
|
WHERE
|
|
user.habilitado = 1";
|
|
|
|
$sqllimite = "SELECT
|
|
limiteusers as limite
|
|
FROM
|
|
licencia
|
|
WHERE
|
|
habilitado = 1";
|
|
|
|
$result = mysqli_query($link, $sql);
|
|
while ($row = mysqli_fetch_assoc ($result)){
|
|
$users = $row['estadisticos'];
|
|
}
|
|
|
|
$resultlimite = mysqli_query($link, $sqllimite);
|
|
while ($row = mysqli_fetch_assoc ($resultlimite)){
|
|
$limite = $row['limite'];
|
|
}
|
|
|
|
if ( $users >= $limite ) {
|
|
return true;
|
|
}else{
|
|
return false;
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
echo json_encode($return, JSON_UNESCAPED_UNICODE);
|
|
?>
|