<?php  
	include "conexion.php";
	include "insertar_log.php";

	$secuencia = $_GET['secuencia'];
	$id_aplicacion = $_GET['id_aplicacion'];
	//$secuencia = "1912";
	if(isset($_GET['getnet'])) {
	    $getnet_ticket = $_GET['getnet'];
	} else {
	    $getnet_ticket = false;
	}
	$id_transaccion=0;
	$id_venta=0;
	$fecha_actual = "";
	$formato_ticket_gn = 0;
	
	if ($getnet_ticket) {
		$formato_ticket_gn = 4;
	} else {
		$formato_ticket_gn = 1;
	}

	$control =0;
	$array_fp= array();
	
	$datos = " Ingresa a obtener_ticket_transaccion_pg con secuencia=".$secuencia;	
	insertarLog($datos,$id_aplicacion);

	$sql = "SELECT ";
	$sql .="id_equipo_clase, ";
	$sql .="id_equipo, ";
	$sql .="id_comando, ";
	$sql .="res_dato, ";
	$sql .="estado ";
	$sql .="from ";
	$sql .="comandos ";
	$sql .="where ";
	$sql .="id_aplicacion= ".$id_aplicacion." and ";
	$sql .="id_secuencia= ".$secuencia." ";
	//$sql .="estado = 2 ";

	$resultado = $conexion->query($sql);

	
    if(!$resultado) 
    {
    	$datos = " Error al consultar comando--- ".$secuencia;	
		insertarLog($datos,$id_aplicacion);
        echo response(2,"Error al consultar comando","");
        return;
    }
	
    while ($row=$resultado->fetch_assoc())
    {
    	$_id_equipo_clase = $row['id_equipo_clase'];
        $_id_equipo = $row['id_equipo'];
        $_id_comando = $row['id_comando'];
        $_dato = $row['res_dato'];
        $estado = $row['estado'];
        $control = 1;
    }

    $resultado->free();

    if($control==0)
    {
    	$datos = " No existe comando--- ".$secuencia;	
		insertarLog($datos,$id_aplicacion);
    	echo response(2,"No existe ","");
        return;

    }

    if($control==1)
    {
    	if($estado==0 || $estado==1)
    	{
    		$datos = " En proceso comando--- ".$secuencia;	
			insertarLog($datos,$id_aplicacion);
    		echo response(1,"En proceso","");
        	return;
    	}

    	
    	$sql = "delete from ";
	    $sql .= "gaslight.comandos ";
	    $sql .= "where ";
	    $sql .= "id_aplicacion = ".$id_aplicacion." and ";
	    $sql .= "id_secuencia = ".$secuencia." ";

	     $resultado = $conexion->query($sql); 

	    if($resultado == false)
	    {
	    	$datos = " Error al eliminar comando--- ".$secuencia;	
			insertarLog($datos,$id_aplicacion);
	        echo response(2,"Error al eliminar comando","");
	        return;
	    }

	    //$datos = " Se borro comando ---".$secuencia;	
		//insertarLog($datos,$id_aplicacion);
	    	
	

	    $arreglo = explode("|", $_dato);

	    if($arreglo[0]==0)
	    {
	    	$id_transaccion = $arreglo[1];

	    	$sql = "select ";
	    	$sql .= "id_venta ";
	    	$sql .= "from ";
	    	$sql .= "transacciones_detalle ";
	    	$sql .= "where ";
	    	$sql .= "id_transaccion=".$id_transaccion." ";
	    	$sql .= "and id_venta!=0 ";

	    	$resultado = $conexion->query($sql);

		    if(!$resultado) 
		    {
		    	$datos = " Error al consultar venta--- ".$secuencia;	
				insertarLog($datos,$id_aplicacion);
		        echo response(2,"Error al consultar venta","");
		        return;
		    }
			
		    while ($row=$resultado->fetch_assoc())
		    {
		    	$id_venta = $row['id_venta'];
		        
		    }
		    $datos = " Se selecciona venta ".$id_venta." --- ".$secuencia;	
				insertarLog($datos,$id_aplicacion);
		    $resultado->free();

	    }
	    else
	    {
	    	$datos = " Error codigo--- ".$arreglo[0];	
				insertarLog($datos,$id_aplicacion);
	    	echo response(2,"Error codigo ".$arreglo[0],$arreglo[0]);
	        return;
	    }

	    

    }

    if($id_transaccion==0)
    {
    	$datos = " Error no existe transaccion--- ".$secuencia;	
				insertarLog($datos,$id_aplicacion);
    	echo response(2,"Error no existe transaccion","");
	    return;

    }


	$array =   array();

	$sql = "select ";
	$sql .= "e.id_estacion, ";
	$sql .= "e.nombre_comercial, ";
	$sql .= "cat.descripcion as tipo,";
	$sql .= "e.tipo as tipo_e,";
	$sql .= "e.rfc,";
	$sql .= "e.numeroCRE ";
	$sql .= "from ";
	$sql .= "estacion e ";
	$sql .= "left join cat_tipo_estacion cat on e.tipo=cat.tipo ";

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	if($fila = $resultado->fetch_assoc())
	{
		$estacion= $fila;
	}

	$venta_ticket["estacion"]=$estacion;

	$sentencia->close();

	$sql = "select ";
	$sql .= "t.id_transaccion, ";
	$sql .= "t.id_cliente, ";
	$sql .= "c.razon_social, ";
	$sql .= "if(c.tipo=1,'DÉBITO',if(c.tipo=2,'CRÉDITO',if(c.tipo=100,'CONSIGNACIÓN','CONTADO'))) tipo_cliente, ";
	$sql .= "ifnull(t.impreso,0) impreso,";
	$sql .= "ifnull(t.forma_pago,'Por definir') forma_pago, ";
	$sql .= "abs(t.monto) monto, ";
	$sql .= "t.id_vehiculo,";
	$sql .= "ifnull(v.placa,'') placa,";
	$sql .= "ifnull(v.modelo,'') modelo,";
	$sql .= "ifnull(v.numero_economico,'') numero_economico,";
	$sql .= "ifnull(v.conductor,'') conductor,";
	$sql .= "t.id_tag,";
	$sql .= "t.aux_1 referencia, ";
	$sql .= "t.odometro, ";
	$sql .= "ifnull(t.forma_pago,'99') forma_pago, ";
	$sql .= "t.banco, ";
	$sql .= "t.cuenta, ";
	$sql .= "ifnull(t.id_transaccion_emp_rem,0) id_transaccion_emp_rem, ";
	$sql .= "date_format(t.fecha,'%Y/%m/%d %H:%i:%s') fecha_transaccion, ";
	$sql .= "t.id_turno, ";
	$sql .= "c.muestra_saldo_ticket, ";
	$sql .= "c.saldo ";
	$sql .= "from ";
	$sql .= "transacciones t ";
	$sql .= "left join clientes c on (c.id_cliente = t.id_cliente) ";
	$sql .= "left join vehiculos v on (v.id_vehiculo=t.id_vehiculo) ";
	$sql .= "where ";
	$sql .= "t.id_transaccion = ".$id_transaccion;

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	if($fila = $resultado->fetch_assoc())
	{
		$transaccion= $fila;
	}

	$venta_ticket["transaccion"]=$transaccion;

	$sentencia->close();

	$forma_pago = $venta_ticket["transaccion"]["forma_pago"];

	$sql = "select ";
	$sql .= "descripcion ";
	$sql .= "from ";
	$sql .= "cat_formapago ";
	$sql .= "where ";
	$sql .= "id='".$forma_pago."' ";
	

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	if($fila = $resultado->fetch_assoc())
	{
		$forma_pago = $fila["descripcion"];
	}

	$venta_ticket["transaccion"]["forma_pago"] = $forma_pago;

	//$datos = " Se obtuvo la informacion de la transaccion--- ".$secuencia;	
				//insertarLog($datos,$id_aplicacion);

	$sentencia->close();

	if($venta_ticket["transaccion"]["id_transaccion_emp_rem"]!="0")
	{
		$nombre_er="";

		$sql = "select ";
		$sql .= "er.nombre ";
		$sql .= "from ";
		$sql .= "transacciones_emp_rem t ";
		$sql .= "left join empresas_reembolso er on (t.id_empresa_reembolso=er.id_empresa_reembolso) ";
		$sql .= "where ";
		$sql .= "t.id_transaccion=".$venta_ticket["transaccion"]["id_transaccion_emp_rem"];
		

		$sentencia = $conexion->prepare($sql);

		$sentencia->execute();

		$resultado = $sentencia->get_result();

		if($fila = $resultado->fetch_assoc())
		{
			$nombre_er = $fila["nombre"];
		}

		$venta_ticket["transaccion"]["nombre_empresa_reembolso"] = $nombre_er;
		

	}
	else
	{
		$venta_ticket["transaccion"]["nombre_empresa_reembolso"] = "";
	}
	$datos = " Se obtuvo nombre_empresa_reembolso ".$venta_ticket["transaccion"]["nombre_empresa_reembolso"]."--- ".$secuencia;	
				insertarLog($datos,$id_aplicacion);

	$id_pg=0;
	$sql = "select ";
	$sql .= "id_cliente ";
	$sql .= "from ";
	$sql .= "clientes ";
	$sql .= "where ";
	$sql .= "publico_general=1";

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	if($fila = $resultado->fetch_assoc())
	{
		$id_pg = $fila["id_cliente"];
	}

	$venta_ticket["transaccion"]["id_pg"] = $id_pg;

	$sentencia ->close();

	$sql = "select ";
	$sql .= "date_format(now(),'%Y/%m/%d %H:%i:%s') fecha_actual ";

	$resultado = $conexion->query($sql);

    while ($row=$resultado->fetch_assoc())
    {
    	$fecha_actual = $row['fecha_actual'];
    }

    $resultado->free();

	$sql = "select ";
	$sql .= "date_format(fecha_venta,'%Y/%m/%d %H:%i:%s') fecha_venta, ";
	$sql .= "date_format(now(),'%Y/%m/%d %H:%i:%s') fecha_actual, ";
	$sql .= "id_turno,";
	$sql .= "id_isla, ";
	$sql .= "id_bomba, ";
	$sql .= "id_posicion, ";
	$sql .= "monto, ";
	$sql .= "id_venta ";
	$sql .= "from ";
	$sql .= "ventas ";
	$sql .= "where ";
	$sql .= "id_venta = ".$id_venta;

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	$venta['fecha_venta']=$venta_ticket["transaccion"]["fecha_transaccion"];
	$venta['fecha_actual']=$fecha_actual;
	$venta['id_turno']=$venta_ticket["transaccion"]["id_turno"];
	$venta['id_isla']=0;
	$venta['id_bomba']=0;
	$venta['id_posicion']=0;
	$venta['id_venta']=0;
	if($fila = $resultado->fetch_assoc())
	{
		$venta= $fila;
	}

	$venta_ticket["venta"]=$venta;



	$sentencia->close();

