<?php
namespace App\Http\Controllers;

use App\Custom\SQLConnection;
use App\Custom\Misc;

use Illuminate\Support\Facades\Response;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Request;

class ComercialController extends Controller {

	public static $productos;
	public static $paises;
	public static $subramos;
	public static $vendedores;

	public function obtenerComercial() {
		Session::forget('cli_cuit');
		Session::forget('cli_nombre');
		Session::forget('cli_codigo');
		return view("comercial/clientes");
	}

	public function busquedaClientes() {
		$cli_codigo = Request::input('cli_codigo');
		$cli_cuit = Request::input('cli_cuit');
		$cli_nombre = Request::input('cli_nombre');
		//var_dump($cli_nombre); 
		return SQLConnection::busquedaClientes($cli_codigo, $cli_cuit, $cli_nombre);
	}

	public function guardaCliente() {
		$cli_cuit = Request::input('cli_cuit');
		$cli_nombre = Request::input('cli_nombre');
		$cli_codigo = Request::input('cli_codigo');
		$cliente = Request::input('cliente');

		Session::put('cli_cuit', $cli_cuit);
		Session::put('cli_nombre', $cli_nombre);
		Session::put('cli_codigo', $cli_codigo);
		Session::put('cliente', $cliente);
		Session::save();
		return 'OK';
	}

	public function obtenerMenuClientes() {
		return view('/comercial/menu_clientes');
	}

	/************************************/
	/* Productos y Servicios 						*/
	/************************************/

	public function obtenerDatosLogin() {

		//$cli_codigo = Session::get('cli_codigo');
		//$cliente = Session::get('cliente');
		$cli_codigo = Request::input('cli_codigo');
		$cliente = Request::input('cliente');

		$login = Request::input('login');
		$email = Request::input('email');

		$params = array($cliente, $cli_codigo, $login, $email, 'L');
		$datos_login = SQLConnection::backendStoreProcedure("backend_datos_user", $params, 'selectOne');
		//var_dump($datos_login); die(); 
		return json_encode(array('error' => $datos_login->error, 'mensaje' => $datos_login->mensaje, 'username' => $datos_login->username, 'email' => $datos_login->email, 'first_name' => $datos_login->first_name, 'last_name' => $datos_login->last_name, 'password' => $datos_login->password));
	}

	public function obtenerDatosEmail() {

		//$cli_codigo = Session::get('cli_codigo');
		//$cliente = Session::get('cliente');
		$cli_codigo = Request::input('cli_codigo');
		$cliente = Request::input('cliente');
		$login = Request::input('login');
		$email = Request::input('email');
		;
		$params = array($cliente, $cli_codigo, $login, $email, 'M');
		$datos_login = SQLConnection::backendStoreProcedure("backend_datos_user", $params, 'selectOne');
		//var_dump($datos_login); die(); 
		return json_encode(array('error' => $datos_login->error, 'mensaje' => $datos_login->mensaje, 'email' => $datos_login->email));
	}

	public function buscarRamo() {
		$sra_codigo = Request::input('sra_codigo');
		$params = array($sra_codigo);
		$ramo = SQLConnection::backendStoreProcedure("obtener_ramos_subramos", $params, 'selectOne');
		return json_encode(array('ramo' => $ramo->ramo, 'cod_ramo' => $ramo->cod_ramo));
	}

