$(document).ready(function() {
	
	//Modificar estar variables o asignarles variables desde otra parte del JS para timbrar ante PAC DEV
	//var idEmpresa = 1;
	//var tipoSistema = 1;
	//var idFactura = 1;
	
	//alert("Solicitando timbrado de comprobante " + idFactura + ", Sistema " + tipoSistema + ", Empresa " + idEmpresa);
    //test_timbrado_cfdi(idEmpresa, tipoSistema, idFactura);
	
	//timbrarFactura(1,2,83);
});


function timbrarFactura(idEmpresa, tipoSistema, idFactura){
	
	
	//CFDI
	var datos = {
		pAccion: "cfdi_factura",
		pIdEmpresa: idEmpresa,
		pTipoSistema: tipoSistema,
		pIdFactura: idFactura
	};
	
	console.log(datos);
	
	$.ajax({
		type: "POST",
		data: JSON.stringify(datos),
		url: "../test_soap/emision.php",
		dataType: "json",
		async: true,
		beforeSend: function (){
		 //indicardor de carga
		},
		success: function (resp){
			 console.log("=== [ RESPUESTA TIMBRADOR ] =====");
			 console.log(resp);
			 
			 if(parseInt(tipoSistema) === 1){				 			 
				$("#txtFactura").val(  $("#txtFactura").val() + "\r\n" + resp.mensaje)

				//Si transaccion termina con exito se marca el servicio como FACTURADO
				if(parseInt(resp.estado) > 0){
					servicioEstadoCambiar(3);
					$("#spanResultadoFacturacion").append('<i class="fa fa-check" aria-hidden="true" style="font-size: 20px;color:#8bc34a;"></i>');
				}else{
					$("#spanResultadoFacturacion").append('<i class="fa fa-close" aria-hidden="true" style="font-size: 20px;color:red;"></i>');
					eliminarFacturaAmarres(idFactura);
					ajaxindicatorstop();
				}				 
			 }else{
				 $("#txtResultadoFacturacion").val(  $("#txtResultadoFacturacion").val() + "\r\n" + resp.mensaje)
				 
				 $("#divResultadoFacturacion").show();
				 $("#divProcesandoFacturacion").hide();	
				 $("#btnSalirFacturacion").show();
				 
				 if(parseInt(resp.estado) === 0){
					  $("#spanResultadoFacturacion").text("No fue posible facturar el servicio");				  					  
					  $("#spanResultadoFacturacion").css('color',"#FE2E2E");
					  
						//*** MANDAR LLAMAR METODO PARA ELIMINAR FACTURA
						eliminarFacturaPlataforma(idFactura);
					
				 }else{
					  $("#spanResultadoFacturacion").text("Servicio facturado con exito");
					  $("#spanResultadoFacturacion").css('color',"#31B404");
					  marcarServicioFacturado(8);
				 }
				 
				
				 
				 ajaxindicatorstop();
				//Si transaccion termina con exito se marca el servicio como FACTURADO
				if(parseInt(resp.estado) > 0){
					//servicioEstadoCambiar(3);
					//$("#spanResultadoFacturacion").append('<i class="fa fa-check" aria-hidden="true" style="font-size: 20px;color:#8bc34a;"></i>');
				}else{
					//$("#spanResultadoFacturacion").append('<i class="fa fa-close" aria-hidden="true" style="font-size: 20px;color:red;"></i>');
				}
			 }

		},
		complete: function () {
			
		},
		error: function (xhr, ajaxOptions, thrownError) {
			console.log(xhr);
			console.log(ajaxOptions);
			console.log(thrownError);
		}
	});
}

function timbrarNotaCredito(idEmpresa, tipoSistema, idFactura){
		
	//NOTA
	var datos = {
		pAccion: "cfdi_nota",
		pIdEmpresa: idEmpresa,
		pTipoSistema: tipoSistema,
		pIdNota: idFactura
	};
	
	console.log("Objeto emision timbrar nota");
	console.log(datos);
	
	$.ajax({
		type: "POST",
		data: JSON.stringify(datos),
		url: "../test_soap/emision.php",
		dataType: "json",
		async: true,
		beforeSend: function (){
		 ajaxindicatorstart();
		},
		success: function (resp){
			console.log(resp.mensaje);
			$("#txtResultadoTimbrar").val(resp.mensaje);
		},
		complete: function () {
			ajaxindicatorstop();
		},
		error: function (xhr, ajaxOptions, thrownError) {
			console.log(xhr);
			console.log(ajaxOptions);
			console.log(thrownError);
		}
	});
}