/////FORMAS DE PAGO

	$sql = "select ";
	$sql .= "forma_pago, ";
	$sql .= "monto, ";
	$sql .= "ifnull(banco,'') banco, ";
	$sql .= "ifnull(cuenta,'') cuenta, ";
	$sql .= "id_transaccion_emp_rem, ";
	$sql .= "aid, ";
	$sql .= "autorizacion, ";
	$sql .= "card_brand, ";
	$sql .= "referencia, ";
	$sql .= "arq ";
	$sql .= "from ";
	$sql .= "transacciones_forma_pago_detalle ";
	$sql .= "where ";
	$sql .= "id_transaccion = ".$id_transaccion." ";
	$sql .= " and estado = 0 ";
	$sql .= " order by monto desc ";

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();
	$cont=0;

	while($fila = $resultado->fetch_assoc())
	{
		$lista_fp['forma_pago'] = $fila['forma_pago'];
		$lista_fp['monto'] = $fila['monto'];
		$lista_fp['banco'] = $fila['banco'];
		$lista_fp['cuenta'] = $fila['cuenta'];
		
		$lista_fp['aid'] = $fila['aid'];
		$lista_fp['autorizacion'] = $fila['autorizacion'];
		$lista_fp['card_brand'] = $fila['card_brand'];
		$lista_fp['arq'] = $fila['arq'];
		$lista_fp['referencia'] = $fila['referencia'];

		if($fila['id_transaccion_emp_rem']!=0)
		{
			$sql2 = "select ";
			$sql2 .= "er.nombre ";
			$sql2 .= "from ";
			$sql2 .= "transacciones_emp_rem ter ";
			$sql2 .= "left join empresas_reembolso er on er.id_empresa_reembolso=ter.id_empresa_reembolso ";
			$sql2 .= "where ";
			$sql2 .= "ter.id_transaccion= ".$fila['id_transaccion_emp_rem'];

			$sentencia2 = $conexion->prepare($sql2);

			$sentencia2->execute();

			$resultado2 = $sentencia2->get_result();			

			while($fila2 = $resultado2->fetch_assoc())
			{
				$lista_fp['emp_rem'] = $fila2['nombre'];
			}
			$sentencia2->close();
		}else{
			$lista_fp['emp_rem'] ="";
		}

		
		$array_fp[$cont] = $lista_fp;
		$cont++;
	}

	$venta_ticket["formas_pago_list"]=$array_fp;

	$sentencia->close();

	//$datos = " Se obtuvo formas de forma_pago--- ".$secuencia;	
				//insertarLog($datos,$id_aplicacion);
