Exemplo n.º 1
0
    function filteredgrid()
    {
        $this->rapyd->load('datafilter2', 'datagrid');
        $link1 = site_url('inventario/etiqueta_sinv/menu');
        $link2 = site_url('inventario/common/get_linea');
        $link3 = site_url('inventario/common/get_grupo');
        $script = '
		$(document).ready(function(){
			$("#depto").change(function(){
				$("#objnumero").val("");
				depto();
				$.post("' . $link2 . '",{ depto:$(this).val() },function(data){$("#linea").html(data);})
				$.post("' . $link3 . '",{ linea:"" },function(data){$("#grupo").html(data);})
			});
			$("#linea").change(function(){
				linea();
				$.post("' . $link3 . '",{ linea:$(this).val() },function(data){$("#grupo").html(data);})
			});
			$("#grupo").change(function(){
				grupo();
			});
			depto();
			linea();
			grupo();
		});

		function depto(){
			if($("#depto").val()!=""){
				$("#nom_depto").attr("disabled","disabled");
			}else{
				$("#nom_depto").attr("disabled","");
			}
		}

		function linea(){
			if($("#linea").val()!=""){
				$("#nom_linea").attr("disabled","disabled");
			}else{
				$("#nom_linea").attr("disabled","");
			}
		}

		function grupo(){
			if($("#grupo").val()!=""){
				$("#nom_grupo").attr("disabled","disabled");
			}else{
				$("#nom_grupo").attr("disabled","");
			}
		}';
        $filter = new DataFilter2('Filtro por Producto');
        $filter->script($script);
        $filter->codigo = new inputField('Código', 'codigo');
        $filter->codigo->db_name = 'a.codigo';
        $filter->codigo->size = 20;
        $filter->codigo->clause = 'where';
        $filter->codigo->operator = '=';
        $filter->descrip = new inputField('Descripción', 'descrip');
        $filter->descrip->db_name = 'CONCAT_WS(\' \',a.descrip,a.descrip2)';
        $filter->descrip->size = 25;
        $filter->depto = new dropdownField('Departamento', 'depto');
        $filter->depto->db_name = 'd.depto';
        $filter->depto->option('', 'Seleccione un Departamento');
        $filter->depto->options("SELECT depto, descrip FROM dpto WHERE tipo='I' ORDER BY depto");
        $filter->linea2 = new dropdownField('Línea', 'linea');
        $filter->linea2->db_name = 'c.linea';
        $filter->linea2->option('', 'Seleccione un Departamento primero');
        $depto = $filter->getval('depto');
        if ($depto !== false) {
            $dbdepto = $this->db->escape($depto);
            $filter->linea2->options("SELECT linea, descrip FROM line WHERE depto={$dbdepto} ORDER BY descrip");
        } else {
            $filter->linea2->option('', 'Seleccione un Departamento primero');
        }
        $filter->grupo = new dropdownField('Grupo', 'grupo');
        $filter->grupo->db_name = 'b.grupo';
        $filter->grupo->option('', 'Seleccione una Línea primero');
        $linea = $filter->getval('linea2');
        if ($linea !== false) {
            $dblinea = $this->db->escape($linea);
            $filter->grupo->options("SELECT grupo, nom_grup FROM grup WHERE linea={$dblinea} ORDER BY nom_grup");
        } else {
            $filter->grupo->option('', 'Seleccione un Departamento primero');
        }
        $filter->marca = new dropdownField('Marca', 'marca');
        $filter->marca->option('', 'Seleccionar');
        $filter->marca->options('SELECT TRIM(marca) AS clave, TRIM(marca) AS valor FROM marc ORDER BY marca');
        $filter->marca->style = 'width:220px;';
        $filter->cant = new inputField('Cantidad de etiquetas por productos', 'cant');
        $filter->cant->css_class = 'inputnum';
        $filter->cant->insertValue = '1';
        $filter->cant->clause = '';
        $filter->cant->size = 8;
        $filter->cant->rule = 'required|numeric';
        $filter->cant->group = 'Configuración';
        $filter->salformat = new radiogroupField('Formato de salida', 'salformat');
        $filter->salformat->options(array('pdf' => 'pdf', 'txt' => 'txt'));
        $filter->salformat->insertValue = 'pdf';
        $filter->salformat->clause = '';
        $filter->salformat->group = 'Opciones';
        $filter->button('btn_undo', 'Regresar', 'javascript:window.location=\'' . site_url('inventario/etiqueta_sinv') . '\'', 'BL');
        $filter->buttons('reset', 'search');
        $filter->build();
        if ($this->rapyd->uri->is_set('search') && $filter->is_valid()) {
            $formato = $filter->salformat->newValue;
            if ($formato == 'txt') {
                $tabla = form_open('formatos/descargartxt/' . $this->formato);
            } else {
                $tabla = form_open('forma/ver/' . $this->formato);
            }
            $select = array('a.tipo', 'a.id', 'a.codigo', 'a.descrip', 'a.precio1 AS precio', 'a.precio2 AS precio2', 'a.precio3 AS precio3', 'a.barras', 'b.nom_grup', 'b.grupo   AS grupoid', 'c.descrip AS nom_linea', 'c.linea', 'd.descrip AS nom_depto', 'd.depto   AS depto', 'a.pfecha1  AS cfecha', 'a.iva');
            $grid = new DataGrid('Lista de Artículos para imprimir');
            $grid->per_page = 15;
            $grid->db->select($select);
            $grid->db->from('sinv AS a');
            $grid->db->join('grup AS b', 'a.grupo=b.grupo');
            $grid->db->join('line AS c', 'b.linea=c.linea');
            $grid->db->join('dpto AS d', 'c.depto=d.depto');
            $grid->db->group_by('a.codigo');
            $grid->order_by('codigo', 'asc');
            $grid->column_orderby('Código', 'codigo', 'codigo');
            $grid->column_orderby('Departamento', 'nom_depto', 'nom_depto', 'align=\'left\'');
            $grid->column_orderby('Línea', 'nom_linea', 'nom_linea', 'align=\'left\'');
            $grid->column_orderby('Grupo', 'nom_grup', 'nom_grup', 'align=\'left\'');
            $grid->column_orderby('Descripción', 'descrip', 'descrip');
            $grid->column_orderby('Precio', 'precio', 'precio', 'align=\'right\'');
            $grid->build();
            $limite = 300;
            if ($grid->recordCount > 0 && $grid->recordCount <= $limite) {
                $consul = $this->db->last_query();
                $mSQL = substr($consul, 0, strpos($consul, 'LIMIT'));
                $data = array('cant' => $this->input->post('cant'), 'consul' => $mSQL);
                $tabla .= form_hidden($data);
                $tabla .= $grid->output . form_submit('mysubmit', 'Generar');
                $tabla .= form_close();
            } elseif ($grid->recordCount > $limite) {
                $tabla = 'No se puede generar habladores con  m&aacute;s de ' . $limite . ' &aacute;rticulos';
            } else {
                $tabla = 'No se encontrar&oacute;n productos';
            }
        } else {
            $tabla = $filter->error_string;
        }
        $data['content'] = $filter->output . $tabla;
        $data['title'] = heading('Habladores por filtro de productos');
        $data['head'] = script('jquery.pack.js') . script('plugins/jquery.numeric.pack.js') . script('plugins/jquery.floatnumber.js') . $this->rapyd->get_head();
        $this->load->view('view_ventanas', $data);
    }