	public function obtenerClienteProductos($alta = false) {

		//$cli_codigo = Session::get('cli_codigo');
		//$cliente = Session::get('cliente');
		$cli_codigo = Request::input('cli_codigo');					//	Codigo del Cliente
		$cliente = Request::input('cliente');					//	Nombre del Cliente
		$informe_comercial_id = ENV('ID_INFORME_COMERCIAL');		//	ID de Informe Comercial
		//$visible = 1;
		//$params = array($cliente,$visible);

		$paises = SQLConnection::obtenerCodigos("obtener_Paises");				//	Paises
		$subramos = SQLConnection::obtenerCodigos("obtener_ramos_subramos");		//	Ramos/Subramos
		$vendedores = SQLConnection::obtenerCodigos("obtener_Vendedores");			//	Vendedores

		$params = array($cliente);
		$datos_cliente = SQLConnection::backendStoreProcedure("backend_datos_clientes", $params, 'selectOne');	//	SP con datos del cliente

		$params = array($cliente);
		$cliente_comentarios = SQLConnection::backendStoreProcedure("backend_datos_clientes_comentarios", $params, 'select');	//	SP de comentarios del cliente

		$params = array($cliente);
		$cliente_productos = SQLConnection::backendStoreProcedure("backend_clientes_productos", $params, 'select');	//	SP de productos del cliente
		$temp = [];

		//	Recorre la variable $cliente_productos 
		foreach ($cliente_productos as $key => $cli_prod) {
			$cliente_productos[$key]->consumido = null;

			//if ($cli_prod->id_producto == $informe_comercial_id)
			//{
			$params = array($cliente, '0', $cli_prod->id_producto);
			$consumido = SQLConnection::backendStoreProcedure("backend_obtener_total_consumos", $params, 'selectOne');
			$cliente_productos[$key]->consumido = $consumido->consultas;
			//}
		}

		//dd($cliente_productos);

		$params = array($cliente);
		$usuario_producto = SQLConnection::backendStoreProcedure("backend_usuarios_productos", $params, 'select');

		$params = array($cliente, 'S', 'N');
		$productos_todos = SQLConnection::backendStoreProcedure("obtener_productos_cliente", $params, 'select');

		$params = array($cliente, 'S', 'S');
		$productos = SQLConnection::backendStoreProcedure("obtener_productos_cliente", $params, 'select');

		$temp = [];
		foreach ($usuario_producto as $producto) {
			$temp[$producto->username][$producto->id_producto]['user_id'] = $producto->user_id;
			$temp[$producto->username][$producto->id_producto]['cli_codigo'] = $producto->cli_codigo;
			$temp[$producto->username][$producto->id_producto]['username'] = $producto->username;
			$temp[$producto->username][$producto->id_producto]['email'] = $producto->email;
			$temp[$producto->username][$producto->id_producto]['first_name'] = $producto->first_name;
			$temp[$producto->username][$producto->id_producto]['last_name'] = $producto->last_name;
			$temp[$producto->username][$producto->id_producto]['password'] = $producto->password;
			$temp[$producto->username][$producto->id_producto]['id_producto'] = $producto->id_producto;
			$temp[$producto->username][$producto->id_producto]['consumido'] = null;
			//if ($producto->id_producto == $informe_comercial_id)
			//{
			$params = array($cliente, $producto->user_id, $producto->id_producto);
			$consumido = SQLConnection::backendStoreProcedure("backend_obtener_total_consumos", $params, 'selectOne');
			$temp[$producto->username][$producto->id_producto]['consumido'] = $consumido->consultas;
			//}
			$temp[$producto->username][$producto->id_producto]['nombre_producto'] = $producto->nombre_producto;
			$temp[$producto->username][$producto->id_producto]['sigla'] = $producto->sigla;
			$temp[$producto->username][$producto->id_producto]['limite_consumo'] = $producto->limite_consumo;
			$temp[$producto->username][$producto->id_producto]['last_name'] = $producto->last_name;
			$temp[$producto->username][$producto->id_producto]['first_name'] = $producto->first_name;
			$temp[$producto->username][$producto->id_producto]['password'] = ($producto->password != '@encripted' ? $producto->password : '**********');
			$temp[$producto->username][$producto->id_producto]['bloquea'] = $producto->bloquea;
			$temp[$producto->username][$producto->id_producto]['estado_login'] = $producto->estado_login;
			$temp[$producto->username][$producto->id_producto]['estado_producto'] = $producto->estado_producto;
			$temp[$producto->username][$producto->id_producto]['seccion'][] = ($producto->id_seccion) ? '(' . $producto->id_seccion . ') ' . $producto->nombre_seccion : '';
			$temp[$producto->username][$producto->id_producto]['ids_secciones'][] = ($producto->id_seccion) ? $producto->id_seccion : '';

		}
		$usuarios = $temp;
		//print_r($usuarios); die(); 
		//print_r($datos_cliente);die();
		if ($alta == false) {
			return view('comercial/cliente_productos')->with(compact('datos_cliente', 'informe_comercial_id', 'cliente_comentarios', 'cliente_productos', 'usuarios', 'productos_todos', 'productos', 'paises', 'subramos', 'vendedores', 'cli_codigo', 'cliente'));
		}
		return view('comercial/cliente_productos_contenido')->with(compact('datos_cliente', 'informe_comercial_id', 'cliente_comentarios', 'cliente_productos', 'usuarios', 'productos_todos', 'productos', 'paises', 'subramos', 'vendedores', 'cli_codigo', 'cliente'));
	}

