%PDF- %PDF-
Direktori : /home/tjamichg/intranet.tjamich.gob.mx/intranet/sistemas/proveedores/controller/ |
Current File : /home/tjamichg/intranet.tjamich.gob.mx/intranet/sistemas/proveedores/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); } } ?>