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ódigo', 'denominacion' => 'Denominación'), 'filtro' => array('codigo' => 'Có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ódigo', 'denominacion' => 'Denominación'), 'filtro' => array('codigo' => 'Có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á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(" ", 'ppla'); $filter->error_string = $error; $filter->codigo = new inputField("Có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ódigo", "codigo"); $grid->column("Denominació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ó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); }
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í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ódigo' , '' ); $grid->column_orderby('Descripció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); } }