	public function filtrarClienteProductos() {
		//$cli_codigo = Session::get('cli_codigo');
		//$cliente = Session::get('cliente');

		$cli_codigo = Request::input('cli_codigo');
		$cliente = Request::input('cliente');
		$informe_comercial_id = ENV('ID_INFORME_COMERCIAL');


		//$visible = Request::input('visible');
		//$visible 		= (Request::input('visible')) ? Request::input('visible') : '1';
		//$params = array($cli_codigo,$visible);

		$params = array($cliente, 'S', 'N');
		$productos_todos = SQLConnection::backendStoreProcedure("obtener_productos_cliente", $params, 'select');

		$params = array($cliente, 'S', 'S');
		$productos = SQLConnection::backendStoreProcedure("obtener_productos_cliente", $params, 'select');

		$params = array($cliente);
		$usuarios_productos = SQLConnection::backendStoreProcedure("backend_usuarios_productos", $params, 'select');
		$temp = [];
		foreach ($usuarios_productos as $producto) {
			$temp[$producto->username][$producto->id_producto]['user_id'] = $producto->user_id;
			$temp[$producto->username][$producto->id_producto]['cli_codigo'] = $producto->cli_codigo;
			$temp[$producto->username][$producto->id_producto]['username'] = $producto->username;
			$temp[$producto->username][$producto->id_producto]['email'] = $producto->email;
			$temp[$producto->username][$producto->id_producto]['first_name'] = $producto->first_name;
			$temp[$producto->username][$producto->id_producto]['last_name'] = $producto->last_name;
			$temp[$producto->username][$producto->id_producto]['password'] = $producto->password;
			$temp[$producto->username][$producto->id_producto]['id_producto'] = $producto->id_producto;
			$temp[$producto->username][$producto->id_producto]['consumido'] = null;
			//if ($producto->id_producto == $informe_comercial_id)
			//{
			$params = array($cliente, $producto->user_id, $producto->id_producto);
			$consumido = SQLConnection::backendStoreProcedure("backend_obtener_total_consumos", $params, 'selectOne');
			$temp[$producto->username][$producto->id_producto]['consumido'] = $consumido->consultas;
			//}
			$temp[$producto->username][$producto->id_producto]['nombre_producto'] = $producto->nombre_producto;
			$temp[$producto->username][$producto->id_producto]['sigla'] = $producto->sigla;
			$temp[$producto->username][$producto->id_producto]['limite_consumo'] = $producto->limite_consumo;
			$temp[$producto->username][$producto->id_producto]['bloquea'] = $producto->bloquea;
			$temp[$producto->username][$producto->id_producto]['estado_login'] = $producto->estado_login;
			$temp[$producto->username][$producto->id_producto]['estado_producto'] = $producto->estado_producto;
			$temp[$producto->username][$producto->id_producto]['seccion'][] = ($producto->id_seccion) ? '(' . $producto->id_seccion . ') ' . $producto->nombre_seccion : '';
			$temp[$producto->username][$producto->id_producto]['ids_secciones'][] = ($producto->id_seccion) ? $producto->id_seccion : '';
		}
		$usuarios = $temp;
		return view('comercial/tabla_cliente_productos')->with(compact('usuarios', 'productos_todos', 'productos', 'cli_codigo', 'cliente'));
	}

