%PDF- %PDF-
| Direktori : /home/tjamichg/intranet.tjamich.gob.mx/intranet/sistemas/nomina/controller/ |
| Current File : /home/tjamichg/intranet.tjamich.gob.mx/intranet/sistemas/nomina/controller/subir_nomina2.php |
<?php
session_start();
//error_reporting(E_ALL); // Muestra todos los errores y advertencias
//ini_set('display_errors', 1);
//ini_set('display_startup_errors', 1);
$_SESSION['expire'] = time() + (120 * 30);
include "../../../config/config.php";
$conf = new Configuracion();
$conf->conectarBD();
$anio = isset($_REQUEST['anio']) ? $_REQUEST['anio'] :2023;
$qna = isset($_REQUEST['qna']) ? $_REQUEST['qna'] : '1';
$id_usuario = $_SESSION['id_usuario'];
$adjunto = insertaAdjunto("archivo",$anio,$qna);
$zip = new ZipArchive;
$comprimido= $zip->open($adjunto);
if ($comprimido=== TRUE)
{
$rutaExtraer = '../adjuntos/'.$anio.$qna.'/';
$zip->extractTo($rutaExtraer);
$zip->close();
echo 'El fichero se descomprimio correctamente!';
}
else
{
echo 'Error descomprimiendo el archivo zip ';
}
$sql2 = "INSERT INTO tjam_nominas_rh (id_usuario, quincena, anio, no_registros) VALUES ($id_usuario, '$qna', $anio, 0)";
$id_reg = $conf->ultimo_id($sql2);
$contentsRuta = '../adjuntos/'.$anio.$qna.'/';
$contador = 0;
$contents = scandir($contentsRuta);
foreach ($contents as $c)
{
$size = filesize($contentsRuta.$c);
if ($size > 0)
{
if ($c!="." && $c!="..")
{
$archivo = is_dir($c) ? 0 : 1 ;
if($archivo == 1)
{
$contador = $contador + 1;
$pdf_xml_file = explode('_',$c)[3];
$pdf_xml = explode('.',$pdf_xml_file);
$num_empleado = $pdf_xml[0];
$ext = $pdf_xml[1];
$nom_pdf = $c;
$ruta="../../usuarios";
$path = $ruta."/".$num_empleado;
$path2 = $path."/".$anio;
if (!file_exists($path)) {
mkdir($path, 0777, true);
}
if (!file_exists($path2)) {
mkdir($path2, 0777, true);
}
rename($contentsRuta.$nom_pdf, $path2."/".$nom_pdf);
$asunto = 'NĂ³mina '.$qna;
$ip = $_SERVER['REMOTE_ADDR'];
//$vinculo= "http://".$_SERVER['HTTP_HOST']."/intranet/intranet/sistemas/nomina/adjuntos/".$anio.$qna."/";
//$vinculo= "http://".$_SERVER['HTTP_HOST']."/tjam/intranet/intranet/sistemas/usuarios/".$num_empleado."/".$anio."/";
//$vinculo= "https://".$_SERVER['HTTP_HOST']."/intranet/intranet/sistemas/usuarios/".$num_empleado."/".$anio."/";
$vinculo= "https://".$_SERVER['HTTP_HOST']."/intranet/sistemas/usuarios/".$num_empleado."/".$anio."/";
$consulta3 = "SELECT * FROM tjam_nominas WHERE id_empleado = $num_empleado AND anio = $anio AND quincena = '$qna'";
$rst3 = $conf->consulta($consulta3);
$consulta4 = "SELECT * FROM tjam_empleados WHERE num_empleado = $num_empleado";
$rst4 = $conf->consulta($consulta4);
$id_personal = $rst4[0]["id"];
if(count($rst3) > 0)
{
if ($ext == "pdf")
{
$sql1 = "UPDATE tjam_nominas SET ruta = '$vinculo', nomina_pdf = '$nom_pdf' WHERE id_empleado = $num_empleado AND anio = $anio AND quincena = '$qna'";
$rst11 = $conf->actualizacion($sql1);
} else if ($ext == "xml" || $ext == "XML")
{
$sql1 = "UPDATE tjam_nominas SET ruta = '$vinculo', nomina_xml = '$nom_pdf' WHERE id_empleado = $num_empleado AND anio = $anio AND quincena = '$qna'";
$rst11 = $conf->actualizacion($sql1);
}
}
else
{
if($ext == "pdf")
{
$sql1 = "INSERT INTO tjam_nominas(id_empleado, quincena, anio, ruta, nomina_pdf, id_registro) VALUES ($num_empleado, '$qna', $anio, '$vinculo', '$nom_pdf', $id_reg)";
$rst11 = $conf->actualizacion($sql1);
$reg = $reg + 1;
}
else
{
$sql1 = "INSERT INTO tjam_nominas(id_empleado, quincena, anio, ruta, nomina_xml, id_registro) VALUES ($num_empleado, '$qna', $anio, '$vinculo', '$nom_pdf', $id_reg)";
$rst11 = $conf->actualizacion($sql1);
$reg = $reg + 1;
}
RegistrarNotificaciones($conf,$asunto,$ip,'sistemas/usuarios/page_nomina.php?noti=1',$id_usuario,$id_personal,'label label-green');
}
$consulta = "SELECT *
FROM tjam_empleados_fondos
WHERE anio = $anio AND no_empleado = $num_empleado";
$rst1 = $conf->consulta($consulta);
if(count($rst1) <= 0)
{
$sql1 = "INSERT INTO tjam_empleados_fondos (anio, no_empleado, porcentaje, folio, rendimiento) VALUES ($anio, $num_empleado, '0%', 'F_$num_empleado', '0')";
$rst112 = $conf->actualizacion($sql1);
}
}
}
}
}
if($contador>0)
{
$registros = $contador/2;
$sql1 = "UPDATE tjam_nominas_rh SET no_registros = $registros WHERE id_nomina_rh = $id_reg";
$rst11 = $conf->actualizacion($sql1);
$validSubida = "subida=1&contador=$contador";
}
else
{
$sql1 = "DELETE FROM tjam_nominas_rh WHERE id_nomina_rh = $id_reg";
$rst11 = $conf->actualizacion($sql1);
$validSubida = "subida=0";
}
$consulta = "SELECT n.*,ff.id_fondo,ff.folio,ff.porcentaje,e.num_empleado,e.nombre,e.apellido1,e.apellido2
FROM tjam_nominas n
JOIN tjam_empleados e ON (n.id_empleado = e.num_empleado)
JOIN tjam_empleados_fondos ff ON (ff.no_empleado = e.num_empleado)
WHERE n.anio = $anio AND quincena = '$qna'";
$rst1 = $conf->consulta($consulta);
for($i = 0; $i < count($rst1); $i++)
{
$id_fondo = $rst1[$i]["id_fondo"];
$xml=simplexml_load_file($rst1[$i]["ruta"].$rst1[$i]["nomina_xml"]);
foreach ($xml->xpath('//cfdi:Comprobante') as $comprobante ){
$SubTotal = formatMoney($comprobante['SubTotal'],2);
$Descuento = formatMoney($comprobante['Descuento'],2);
$total = formatMoney($comprobante['Total'],2);
$fecha = $comprobante['Fecha'];
$total_sueldo = (float)$comprobante['Total'];
}
$valor = 0.0;
$valorT = 0.0;
$valorP = 0.0;
foreach ($xml->xpath('//cfdi:Comprobante//cfdi:Complemento//nomina12:Deducciones//nomina12:Deduccion') as $Traslado){
if($Traslado['Clave']== 'D005' or $Traslado['Clave']== 'D006')
{
if($Traslado['Clave']== 'D005')
$valorT = (float)$Traslado['Importe'];
if($Traslado['Clave']== 'D006')
$valorP = (float)$Traslado['Importe'];
$valor = (float)$Traslado['Importe'];
//$sumaTotal += $valor ;
//$sumaFondo += $valor;
}
}
if ($total_sueldo > 0) {
$porcentaje = ( $valorT / $total_sueldo) * 100;
$porcentaje = round($porcentaje, 2); // Redondear a 2 decimales
// Determinar si es 6% o 10%
if ($porcentaje >= 10) {
$porcien = "10%";
} elseif ($porcentaje == 0) {
$porcien = "0%";
} else {
$porcien = "6%";
}
if($rst1[$i]["porcentaje"] != $porcien){
$sql1_porcien = "UPDATE tjam_empleados_fondos SET porcentaje = '$porcien' WHERE no_empleado = '$num_empleado' AND anio = '$anio'";
$rst1_porcien = $conf->actualizacion($sql1_porcien);
}
}
$quer = "SELECT id_fondo FROM tjam_empleados_fondos_acumulado WHERE id_fondo = $id_fondo AND quincena = '$qna'";
$rstQuery = $conf->consulta($quer);
if(count($rstQuery) == 0)
{
//$queryf = "INSERT INTO tjam_empleados_fondos_acumulado (id_fondo,quincena,monto_trabajador,monto_patron,monto_trabajador_bak,monto_patron_bak,fecha_timbrado) VALUES ($id_fondo,'$qna',$valorT,$valorP,$valorT,$valorP,'$fecha')";
$queryf = "INSERT INTO tjam_empleados_fondos_acumulado (id_fondo,quincena,monto_trabajador,monto_patron,fecha_timbrado) VALUES ($id_fondo,$quincena,$valorT,$valorP,'$fecha')";
$conf->actualizacion($queryf);
}
}
$conf->desconectarDB();
header("Location: ../page_find_nomina.php?$validSubida");
function insertaAdjunto($tipo_imagen,$anio,$qna)
{
$max_size = 5 * 1024 * 1024;
if(empty($_FILES[$tipo_imagen]["name"]))
return 0;
$file_name=$_FILES[$tipo_imagen]["name"];
$extension = pathinfo($_FILES[$tipo_imagen]['name'], PATHINFO_EXTENSION);
$ext_formatos = array('zip','application/octet-stream');
if(!in_array(strtolower($extension), $ext_formatos)){
return 0;
}
//33000300800
//if ($_FILES[$tipo_imagen]["size"] > $max_size){
//return 0;
//}
$targetDir = "../adjuntos/";
//@rmdir($targetDir);
// Create target dir
if (!file_exists($targetDir)) {
@mkdir($targetDir,0777, true);
}
$file_name = $anio.'-'.$qna.'.'.$extension;
$add = $targetDir.$file_name;
$ok = 0;
if(move_uploaded_file ($_FILES[$tipo_imagen]["tmp_name"], $add))
{
$ok = 1;
}
return $add;
}
?>