コード例 #1
0
ファイル: cargacuent.php プロジェクト: enderochoa/tortuga
    function carga()
    {
        $this->rapyd->load('datagrid', 'fields', 'datafilter2');
        $formato = $this->datasis->dameval('SELECT formato FROM cemp LIMIT 0,1');
        $qformato = '%';
        for ($i = 1; $i < substr_count($formato, '.') + 1; $i++) {
            $qformato .= '.%';
        }
        $this->qformato = $qformato;
        $this->qformato = $qformato = $this->datasis->formato_cpla();
        $modbus = array('tabla' => 'cpla', 'columnas' => array('codigo' => 'C&oacute;digo', 'denominacion' => 'Denominaci&oacute;n'), 'filtro' => array('codigo' => 'C&oacute;digo', 'denominacion' => 'Denominacion'), 'retornar' => array('codigo' => 'con<#codigo#>'), 'titulo' => 'Buscar Cuenta', 'where' => 'nivel = 3', 'p_uri' => array(4 => "<#codigo#>"));
        //'where'=>" codigo LIKE \"$qformato\"",
        $btn = $this->datasis->p_modbus($modbus, "<#codigo#>");
        $modbus2 = array('tabla' => 'ppla', 'columnas' => array('codigo' => 'C&oacute;digo', 'denominacion' => 'Denominaci&oacute;n'), 'filtro' => array('codigo' => 'C&oacute;digo', 'denominacion' => 'Denominacion'), 'retornar' => array('codigo' => 'codigo'), 'titulo' => 'Buscar Cuenta');
        //'where'=>" codigo LIKE \"$qformato\"",
        $btn2 = $this->datasis->p_modbus($modbus2, "ppla");
        $error = '';
        if ($this->input->post('pros') !== FALSE) {
            foreach ($_POST as $cod => $cant) {
                if (substr($cod, 0, 3) == "con" && $cant > 0) {
                    $cod = substr($cod, 3, 20);
                    $cod = $this->db->escape($cod . '%');
                    $cod = str_replace('_', '.', $cod);
                    //$cant = $this->db->escape($cant);
                    if (!$this->datasis->dameval("SELECT COUNT(*) FROM cpla WHERE codigo='{$cant}' ")) {
                        $error .= " La cuenta contable ({$cant}) es inv&aacute;lida<br>";
                    } else {
                        $data = array('contable' => $cant);
                        $where = "codigo like {$cod}  ";
                        $mSQL = $this->db->update_string('ppla', $data, $where);
                        $this->db->simple_query($mSQL);
                    }
                }
            }
        }
        $filter = new DataFilter2("&nbsp;", 'ppla');
        $filter->error_string = $error;
        $filter->codigo = new inputField("C&oacute;digo Presupuestario", "codigo");
        //$filter->codigo->option("","Seleccionar");
        //$filter->codigo->options("SELECT codigo, CONCAT_WS(' ',codigo,denominacion) FROM ppla WHERE LENGTH(codigo) < ($this->long) ORDER BY codigo  ");
        $filter->codigo->clause = "likerigth";
        $filter->codigo->rule = "required";
        $filter->codigo->size = 20;
        $filter->codigo->append($btn2);
        $filter->buttons("reset", "search");
        $filter->build();
        $ggrid = '';
        if ($filter->is_valid()) {
            $ggrid = form_open('contabilidad/cargacuent/carga/search/osp');
            $ggrid .= form_hidden('codigo', $filter->codigo->newValue);
            $contable = new inputField("Cuenta Contable", "con<#codigo#>");
            //, "contable[<#codigo#>]"
            $contable->grid_name = "contable[<#codigo#>]";
            $contable->status = 'modify';
            $contable->size = 12;
            $contable->css_class = 'inputnum';
            $contable->append($btn);
            $contable->build();
            $grid = new DataGrid("Clasificador Presupuestario (" . $filter->codigo->newValue . ")");
            //$grid->db->where('concepto','015');
            //$grid->per_page = $filter->db->num_rows() ;
            $grid->order_by("codigo", "asc");
            $grid->column("C&oacute;digo", "codigo");
            $grid->column("Denominaci&oacute;n", "denominacion");
            $grid->column("Cuenta Contable", "contable");
            $grid->column("Cuenta Contable", $contable->output, 'align=\'right\'');
            $grid->submit('pros', 'Guardar', "BR");
            $grid->build();
            $ggrid .= $grid->output;
            $ggrid .= form_close();
            //echo $grid->db->last_query();
        }
        $script = '
		<script type="text/javascript">
		$(function() {
			$(".inputnum").numeric(".");
		});
		</script>';
        $data['content'] = $filter->output . $ggrid;
        $data['title'] = 'Asignaci&oacute;n de Cuentas';
        $data['script'] = $script;
        $data["head"] = $this->rapyd->get_head() . script("jquery.pack.js") . script("plugins/jquery.numeric.pack.js") . script("plugins/jquery.floatnumber.js");
        $this->load->view('view_ventanas', $data);
    }