	public function seccionesProductos() {
		$prod_codigo = Request::input('prod_codigo');
		$user_id = Request::input('usuario');
		$params = array($prod_codigo, $user_id);

		$secciones = SQLConnection::backendStoreProcedure("obtener_productos_secciones", $params, 'select');
		$todas = "";
		$anteriores = "";
		foreach ($secciones as $seccion) {
			if ($todas != '') {
				$todas .= ',';
			}
			$todas .= $seccion->id_seccion;
			if ($seccion->activo == 1) {
				if ($anteriores != '') {
					$anteriores .= ',';
				}
				$anteriores .= $seccion->id_seccion;
			}
		}
		return json_encode(view('comercial/secciones')->with(compact('secciones', 'todas', 'anteriores'))->render());
	}

	public function limpiarSecciones() {

		$secciones = [];
		$todas = "";
		$anteriores = "";

		return json_encode(view('comercial/secciones')->with(compact('secciones', 'todas', 'anteriores'))->render());
	}

	public function paquetesProductos() {
		$prod_codigo = Request::input('prod_codigo_cliente');
		if ($prod_codigo == null) {
			$prod_codigo = Request::input('prod_codigo_cliente_2');
		}
		$tipo_paquete_cliente = Request::input('tipo_paquete_cliente_2');
		$params = array($prod_codigo);
		$paquetes = SQLConnection::backendStoreProcedure("obtener_paquetes", $params, 'select');
		//print_r($paquetes); 
		return json_encode(view('comercial/paquetes')->with(compact('paquetes', 'tipo_paquete_cliente'))->render());
	}

	public function chequeaLimites() {
		//$cliente = Session::get('cliente');
		//dd(Request::input());
		$cli_codigo = Request::input('cli_codigo');
		$cliente = Request::input('cliente');
		$user_id = Request::input('usuario');
		$prod_codigo = Request::input('prod_codigo');
		$params = array($cliente, $user_id, $prod_codigo);

		$limites = SQLConnection::backendStoreProcedure("limites_consumos_usuarios_productos", $params, 'selectOne');
		return json_encode(array('limite_cliente' => $limites->limite_cliente, 'limites_usuarios' => $limites->limites_usuarios));

	}

