<?php  
	include "conexion.php";
	include "insertar_log.php";
	$id_aplicacion = "0";

	$datos = " Ingresa a obtener_preliquidacion ";	
		insertarLog($datos,$id_aplicacion);
		
	$usuario=$_GET['usuario'];

	$turno=0;
	$id_empleado=0;
	$nombre_empleado="";
	$estacion="";
	$array_bombas=array();
	$array_islas = array();
	$array_datos = array();

	$cadena_bombas = "";
	$cadena_islas = "";

	$fecha_inicio="";
	$fecha_fin="";
	$fecha_imp="";

	$total_turnos_remotos=0;
	$total_turnos_perifericos=0;
	$total_turnos_bombas=0;
	$total_turnos_clientes=0;
	$total_turnos_gastos=0;
	$total_turnos_reembolso=0;
	$total_turnos_valores=0;
	$total_vol_jarreos=0;
	$total_monto_jarreos=0;

	$perifericos_ventas=0;
	$perifericos_inventario=0;
	$perifericos_importe=0;
	$BombasLectura=0;

	$sql = "select ";
	$sql .= "id_empleado ";
	$sql .= "from ";
	$sql .= "usuarios ";
	$sql .= "where ";
	$sql .= "id_usuario='".$usuario."' ";

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	while($fila = $resultado->fetch_assoc())
	{
		$id_empleado= $fila['id_empleado'];
	}

	$sentencia->close();

	$datos = " Se obtuvo id_empleado del usuario= ".$usuario;	
		insertarLog($datos,$id_aplicacion);

	$sql = "select ";
	$sql .= "valor ";
	$sql .= "from ";
	$sql .= "parametros ";
	$sql .= "where ";
	$sql .= "id_parametro='perifericos_ventas' ";

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	while($fila = $resultado->fetch_assoc())
	{
		$perifericos_ventas= $fila['valor'];
	}

	$sentencia->close();

	$datos = " Se obtuvo valor de perifericos_ventas= ".$perifericos_ventas;	
		insertarLog($datos,$id_aplicacion);

	$sql = "select ";
	$sql .= "valor ";
	$sql .= "from ";
	$sql .= "parametros ";
	$sql .= "where ";
	$sql .= "id_parametro='perifericos_inventario' ";

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	while($fila = $resultado->fetch_assoc())
	{
		$perifericos_inventario= $fila['valor'];
	}

	$sentencia->close();

	$datos = " Se obtuvo valor de perifericos_inventario= ".$perifericos_inventario;	
		insertarLog($datos,$id_aplicacion);

	$sql = "select ";
	$sql .= "valor ";
	$sql .= "from ";
	$sql .= "parametros ";
	$sql .= "where ";
	$sql .= "id_parametro='perifericos_importe' ";

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	while($fila = $resultado->fetch_assoc())
	{
		$perifericos_importe= $fila['valor'];
	}

	$sentencia->close();

	$datos = " Se obtuvo valor de perifericos_importe= ".$perifericos_importe;	
	insertarLog($datos,$id_aplicacion);


	$sql = "select ";
	$sql .= "valor ";
	$sql .= "from ";
	$sql .= "parametros ";
	$sql .= "where ";
	$sql .= "id_parametro='BombasLectura' ";

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	while($fila = $resultado->fetch_assoc())
	{
		$BombasLectura= $fila['valor'];
	}

	$sentencia->close();

	$datos = " Se obtuvo valor de BombasLectura= ".$BombasLectura;	
	insertarLog($datos,$id_aplicacion);

	
	$sql = "select ";
    $sql .= "t.id_turno, ";
    $sql .= "tb.empleado, ";
    $sql .= "now() fecha ";
    $sql .= "from ";
    $sql .= "turnos_bombas tb  ";
    $sql .= "left join turnos t on (t.id_turno=tb.id_turno) ";
    $sql .= "where ";
    $sql .= "t.estado = 0 and ";
    $sql .= "tb.empleado=" . $id_empleado . " ";
    $sql .= "order by t.id_turno desc limit 1 ";

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	while($fila = $resultado->fetch_assoc())
	{
		$turno= $fila['id_turno'];
		$id_empleado= $fila['empleado'];
		$fecha_imp= $fila['fecha'];
	}

	$sentencia->close();

	$datos = " Se obtuvo informacion del empleado= ".$id_empleado;	
	insertarLog($datos,$id_aplicacion);

	if($id_empleado==0)
	{
		$datos = " Error empleado no encontrado= ".$id_empleado;	
		insertarLog($datos,$id_aplicacion);
		echo response(1,"Error empleado no encontrado","");
		return;
	}

	$sql = "select ";
	$sql .= "concat(nombre, ' ',apellidoPaterno,' ',apellidoMaterno) nombre ";
	$sql .= "from ";
	$sql .= "empleados ";
	$sql .= "where ";
	$sql .= "idEmpleado=".$id_empleado." ";
	
	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	while($fila = $resultado->fetch_assoc())
	{
		$nombre_empleado= $fila['nombre'];
	}

	$sentencia->close();

	if($nombre_empleado=="")
	{
		$datos = " Error Nombre del empleado vacio... id_empleado= ".$id_empleado;	
		insertarLog($datos,$id_aplicacion);
		echo response(1,"Nombre del empleado vacio","");
		return;
	}
	

	$sql = "select ";
	$sql .= "e.id_estacion, ";
	$sql .= "cat.descripcion tipo, ";
	$sql .= "e.razon_social, ";
	$sql .= "e.nombre_comercial, ";
	$sql .= "e.rfc, ";
	$sql .= "e.numeroCRE ";
	$sql .= "from ";
	$sql .= "estacion e ";
	$sql .= "left join cat_tipo_estacion cat on cat.tipo=e.tipo ";
	
	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	while($fila = $resultado->fetch_assoc())
	{
		$estacion= $fila;
	}

	$sentencia->close();

	$preliquidacion["estacion"]=$estacion;

	$sql = "select ";
	$sql .= "id_isla, ";
	$sql .= "id_bomba ";
	$sql .= "from ";
	$sql .= "turnos_bombas ";
	$sql .= "where ";
	$sql .= "empleado= ".$id_empleado." and ";
	$sql .= "id_turno= ".$turno." ";

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	while($fila = $resultado->fetch_assoc())
	{

		$l_id_isla=$fila["id_isla"];
		$l_id_bomba=$fila["id_bomba"];

		$existe = 0;

		for($i=0;$i<sizeof($array_islas);$i++)
		{
			if($array_islas[$i]==$l_id_isla)
			{
				$existe=1;
			}
		}

		if($existe==0)
		{
			$array_islas[sizeof($array_islas)] = $l_id_isla;
		}

		$existe = 0;
		for($i=0;$i<sizeof($array_bombas);$i++)
		{
			if($array_bombas[$i]==$l_id_bomba)
			{
				$existe=1;
			}
		}

		if($existe==0)
		{
			$array_bombas[sizeof($array_bombas)] = $l_id_bomba;
		}


	}


	$sentencia->close();

	if(sizeof($array_islas)==0)
	{
		$datos = " Error El empleado no tiene asignadas islas para este turno... id_empleado= ".$id_empleado;	
		insertarLog($datos,$id_aplicacion);
		echo response(1,"El empleado no tiene asignadas islas para este turno","");
        return;
    }

    for($i=0;$i<sizeof($array_islas);$i++)
    {
    	$cadena_islas.=$array_islas[$i].",";
    	
    }

    for($i=0;$i<sizeof($array_bombas);$i++)
    {
    	$cadena_bombas.=$array_bombas[$i].",";
    	
    }
	
	$cadena_islas = substr($cadena_islas,0,strlen($cadena_islas)-1);
    $cadena_bombas = substr($cadena_bombas,0,strlen($cadena_bombas)-1);


    $sql = "select ";
	$sql .= "fecha_inicio, ";
	$sql .= "fecha_fin ";
	$sql .= "from ";
	$sql .= "turnos ";
	$sql .= "where ";
	$sql .= "id_turno=".$turno;

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	while($fila = $resultado->fetch_assoc())
	{
		$fecha_inicio=$fila["fecha_inicio"];
		$fecha_fin=$fila["fecha_fin"];
	}

	$sentencia->close();

	$preliquidacion["fecha_imp"]=$fecha_imp;
	$preliquidacion["turno"]=$turno;
	$preliquidacion["fecha_inicio"]=$fecha_inicio;
	$preliquidacion["fecha_fin"]=$fecha_fin;
	$preliquidacion["id_empleado"]=$id_empleado;
	$preliquidacion["nombre_empleado"]=$nombre_empleado;
	$preliquidacion["turno"]=$turno;
	$preliquidacion["islas"]=$cadena_islas;
	$preliquidacion["bombas"]=$cadena_bombas;


	$sql = "select ";
    $sql .= "round(ifnull(sum(jarras_volumen),0),3) total_vol_jarreos, ";
    $sql .= "round(ifnull(sum(jarras_monto),0),2) total_monto_jarreos ";
    $sql .= "from ";
    $sql .= "turnos_bombas ";
    $sql .= "where ";
    $sql .= "id_turno=" . $turno . " and ";
    $sql .= "id_isla in (" .$cadena_islas. ") ";

    $sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	while($fila = $resultado->fetch_assoc())
	{
		$total_vol_jarreos=$fila["total_vol_jarreos"];
		$total_monto_jarreos=$fila["total_monto_jarreos"];
	}

	$sentencia->close();

	$preliquidacion["totales"]["total_vol_jarreos"]=$total_vol_jarreos;
	$preliquidacion["totales"]["total_monto_jarreos"]=$total_monto_jarreos;



	$sql = "select ";
    $sql .= "round(ifnull(sum(importe),0),2) total_turnos_valores ";
    $sql .= "from ";
    $sql .= "turnos_valores ";
    $sql .= "where ";
    $sql .= "id_turno=" .$turno. " and ";
    $sql .= "id_isla in (" .$cadena_islas. ") ";

    $sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	while($fila = $resultado->fetch_assoc())
	{
		$total_turnos_valores=$fila["total_turnos_valores"];
	}

	$sentencia->close();

	$preliquidacion["totales"]["total_turnos_valores"]=$total_turnos_valores;



	$sql = "select ";
    $sql .= "round(ifnull(sum(importe),0),2) total_turnos_reembolso ";
    $sql .= "from ";
    $sql .= "turnos_reembolso ";
    $sql .= "where ";
    $sql .= "id_turno=" .$turno. " and ";
    $sql .= "id_isla in (" .$cadena_islas. ") ";

    $sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	while($fila = $resultado->fetch_assoc())
	{
		$total_turnos_reembolso=$fila["total_turnos_reembolso"];
	}

	$sentencia->close();

	$preliquidacion["totales"]["total_turnos_reembolso"]=$total_turnos_reembolso;

	$sql = "select ";
	$sql .= "nombre, ";
	$sql .= "sum(importe) as importe ";
	$sql .= "from ";
	$sql .= "turnos_reembolso ";
	$sql .= "where ";
	$sql .= "id_turno=".$turno." and ";
	$sql .= "id_isla in (" .$cadena_islas. ") ";
	$sql .= "group by ";
	$sql .= "id_empresa_reembolso,nombre ";
	

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	$cont=0;

	$array_er=array();

	while($fila = $resultado->fetch_assoc())
	{
		$array_er[$cont]=$fila;
		$cont++;
	}

	$sentencia->close();

	$preliquidacion["totales"]["empresas_reembolso"]=$array_er;

	$sql = "select ";
    $sql .= "round(ifnull(sum(importe),0),2) total_turnos_gastos ";
    $sql .= "from ";
    $sql .= "turnos_gastos ";
    $sql .= "where ";
    $sql .= "id_turno=" .$turno. " and ";
    $sql .= "id_isla in (" .$cadena_islas. ") ";

    $sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	while($fila = $resultado->fetch_assoc())
	{
		$total_turnos_gastos=$fila["total_turnos_gastos"];
	}

	$sentencia->close();

	$preliquidacion["totales"]["total_turnos_gastos"]=$total_turnos_gastos;

	$sql = "select ";
    $sql .= "round(ifnull(sum(importe),0),2) total_turnos_clientes ";
    $sql .= "from ";
    $sql .= "turnos_clientes ";
    $sql .= "where ";
    $sql .= "id_turno=" .$turno. " and ";
    $sql .= "id_isla in (" .$cadena_islas. ") ";

    $sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	while($fila = $resultado->fetch_assoc())
	{
		$total_turnos_clientes=$fila["total_turnos_clientes"];
	}

	$sentencia->close();

	$preliquidacion["totales"]["total_turnos_clientes"]=$total_turnos_clientes;

	$sql = "select ";
    $sql .= "round(ifnull(sum(cal_total_monto),0),2) total_turnos_bombas ";
    $sql .= "from ";
    $sql .= "turnos_bombas ";
    $sql .= "where ";
    $sql .= "id_turno=" .$turno. " and ";
    $sql .= "id_isla in (" .$cadena_islas. ") ";

    $sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	while($fila = $resultado->fetch_assoc())
	{
		$total_turnos_bombas=$fila["total_turnos_bombas"];
	}

	$sentencia->close();

	$preliquidacion["totales"]["total_turnos_bombas"]=$total_turnos_bombas;

	$sql = "select ";
    $sql .= "round(ifnull(sum(importe),0),2) total_turnos_perifericos ";
    $sql .= "from ";
    $sql .= "turnos_perifericos_detalle ";
    $sql .= "where ";
    $sql .= "id_turno=" .$turno. " and ";
    $sql .= "id_isla in (" .$cadena_islas. ") ";

    $sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	while($fila = $resultado->fetch_assoc())
	{
		$total_turnos_perifericos=$fila["total_turnos_perifericos"];
	}

	$sentencia->close();

	$preliquidacion["totales"]["total_turnos_perifericos"]=$total_turnos_perifericos;

	$sql = "select ";
    $sql .= "round(ifnull(sum(importe),0),2) total_turnos_remotos ";
    $sql .= "from ";
    $sql .= "turnos_remotos ";
    $sql .= "where ";
    $sql .= "id_turno=" .$turno. " and ";
    $sql .= "id_isla in (" .$cadena_islas. ") ";

    $sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	while($fila = $resultado->fetch_assoc())
	{
		$total_turnos_remotos=$fila["total_turnos_remotos"];
	}

	$sentencia->close();

	$preliquidacion["totales"]["total_turnos_remotos"]=$total_turnos_remotos;	


	$sql = "select ";
	$sql .= "nombre, ";
	$sql .= "total_diferencia_volumen sum_volumen, ";
	$sql .= "total_diferencia_monto sum_monto, ";
	$sql .= "jarras_volumen, ";
	$sql .= "jarras_monto, ";
	$sql .= "id_bomba, ";
	$sql .= "id_isla, ";
	$sql .= "id_posicion ";
	$sql .= "from ";
	$sql .= "turnos_bombas ";
	$sql .= "where ";
	$sql .= "id_turno=".$turno." and ";
	$sql .= "id_bomba in (".$cadena_bombas.") ";
	$sql .= "order by id_isla,id_bomba,id_posicion ";

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	$cont=0;

	while($fila = $resultado->fetch_assoc())
	{
		$array_datos[$cont]=$fila;
		$cont++;
	}

	$sentencia->close();

	$preliquidacion["bombas_detalle"]=$array_datos;

	$sql = "select ";
	$sql .= "tp.nombre, ";
	$sql .= "tpd.id_isla, ";
	$sql .= "tpd.cantidad, ";
	$sql .= "tpd.precio,  ";
	$sql .= "tpd.cantidad_inicial,  ";
	$sql .= "tpd.cantidad_final,  ";
	$sql .= "tpd.cantidad_entrada,  ";
	$sql .= "tpd.importe   ";
	$sql .= "from ";
	$sql .= "turnos_perifericos_detalle tpd ";
	$sql .= "left join turnos_perifericos tp on (tp.id_turno=tpd.id_turno and tpd.id_producto=tp.id_producto) ";
	$sql .= "where ";
	$sql .= "tpd.id_turno=".$turno." and ";
	$sql .= "tpd.id_isla in (".$cadena_islas.") and ";
	//$sql .= "tpd.id_isla in (1) and ";

	if($perifericos_ventas==0){
		$sql .= "tpd.cantidad>=0 ";
	}
	else{
		$sql .= "tpd.cantidad>0 ";
	}
	
	$sql .= "order by tpd.id_producto ";	
	

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	$cont=0;
	$array_perifericos=array();

	while($fila = $resultado->fetch_assoc())
	{
		$array_perifericos[$cont]=$fila;
		$cont++;
	}

	$sentencia->close();


	//SELECT id_cliente,nombre,sum(importe) as importe FROM gaslight.turnos_clientes where id_turno=2015042003 and id_isla in(1,2) group by nombre;
	$sql = "select ";
	$sql .= "id_cliente, ";
	$sql .= "nombre,";
	$sql .= "sum(importe) as importe ";
	$sql .= "from ";
	$sql .= "turnos_clientes ";
	$sql .= "where ";
	$sql .= "id_turno=".$turno." and ";
	$sql .= "id_isla in (" .$cadena_islas. ") ";
	$sql .= "group by ";
	$sql .= "id_cliente,nombre ";

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	$cont=0;

	$array_clientes=array();

	while($fila = $resultado->fetch_assoc())
	{
		$array_clientes[$cont]=$fila;
		$cont++;
	}

	$sentencia->close();

	$preliquidacion["totales"]["clientes"]=$array_clientes;

	//SELECT id_cliente,nombre,sum(importe) as importe FROM gaslight.turnos_remotos where id_turno=2021053101 and id_isla in(1,2) group by nombre;

	$sql = "select ";
	$sql .= "id_cliente, ";
	$sql .= "nombre,";
	$sql .= "sum(importe) as importe ";
	$sql .= "from ";
	$sql .= "turnos_remotos ";
	$sql .= "where ";
	$sql .= "id_turno=".$turno." and ";
	$sql .= "id_isla in (" .$cadena_islas. ") ";
	$sql .= "group by ";
	$sql .= "id_cliente,nombre ";

	$sentencia = $conexion->prepare($sql);

	$sentencia->execute();

	$resultado = $sentencia->get_result();

	$cont=0;

	$array_clientes_remotos=array();

	while($fila = $resultado->fetch_assoc())
	{
		$array_clientes_remotos[$cont]=$fila;
		$cont++;
	}

	$sentencia->close();

	$preliquidacion["totales"]["clientes_remotos"]=$array_clientes_remotos;



	$preliquidacion["perifericos"]=$array_perifericos;

	$preliquidacion["perifericos_inventario"]=$perifericos_inventario;

	$preliquidacion["perifericos_importe"]=$perifericos_importe;

	$preliquidacion["bombas_lectura"]=$BombasLectura;

	$datos = " Termina proceso de obtencion de preliquidacion usuario= ".$usuario;	
		insertarLog($datos,$id_aplicacion);

	echo response(0,"OK",json_encode($preliquidacion));


	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;

	}
?>