////////////////

	$sql = "select ";
	$sql .= "p.id_producto, ";
	$sql .= "p.nombre, ";
	$sql .= "td.volumen,";
	$sql .= "td.precio, ";
	$sql .= "td.monto, ";
	$sql .= "td.id_isla, ";
	$sql .= "p.clave_unidad ";
	$sql .= "from ";
	$sql .= "transacciones_detalle td ";
	$sql .= "left join productos p on p.id_producto=td.id_producto ";
	$sql .= "where ";
	$sql .= "td.id_transaccion = ".$id_transaccion;

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();
	$cont=0;

	while($fila = $resultado->fetch_assoc())
	{
		$detalle['id_producto'] = $fila['id_producto'];
		$detalle['nombre'] = $fila['nombre'];
		$detalle['volumen'] = $fila['volumen'];
		$detalle['precio'] = $fila['precio'];
		$detalle['monto'] = $fila['monto'];
		$detalle['clave_unidad'] = $fila['clave_unidad'];
		$venta_ticket["venta"]["id_isla"] = $fila['id_isla'];
		$array[$cont] = $detalle;
		$cont++;
	}

	$venta_ticket["detalles"]=$array;

	$sentencia->close();

	$subtotal=0;
	$iva=0;
	$tot =0;


	for($i=0;$i<sizeof($array);$i++)
	{
		$sel_prod_id_producto = $array[$i]["id_producto"];
		$sel_prod_cantidad = $array[$i]["volumen"];
		$sel_prod_total = $array[$i]["monto"];
		$sel_prod_precio_con_iva = $array[$i]["precio"];
		$tot = $tot + $array[$i]["monto"];


		$sql = "select ";
        $sql .= "ieps, ";
        $sql .= "clase, ";
        $sql .= "iva ";
        $sql .= "from ";
        $sql .= "productos ";
        $sql .= "where ";
        $sql .= "id_producto=" . $sel_prod_id_producto;

        $sentencia = $conexion->prepare($sql);

		$sentencia->execute();

		$resultado = $sentencia->get_result();

		$sel_prod_clase = 0;
        $sel_prod_factor_iva = 0;

        $sel_prod_precio_sin_ieps = 0;
        $sel_prod_precio_sin_iva = 0;
        $sel_prod_subtotal = 0;
        $sel_prod_iva = 0;
        $sel_prod_ieps = 0;


		while($fila = $resultado->fetch_assoc())
		{
			$sel_prod_factor_ieps = $fila["ieps"];
            $sel_prod_clase = $fila["clase"];
            $sel_prod_factor_iva = $fila["iva"];
        }

        if ($sel_prod_clase != 1) $sel_prod_factor_ieps = 0;

        $sel_prod_cantidad = $sel_prod_total / $sel_prod_precio_con_iva;

        $sel_prod_precio_sin_ieps = ($sel_prod_precio_con_iva - $sel_prod_factor_ieps) / (1.0 + $sel_prod_factor_iva);
        $sel_prod_precio_sin_iva = $sel_prod_precio_sin_ieps + $sel_prod_factor_ieps;


        $sel_prod_subtotal = $sel_prod_cantidad * $sel_prod_precio_sin_iva;
        $sel_prod_iva = $sel_prod_cantidad * $sel_prod_precio_sin_ieps * $sel_prod_factor_iva;
        $sel_prod_ieps = $sel_prod_clase == 1 && $sel_prod_factor_iva > 0 ? $sel_prod_cantidad * $sel_prod_factor_ieps : 0;

        $subtotal += $sel_prod_subtotal;
        $iva += $sel_prod_iva;
		

		$sentencia->close();
	}

	$totales["iva"]= round($iva,2);
	$totales["subtotal"] =round($subtotal,2); 
	$totales["total"] = $tot;

	$venta_ticket["totales"]=$totales;

	$array=array();

	$sql = "select ";
	$sql .= "id_linea,";
	$sql .= "linea ";
	$sql .= "from ";
	$sql .= "ticket_formato ";
	$sql .= "where ";
	$sql .= "id_tipo=1 ";
	$sql .= "and id_formato=".$formato_ticket_gn." ";
	$sql .= "and ";
	$sql .= "convert(id_linea,SIGNED)<9 ";
	$sql .= "and habilitado=1 ";
	$sql .= "order by convert(id_linea,SIGNED) ";

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();
	$cont=0;

	while($fila = $resultado->fetch_assoc())
	{
		$linea['id_linea'] = $fila['id_linea'];
		$linea['linea'] = $fila['linea'];
		$array[$cont] = $linea;
		$cont++;
	}

	$venta_ticket["encabezado"]=$array;

	$sentencia->close();

	$array=array();

	$sql = "select ";
	$sql .= "id_linea,";
	$sql .= "linea ";
	$sql .= "from ";
	$sql .= "ticket_formato ";
	$sql .= "where ";
	$sql .= "id_tipo=1 ";
	$sql .= "and id_formato=".$formato_ticket_gn." ";
	$sql .= "and ";
	$sql .= "convert(id_linea,SIGNED)>8 ";
	$sql .= "and habilitado=1 ";
	$sql .= "order by convert(id_linea,SIGNED) ";

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();
	$cont=0;

	while($fila = $resultado->fetch_assoc())
	{
		$linea['id_linea'] = $fila['id_linea'];
		$linea['linea'] = $fila['linea'];
		$array[$cont] = $linea;
		$cont++;
	}

	$venta_ticket["pie"]=$array;

	$sentencia->close();
	
	$datos = " Se obtuvo detalles de la transaccion--- ".$secuencia;	
				insertarLog($datos,$id_aplicacion);
	

	$datos = " Termina proceso obtener_ticket_transaccion_pg";	
		insertarLog($datos,$id_aplicacion);	
		
	echo response(0,"",json_encode($venta_ticket));


	function response($estatus,$estatus_mensaje,$respuesta){
		header("HTTP/1.1".$estatus);

		$response["estatus"]=$estatus;
		$response["estatus_mensaje"]=$estatus_mensaje;
		$response["respuesta"]=$respuesta;
		
		$json_response = json_encode($response, JSON_UNESCAPED_UNICODE);

		echo $json_response;

	}

	 
	

?>