	public function abmUsuariosProductos() {
		//$cli_codigo  = Session::get('cli_codigo');
		//$cliente  = Session::get('cliente');

		$cli_codigo = Request::input('cli_codigo');
		$cliente = Request::input('cliente');
		$informe_comercial_id = ENV('ID_INFORME_COMERCIAL');

		//$user_id     = Request::input('usuario');
		$user_id = (Request::input('usuario')) ? Request::input('usuario') : '';
		$login = Request::input('login');
		$first_name = Request::input('first_name');
		$last_name = Request::input('last_name');
		$password = Request::input('password');
		$estado_login = Request::input('estado_login');

		$email = Request::input('email');
		$prod_codigo = Request::input('prod_codigo');
		$estado_producto = Request::input('estado_producto');

		$limites_consumo = Request::input('limites_consumo');
		if ($limites_consumo == "") {
			$limites_consumo = null;
		}

		$bloquear = Request::input('bloquear');
		$bloquear = '0';

		$producto_sin_secciones = Request::input('producto_sin_secciones');

		$usuario = Session::get("usuario")->user_id;

		$accion = Request::input('accion');

		//print_r($limites_consumo.$bloquear.$producto_sin_secciones.$usuario);die();
		//$params = array($accion,$cli_codigo,$user_id,$login,$estado_login,$email,$usuario); 
		$params = array($accion, $cli_codigo, $user_id, $login, $estado_login, $prod_codigo, $estado_producto, $email, $usuario, $first_name, $last_name, $password);

		//$params = array($accion,$cli_codigo,$login,$estado_login,$usuario); 

		$mensaje = SQLConnection::backendStoreProcedure("backend_abm_usuarios_productos", $params, 'selectOne');
		$anteriores = [];
		if ($accion == "M" && $producto_sin_secciones == "N") {
			$anteriores = explode(',', Request::input('anteriores'));
		}

		$secciones_hab = [];
		if ($producto_sin_secciones == 'S') {
			$secciones_hab[0] = '0';
		} else {
			$secciones_hab = (Request::input('secciones_hab')) ? Request::input('secciones_hab') : [];
		}

		$bajas = [];
		$altas = [];

		foreach ($anteriores as $ant) {
			if (!in_array($ant, $secciones_hab)) {
				$bajas[] = $ant;
			}
		}

		foreach ($secciones_hab as $ahora) {
			if (!in_array($ahora, $anteriores)) {
				$altas[] = $ahora;
			}
		}

		// ALTAS DE NUEVAS SECCIONES 
		foreach ($altas as $seccion) {
			$params = array('A', $cliente, $user_id, $login, $prod_codigo, $seccion, $estado_producto, $limites_consumo, $bloquear, $usuario);
			//var_dump($params); 
			$mensaje_alta = SQLConnection::backendStoreProcedure("backend_abm_usuarios_productos_secciones", $params, 'selectOne');
		}

		// BAJAS DE SECCIONES QUE YA NO ESTAN ACTIVAS

		foreach ($bajas as $seccion) {
			$params = array('B', $cliente, $user_id, $login, $prod_codigo, $seccion, $estado_producto, $limites_consumo, $bloquear, $usuario);
			//var_dump($params);
			$mensaje_baja = SQLConnection::backendStoreProcedure("backend_abm_usuarios_productos_secciones", $params, 'selectOne');
		}

		// MODIFICACIONES DE SECCIONES (en todas las secciones activas)

		$params = array('M', $cliente, $user_id, $login, $prod_codigo, '', $estado_producto, $limites_consumo, $bloquear, $usuario);
		//var_dump($params);
		$mensaje_mod = SQLConnection::backendStoreProcedure("backend_abm_usuarios_productos_secciones", $params, 'selectOne');

		$error = '0';
		if ($accion == "M") {
			$mensaje = 'Modificacion OK';
		} else {
			$mensaje = 'Alta OK';
		}

		//$params = array($cli_codigo,$visible);

		$params = array($cliente, 'S', 'S');
		$productos = SQLConnection::backendStoreProcedure("obtener_productos_cliente", $params, 'select');

		$params = array($cliente);
		$usuarios_productos = SQLConnection::backendStoreProcedure("backend_usuarios_productos", $params, 'select');
		$temp = [];
		foreach ($usuarios_productos as $producto) {
			$temp[$producto->username][$producto->id_producto]['user_id'] = $producto->user_id;
			$temp[$producto->username][$producto->id_producto]['cli_codigo'] = $producto->cli_codigo;
			$temp[$producto->username][$producto->id_producto]['username'] = $producto->username;
			$temp[$producto->username][$producto->id_producto]['email'] = $producto->email;
			$temp[$producto->username][$producto->id_producto]['first_name'] = $producto->first_name;
			$temp[$producto->username][$producto->id_producto]['last_name'] = $producto->last_name;
			$temp[$producto->username][$producto->id_producto]['password'] = $producto->password;
			$temp[$producto->username][$producto->id_producto]['id_producto'] = $producto->id_producto;
			$temp[$producto->username][$producto->id_producto]['consumido'] = null;
			//if ($producto->id_producto == $informe_comercial_id)
			//{
			$params = array($cliente, $producto->user_id, $producto->id_producto);
			$consumido = SQLConnection::backendStoreProcedure("backend_obtener_total_consumos", $params, 'selectOne');
			$temp[$producto->username][$producto->id_producto]['consumido'] = $consumido->consultas;
			//}
			$temp[$producto->username][$producto->id_producto]['nombre_producto'] = $producto->nombre_producto;
			$temp[$producto->username][$producto->id_producto]['sigla'] = $producto->sigla;
			$temp[$producto->username][$producto->id_producto]['limite_consumo'] = $producto->limite_consumo;
			$temp[$producto->username][$producto->id_producto]['bloquea'] = $producto->bloquea;
			$temp[$producto->username][$producto->id_producto]['estado_login'] = $producto->estado_login;
			$temp[$producto->username][$producto->id_producto]['estado_producto'] = $producto->estado_producto;
			$temp[$producto->username][$producto->id_producto]['seccion'][] = ($producto->id_seccion) ? '(' . $producto->id_seccion . ') ' . $producto->nombre_seccion : '';
			$temp[$producto->username][$producto->id_producto]['ids_secciones'][] = ($producto->id_seccion) ? $producto->id_seccion : '';
		}
		$usuarios = $temp;

		return json_encode(array('error' => $error, 'mensaje' => $mensaje, 'tabla' => view('comercial/tabla_usuarios_productos')->with(compact('usuarios', 'productos', 'cli_codigo', 'cliente'))->render()));

	}

