%PDF- %PDF-
| Direktori : /home/tjamichg/intranet.tjamich.gob.mx/intranet/sistemas/compras/controller/ |
| Current File : /home/tjamichg/intranet.tjamich.gob.mx/intranet/sistemas/compras/controller/agregar_compra.php |
<?php
session_start();
$_SESSION['expire'] = time() + (120 * 60);
include "../../../config/config.php";
$id_usuario = $_SESSION['usuario_id'];
$nombre = isset($_REQUEST['nombre']) ? $_REQUEST['nombre'] : NULL;
$id_empresa = isset($_REQUEST['id_empresa']) ? $_REQUEST['id_empresa'] : NULL;
$id_tipo = isset($_REQUEST['id_tipo']) ? $_REQUEST['id_tipo'] : NULL;
$conf = new Configuracion();
$conf->conectarBD();
$xml=simplexml_load_file($_FILES['url_xml']['tmp_name']);
//Extracción de los datos generales de la factura
foreach ($xml->xpath('//cfdi:Comprobante') as $comprobante ){
$folio = $comprobante['Folio'];
$factura = $comprobante['NoCertificado'];
$fecha = $comprobante['Fecha'];
$total = $comprobante['Total'];
}
foreach ($xml->xpath('//cfdi:Comprobante//cfdi:Complemento') as $complemento)
{
$factura = isset($folio) ? $folio : $complemento['UUID'];
$folio = $factura;
}
$id_factura = factura($xml,$conf);
if($id_factura != 0)
{
$id_estatus = 1;
if($id_tipo >= 2)
$id_estatus = 2;
if(is_null($folio))
$folio = $factura;
$insertar = "INSERT INTO compras_compras
(nombre,id_empresa,id_tipo,folio,factura,fecha,total,id_estatus,id_factura)
VALUES ('$nombre',$id_empresa,$id_tipo,'$folio','$factura','$fecha',$total,$id_estatus,$id_factura);";
$id_compra = $conf->ultimo_id($insertar);
adjuntar_archivo($id_compra,"url_factura",$conf,$id_factura);
adjuntar_archivo($id_compra,"url_xml",$conf,$id_factura);
$conf->desconectarDB();
header("Location: ../page_find_facturas.php?app=1&error=0");
}
else
{
$conf->desconectarDB();
header("Location: ../page_find_facturas.php?app=1&error=1");
}
function factura($xml,$con)
{
foreach ($xml->xpath('//cfdi:Comprobante') as $comprobante ){
$folio = $comprobante['Folio'];
$fecha = $comprobante['Fecha'];
$sello = $comprobante['Sello'];
$formaDePago = $comprobante['FormaPago'];
$noCertificado = $comprobante['NoCertificado'];
$certificado = $comprobante['Certificado'];
$descuento = $comprobante['Descuento'];
$subTotal = $comprobante['SubTotal'];
$Moneda = $comprobante['Moneda'];
$total = $comprobante['Total'];
$tipoDeComprobante = $comprobante['TipoDeComprobante'];
$metodoDePago = $comprobante['MetodoPago'];
$lugarExpedicion = $comprobante['LugarExpedicion'];
}
foreach ($xml->xpath('//cfdi:Comprobante//cfdi:Complemento') as $complemento)
{
$factura = isset($folio) ? $folio : $complemento['UUID'];
$folio = $factura;
}
$iva = 0;
foreach ($xml->xpath('//cfdi:Impuestos') as $impuestos ){
$iva = $impuestos['TotalImpuestosTrasladados'];
}
$factSQL = "SELECT id_factura FROM compras_factura WHERE folio_factura_cliente = '$factura' AND fecha_factura = '$fecha' AND total = '$total'";
$rst1factSQL = $con->consulta($factSQL);
if( count($rst1factSQL) > 0)
return 0;
$q = "INSERT INTO compras_factura
(fecha_factura,subTotal,total,folio_factura_cliente,folio,iva,certificado)
VALUES('$fecha','$subTotal','$total','$factura','$folio',$iva,'$noCertificado');";
$id_factura = $con->insertRegLID($q);
// Extracci贸n de los datos del Emisor
foreach ($xml->xpath('//cfdi:Comprobante//cfdi:Emisor') as $emisor){
$Erfc = $emisor['Rfc'];
$Enombre = limpiarString($emisor['Nombre']);
$ERegimenFiscal = $emisor['RegimenFiscal'];
}
foreach ($xml->xpath('//cfdi:Comprobante//cfdi:Emisor//cfdi:DomiciolioFiscal') as $domicilio){
$Ecalle = $domicilio['calle'];
$EnoExterior = $domicilio['noExterior'];
$Ecolonia = $domicilio['colonia'];
$Elocalidad = $domicilio['localidad'];
$Emunicipio = $domicilio['municipio'];
$Eestado = $domicilio['estado'];
$Epais = $domicilio['pais'];
$EcodigoPostal = $domicilio['codigoPostal'];
}
$q = "INSERT INTO compras_factura_emisor(id_factura,nombre,rfc,regimen,habilitado)
VALUES($id_factura,'$Enombre','$Erfc','$ERegimenFiscal',1);";
$con->actualizacion($q);
// Extracci贸n de loos datos del Emisor
foreach ($xml->xpath('//cfdi:Comprobante//cfdi:Receptor') as $receptor) {
$Rrfc = $receptor['Rfc'];
$Rnombre = $receptor['Nombre'];
}
foreach ($xml->xpath('//cfdi:Comprobante//cfdi:Receptor//cfdi:Domicilio') as $domicilio) {
$Rcalle = $domicilio['calle'];
$RnoExterior = $domicilio['noExterior'];
$Rcolonia = $domicilio['colonia'];
$Rlocalidad = $domicilio['localidad'];
$Rmunicipio = $domicilio['municipio'];
$Restado = $domicilio['estado'];
$Rpais = $domicilio['pais'];
$RcodigoPostal = $domicilio['codigoPostal'];
}
$q = "INSERT INTO compras_factura_receptor(id_factura,nombre,rfc,habilitado) VALUES($id_factura,'$Rnombre','$Rrfc',1);";
$con->actualizacion($q);
// Extracci贸n de los datos de los articulos- concepto
foreach ($xml->xpath('//cfdi:Comprobante//cfdi:Conceptos//cfdi:Concepto') as $concepto){
$cantidad = $concepto['Cantidad'];
$unidad = $concepto['Unidad'];
$descripcion = $concepto['Descripcion'];
$valorUnitario = $concepto['ValorUnitario'];
$importe = $concepto['Importe'];
$descuento2 = $concepto['Descuento'];
$q = "INSERT INTO compras_factura_detalle (producto, descripcion, cantidad, precio_unitario, id_factura)
VALUES('$descripcion', '$descripcion', '$cantidad', '$valorUnitario', $id_factura)";
$con->actualizacion($q);
}
// insertaImagenFactura("url_documento","url_pdf_factura",$con,$id_factura);
// insertaImagenFactura("url_xml","url_xml_factura",$con,$id_factura);
return $id_factura;
}
function insertaImagenFactura($tipo_imagen,$tipo_imagenDB,$conf,$id_factura)
{
if(empty($_FILES[$tipo_imagen]["name"]))
return;
$file_name=$_FILES[$tipo_imagen]["name"];
$extension = pathinfo($_FILES[$tipo_imagen]['name'], PATHINFO_EXTENSION);
$ext_formatos = array('png','gif','jpg','jpeg','pdf','doc','docx','xml');
if(!in_array(strtolower($extension), $ext_formatos))
return;
if ($_FILES[$tipo_imagen]["size"] > 33000300800)
return;
$dia = date("d");
$mes = date("m");
$anio = date("Y");
$targetDir = "../documentos/$anio/$mes/$dia/";
@rmdir($targetDir);
// Create target dir
if (!file_exists($targetDir)) {
@mkdir($targetDir,0777, true);
}
$token = md5(uniqid(rand(), true));
$file_name = $token.'.'.$extension;
$add = $targetDir.$file_name;
$db_url_img = "$anio/$mes/$dia/$file_name";
if(move_uploaded_file ($_FILES[$tipo_imagen]["tmp_name"], $add))
{
$insertar = "UPDATE compras_factura SET $tipo_imagenDB = '$db_url_img'
WHERE id_factura = $id_factura";
$conf->actualizacion($insertar);
}
}
function adjuntar_archivo($id_compra,$tipo_imagen,$conf,$id_factura)
{
if(empty($_FILES[$tipo_imagen]["name"]))
return;
$file_name=$_FILES[$tipo_imagen]["name"];
$extension = pathinfo($_FILES[$tipo_imagen]['name'], PATHINFO_EXTENSION);
$ext_formatos = array('pdf','jpg','png','gif','jpeg','xml');
if(!in_array(strtolower($extension), $ext_formatos))
return;
if ($_FILES[$tipo_imagen]["size"] > 33000300800)
return;
$dia = date("d");
$mes = date("m");
$anio = date("Y");
$targetDir = "../adjuntos/$anio/$mes/$dia/";
@rmdir($targetDir);
// Create target dir
if (!file_exists($targetDir)) {
@mkdir($targetDir,0777, true);
}
$token = md5(uniqid(rand(), true));
$file_name = $token.'.'.$extension;
$add = $targetDir.$file_name;
$db_url_img = "$anio/$mes/$dia/$file_name";
if(move_uploaded_file ($_FILES[$tipo_imagen]["tmp_name"], $add))
{
$insertar = "UPDATE compras_compras SET $tipo_imagen = '$db_url_img' WHERE id_compra = $id_compra";
$conf->actualizacion($insertar);
$insertar = "UPDATE compras_factura SET $tipo_imagen = '$db_url_img'
WHERE id_factura = $id_factura";
$conf->actualizacion($insertar);
}
}
?>