<?php

/*
  Created on : Mayo 26, 2019, 01:14:34 PM
  Author     : Gabriel Hernandez Gonzalez
 */
 
	if(!isset($_SESSION)) session_start();
 
	require_once "../core/core_classes.php";
	require_once "../config.php";
	$user = json_decode($_SESSION['user']);
	
	require_once '../assets/plugins/dompdf/autoload.inc.php';
	use Dompdf\Dompdf;

	switch (filter_input(INPUT_POST, 'tipoOperacion')) {
		
		case 'consultarXestado':
			
			$pNidEmpresa = $user->nidEmpresa;
			$pEstado = filter_input(INPUT_POST, 'pEstado');
						
			$stmt = $conn->prepare("call servicios_consultasxEstado($pNidEmpresa,$pEstado)");			
			$stmt->execute();			
						
			$response = new root_response;
			while($row = $stmt->fetch(PDO::FETCH_ASSOC)) 
			{ 			
				$respuesta = new core_servicio();
				$respuesta->nid = $row["IdServicio"];
				$respuesta->nidEmpresa = $row["IdEmpresa"];    
				$respuesta->codigo = $row["IdServicio"];	
				$respuesta->importador = $row["Importador"];	
				$respuesta->nidCliente = $row["IdCliente"];	
				$respuesta->cliente = $row["NomCliente"];	
				$respuesta->personalCliente = $row["NomCliPersonal"];
				$respuesta->patente = $row["Patente"];				
				$respuesta->fiscal = $row["PersonaAduana"];
				$respuesta->tipoCarga = $row["NomTipoCarga"];
				$respuesta->imo = $row["DESCIMO"];					
				$respuesta->nidDimencion = $row["IdDimCon"];	
				$respuesta->dimencion = $row["NomDimension"];	
				$respuesta->contenedor = $row["Contenedor"];	
				$respuesta->selloOriginal = $row["SelloOriginal"];	
				$respuesta->selloNuevo = $row["SelloNuevo"];
				$respuesta->cantidad = $row["Cantidad"];	
				$respuesta->peso = $row["Peso"];
				$respuesta->tipoServicio = $row["NomTipoServicio"];
				$respuesta->notasCantidad = $row["notasCantidad"];	
				$respuesta->utilizaCanino = $row["USACANINO"];	
				$respuesta->notasCarga = $row["notasCarga"];	
				$respuesta->revisionIntrusiva = $row["USAREVINTRUSA"];	
				$respuesta->muestreo = $row["USAMUESTREO"];		
				$respuesta->observacionesMuestreo = $row["ObservacionesMuestreo"];
				$respuesta->clienteFacturar = $row["ClienteFacturar"];
				$respuesta->montoServicio = $row["MontoServicio"];
				$respuesta->montoMaterial = $row["MontoMaterial"];
				$respuesta->montoTotal = $row["MontoTotal"];
				$respuesta->fechaRegistro = $row["FechaCaptura"];
				$respuesta->estado = $row["DESCESTADO"];
				$respuesta->nidFactura = $row["IdFactura"];
				$respuesta->uuid = $row["UUID"];

				$response->datos[] = $respuesta;				
			};
									
			$response->transaccion = "1";
			$response->mensaje = "Ok";
			
			echo json_encode($response);
			
			break;
			
		case 'consultaNoTerminados':
			
			$pNidEmpresa = $user->nidEmpresa;
			$pNidCliente = $user->nidCliente;
						
			$stmt = $conn->prepare("call servicios_consultasNoTerminados($pNidEmpresa,$pNidCliente)");			
			$stmt->execute();			
						
			$response = new root_response;
			while($row = $stmt->fetch(PDO::FETCH_ASSOC)) 
			{ 			
				$respuesta = new core_servicio();
				$respuesta->nid = $row["IdServicio"];
				$respuesta->nidEmpresa = $row["IdEmpresa"];    
				$respuesta->codigo = $row["IdServicio"];	
				$respuesta->importador = $row["Importador"];	
				$respuesta->cliente = $row["NomCliente"];	
				$respuesta->personalCliente = $row["NomCliPersonal"];
				$respuesta->patente = $row["Patente"];				
				$respuesta->fiscal = $row["PersonaAduana"];
				$respuesta->tipoCarga = $row["NomTipoCarga"];
				$respuesta->imo = $row["DESCIMO"];	
				$respuesta->dimencion = $row["NomDimension"];	
				$respuesta->contenedor = $row["Contenedor"];	
				$respuesta->selloOriginal = $row["SelloOriginal"];	
				$respuesta->selloNuevo = $row["SelloNuevo"];
				$respuesta->cantidad = $row["Cantidad"];	
				$respuesta->peso = $row["Peso"];
				$respuesta->tipoServicio = $row["NomTipoServicio"];
				$respuesta->notasCantidad = $row["notasCantidad"];	
				$respuesta->utilizaCanino = $row["USACANINO"];	
				$respuesta->notasCarga = $row["notasCarga"];	
				$respuesta->revisionIntrusiva = $row["USAREVINTRUSA"];	
				$respuesta->muestreo = $row["USAMUESTREO"];		
				$respuesta->observacionesMuestreo = $row["ObservacionesMuestreo"];
				$respuesta->clienteFacturar = $row["ClienteFacturar"];
				$respuesta->montoServicio = $row["MontoServicio"];
				$respuesta->montoMaterial = $row["MontoMaterial"];
				$respuesta->montoTotal = $row["MontoTotal"];
				$respuesta->fechaRegistro = $row["FechaCaptura"];
				$respuesta->estado = $row["DESCESTADO"];
				$respuesta->pedimento = $row["pedimento"];
				$respuesta->referencia = $row["referencia"];
	
				$response->datos[] = $respuesta;				
			};
									
			$response->transaccion = "1";
			$response->mensaje = "Ok";
			
			echo json_encode($response);
			
			break;
		case 'consultaTerminados':
			
			$pNidEmpresa = $user->nidEmpresa;
			$pNidCliente = $user->nidCliente;
						
			//$stmt = $conn->prepare("call servicios_consultasTerminados($pNidEmpresa,$pNidCliente)");
			$stmt = $conn->prepare("call servicios_consultasTerminadosAgencia($pNidEmpresa,$pNidCliente)");
			//$stmt = $conn->prepare("call servicios_consultasTerminados($pNidCliente)");	
			$stmt->execute();			
						
			$response = new root_response;
			while($row = $stmt->fetch(PDO::FETCH_ASSOC)) 
			{ 			
				$respuesta = new core_servicio();
				$respuesta->nid = $row["IdServicio"];
				$respuesta->nidEmpresa = $row["IdEmpresa"];    
				$respuesta->codigo = $row["IdServicio"];	
				$respuesta->importador = $row["Importador"];	
				$respuesta->cliente = $row["NomCliente"];	
				$respuesta->personalCliente = $row["NomCliPersonal"];
				$respuesta->patente = $row["Patente"];				
				$respuesta->fiscal = $row["PersonaAduana"];
				$respuesta->tipoCarga = $row["NomTipoCarga"];
				$respuesta->imo = $row["DESCIMO"];	
				$respuesta->dimencion = $row["NomDimension"];	
				$respuesta->contenedor = $row["Contenedor"];	
				$respuesta->selloOriginal = $row["SelloOriginal"];	
				$respuesta->selloNuevo = $row["SelloNuevo"];
				$respuesta->cantidad = $row["Cantidad"];	
				$respuesta->peso = $row["Peso"];
				$respuesta->tipoServicio = $row["NomTipoServicio"];
				$respuesta->notasCantidad = $row["notasCantidad"];	
				$respuesta->utilizaCanino = $row["USACANINO"];	
				$respuesta->notasCarga = $row["notasCarga"];	
				$respuesta->revisionIntrusiva = $row["USAREVINTRUSA"];	
				$respuesta->muestreo = $row["USAMUESTREO"];		
				$respuesta->observacionesMuestreo = $row["ObservacionesMuestreo"];
				$respuesta->clienteFacturar = $row["ClienteFacturar"];
				$respuesta->montoServicio = $row["MontoServicio"];
				$respuesta->montoMaterial = $row["MontoMaterial"];
				$respuesta->montoTotal = $row["MontoTotal"];
				$respuesta->fechaRegistro = $row["FechaCaptura"];
				$respuesta->estado = $row["DESCESTADO"];
				$respuesta->pedimento = $row["pedimento"];
				$respuesta->referencia = $row["referencia"];
	
				$response->datos[] = $respuesta;				
			};
									
			$response->transaccion = "1";
			$response->mensaje = "Ok";
			
			echo json_encode($response);
			
			break;	
		case 'consultarXid':

			$pNidEmpresa = $user->nidEmpresa;
			$pNidServicio = filter_input(INPUT_POST, 'pNidServicio');
			
			$stmt = $conn->prepare("call servicios_consultasxId($pNidEmpresa,$pNidServicio)");			
			$stmt->execute();			
						
			$response = new root_response;
			while($row = $stmt->fetch(PDO::FETCH_ASSOC)) 
			{ 
				$respuesta = new core_servicio();
				$respuesta->nid = $row["IdServicio"];
				$respuesta->nidEmpresa = $row["IdEmpresa"];    
				$respuesta->codigo = $row["IdServicio"];	
				$respuesta->importador = $row["Importador"];
				$respuesta->nidCliente = $row["IdCliente"];
				$respuesta->cliente = $row["NomCliente"];	
				$respuesta->personalCliente = $row["NomCliPersonal"];
				$respuesta->patente = $row["Patente"];				
				$respuesta->fiscal = $row["PersonaAduana"];
				$respuesta->tipoCarga = $row["NomTipoCarga"];
				$respuesta->imo = $row["DESCIMO"];	
				$respuesta->dimencion = $row["NomDimension"];	
				$respuesta->contenedor = $row["Contenedor"];	
				$respuesta->selloOriginal = $row["SelloOriginal"];	
				$respuesta->selloNuevo = $row["SelloNuevo"];
				$respuesta->cantidad = $row["Cantidad"];	
				$respuesta->peso = $row["Peso"];
				$respuesta->tipoServicio = $row["NomTipoServicio"];
				$respuesta->cantidadDesconsolidar = $row["NomDesMedida"];
				$respuesta->notasCantidad = $row["notasCantidad"];	
				$respuesta->utilizaCanino = $row["USACANINO"];	
				$respuesta->notasCarga = $row["notasCarga"];	
				$respuesta->revisionIntrusiva = $row["USAREVINTRUSA"];	
				$respuesta->muestreo = $row["USAMUESTREO"];		
				$respuesta->observacionesMuestreo = $row["ObservacionesMuestreo"];
				$respuesta->obsDesconsol = $row["obsDesconsol"];
				$respuesta->clienteFacturar = $row["ClienteFacturar"];
				$respuesta->montoServicio = $row["MontoServicio"];
				$respuesta->montoMaterial = $row["MontoMaterial"];
				$respuesta->montoTotal = $row["MontoTotal"];
				$respuesta->fechaRegistro = $row["FechaCaptura"];
				$respuesta->estado = $row["DESCESTADO"];
				
	
				$response->datos[] = $respuesta;				
			};
						
			$response->transaccion = "1";
			$response->mensaje = "Ok";
			
			echo json_encode($response);
			
			break;
		case 'consultarPedimentos':

			$pNidEmpresa = $user->nidEmpresa;
			//$pNidEmpresa = 1;
			$pNidServicio = filter_input(INPUT_POST, 'pNidServicio');
			
			$stmt = $conn->prepare("call servicios_pedimentos_consulta($pNidEmpresa,$pNidServicio)");			
			$stmt->execute();			
						
			$response = new root_response;
			while($row = $stmt->fetch(PDO::FETCH_ASSOC)) 
			{ 
				$respuesta = new core_servicio_pedimentos();
				$respuesta->nid = $row["IdSerPedi"];
				$respuesta->pedimento = $row["Pedimento"];    
				$respuesta->referencia = $row["Referencia"];			
	
				$response->datos[] = $respuesta;				
			};
						
			$response->transaccion = "1";
			$response->mensaje = "Ok";
			
			echo json_encode($response);
			
			break;
		case 'consultarMaterial':

			$pNidEmpresa = $user->nidEmpresa;
			$pNidServicio = filter_input(INPUT_POST, 'pNidServicio');
			
			$stmt = $conn->prepare("call servicios_material_consulta($pNidEmpresa,$pNidServicio)");			
			$stmt->execute();			
						
			$response = new root_response;
			while($row = $stmt->fetch(PDO::FETCH_ASSOC)) 
			{ 
				$respuesta = new core_servicio_materiales();
				$respuesta->nid = $row["IdSerMaterial"];
				$respuesta->material = $row["DescMaterial"];    
				$respuesta->cantidad = $row["Cantidad"];			
				$respuesta->unm = $row["DescUnidad"];
	
				$response->datos[] = $respuesta;				
			};
						
			$response->transaccion = "1";
			$response->mensaje = "Ok";
			
			echo json_encode($response);
			
			break;

		case 'consultarPersonal':

			$pNidEmpresa = $user->nidEmpresa;
			$pNidServicio = filter_input(INPUT_POST, 'pNidServicio');
			
			$stmt = $conn->prepare("call servicios_personal_moversa_consulta($pNidEmpresa,$pNidServicio)");			
			$stmt->execute();			
						
			$response = new root_response;
			while($row = $stmt->fetch(PDO::FETCH_ASSOC)) 
			{ 
				$respuesta = new core_servicio_materiales();
				$respuesta->nid = $row["IdSerPersonal"];
				$respuesta->nombre = $row["NomEmpleado"];    
	
				$response->datos[] = $respuesta;				
			};
						
			$response->transaccion = "1";
			$response->mensaje = "Ok";
			
			echo json_encode($response);
			
			break;
		case 'consultarBitacora':

			$pNidEmpresa = $user->nidEmpresa;
			$pNidServicio = filter_input(INPUT_POST, 'pNidServicio');
			
			$stmt = $conn->prepare("call servicios_eventos_consulta($pNidEmpresa,$pNidServicio)");			
			$stmt->execute();			
						
			$response = new root_response;
			while($row = $stmt->fetch(PDO::FETCH_ASSOC)) 
			{ 
				$respuesta = new core_servicio_materiales();
				$respuesta->nid = $row["IdSerEvento"];
				$respuesta->descripcion = $row["NomTipoEvento"];
				$respuesta->fecha = $row["Fecha_Hora"];				
	
				$response->datos[] = $respuesta;				
			};
						
			$response->transaccion = "1";
			$response->mensaje = "Ok";
			
			echo json_encode($response);
			
			break;	
		case 'consultaEIR':

			$pNidEmpresa = $user->nidEmpresa;
			$pNidServicio = filter_input(INPUT_POST, 'pNidServicio');
			
			$stmt = $conn->prepare("call servicios_eyr_consulta($pNidEmpresa,$pNidServicio)");			
			$stmt->execute();			
						
			$response = new root_response;
			while($row = $stmt->fetch(PDO::FETCH_ASSOC)) 
			{ 
				$respuesta = new core_servicio_EIR();
				$respuesta->nid = $row["Ideyr"];
				$respuesta->nidLado = $row["IdLado"];
				$respuesta->estado = $row["DescDano"];				
	
				$response->datos[] = $respuesta;				
			};
						
			$response->transaccion = "1";
			$response->mensaje = "Ok";
			
			echo json_encode($response);
			
			break;	
		case 'validaToken':
		
			$pToken = filter_input(INPUT_POST, 'pToken');
			
			$stmt = $conn->prepare("call clientes_consultaxToken('$pToken')");			
			$stmt->execute();	

			$numRegistros = $stmt->rowCount();			
						
			$response = new root_response;
			
			if($numRegistros > 0){
				while($row = $stmt->fetch(PDO::FETCH_ASSOC)) 
				{ 
					$respuesta = new core_usuario();
					$respuesta->nidCliente = $row["Id"];
					$respuesta->nidEmpresa = $row["IdEmpresa"];		
		
					$response->datos[] = $respuesta;				
				};
							
				$response->transaccion = "1";
				$response->mensaje = "Ok";				
			}else{
				$response->transaccion = "0";
				$response->mensaje = "Token incorrecto...!!!";	
			}
			
			echo json_encode($response);
			
			break;
		case 'consultaFechaHoraBD':
		
			$stmt = $conn->prepare("call fechaHoraBD");			
			$stmt->execute();	
			
			$response = new root_response;
	
			while($row = $stmt->fetch(PDO::FETCH_ASSOC)) 
			{ 
				$respuesta = new core_FechaHora_BD();
				$respuesta->fechaHora = $row["fecha_hora"];
	
				$response->datos[] = $respuesta;				
			};
						
			$response->transaccion = "1";
			$response->mensaje = "Ok";				
			
			echo json_encode($response);
			
			break;
			
		case 'eliminarMaterialServicio':
		    
			$pNidEmpresa = $user->nidEmpresa;
			$pNidServicio = filter_input(INPUT_POST, 'pNidServicio');
			$pNidMaterial = filter_input(INPUT_POST, 'pNidMaterial');
					
			// get settings
			$stmt = $conn->prepare("call servicios_material_eliminarxId($pNidEmpresa,$pNidMaterial,$pNidServicio)");
			$stmt->execute();			
						
			$row = $stmt->fetch(PDO::FETCH_ASSOC);
			$transaccion = $row['Transaccion'];
			$mensaje = $row['Mensaje'];
			
			$response = new root_response;
			$response->transaccion = $transaccion;
			$response->mensaje = $mensaje;
			
			echo json_encode($response);
			
			break;	
			
		case 'actualizaContenedor':
		    
			$pNidEmpresa = $user->nidEmpresa;
			$pNidServicio = filter_input(INPUT_POST, 'pNidServicio');
			$pNidTipoContenedor = filter_input(INPUT_POST, 'pTipoContenedor');
			$pContenedor = filter_input(INPUT_POST, 'pContenedor');
			$pSelloOriginal = filter_input(INPUT_POST, 'pSelloOriginal');
			$pSelloNuevo = filter_input(INPUT_POST, 'pSelloNuevo');
					
			// get settings
			$stmt = $conn->prepare("call servicios_actualizar_Contenedor($pNidEmpresa,$pNidServicio,$pNidTipoContenedor,'$pContenedor','$pSelloOriginal','$pSelloNuevo')");
			$stmt->execute();			
						
			$row = $stmt->fetch(PDO::FETCH_ASSOC);
			$transaccion = $row['Transaccion'];
			$mensaje = $row['Mensaje'];
			
			$response = new root_response;
			$response->transaccion = $transaccion;
			$response->mensaje = $mensaje;
			
			echo json_encode($response);
			
			break;				
		case 'actualizaGenerales':
		    
			$pNidEmpresa = $user->nidEmpresa;
			$pNidServicio = filter_input(INPUT_POST, 'pNidServicio');
			$pNidCliente = filter_input(INPUT_POST, 'pNidCliente');
			$pNidPersonal = filter_input(INPUT_POST, 'pNidPersonal');
					
			// get settings
			$stmt = $conn->prepare("call servicios_actualizar_ClienteDependiente($pNidEmpresa,$pNidServicio,$pNidCliente,$pNidPersonal)");
			$stmt->execute();			
						
			$row = $stmt->fetch(PDO::FETCH_ASSOC);
			$transaccion = $row['Transaccion'];
			$mensaje = $row['Mensaje'];
			
			$response = new root_response;
			$response->transaccion = $transaccion;
			$response->mensaje = $mensaje;
			
			echo json_encode($response);
			
			break;		
		case 'recalculaTarifas':
		    
			$pNidEmpresa = $user->nidEmpresa;
			$pNidServicio = filter_input(INPUT_POST, 'pNidServicio');
			$pClienteFacturar = filter_input(INPUT_POST, 'pClienteFacturar');
					
			// get settings
			$stmt = $conn->prepare("call servicios_calculo_tarifas($pNidEmpresa,$pNidServicio,'$pClienteFacturar')");
			$stmt->execute();			
						
			$row = $stmt->fetch(PDO::FETCH_ASSOC);
			$transaccion = $row['Transaccion'];
			$mensaje = $row['Mensaje'];
			
			$response = new root_response;
			$response->transaccion = $transaccion;
			$response->mensaje = $mensaje;
			
			echo json_encode($response);
			
			break;	
		case 'complementoPagoInsertar':

				$pNidEmpresa = 1;
				$pNidSistema = 2;
				$pNidCliente = filter_input(INPUT_POST, 'pNidCliente');
				$pMonto = filter_input(INPUT_POST, 'pMonto');
				$pFechaPago = filter_input(INPUT_POST, 'pFechaPago');
				$pNumOperacion = filter_input(INPUT_POST, 'pNumOperacion');
				$pBancoOrdentante = filter_input(INPUT_POST, 'pBancoOrdentante');
				$pFormasPago = filter_input(INPUT_POST, 'pFormasPago');
				$pRfcOrdenante = filter_input(INPUT_POST, 'pRfcOrdenante');
				$pCuentaOrdenante = filter_input(INPUT_POST, 'pCuentaOrdenante');
				$pRfcBeneficiario = filter_input(INPUT_POST, 'pRfcBeneficiario');
				$pCuentaBeneficiario = filter_input(INPUT_POST, 'pCuentaBeneficiario');
				$pHoraPago = "00:00";
				$pTipoCadPago = "";
				$pCertPago = "";
				$pCadPago = "";
				$pSelloPago = "";
				
				// get settings
				$stmt = $conn->prepare("call setivera_facturacion.complementos_pago_insertar('$pNidEmpresa','$pNidSistema','$pNidCliente','$pMonto','$pRfcOrdenante','$pBancoOrdentante','$pCuentaOrdenante','$pNumOperacion','$pRfcBeneficiario','$pCuentaBeneficiario','$pFechaPago','$pHoraPago','$pTipoCadPago','$pCertPago','$pCadPago','$pSelloPago','$pFormasPago')");
				$stmt->execute();			
							
				$row = $stmt->fetch(PDO::FETCH_ASSOC);
				$transaccion = $row['Transaccion'];
				$mensaje = $row['Mensaje'];
				$vNid = $row['NidComplemento'];
				
				$response = new root_response;
				$response->transaccion = $transaccion;
				$response->mensaje = $mensaje;
				$response->nid = $vNid;
				$response->datos = "";
				
				echo json_encode($response);
				
				break;	
				
			case 'complementoPagoInsertarDetalle':

				$pNidEmpresa = 1;
				$pNidSistema = 2;
				$pNidComplemento = filter_input(INPUT_POST, 'pNidComplemento');
				$pNidFactura = filter_input(INPUT_POST, 'pNidFactura');
				$pUuid = filter_input(INPUT_POST, 'pUuid');
				
				// get settings
				$stmt = $conn->prepare("call setivera_facturacion.complementos_pagos_detalle_insertar($pNidEmpresa,$pNidSistema,$pNidComplemento,$pNidFactura,'$pUuid')");
				$stmt->execute();			
							
				$row = $stmt->fetch(PDO::FETCH_ASSOC);
				$transaccion = $row['Transaccion'];
				$mensaje = $row['Mensaje'];
				
				$response = new root_response;
				$response->transaccion = $transaccion;
				$response->mensaje = $mensaje;
				
				echo json_encode($response);
				
				break;			
		default:
			echo json_encode("NO SELECCIONO UN METODO");
			break;
	}
        
?>