	public function abmClienteProductos() {
		//$cli_codigo  = Session::get('cli_codigo');
		//$cliente     = Session::get('cliente');
		$cli_codigo = Request::input('cli_codigo');
		$cliente = Request::input('cliente');

		$accion = Request::input('accion_cliente');
		$prod_sin_paquete = Request::input('prod_sin_paquete');
		$tipo_paquete = Request::input('tipo_paquete_cliente');

		if ($accion == "M") {
			$prod_codigo = Request::input('prod_codigo_cliente_2');
			//$tipo_paquete  = Request::input('tipo_paquete_cliente_2');
		} else {
			$prod_codigo = Request::input('prod_codigo_cliente');
			//$tipo_paquete  = Request::input('tipo_paquete_cliente');
			if ($prod_sin_paquete == 'S') {
				$tipo_paquete = null;
			}
		}

		$estado_producto = Request::input('estado_producto_cliente');

		$bloquear = Request::input('bloquear_cliente');

		$limites_consumo = Request::input('limites_consumo_cliente');
		if ($limites_consumo == "") {
			$limites_consumo = null;
		}
		if ($limites_consumo == 0) {
			$bloquear = 0;
		}

		$fecha_desde = Request::input('fecha_desde');
		$fecha_hasta = Request::input('fecha_hasta');

		$usuario = Session::get("usuario")->user_id;

		$params = array($accion, $cliente, $cli_codigo, $prod_codigo, $tipo_paquete, $estado_producto, $limites_consumo, $fecha_desde, $fecha_hasta, $bloquear, $usuario);
		//print_r($params); die(); 
		$mensaje = SQLConnection::backendStoreProcedure("backend_abm_clientes_productos", $params, 'selectOne');

		$todo = self::obtenerClienteProductos('alta')->render();

		return json_encode(array('error' => $mensaje->error, 'mensaje' => $mensaje->mensaje, 'todo' => $todo));
	}

	public function abmClienteComentarios() {
		//$cliente     = Session::get('cliente');
		$usuario = Session::get("usuario")->user_id;
		$cliente = Request::input('cliente');
		$cli_codigo = Request::input('cli_codigo');
		$comentarios = Request::input('texto');
		$valores = [];
		$valores[] = $cliente;
		$valores[] = $usuario;
		$valores[] = $comentarios;
		$mensaje = SQLConnection::backendStoreProcedure("backend_abm_clientes_comentarios", $valores, 'selectOne');

		$params = array($cliente);
		$cliente_comentarios = SQLConnection::backendStoreProcedure("backend_datos_clientes_comentarios", $params, 'select');

		//return view('comercial/tabla_cliente_comentarios')->with(compact('cliente_comentarios','cliente','cli_codigo'));
		return json_encode(view('comercial/tabla_cliente_comentarios')->with(compact('cliente_comentarios'))->render());
		//return json_encode(array('error' => $mensaje->error,'tabla' => view('comercial/tabla_cliente_comentarios')->with(compact('cliente_comentarios','cli_codigo','cliente'))->render()));	 

	}

	public function abmDatosCliente() {
		//$cliente     = Session::get('cliente');
		$cli_codigo = Request::input('cli_codigo');
		$cliente = Request::input('cliente');

		$valores = [];
		$email_factura = Request::input('email_factura');
		if ($email_factura == "La direccion de mail se debe completar en la ficha del Cod. de Cliente de la factura") {
			$email_factura = "";
		}
		$valores['cliente'] = $cliente;
		foreach (request()->except('_token', 'cli_nombre_pad', 'cli_nombre_factura', 'cli_cuit_factura', 'email_factura') as $key => $valor) {

			if (empty($valor)) {
				$valor = '';
			}
			$valores[$key] = $valor;
		}
		$valores['email_factura'] = $email_factura;

		$valores = array_values($valores);
		//var_dump($valores); die(); 
		$mensaje = SQLConnection::backendStoreProcedure("backend_abm_datos_clientes", $valores, 'selectOne');


		return json_encode(array('error' => $mensaje->error, 'mensaje' => $mensaje->mensaje
		));

	}