function timbrarComplemento(idEmpresa, tipoSistema, idFactura){
		
	//NOTA
	var datos = {
		pAccion: "cfdi_complemento",
		pIdEmpresa: idEmpresa,
		pTipoSistema: tipoSistema,
		pIdPago: idFactura
	};
	
	console.log("Peticion timbrado complemento");
	console.log(datos);
		
	$.ajax({
		type: "POST",
		data: JSON.stringify(datos),
		url: "../test_soap/emision.php",
		dataType: "json",
		async: true,
		beforeSend: function (){
		 //ajaxindicatorstart();
		},
		success: function (resp){
			console.log("======== RESULTADO TIMBRAR COMPLEMENTO ==========");
			console.log(resp);
			//$("#txtResultadoTimbrar").val(resp.mensaje);
			MessageBox(resp.estado, resp.mensaje);
			if(parseInt(resp.estado) > 0){
				$("#popupDatosComplementoPago").modal("hide");
				
				if(parseInt(tipoSistema) === 1){				 			 
					 servicioCambiarFacturado();
				}else{
					marcarServicioFacturado(9);
					ajaxindicatorstop();
				}			 
				
			}else{
			    console.log("-> Borramos generales del complemento de pago");
				eliminarComplemento(idFactura);
			}				
			
		},
		complete: function () {
			//ajaxindicatorstop();
		},
		error: function (xhr, ajaxOptions, thrownError) {
			console.log(xhr);
			console.log(ajaxOptions);
			console.log(thrownError);
		}
	});
}

function cancelarFactura(idEmpresa, tipoSistema, idFactura){
		
	//NOTA
	var datos = {
		pAccion: "cfdi_complemento",
		pIdEmpresa: idEmpresa,
		pTipoSistema: tipoSistema,
		pIdPago: idFactura
	};
	
	console.log("Peticion timbrado complemento");
	console.log(datos);
		
	$.ajax({
		type: "POST",
		data: JSON.stringify(datos),
		url: "../test_soap/emision.php",
		dataType: "json",
		async: true,
		beforeSend: function (){
		 //ajaxindicatorstart();
		},
		success: function (resp){
			console.log("======== RESULTADO TIMBRAR COMPLEMENTO ==========");
			console.log(resp);
			//$("#txtResultadoTimbrar").val(resp.mensaje);
			MessageBox(resp.estado, resp.mensaje);
			if(parseInt(resp.estado) > 0){
				$("#popupDatosComplementoPago").modal("hide");
				
				if(parseInt(tipoSistema) === 1){				 			 
					 servicioCambiarFacturado();
				}else{
					marcarServicioFacturado(9);
					ajaxindicatorstop();
				}			 
				
			}				
			
		},
		complete: function () {
			//ajaxindicatorstop();
		},
		error: function (xhr, ajaxOptions, thrownError) {
			console.log(xhr);
			console.log(ajaxOptions);
			console.log(thrownError);
		}
	});
}

function cancelarFacturaEmision(vUuid,vRfcEmisor,vRfcReceptor,vTotal,vFolioFactura,vSerie, vTipoSistema){
	console.log(" --> cancelarFacturaEmision ");
	var json_request = {
			pAccion: "cancelacion_emision"
			,pUUID:vUuid
			,pRFCEmisor:vRfcEmisor
			,pRFCReceptor:vRfcReceptor
			,pTotal:vTotal
			,pIdEmpresa:"1"
			,pTipoSistema:vTipoSistema
			,pIdFactura:vFolioFactura
			,pTipoFactura:vSerie
		};
		
		console.log(json_request);
	  
		$.ajax({
			type: "POST",
			data: JSON.stringify(json_request),
			url: "../test_soap/cancelacion.php",
			dataType: "json",
			async: true,
			beforeSend: function () {
				ajaxindicatorstart();
			},
			success: function (resp) {  
				console.log("=======[ RESULTADO CANCELACION ]========");
				console.log(resp);
				var objRespuesta = JSON.parse(resp);
				MessageBox(objRespuesta.estado, objRespuesta.mensaje);	

				//Si se cancela factura con exito, aperturamos los servicios para Refacturar
				if(parseInt(objRespuesta.estado) === 1){
					if(parseInt(vTipoSistema) === 1){
						console.log("Abrimos servicios de amarre");
					}else{
						//Si cancelan factura PLATAFORMA se regresa a estado 8 al servicio "Terminado"
						console.log("Abrimos servicios de plataforma");
					}
				}								
			},
			complete: function () {
				ajaxindicatorstop();				
				
				//Recargamos consulta de facturas "consultaFacturas.js"
				consultar();
			},
			error: function (xhr, ajaxOptions, thrownError) {
				console.log(xhr);
				console.log(ajaxOptions);
				console.log(thrownError);
			}
		});
}