<?php

class CuentasController extends \BaseController {

	public static $jqgrid_colmodel = [
		[
			'label' => 'Id',
			'name' => 'NUMREG',
			'hidden' => true
		],
		[
			'label' => 'Codigo',
			'name' => 'CODIGO',
		],
		[
			'label' => 'Nombre',
			'name' => 'DESCRIP',
		]
	];


	/**
	 * Muestra grilla de Productos
	 * @return mixed
	 */
	public function index() {
		$title = 'Cuentas por Tipo de Productos';
		Breadcrumb::append_crumb($title);
		Jqgrid::add_js_colmodel('Familias', self::$jqgrid_colmodel);

		$CUENTAS     = DB::table('PLAN_DB')->lists('NOMBRE', 'NREGUIST');

		$PRODUCCION_CUENTAS = DB::table('PRODUCCION_CUENTAS')
    		->where('ID', '=', 1)
			->select(DB::raw('CUENTA_MPRIMAS, CUENTA_PROD_GRANEL, CUENTA_PROD_ENVA, CUENTA_ENVASES'))
			->first();
		
		return View::make('Cuentas.index', compact('title', 'CUENTAS', 'PRODUCCION_CUENTAS'));
	}

	/**
	 * Genera el json para cargar los datos en jqgrid
	 * @return string
	 */
	public function datagrid() {
		Jqgrid::init('choi_db', self::$jqgrid_colmodel, self::jqgrid_format());
        Jqgrid::get_query()->where('TIPO', 6); // Filtro 
		return Jqgrid::datagrid();
	}

	/**
	 * Retorna funcion anonima que define los formatos para los valores de las distintas columnas de la grilla
	 * @return function
	 */
	private static function jqgrid_format() {
		return function ($column, $value) {
			$result = $value;
			return $result;
		};
	}

	/**
	 * Editar un nuevo producto
	 *
	 * @return Response
	 */
	public function editar()
	{
	    $CUENTA_MPRIMAS     = \Input::get('CUENTA_MPRIMAS');
		$CUENTA_PROD_GRANEL = \Input::get('CUENTA_PROD_GRANEL');
		$CUENTA_PROD_ENVA   = \Input::get('CUENTA_PROD_ENVA');
		$CUENTA_ENVASES     = \Input::get('CUENTA_ENVASES');

		DB::statement('exec spGrabaCuentas @CUENTA_MPRIMAS = ?, @CUENTA_PROD_GRANEL = ?, @CUENTA_PROD_ENVA = ?, @CUENTA_ENVASES = ?', [$CUENTA_MPRIMAS, $CUENTA_PROD_GRANEL, $CUENTA_PROD_ENVA, $CUENTA_ENVASES]);
		$message = ['content' => 'Las cuentas fueron agregadas.', 'type' => 'success'];
		$response = ['status' => 200, 'message' => $message];

		return Response::json($response, $response['status']);
	}

	public function eliminar()
	{
		$id = Input::get('id');

		DB::statement("delete choi_db where NUMREG = $id");
		$message = ['content' => 'El Familia fue Eliminada.', 'type' => 'success'];
		$response = ['status' => 200, 'message' => $message];

		return Response::json($response, $response['status']);
	}

	/**
	 * Obtiene listado de productos terminados
	 * @return mixed
	 */
	public function select_cuentas() {
		$query = Input::get('q', '');
		$productos = DB::table('PLAN_DB')
    		->where('CODIGO', '<>',   "1109000")
			->where('CODIGO', 'LIKE', "%110900%")
			->where('NOMBRE', 'LIKE', "%$query%")
			->select(DB::raw('CODIGO as id, RTRIM(LTRIM(NOMBRE)) as text'))
			->paginate(10);
		return $productos;
	}
}