コード例 #2
0
ファイル: scst.php プロジェクト: codethics/proteoerp
    function cprecios($control)
    {
        $this->rapyd->uri->keep_persistence();
        $this->rapyd->load('datagrid', 'fields');
        $error = '';
        $msj = '';
        if ($this->input->post('scstp_1') !== false) {
            $precio1 = $this->input->post('scstp_1');
            $precio2 = $this->input->post('scstp_2');
            $precio3 = $this->input->post('scstp_3');
            $precio4 = $this->input->post('scstp_4');
            foreach (array_keys($precio1) as $ind) {
                $pt1 = $precio1[$ind] >= $precio2[$ind] && $precio2[$ind] >= $precio3[$ind] && $precio3[$ind] >= $precio4[$ind];
                $pt2 = $precio1[$ind] > 0 && $precio2[$ind] > 0 && $precio3[$ind] > 0 && $precio4[$ind] > 0;
                if ($pt1 && $pt2) {
                    $data = array('precio1' => $precio1[$ind], 'precio2' => $precio2[$ind], 'precio3' => $precio3[$ind], 'precio4' => $precio4[$ind]);
                    $where = 'id = ' . $this->db->escape($ind);
                    $mSQL = $this->db->update_string('itscst', $data, $where);
                    $ban = $this->db->simple_query($mSQL);
                } else {
                    $error = 'Los precios deben cumplir esta regla (precio 1 >= precio 2 >= precio 3 >= precio 4) y mayores a cero';
                }
            }
            if (strlen($error) == 0) {
                $msj = 'Nuevos Precios guardados';
            }
            if ($this->solo) {
                return '{"status":"C","id":"' . $control . '" ,"mensaje":"' . $msj . $error . '"}';
            }
        }
        if ($this->solo) {
            $ggrid = form_open('/compras/scst/solo/cprecios/' . $control, array("id" => "df1"));
        } else {
            $ggrid = form_open('/compras/scst/cprecios/' . $control);
        }
        function costo($formcal, $pond, $ultimo, $standard, $existen, $itcana)
        {
            $CI =& get_instance();
            $costo_pond = $CI->_pond($existen, $itcana, $pond, $ultimo);
            return $CI->_costos($formcal, $costo_pond, $ultimo, $standard);
        }
        function margen($formcal, $pond, $ultimo, $standard, $existen, $itcana, $precio, $iva)
        {
            $costo = costo($formcal, $pond, $ultimo, $standard, $existen, $itcana);
            if ($precio == 0) {
                return 0;
            }
            return round(100 - $costo * 100 / ($precio / (1 + $iva / 100)), 2);
        }
        function tcosto($id, $iva, $formcal, $pond, $ultimo, $standard, $existen, $itcana)
        {
            $costo = costo($formcal, $pond, $ultimo, $standard, $existen, $itcana);
            $rt = nformat($costo);
            $rt .= '<input type="hidden" id="costo[' . $id . ']" name="costo[' . $id . ']" value="' . $costo . '" />';
            $rt .= '<input type="hidden" id="iva[' . $id . ']" name="iva[' . $id . ']" value="' . $iva . '" />';
            return $rt;
        }
        $grid = new DataGrid('Precios de art&iacute;culos');
        $grid->use_function('costo', 'margen', 'tcosto');
        $grid->order_by('descrip');
        $select = array('b.codigo', 'b.descrip', 'b.formcal', 'a.costo', 'b.ultimo', 'b.pond', 'b.standard', 'a.id', 'a.precio1 AS scstp_1', 'a.precio2 AS scstp_2', 'a.precio3 AS scstp_3', 'a.precio4 AS scstp_4', 'b.precio1 AS sinvp1', 'b.precio2 AS sinvp2', 'b.precio3 AS sinvp3', 'b.precio4 AS sinvp4', 'b.formcal', 'a.cantidad', 'b.existen', 'b.iva');
        $grid->db->select($select);
        $grid->db->from('itscst AS a');
        $grid->db->join('sinv AS b', 'a.codigo=b.codigo');
        $grid->db->where('control', $control);
        //$grid->column('C&oacute;digo'     , '' );
        $grid->column_orderby('Descripci&oacute;n', '<b class=\'mininegro\'><#codigo#></b><br><#descrip#>', 'descrip');
        $ittt = array('sinvp1', 'sinvp2', 'sinvp3', 'sinvp4');
        $itt = array('scstp_1', 'scstp_2', 'scstp_3', 'scstp_4');
        foreach ($itt as $id => $val) {
            $ind = $val;
            $campo = new inputField('Campo', $ind);
            $campo->grid_name = $ind . '[<#id#>]';
            $campo->status = 'modify';
            $campo->size = 8;
            $campo->autocomplete = false;
            $campo->css_class = 'inputnum';
            $campo->append('<#' . $ittt[$id] . '#>');
            $campo->disable_paste = true;
            $grid->column('Precio ' . ($id + 1), $campo, 'align=\'center\'');
        }
        $itt = array('margen_1', 'margen_2', 'margen_3', 'margen_4');
        foreach ($itt as $id => $val) {
            $ind = $val;
            $campo = new inputField('Campo', $ind);
            $campo->grid_name = $ind . '[<#id#>]';
            $campo->pattern = '<margen><#formcal#>|<#pond#>|<#costo#>|<#standard#>|<#existen#>|<#cantidad#>|<#scstp_' . ($id + 1) . '#>|<#iva#></margen>';
            $campo->status = 'modify';
            $campo->size = 3;
            $campo->autocomplete = false;
            $campo->css_class = 'inputnum';
            $campo->disable_paste = true;
            $grid->column('Marg.' . ($id + 1), $campo, 'align=\'center\'');
        }
        $grid->column('Costo', '<tcosto><#id#>|<#iva#>|<#formcal#>|<#pond#>|<#costo#>|<#standard#>|<#existen#>|<#cantidad#></tcosto>', 'align=\'right\'');
        if (!$this->solo) {
            $action = "javascript:window.location='" . site_url('compras/scst/dataedit/show/' . $control) . "'";
            $grid->button('btn_regresa', 'Regresar', $action, 'TR');
            $grid->submit('pros', 'Guardar', 'BR');
        }
        $grid->build();
        $ggrid .= $grid->output;
        $ggrid .= form_close();
        $script = '<script language="javascript" type="text/javascript">
		$(function(){
			$(".inputnum").numeric(".");
			$(".inputonlynum").numeric();
			$(\'input[name^="margen_"]\').keyup(function() {
				nom=this.name;
				pos0=this.name.lastIndexOf("_");
				pos1=this.name.lastIndexOf("[");
				pos2=this.name.lastIndexOf("]");
				if(pos0>0 && pos1>0 && pos2>0){
					idp = this.name.substring(pos0+1,pos1);
					ind = this.name.substring(pos1+1,pos2);

					costo  = Number($("#costo\\\\["+ind+"\\\\]").val());
					iva    = Number($("#iva\\\\["+ind+"\\\\]").val());
					margen = Number($(this).val());

					precio = roundNumber((costo*100/(100-margen))*(1+(iva/100)),2);
					$("#scstp_"+idp+"\\\\["+ind+"\\\\]").val(precio);
				}
			});

			$(\'input[name^="scstp_"]\').keyup(function() {
				nom=this.name;
				pos0=this.name.lastIndexOf("_");
				pos1=this.name.lastIndexOf("[");
				pos2=this.name.lastIndexOf("]");
				if(pos0>0 && pos1>0 && pos2>0){
					idp = this.name.substring(pos0+1,pos1);
					ind = this.name.substring(pos1+1,pos2);

					precio = Number($(this).val());
					costo  = Number($("#costo\\\\["+ind+"\\\\]").val());
					iva    = Number($("#iva\\\\["+ind+"\\\\]").val());

					margen=roundNumber(100-((costo*100)/(precio/(1+(iva/100)))),2);
					$("#margen_"+idp+"\\\\["+ind+"\\\\]").val(margen);
				}
			});
		});
		</script>';
        $data['content'] = '<div class="alert">' . $error . '</div>';
        $data['content'] .= '<div>' . $msj . '</div>';
        $data['content'] .= $ggrid;
        if ($this->solo) {
            $mensaje = "<table><tr><td>Mensaje: " . $msj . "</td><td>Error: " . $error . "</td></tr></table>\n";
            return $script . "\n" . $data['content'];
        } else {
            $data['title'] = heading('Cambio de precios');
            $data['script'] = $script;
            $data['script'] .= phpscript('nformat.js');
            $data['head'] = $this->rapyd->get_head();
            $data['head'] = script('jquery.pack.js');
            $data['head'] = script('plugins/jquery.numeric.pack.js');
            $data['head'] = script('plugins/jquery.floatnumber.js');
            $data['head'] .= style('estilos.css');
            $this->load->view('view_ventanas', $data);
        }
    }