	public function activarCliente() {
		//$cliente = Session::get('cliente');
		$cliente = Request::input('cliente');
		$activar = 'A';
		$usuario = Session::get("usuario")->user_id;
		$params = array($cliente, $activar, $usuario);
		$mensaje = SQLConnection::backendStoreProcedure("backend_activar_desactivar_clientes", $params, 'selectOne');

		$todo = self::obtenerClienteProductos('alta')->render();
		return json_encode(array('error' => $mensaje->error, 'mensaje' => $mensaje->mensaje, 'todo' => $todo));
		//return json_encode(array('error' => $mensaje->error,'mensaje' => $mensaje->mensaje));
	}

	public function desactivarCliente() {
		//$cliente = Session::get('cliente');
		$cliente = Request::input('cliente');
		$activar = 'N';
		$usuario = Session::get("usuario")->user_id;
		$params = array($cliente, $activar, $usuario);
		$mensaje = SQLConnection::backendStoreProcedure("backend_activar_desactivar_clientes", $params, 'selectOne');

		$todo = self::obtenerClienteProductos('alta')->render();
		return json_encode(array('error' => $mensaje->error, 'mensaje' => $mensaje->mensaje, 'todo' => $todo));
		//return json_encode(array('error' => $mensaje->error,'mensaje' => $mensaje->mensaje));
	}

	public function verRegistroConsumos() {
		$fecha_desde = Request::input('fecha_desde_con');
		$fecha_hasta = Request::input('fecha_hasta_con');
		$user_id = Session::get('usuario')->user_id;
		$id_cliente = Session::get('usuario')->cliente["client_id"];
		$producto = env('ID_INFORME_COMERCIAL');

		if ($fecha_desde == '') {
			$fecha_desde = ' ';
		}
		if ($fecha_hasta == '') {
			$fecha_hasta = ' ';
		}

		//$id_cliente = '460960454';
		$tipo = 'C'; // ve las consultas de todo el cliente
		if ($id_cliente == '592432729') {
			$tipo = 'U'; // ve las consultas solo del username
		}
		if ($id_cliente == '460960454') {
			$tipo = 'F'; // ve todas las consultas de todos los clientes unificados en la facturacion
		}
		/* TODO: No existe funcion obtenerRegistroConsumos */
		$registros = SQLConnection::obtenerRegistroConsumos($id_cliente, $user_id, $fecha_desde, $fecha_hasta, $producto, $tipo);

		$totales = [];
		$total_gral = 0;
		foreach ($registros as $registro) {
			$total_gral += 1;
			if (isset($totales[$registro->username])) {
				$totales[$registro->username] += 1;
			} else {
				$totales[$registro->username] = 1;
			}
		}
		//print_r($totales); die(); 
		return view('informes/tabla_registro_consumos')->with(compact('registros', 'totales', 'total_gral'));
	}

	public function excelAgrupados() {
		$cliente = Request::input('cliente');
		$mant = SQLConnection::backendStoreProcedure('backend_excel_agrupados', array($cliente), "select");

		$file = 'Cod Cliente' . "\t" . 'Cod Cliente facturacion' . "\t" . 'Cliente' . "\t" . 'Estado Cliente' . "\t" . 'Login' . "\t" . 'Estado Login' . "\t" . 'e-mail' . "\t" . 'Nombre y Apellido' . "\t" . 'Producto' . "\t" . 'Estado Producto';
		foreach ($mant as $line) {
			$file .= "\n" .
				$line->id_cliente . "\t" .
				$line->cod_cliente . "\t" .
				$line->nombre . "\t" .
				$line->cliente_activo . "\t" .
				$line->login . "\t" .
				$line->login_activo . "\t" .
				$line->email . "\t" .
				$line->nombre_y_apellido . "\t" .
				$line->nombre_producto . "\t" .
				$line->producto_activo;
		}
		header('Content-disposition: attachment; filename=agrupados_' . $cliente . '.xls');
		header('Content-type: application/vnd.ms-excel	');
		$file = mb_convert_encoding($file, 'ISO-8859-1', 'UTF-8');
		echo $file;
	}



}