Example #1
0
    function dataedit()
    {
        $this->rapyd->load('dataobject', 'datadetails');
        $modbus = array('tabla' => 'sinv', 'columnas' => array('codigo' => 'C&oacute;digo', 'descrip' => 'Descripci&oacute;n', 'precio1' => 'Precio 1', 'precio2' => 'Precio 2', 'precio3' => 'Precio 3', 'existen' => 'Existencia'), 'filtro' => array('codigo' => 'C&oacute;digo', 'descrip' => 'Descripci&oacute;n'), 'retornar' => array('codigo' => 'codigo_<#i#>', 'descrip' => 'descrip_<#i#>', 'ultimo' => 'costo_<#i#>', 'peso' => 'sinvpeso_<#i#>'), 'p_uri' => array(4 => '<#i#>'), 'titulo' => 'Buscar Articulo', 'where' => '`tipo` = "Articulo"', 'script' => array('post_modbus_sinv(<#i#>)'));
        $btn = $this->datasis->p_modbus($modbus, '<#i#>');
        $do = new DataObject('conv');
        $do->rel_one_to_many('itconv', 'itconv', 'numero');
        $do->rel_pointer('itconv', 'sinv', 'itconv.codigo=sinv.codigo', 'sinv.descrip AS sinvdescrip', 'sinv.ultimo AS sinvultimo', 'sinv.peso AS sinvpeso');
        $edit = new DataDetails('Conversiones', $do);
        $edit->on_save_redirect = false;
        $edit->set_rel_title('itconv', 'Producto <#o#>');
        //$edit->script($script,'create');
        //$edit->script($script,'modify');
        $edit->pre_process('insert', '_pre_insert');
        $edit->pre_process('update', '_pre_update');
        $edit->pre_process('delete', '_pre_delete');
        $edit->post_process('insert', '_post_insert');
        $edit->post_process('delete', '_post_delete');
        $edit->post_process('update', '_post_update');
        $edit->fecha = new DateonlyField('Fecha', 'fecha', 'd/m/Y');
        $edit->fecha->insertValue = date('Y-m-d');
        $edit->fecha->rule = 'required';
        $edit->fecha->mode = 'autohide';
        $edit->fecha->size = 10;
        $edit->fecha->calendar = false;
        $edit->numero = new inputField('N&uacute;mero', 'numero');
        $edit->numero->size = 10;
        $edit->numero->mode = 'autohide';
        $edit->numero->maxlength = 8;
        $edit->numero->apply_rules = false;
        //necesario cuando el campo es clave y no se pide al usuario
        $edit->numero->when = array('show', 'modify');
        $edit->observa1 = new inputField('Observaciones', 'observ1');
        $edit->observa1->size = 40;
        $edit->observa1->maxlength = 80;
        $edit->almacen = new dropdownField('Almac&eacute;n', 'almacen');
        $edit->almacen->options('SELECT ubica, CONCAT(ubica,\' \',ubides) nombre FROM caub WHERE invfis="N" AND gasto<>"S" ORDER BY ubica');
        $edit->almacen->rule = 'required';
        $edit->almacen->style = 'width:200px;';
        $edit->almacen->size = 5;
        //**************************
        //  Campos para el detalle
        //**************************
        $edit->codigo = new inputField('C&oacute;digo <#o#>', 'codigo_<#i#>');
        $edit->codigo->size = 12;
        $edit->codigo->db_name = 'codigo';
        $edit->codigo->rel_id = 'itconv';
        $edit->codigo->rule = 'required|callback_chrepetidos|callback_chcodigoa';
        $edit->codigo->append($btn);
        $edit->descrip = new inputField('Descripci&oacute;n <#o#>', 'descrip_<#i#>');
        $edit->descrip->db_name = 'descrip';
        $edit->descrip->rel_id = 'itconv';
        $edit->descrip->type = 'inputhidden';
        $edit->entrada = new inputField('Entrada <#o#>', 'entrada_<#i#>');
        $edit->entrada->db_name = 'entrada';
        $edit->entrada->css_class = 'inputnum';
        $edit->entrada->rel_id = 'itconv';
        $edit->entrada->maxlength = 10;
        $edit->entrada->size = 6;
        $edit->entrada->style = 'color:green';
        $edit->entrada->rule = 'required|positive';
        $edit->entrada->autocomplete = false;
        $edit->entrada->onkeyup = 'validaEnt(<#i#>)';
        $edit->entrada->onfocus = 'this.select()';
        $edit->entrada->title = 'Cantidad de productos que se suman al inventario';
        $edit->salida = new inputField('Salida <#o#>', 'salida_<#i#>');
        $edit->salida->db_name = 'salida';
        $edit->salida->css_class = 'inputnum';
        $edit->salida->rel_id = 'itconv';
        $edit->salida->maxlength = 10;
        $edit->salida->size = 6;
        $edit->salida->style = 'color:red';
        $edit->salida->rule = 'required|positive';
        $edit->salida->autocomplete = false;
        $edit->salida->onkeyup = 'validaSalida(<#i#>)';
        $edit->salida->onfocus = 'this.select()';
        $edit->salida->title = 'Cantidad de productos que se restan al inventario';
        $edit->costo = new hiddenField('', 'costo_<#i#>');
        $edit->costo->db_name = 'costo';
        $edit->costo->rel_id = 'itconv';
        $edit->sinvpeso = new inputField('', 'sinvpeso_<#i#>');
        $edit->sinvpeso->db_name = 'sinvpeso';
        $edit->sinvpeso->rel_id = 'itconv';
        $edit->sinvpeso->pointer = true;
        $edit->sinvpeso->type = 'inputhidden';
        //**************************
        //fin de campos para detalle
        //**************************
        $edit->container = new containerField('alert', '<b style="font-size:1.2em">Advertencia</b>:
		el costo de los productos de <b style="color:#219F21">entrada</b> <b>ser&aacute;n modificados</b> en base al costos de los productos
		de <b style="color:red">salida</b>, si los productos de entrada son mas de uno su costo se calculara tomando en cuenta su participaci&oacute;n en peso.');
        $edit->container->when = array('create');
        $edit->usuario = new autoUpdateField('usuario', $this->session->userdata('usuario'), $this->session->userdata('usuario'));
        $edit->buttons('save', 'undo', 'back', 'add_rel', 'add');
        $edit->build();
        if ($edit->on_success()) {
            $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk);
            echo json_encode($rt);
        } else {
            $conten['form'] =& $edit;
            $data['content'] = $this->load->view('view_conv', $conten, false);
        }
    }
Example #2
0
 function dataedit()
 {
     $this->rapyd->load('dataobject', 'datadetails');
     $modbus = array('tabla' => 'sinv', 'columnas' => array('codigo' => 'C&oacute;digo', 'descrip' => 'Descripci&oacute;n'), 'filtro' => array('codigo' => 'C&oacute;digo', 'descrip' => 'Descripci&oacute;n'), 'retornar' => array('codigo' => 'codigo_<#i#>', 'descrip' => 'descrip_<#i#>', 'pond' => 'costo_<#i#>', 'iva' => 'iva_<#i#>', 'peso' => 'sinvpeso_<#i#>'), 'p_uri' => array(4 => '<#i#>'), 'script' => array('post_modbus_sinv(<#i#>)'), 'titulo' => 'Buscar Art&iacute;culo', 'where' => 'activo = "S"');
     $sprvbus = array('tabla' => 'sprv', 'columnas' => array('proveed' => 'C&oacute;digo Proveedor', 'nombre' => 'Nombre', 'rif' => 'RIF'), 'filtro' => array('proveed' => 'C&oacute;digo Proveedor', 'nombre' => 'Nombre'), 'retornar' => array('proveed' => 'proveed', 'nombre' => 'nombre'), 'script' => array('post_modbus_sprv()'), 'titulo' => 'Buscar Proveedor');
     $btn = $this->datasis->p_modbus($modbus, '<#i#>');
     $do = new DataObject('ordc');
     $do->rel_one_to_many('itordc', 'itordc', 'numero');
     $do->pointer('sprv', 'sprv.proveed=ordc.proveed', 'sprv.nombre AS sprvnombre', 'left');
     $do->rel_pointer('itordc', 'sinv', 'itordc.codigo=sinv.codigo', 'sinv.descrip AS sinvdescrip, sinv.base1 AS sinvprecio1, sinv.base2 AS sinvprecio2, sinv.base3 AS sinvprecio3, sinv.base4 AS sinvprecio4, sinv.iva AS sinviva, sinv.peso AS sinvpeso,sinv.tipo AS sinvtipo');
     $edit = new DataDetails('Orden de Compra', $do);
     $edit->on_save_redirect = false;
     $edit->back_url = site_url('compras/ordc/filteredgrid');
     $edit->set_rel_title('itordc', 'Producto <#o#>');
     $edit->pre_process('insert', '_pre_insert');
     $edit->pre_process('update', '_pre_update');
     $edit->pre_process('delete', '_pre_delete');
     $edit->post_process('insert', '_post_insert');
     $edit->post_process('update', '_post_update');
     $edit->post_process('delete', '_post_delete');
     $edit->fecha = new DateonlyField('Fecha', 'fecha', 'd/m/Y');
     $edit->fecha->insertValue = date('Y-m-d');
     $edit->fecha->rule = 'required';
     $edit->fecha->mode = 'autohide';
     $edit->fecha->size = 12;
     $edit->fecha->calendar = false;
     $edit->numero = new inputField('N&uacute;mero', 'numero');
     $edit->numero->size = 10;
     $edit->numero->mode = 'autohide';
     $edit->numero->maxlength = 8;
     $edit->numero->apply_rules = false;
     //necesario cuando el campo es clave y no se pide al usuario
     $edit->numero->when = array('show', 'modify');
     $edit->peso = new inputField('Peso', 'peso');
     $edit->peso->css_class = 'inputnum';
     $edit->peso->type = 'inputhidden';
     $edit->peso->readonly = true;
     $edit->peso->size = 10;
     $edit->proveed = new inputField('Proveedor', 'proveed');
     $edit->proveed->size = 7;
     $edit->proveed->autocomplete = false;
     $edit->proveed->rule = 'required';
     $edit->proveed->append($this->datasis->modbus($sprvbus));
     $edit->nombre = new hiddenField('Nombre', 'nombre');
     $edit->nombre->size = 50;
     $edit->nombre->maxlength = 40;
     $edit->status = new dropdownField('Estatus', 'status');
     $edit->status->option('', '');
     $edit->status->option('PE', 'Pendiente');
     $edit->status->option('CE', 'Cerrado');
     $edit->status->option('BA', 'BackOrder');
     $edit->status->style = 'width:100px;';
     $edit->status->when = array('show');
     $edit->almacen = new dropdownField('Almac&eacute;n', 'almacen');
     $edit->almacen->options('SELECT ubica, CONCAT(ubica,\' \',ubides) nombre FROM caub ORDER BY ubica');
     $edit->almacen->rule = 'required';
     //$edit->almacen->mode = 'autohide';
     $edit->almacen->style = 'width:130px;';
     $alma = $this->datasis->traevalor('ALMACEN');
     if (!empty($alma)) {
         $edit->almacen->insertValue = $alma;
     }
     $edit->arribo = new DateonlyField('Fecha de Arribo', 'arribo', 'd/m/Y');
     $edit->arribo->insertValue = date('Y-m-d');
     $edit->arribo->rule = 'required';
     $edit->arribo->mode = 'autohide';
     $edit->arribo->size = 12;
     $edit->arribo->calendar = false;
     $edit->fechafac = new DateonlyField('Fecha Factura', 'fechafac', 'd/m/Y');
     $edit->fechafac->insertValue = date('Y-m-d');
     $edit->fechafac->rule = 'required';
     $edit->fechafac->mode = 'autohide';
     $edit->fechafac->size = 12;
     $edit->fechafac->calendar = false;
     $edit->fechafac->when = array('show');
     //**************************************************************
     //  Campos para el detalle
     //
     $edit->codigo = new inputField('C&oacute;digo', 'codigo_<#i#>');
     $edit->codigo->size = 15;
     $edit->codigo->db_name = 'codigo';
     //$edit->codigo->append($this->datasis->p_modbus($modbus,'<#i#>'));
     $edit->codigo->autocomplete = false;
     $edit->codigo->db_name = 'codigo';
     $edit->codigo->rule = 'required|callback_chcodigoa|callback_chrepetidos';
     $edit->codigo->rel_id = 'itordc';
     $edit->descrip = new inputField('Descripci&oacute;n <#o#>', 'descrip_<#i#>');
     $edit->descrip->size = 36;
     $edit->descrip->db_name = 'descrip';
     $edit->descrip->type = 'inputhidden';
     $edit->descrip->maxlength = 50;
     $edit->descrip->readonly = true;
     $edit->descrip->rel_id = 'itordc';
     //$edit->cantidad = new inputField('Cantidad <#o#>', 'cantidad_<#i#>');
     $edit->cantidad = new inputField('Cantidad', 'cantidad_<#i#>');
     $edit->cantidad->db_name = 'cantidad';
     $edit->cantidad->css_class = 'inputnum';
     $edit->cantidad->rel_id = 'itordc';
     $edit->cantidad->maxlength = 10;
     $edit->cantidad->size = 8;
     $edit->cantidad->autocomplete = false;
     $edit->cantidad->onkeyup = 'importe(<#i#>)';
     $edit->cantidad->rule = 'required|positive';
     $edit->cantidad->showformat = 'decimal';
     $edit->costo = new inputField('Costo', 'costo_<#i#>');
     $edit->costo->css_class = 'inputnum';
     $edit->costo->rule = 'required|positive';
     $edit->costo->onkeyup = 'importe(<#i#>)';
     $edit->costo->size = 10;
     $edit->costo->autocomplete = false;
     $edit->costo->db_name = 'costo';
     $edit->costo->rel_id = 'itordc';
     $edit->costo->showformat = 'decimal';
     $edit->importe = new inputField('Importe', 'importe_<#i#>');
     $edit->importe->db_name = 'importe';
     $edit->importe->size = 12;
     $edit->importe->rel_id = 'itordc';
     $edit->importe->autocomplete = false;
     $edit->importe->onkeyup = 'costo(<#i#>)';
     $edit->importe->css_class = 'inputnum';
     $edit->importe->showformat = 'decimal';
     $edit->importe->readonly = true;
     $edit->sinvpeso = new hiddenField('', 'sinvpeso_<#i#>');
     $edit->sinvpeso->db_name = 'sinvpeso';
     $edit->sinvpeso->rel_id = 'itordc';
     $edit->sinvpeso->pointer = true;
     $edit->sinvpeso->showformat = 'decimal';
     $edit->iva = new hiddenField('Impuesto', 'iva_<#i#>');
     $edit->iva->db_name = 'iva';
     $edit->iva->rel_id = 'itordc';
     $edit->iva->showformat = 'decimal';
     for ($i = 1; $i <= 4; $i++) {
         $obj = 'precio' . $i;
         $edit->{$obj} = new hiddenField('Precio <#o#>', $obj . '_<#i#>');
         $edit->{$obj}->db_name = 'sinv' . $obj;
         $edit->{$obj}->rel_id = 'itordc';
         $edit->{$obj}->pointer = true;
     }
     $edit->ultimo = new hiddenField('', 'ultimo_<#i#>');
     $edit->ultimo->db_name = 'ultimo';
     $edit->ultimo->rel_id = 'itordc';
     $edit->ultimo->pointer = true;
     $edit->pond = new hiddenField('', 'pond_<#i#>');
     $edit->pond->db_name = 'pond';
     $edit->pond->rel_id = 'itordc';
     $edit->pond->pointer = true;
     //**************************
     //fin de campos para detalle
     //**************************
     $edit->condi1 = new inputField('Condiciones', 'condi1');
     $edit->condi1->size = 30;
     $edit->condi1->maxlength = 40;
     $edit->condi2 = new inputField('Condiciones', 'condi2');
     $edit->condi2->size = 30;
     $edit->condi2->maxlength = 40;
     $edit->condi3 = new inputField('Condiciones', 'condi3');
     $edit->condi3->size = 30;
     $edit->condi3->maxlength = 40;
     $edit->montoiva = new inputField('Impuesto', 'montoiva');
     $edit->montoiva->css_class = 'inputnum';
     $edit->montoiva->type = 'inputhidden';
     $edit->montoiva->readonly = true;
     $edit->montoiva->size = 10;
     $edit->montotot = new inputField('Sub-Total', 'montotot');
     $edit->montotot->css_class = 'inputnum';
     $edit->montotot->type = 'inputhidden';
     $edit->montotot->readonly = true;
     $edit->montotot->size = 10;
     $edit->montonet = new inputField('Monto Total', 'montonet');
     $edit->montonet->css_class = 'inputnum';
     $edit->montonet->type = 'inputhidden';
     $edit->montonet->readonly = true;
     $edit->montonet->size = 10;
     $edit->usuario = new autoUpdateField('usuario', $this->session->userdata('usuario'), $this->session->userdata('usuario'));
     //$edit->buttons('add_rel');
     $edit->build();
     if ($edit->on_success()) {
         $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk);
         echo json_encode($rt);
     } else {
         $conten['form'] =& $edit;
         $this->load->view('view_ordc', $conten);
     }
 }
Example #3
0
 function dataeditordp($numero, $esta)
 {
     if (!isset($_POST['codigo_0'])) {
         //SELECT c.codigo
         //,COALESCE(b.cantidad*IF(tipoordp='E',-1,1),0) AS tracana
         //,c.cantidad
         //FROM stra AS a
         //JOIN itstra AS b ON a.numero=b.numero
         //RIGHT JOIN ordpitem AS c ON a.ordp=c.numero AND b.codigo=c.codigo
         //WHERE c.numero='00000019'
     }
     $id_ordp = $this->datasis->dameval('SELECT id FROM ordp WHERE numero=' . $this->db->escape($numero));
     $this->back_dataedit = 'inventario/ordp/dataedit/show/' . $id_ordp;
     $this->rapyd->load('dataobject', 'datadetails');
     $modbus = array('tabla' => 'sinv', 'columnas' => array('codigo' => 'C&oacute;digo', 'descrip' => 'Descripci&oacute;n', 'precio1' => 'Precio 1', 'precio2' => 'Precio 2', 'precio3' => 'Precio 3', 'existen' => 'Existencia', 'peso' => 'Peso'), 'filtro' => array('codigo' => 'C&oacute;digo', 'descrip' => 'Descripci&oacute;n'), 'retornar' => array('codigo' => 'codigo_<#i#>', 'descrip' => 'descrip_<#i#>'), 'where' => 'activo = "S" AND tipo="Articulo"', 'script' => array('post_modbus("<#i#>")'), 'p_uri' => array(4 => '<#i#>'), 'titulo' => 'Busqueda de producto en inventario');
     $btn = $this->datasis->p_modbus($modbus, '<#i#>');
     $script = "\n\t\tfunction post_add_itstra(id){\n\t\t\t\$('#cantidad_'+id).numeric('.');\n\t\t\treturn true;\n\t\t}";
     $do = new DataObject('stra');
     $do->rel_one_to_many('itstra', 'itstra', 'numero');
     //$do->rel_pointer('itstra','sinv','itstra.codigo=sinv.codigo','sinv.descrip as sinvdescrip');
     $edit = new DataDetails('Transferencia', $do);
     $edit->back_url = $this->back_dataedit;
     $edit->set_rel_title('itstra', 'Producto <#o#>');
     $edit->script($script, 'create');
     $edit->script($script, 'modify');
     $edit->pre_process('insert', '_pre_ordp_insert');
     $edit->pre_process('update', '_pre_update');
     $edit->pre_process('delete', '_pre_delete');
     $edit->post_process('insert', '_post_insert');
     $edit->numero = new inputField('N&uacute;mero', 'numero');
     $edit->numero->mode = 'autohide';
     $edit->numero->size = 10;
     $edit->numero->apply_rules = false;
     //necesario cuando el campo es clave y no se pide al usuario
     $edit->numero->when = array('show', 'modify');
     $edit->ordp = new inputField('Orden de producci&oacute;n', 'ordp');
     $edit->ordp->mode = 'autohide';
     $edit->ordp->size = 10;
     $edit->ordp->rule = 'required|callback_chordp';
     $edit->ordp->insertValue = $numero;
     $edit->ordp->when = array('show', 'modify');
     $edit->fecha = new dateonlyField('Fecha', 'fecha');
     $edit->fecha->rule = 'required|chfecha';
     $edit->fecha->insertValue = date('Y-m-d');
     $edit->fecha->size = 12;
     $edit->esta = new dropdownField('Estaci&oacute;n', 'esta');
     $edit->esta->option('', 'Seleccionar');
     $edit->esta->options('SELECT estacion,CONCAT(estacion,\'-\',nombre) AS lab FROM esta ORDER BY estacion');
     $edit->esta->rule = 'required';
     $edit->esta->insertValue = $esta;
     $edit->esta->style = 'width:150px;';
     $edit->tipoordp = new dropdownField('Tipo de movimiento', 'tipoordp');
     $edit->tipoordp->option('', 'Seleccionar');
     $edit->tipoordp->option('E', 'Entrega');
     $edit->tipoordp->option('R', 'Retiro');
     $edit->tipoordp->rule = 'required|enum[E,R]';
     $edit->tipoordp->style = 'width:150px;';
     $edit->observ1 = new inputField('Observaci&oacute;n', 'observ1');
     $edit->observ1->rule = 'max_length[60]|trim';
     $edit->observ1->size = 32;
     $edit->observ1->maxlength = 30;
     //comienza el detalle
     $edit->codigo = new inputField('C&oacute;digo <#o#>', 'codigo_<#i#>');
     $edit->codigo->db_name = 'codigo';
     $edit->codigo->append($btn);
     $edit->codigo->rule = 'trim|required|sinvexiste';
     $edit->codigo->rel_id = 'itstra';
     $edit->codigo->maxlength = 15;
     $edit->codigo->size = 15;
     $edit->descrip = new inputField('Descripci&oacute;n', 'descrip_<#i#>');
     $edit->descrip->db_name = 'descrip';
     $edit->descrip->type = 'inputhidden';
     $edit->descrip->rel_id = 'itstra';
     $edit->descrip->maxlength = 45;
     $edit->descrip->size = 40;
     $edit->cantidad = new inputField('Cantidad', 'cantidad_<#i#>');
     $edit->cantidad->db_name = 'cantidad';
     $edit->cantidad->css_class = 'inputnum';
     $edit->cantidad->rel_id = 'itstra';
     $edit->cantidad->rule = 'numeric|mayorcero|required';
     $edit->cantidad->maxlength = 10;
     $edit->cantidad->autocomplete = false;
     $edit->cantidad->size = 10;
     //Fin del detalle
     $edit->estampa = new autoUpdateField('estampa', date('Ymd'), date('Ymd'));
     $edit->hora = new autoUpdateField('hora', date('H:i:s'), date('H:i:s'));
     $edit->usuario = new autoUpdateField('usuario', $this->session->userdata('usuario'), $this->session->userdata('usuario'));
     $accion = "javascript:buscaprod()";
     $edit->button_status('btn_terminar', 'Traer insumos', $accion, 'TR', 'create');
     $edit->buttons('save', 'undo', 'back', 'add_rel');
     if ($this->genesal) {
         $edit->build();
         $conten['form'] =& $edit;
         $data['content'] = $this->load->view('view_stra_ordp', $conten, true);
         $data['style'] = style('redmond/jquery-ui.css');
         $data['script'] = script('jquery.js');
         $data['script'] .= script('jquery-ui.js');
         $data['script'] .= script("jquery-impromptu.js");
         $data['script'] .= script('plugins/jquery.numeric.pack.js');
         $data['script'] .= script('plugins/jquery.ui.autocomplete.autoSelectOne.js');
         $data['script'] .= script('plugins/jquery.floatnumber.js');
         $data['script'] .= phpscript('nformat.js');
         $data['content'] = $this->load->view('view_stra_ordp', $conten, true);
         $data['head'] = $this->rapyd->get_head();
         $data['title'] = heading('Transferencias de inventario para producci&oacute;n');
         $this->load->view('view_ventanas', $data);
     } else {
         $edit->on_save_redirect = false;
         $edit->build();
         if ($edit->on_success()) {
             $rt = 'Transferencia Guardada';
         } elseif ($edit->on_error()) {
             $rt = html_entity_decode(preg_replace('/<[^>]*>/', '', $edit->error_string));
         }
         return $rt;
     }
 }
Example #4
0
 function dataedit()
 {
     $this->rapyd->load('datadetails', 'dataobject');
     $do = new DataObject('ords');
     $do->rel_one_to_many('itords', 'itords', array('numero'));
     $edit = new DataDetails('', $do);
     $edit->on_save_redirect = false;
     $edit->post_process('insert', '_post_insert');
     $edit->post_process('update', '_post_update');
     $edit->post_process('delete', '_post_delete');
     $edit->pre_process('insert', '_pre_insert');
     $edit->pre_process('update', '_pre_update');
     $edit->pre_process('delete', '_pre_delete');
     $edit->fecha = new DateonlyField('Fecha', 'fecha');
     $edit->fecha->insertValue = date('Y-m-d');
     $edit->fecha->mode = 'autohide';
     $edit->fecha->size = 10;
     $edit->fecha->calendar = false;
     $edit->numero = new inputField('N&uacute;mero', 'numero');
     $edit->numero->size = 10;
     $edit->numero->mode = 'autohide';
     $edit->numero->when = array('show', 'modify');
     $edit->proveed = new inputField('Proveedor', 'proveed');
     $edit->proveed->size = 6;
     $edit->proveed->rule = 'required|existesprv';
     $edit->nombre = new inputField('Nombre', 'nombre');
     $edit->nombre->type = 'inputhidden';
     $edit->nombre->size = 30;
     $edit->nombre->maxlength = 30;
     //Campos para el anticipo
     $edit->codban = new dropdownField('Banco', 'codban');
     $edit->codban->option('', 'Seleccionar');
     $edit->codban->options("SELECT codbanc, CONCAT_WS('-',codbanc,banco) AS label FROM banc WHERE activo='S' ORDER BY codbanc");
     $edit->codban->rule = 'max_length[5]';
     $edit->codban->style = 'width:200px;';
     $edit->tipo = new dropdownField('Tipo', 'tipo_op');
     $edit->tipo->option('CH', 'Cheque');
     $edit->tipo->option('ND', 'Nota de debito');
     $edit->tipo->size = 10;
     $edit->tipo->style = 'width:150px;';
     $edit->cheque = new inputField('N&uacute;mero', 'cheque');
     $edit->cheque->size = 10;
     //$edit->cheque->rule='required';
     $edit->cheque->mode = 'autohide';
     $edit->comprob = new inputField2('Comprobante', 'comprob');
     $edit->comprob->size = 20;
     $edit->benefi = new inputField('Beneficiario', 'benefi');
     $edit->benefi->size = 30;
     //Fin de los campos anticipos
     $edit->condi = new textareaField('Condiciones', 'condi');
     $edit->condi->cols = 70;
     $edit->condi->rows = 2;
     $edit->condi->size = 35;
     $edit->anticipo = new inputField('Anticipo', 'anticipo');
     $edit->anticipo->size = 20;
     $edit->anticipo->css_class = 'inputnum';
     $edit->totiva = new inputField('Impuesto', 'totiva');
     $edit->totiva->type = 'inputhidden';
     $edit->totiva->size = 10;
     $edit->totiva->css_class = 'inputnum';
     $edit->totbruto = new inputField('Total', 'totbruto');
     $edit->totbruto->type = 'inputhidden';
     $edit->totbruto->size = 20;
     $edit->totbruto->css_class = 'inputnum';
     $edit->totpre = new inputField('SubTotal', 'totpre');
     $edit->totpre->type = 'inputhidden';
     $edit->totpre->size = 10;
     $edit->totpre->css_class = 'inputnum';
     //Campos para el detalle
     $edit->codigo = new inputField('C&oacute;digo', 'codigo_<#i#>');
     $edit->codigo->size = 7;
     $edit->codigo->db_name = 'codigo';
     //$edit->codigo->append($this->datasis->p_modbus($modbus,'<#i#>'));
     $edit->codigo->rel_id = 'itords';
     $edit->descrip = new inputField('Descripci&oacute;n', 'descrip_<#i#>');
     $edit->descrip->size = 25;
     $edit->descrip->db_name = 'descrip';
     $edit->descrip->maxlength = 12;
     $edit->descrip->rel_id = 'itords';
     $ivas = $this->datasis->ivaplica();
     $edit->tasaiva = new dropdownField('IVA <#o#>', 'tasaiva_<#i#>');
     $edit->tasaiva->option($ivas['tasa'], $ivas['tasa'] . '%');
     $edit->tasaiva->option($ivas['redutasa'], $ivas['redutasa'] . '%');
     $edit->tasaiva->option($ivas['sobretasa'], $ivas['sobretasa'] . '%');
     $edit->tasaiva->option('0', '0.00%');
     $edit->tasaiva->db_name = 'tasaiva';
     $edit->tasaiva->rule = 'positive';
     $edit->tasaiva->style = "30px";
     $edit->tasaiva->rel_id = 'itords';
     $edit->tasaiva->onchange = 'importe(<#i#>)';
     $edit->iva = new inputField('Impuesto', 'iva_<#i#>');
     $edit->iva->size = 10;
     $edit->iva->db_name = 'iva';
     $edit->iva->maxlength = 8;
     $edit->iva->css_class = 'inputnum';
     $edit->iva->rel_id = 'itords';
     $edit->iva->showformat = 'decimal';
     $edit->iva->type = 'inputhidden';
     $edit->precio = new inputField('Precio', 'precio_<#i#>');
     $edit->precio->css_class = 'inputnum';
     $edit->precio->onkeyup = 'importe(<#i#>)';
     $edit->precio->size = 9;
     $edit->precio->db_name = 'precio';
     $edit->precio->rel_id = 'itords';
     $edit->importe = new inputField('Importe', 'importe_<#i#>');
     $edit->importe->db_name = 'importe';
     $edit->importe->css_class = 'inputnum';
     $edit->importe->size = 9;
     $edit->importe->rel_id = 'itords';
     $edit->importe->showformat = 'decimal';
     $edit->importe->type = 'inputhidden';
     $edit->departa = new dropdownField('Departamento <#o#>', 'departa_<#i#>');
     $edit->departa->option('', 'Seleccionar');
     $edit->departa->options("SELECT TRIM(depto) AS codigo, CONCAT_WS('-',depto,TRIM(descrip)) AS label FROM dpto WHERE tipo='G' ORDER BY depto");
     $edit->departa->db_name = 'departa';
     $edit->departa->rule = 'required';
     $edit->departa->style = 'width:100px';
     $edit->departa->rel_id = 'itords';
     $edit->departa->onchange = "gdeparta(this.value)";
     $edit->sucursal = new dropdownField('Sucursal <#o#>', 'sucursal_<#i#>');
     $edit->sucursal->options("SELECT codigo,CONCAT(codigo,'-', sucursal) AS sucursal FROM sucu ORDER BY codigo");
     $edit->sucursal->db_name = 'sucursal';
     $edit->sucursal->rule = 'required';
     $edit->sucursal->style = 'width:100px';
     $edit->sucursal->rel_id = 'itords';
     $edit->sucursal->onchange = "gsucursal(this.value)";
     //fin de campos para detalle
     $edit->usuario = new autoUpdateField('usuario', $this->secu->usuario(), $this->secu->usuario());
     $edit->estampa = new autoUpdateField('estampa', date('Ymd'), date('Ymd'));
     $edit->hora = new autoUpdateField('hora', date('H:i:s'), date('H:i:s'));
     $edit->build();
     if ($edit->on_success()) {
         $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk);
         echo json_encode($rt);
     } else {
         $conten['form'] =& $edit;
         $this->load->view('view_ords', $conten);
     }
 }
Example #5
0
 function dataedit()
 {
     $this->rapyd->load('datadetails', 'dataobject');
     $do = new DataObject('lprod');
     //$do->pointer('scli' ,'scli.cliente=rivc.cod_cli','sprv.tipo AS sprvtipo, sprv.reteiva AS sprvreteiva','left');
     $do->rel_one_to_many('itlprod', 'itlprod', array('id' => 'id_lprod'));
     $edit = new DataDetails($this->t**s, $do);
     $edit->on_save_redirect = false;
     $edit->post_process('insert', '_post_insert');
     $edit->post_process('update', '_post_update');
     $edit->post_process('delete', '_post_delete');
     $edit->pre_process('insert', '_pre_insert');
     $edit->pre_process('update', '_pre_update');
     $edit->pre_process('delete', '_pre_delete');
     $edit->codigo = new inputField('Producto', 'codigo');
     $edit->codigo->rule = 'required';
     $edit->codigo->size = 8;
     $edit->codigo->maxlength = 10;
     $edit->descrip = new inputField('Descripci&oacute;n', 'descrip');
     $edit->descrip->type = 'inputhidden';
     $edit->descrip->size = 12;
     $edit->descrip->maxlength = 10;
     $edit->fecha = new dateField('Fecha', 'fecha');
     $edit->fecha->rule = 'chfecha|required';
     $edit->fecha->size = 11;
     $edit->fecha->insertValue = date('Y-m-d');
     $edit->fecha->maxlength = 8;
     $edit->fecha->calendar = false;
     $edit->inventario = new inputField('Leche de Inventario', 'inventario');
     $edit->inventario->rule = 'max_length[12]|numeric|required';
     $edit->inventario->css_class = 'inputnum';
     $edit->inventario->size = 7;
     $edit->inventario->insertValue = '0';
     $edit->inventario->onkeyup = 'totalizar();';
     $edit->inventario->maxlength = 9;
     $edit->litros = new inputField('Total Lts.', 'litros');
     $edit->litros->rule = 'max_length[12]|numeric';
     $edit->litros->css_class = 'inputnum';
     $edit->litros->type = 'inputhidden';
     $edit->litros->size = 8;
     $edit->litros->maxlength = 12;
     $edit->peso = new inputField('Peso', 'peso');
     $edit->peso->rule = 'max_length[12]|numeric';
     $edit->peso->css_class = 'inputnum';
     $edit->peso->type = 'inputhidden';
     $edit->peso->size = 14;
     $edit->peso->maxlength = 12;
     $edit->grasa = new inputField('Grasa %', 'grasa');
     //$edit->grasa->rule='required';
     $edit->grasa->css_class = 'inputnum';
     $edit->grasa->size = 4;
     $edit->grasa->maxlength = 10;
     $edit->sal = new inputField('Sal', 'sal');
     //$edit->grasa->rule='required';
     $edit->sal->css_class = 'inputnum';
     $edit->sal->size = 4;
     $edit->sal->maxlength = 10;
     $edit->tina = new dropdownField('Tina', 'tina');
     $edit->tina->rule = 'required';
     $edit->tina->option('', 'Seleccionar');
     $edit->tina->options("SELECT codigo, CONCAT( codigo, '-', descripcion, '-', capacidad) descrip FROM tinaq ORDER BY codigo");
     $edit->tina->style = 'width:150px;';
     /*
     		$edit->reciclaje = new inputField('Reproceso','reciclaje');
     		$edit->reciclaje->css_class='inputnum';
     		$edit->reciclaje->insertValue='0';
     		$edit->reciclaje->size =8;
     		$edit->reciclaje->maxlength =10;
     */
     //Inicio del detalle
     $edit->itid = new hiddenField('', 'itid_<#i#>');
     $edit->itid->db_name = 'id';
     $edit->itid->rel_id = 'itlprod';
     $edit->itcodrut = new inputField('ruta', 'codrut_<#i#>');
     $edit->itcodrut->db_name = 'codrut';
     $edit->itcodrut->rule = 'max_length[4]';
     $edit->itcodrut->size = 7;
     $edit->itcodrut->maxlength = 4;
     $edit->itcodrut->rel_id = 'itlprod';
     $edit->itnombre = new inputField('ruta', 'itnombre_<#i#>');
     $edit->itnombre->db_name = 'nombre';
     $edit->itnombre->type = 'inputhidden';
     $edit->itnombre->size = 14;
     $edit->itnombre->maxlength = 12;
     $edit->itnombre->rel_id = 'itlprod';
     $edit->itlitros = new inputField('litros', 'itlitros_<#i#>');
     $edit->itlitros->db_name = 'litros';
     $edit->itlitros->rule = 'max_length[12]|numeric|mayorcero|callback_chlitros[<#i#>]';
     $edit->itlitros->css_class = 'inputnum';
     $edit->itlitros->size = 14;
     $edit->itlitros->maxlength = 12;
     $edit->itlitros->onkeyup = 'totalizar();';
     $edit->itlitros->rel_id = 'itlprod';
     $edit->itbufala = new inputField('bufala', 'itbufala_<#i#>');
     $edit->itbufala->db_name = 'bufala';
     $edit->itbufala->rule = 'max_length[12]|numeric|mayorcero|callback_chlitros[<#i#>]';
     $edit->itbufala->css_class = 'inputnum';
     $edit->itbufala->size = 14;
     $edit->itbufala->maxlength = 12;
     $edit->itbufala->onkeyup = 'totalizar();';
     $edit->itbufala->rel_id = 'itlprod';
     //Fin del detalle
     $edit->usuario = new autoUpdateField('usuario', $this->secu->usuario(), $this->secu->usuario());
     $edit->buttons('add_rel');
     $edit->build();
     if ($edit->on_success()) {
         $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk);
         echo json_encode($rt);
     } else {
         //echo $edit->output;
         $conten['form'] =& $edit;
         $this->load->view('view_lprod', $conten);
     }
 }
Example #6
0
    function dataedit()
    {
        $this->rapyd->load('dataobject', 'datadetails');
        $script = '
		$(function() {
			$("#fecha").datepicker({dateFormat:"dd/mm/yy"});
			$(".inputnum").numeric(".");
		});';
        $do = new DataObject('rcobro');
        $do->rel_one_to_many('smov', 'smov', array('id' => 'rcobro'));
        $edit = new DataDetails($this->t**s, $do);
        $edit->script($script, 'modify');
        $edit->script($script, 'create');
        $edit->on_save_redirect = false;
        $edit->back_url = site_url($this->url . 'filteredgrid');
        $edit->post_process('insert', '_post_insert');
        $edit->post_process('update', '_post_update');
        $edit->post_process('delete', '_post_delete');
        $edit->pre_process('insert', '_pre_insert');
        $edit->pre_process('update', '_pre_update');
        $edit->pre_process('delete', '_pre_delete');
        $edit->tipo = new inputField('Tipo', 'tipo');
        $edit->tipo->rule = '';
        $edit->tipo->size = 3;
        $edit->tipo->maxlength = 1;
        $edit->tipo->insertValue = 'P';
        $edit->fecha = new dateonlyField('Fecha', 'fecha');
        $edit->fecha->rule = 'chfecha';
        $edit->fecha->calendar = false;
        $edit->fecha->size = 10;
        $edit->fecha->insertValue = date('Y-m-d');
        $edit->fecha->maxlength = 8;
        $edit->fecha->calendar = false;
        $edit->retorno = new dateonlyField('Recepci&oacute;n', 'retorno');
        $edit->retorno->rule = 'chfecha';
        $edit->retorno->calendar = false;
        $edit->retorno->size = 10;
        $edit->retorno->maxlength = 8;
        $edit->retorno->calendar = false;
        /*
        		$edit->vende = new inputField('Vendedor','vende');
        		$edit->vende->rule='';
        		$edit->vende->size =5;
        		$edit->vende->maxlength =5;
        */
        $edit->vende = new dropdownField('Cobrador', 'vende');
        $edit->vende->options('SELECT vendedor, CONCAT(vendedor," - ",nombre) nombre FROM vend WHERE tipo IN ("C","A") ORDER BY nombre');
        $edit->vende->style = "width:250px;";
        $edit->observa = new textareaField('Observaci&oacute;n', 'observa');
        $edit->observa->rule = '';
        $edit->observa->cols = 70;
        $edit->observa->rows = 2;
        $edit->facturas = new inputField('Nro. de Facturas', 'facturas');
        $edit->facturas->rule = 'integer';
        $edit->facturas->css_class = 'inputonlynum';
        $edit->facturas->type = 'inputhidden';
        $edit->facturas->showformat = 'decimal';
        $edit->facturas->readonly = true;
        $edit->monto = new inputField('Monto total', 'total');
        $edit->monto->db_name = 'monto';
        $edit->monto->rule = 'numeric';
        $edit->monto->css_class = 'inputnum';
        $edit->monto->type = 'inputhidden';
        $edit->monto->showformat = 'decimal';
        $edit->monto->readonly = true;
        $edit->estampa = new autoUpdateField('estampa', date('Ymd'), date('Ymd'));
        $edit->usuario = new autoUpdateField('usuario', $this->session->userdata('usuario'), $this->session->userdata('usuario'));
        $edit->hora = new autoUpdateField('hora', date('H:i:s'), date('H:i:s'));
        //**************************************************************
        // Detalle
        //**************************************************************
        $edit->itid = new hiddenField('Id', 'id_<#i#>');
        $edit->itid->rule = '';
        $edit->itid->db_name = 'id';
        $edit->itid->rel_id = 'smov';
        $edit->tipo_doc = new inputField('Tipo Doc.', 'tipo_doc_<#i#>');
        $edit->tipo_doc->db_name = 'tipo_doc';
        $edit->tipo_doc->rule = '';
        $edit->tipo_doc->rel_id = 'smov';
        $edit->tipo_doc->type = 'inputhidden';
        $edit->numero = new inputField('N&uacute;mero', 'numero_<#i#>');
        $edit->numero->db_name = 'numero';
        $edit->numero->rule = '';
        $edit->numero->size = 10;
        $edit->numero->maxlength = 8;
        $edit->numero->rel_id = 'smov';
        $edit->fechad = new dateonlyField('Fecha', 'fechad_<#i#>');
        $edit->fechad->db_name = 'fechad';
        $edit->fechad->rule = 'chfecha';
        $edit->fechad->rel_id = 'smov';
        $edit->fechad->calendar = false;
        $edit->fechad->readonly = true;
        $edit->fechad->type = 'inputhidden';
        $edit->vence = new dateonlyField('Vence', 'vence_<#i#>');
        $edit->vence->db_name = 'vence';
        $edit->vence->rule = 'chfecha';
        $edit->vence->rel_id = 'smov';
        $edit->vence->type = 'inputhidden';
        $edit->vence->calendar = false;
        $edit->vence->readonly = true;
        /*
        		$edit->vd = new inputField('Vd','vd_<#i#>');
        		$edit->vd->rule='';
        		$edit->vd->size =7;
        		$edit->vd->maxlength =5;
        		$edit->vd->rel_id ='smov';
        
        		$edit->cod_cli = new inputField('Cod_cli','cod_cli_<#i#>');
        		$edit->cod_cli->rule='';
        		$edit->cod_cli->size =7;
        		$edit->cod_cli->maxlength =5;
        		$edit->cod_cli->rel_id ='smov';
        */
        $edit->nombre = new inputField('Nombre', 'nombre_<#i#>');
        $edit->nombre->db_name = 'nombre';
        $edit->nombre->rule = '';
        $edit->nombre->rel_id = 'smov';
        $edit->nombre->type = 'inputhidden';
        $edit->nombre->readonly = true;
        /*
        		$edit->referen = new inputField('Referen','referen_<#i#>');
        		$edit->referen->rule='';
        		$edit->referen->size =3;
        		$edit->referen->maxlength =1;
        		$edit->referen->rel_id ='smov';
        
        		$edit->totals = new inputField('Totals','monto_<#i#>');
        		$edit->totals->rule='numeric';
        		$edit->totals->css_class='inputnum';
        		$edit->totals->size =14;
        		$edit->totals->maxlength =12;
        		$edit->totals->rel_id ='sfac';
        */
        $edit->totalg = new inputField('Total', 'monto_<#i#>');
        $edit->totalg->db_name = 'monto';
        $edit->totalg->rule = 'numeric';
        $edit->totalg->css_class = 'inputnum';
        $edit->totalg->size = 14;
        $edit->totalg->maxlength = 12;
        $edit->totalg->rel_id = 'smov';
        $edit->totalg->type = 'inputhidden';
        $edit->totalg->readonly = true;
        //******************************************************************
        $edit->buttons('add_rel');
        $edit->build();
        if ($edit->on_success()) {
            $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk);
            echo json_encode($rt);
        } else {
            $conten['form'] =& $edit;
            $this->load->view('view_rcobro', $conten);
        }
    }
Example #7
0
 function dataedit($urlfecha = null)
 {
     $semana = array('DOMINGO', 'LUNES', 'MARTES', 'MIERCOLES', 'JUEVES', 'VIERNES', 'SABADO');
     if (preg_match('/(?P<anio>\\d{4})\\-(?P<mes>\\d{2})\\-(?P<dia>\\d{2})/', $urlfecha, $matches) > 0) {
         $fecha = date('Y-m-d', mktime(0, 0, 0, $matches['mes'], $matches['dia'], $matches['anio']));
         $dia = $semana[date('w', mktime(0, 0, 0, $matches['mes'], $matches['dia'], $matches['anio']))];
     } else {
         $fecha = date('Y-m-d');
         $dia = $semana[date('w')];
     }
     $this->rapyd->load('datadetails', 'dataobject');
     $do = new DataObject('lcierre');
     //$do->pointer('scli' ,'scli.cliente=rivc.cod_cli','sprv.tipo AS sprvtipo, sprv.reteiva AS sprvreteiva','left');
     $do->rel_one_to_many('itlcierre', 'itlcierre', array('id' => 'id_lcierre'));
     $do->order_rel_one_to_many('itlcierre', 'codigo');
     $edit = new DataDetails($this->t**s, $do);
     $edit->on_save_redirect = false;
     $edit->post_process('insert', '_post_insert_lcierre');
     $edit->post_process('update', '_post_update_lcierre');
     $edit->post_process('delete', '_post_delete_lcierre');
     $edit->pre_process('insert', '_pre_insert_lcierre');
     //$edit->pre_process('update' ,'_pre_update_lcierre');
     //$edit->pre_process('delete' ,'_pre_delete_lcierre');
     $edit->requeson = new inputField('Requeson', 'requeson');
     $edit->requeson->css_class = 'inputnum';
     $edit->requeson->rule = 'required';
     $edit->requeson->size = 12;
     $edit->requeson->maxlength = 10;
     $dbfecha = $this->db->escape($fecha);
     $recibido = $this->datasis->dameval("SELECT SUM(litros)            AS val FROM lrece WHERE fecha={$dbfecha}");
     //Litros recibidos
     $producido = $this->datasis->dameval("SELECT SUM(litros-inventario) AS val FROM lprod WHERE fecha={$dbfecha}");
     //Litros recibidos usados en produccion
     $enfria = $recibido - $producido;
     //Litros que quedan para enfriar
     $edit->enfriamiento = new inputField('Leche para Enfriamiento', 'enfriamiento');
     $edit->enfriamiento->css_class = 'inputnum';
     $edit->enfriamiento->rule = 'required';
     $edit->enfriamiento->size = 12;
     $edit->enfriamiento->insertValue = $enfria;
     $edit->enfriamiento->maxlength = 10;
     $edit->dia = new inputField('D&iacute;a', 'dia');
     $edit->dia->size = 12;
     $edit->dia->maxlength = 10;
     $edit->dia->type = 'inputhidden';
     $edit->dia->insertValue = $dia;
     $edit->fecha = new dateField('Fecha', 'fecha');
     $edit->fecha->rule = 'chfecha|required';
     $edit->fecha->size = 10;
     $edit->fecha->maxlength = 8;
     $edit->fecha->type = 'inputhidden';
     $edit->fecha->insertValue = $fecha;
     $edit->fecha->calendar = false;
     $edit->usuario = new autoUpdateField('usuario', $this->secu->usuario(), $this->secu->usuario());
     //Inicio del detalle
     $rel = 'itlcierre';
     $edit->itcodigo = new inputField('Codigo', 'itcodigo_<#i#>');
     $edit->itcodigo->db_name = 'codigo';
     $edit->itcodigo->rule = 'max_length[15]|required';
     $edit->itcodigo->size = 7;
     $edit->itcodigo->maxlength = 4;
     $edit->itcodigo->rel_id = $rel;
     $edit->itdescrip = new inputField('', 'itdescrip_<#i#>');
     $edit->itdescrip->db_name = 'descrip';
     $edit->itdescrip->type = 'inputhidden';
     $edit->itdescrip->rel_id = $rel;
     $edit->itcestas = new inputField('Cestas', 'itcestas_<#i#>');
     $edit->itcestas->db_name = 'cestas';
     $edit->itcestas->rule = 'max_length[12]|numeric|required';
     $edit->itcestas->css_class = 'inputnum';
     $edit->itcestas->size = 14;
     $edit->itcestas->maxlength = 12;
     $edit->itcestas->rel_id = $rel;
     $edit->itunidades = new inputField('Unidades', 'itunidades_<#i#>');
     $edit->itunidades->db_name = 'unidades';
     $edit->itunidades->rule = 'max_length[12]|numeric|required';
     $edit->itunidades->css_class = 'inputnum';
     $edit->itunidades->size = 14;
     $edit->itunidades->maxlength = 12;
     $edit->itunidades->rel_id = $rel;
     $edit->itpeso = new inputField('Producido (Peso)', 'itpeso_<#i#>');
     $edit->itpeso->db_name = 'peso';
     $edit->itpeso->rule = 'max_length[12]|numeric';
     $edit->itpeso->css_class = 'inputnum';
     $edit->itpeso->size = 14;
     $edit->itpeso->maxlength = 12;
     $edit->itpeso->rel_id = $rel;
     $edit->itpeso->when = array('modify', 'show');
     //Fin del detalle
     $edit->buttons('add_rel');
     $edit->build();
     if ($edit->on_success()) {
         $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk);
         echo json_encode($rt);
     } else {
         //echo $edit->output;
         //$conten['max_rel_count']=$max_rel_count;
         $conten['fecha'] = $fecha;
         $conten['form'] =& $edit;
         $this->load->view('view_lcierre', $conten);
     }
 }
Example #8
0
 function dataedit()
 {
     $this->rapyd->load('dataobject', 'datadetails');
     $tipo_rete = $this->datasis->traevalor('CONTRIBUYENTE');
     $rif = $this->datasis->traevalor('RIF');
     $fields = $this->db->field_data('gser');
     $url_pk = $this->uri->segment_array();
     $coun = 0;
     $pk = array();
     foreach ($fields as $field) {
         if ($field->primary_key == 1) {
             $coun++;
             $pk[] = $field->name;
         }
     }
     $values = array_slice($url_pk, -$coun);
     $claves = array_combine(array_reverse($pk), $values);
     $query = "UPDATE gitser AS a\n\t\t\tJOIN gser AS b on a.numero=b.numero and a.fecha = b.fecha and a.proveed = b.proveed\n\t\t\tSET a.idgser=b.id\n\t\t\tWHERE a.id=" . $claves['id'] . " ";
     $this->db->simple_query($query);
     $mSPRV = array('tabla' => 'sprv', 'columnas' => array('proveed' => 'Coodigo', 'nombre' => 'Nombre', 'rif' => 'Rif'), 'filtro' => array('proveed' => 'Codigo', 'nombre' => 'Nombre'), 'retornar' => array('proveed' => 'proveed', 'nombre' => 'nombre', 'tipo' => 'sprvtipo', 'reteiva' => 'sprvreteiva'), 'script' => array('post_sprv_modbus()'), 'titulo' => 'Buscar Proveedor');
     $bSPRV = $this->datasis->modbus($mSPRV);
     $do = new DataObject('gser');
     $do->pointer('sprv', 'sprv.proveed=gser.proveed', 'sprv.tipo AS sprvtipo, sprv.reteiva AS sprvreteiva', 'left');
     $do->rel_one_to_many('gitser', 'gitser', array('id' => 'idgser'));
     $do->rel_one_to_many('gereten', 'gereten', array('id' => 'idd'));
     $do->where_rel_one_to_many('gereten', array('gereten.origen', 'GSER'));
     //$do->rel_pointer('rete','rete','gereten.codigorete=rete.codigo','rete.pama1 AS retepama1');
     $edit = new DataDetails('Gastos', $do);
     if ($edit->_status == 'show') {
         $edit->back_url = site_url('finanzas/gser/filteredgrid');
     } else {
         $edit->back_url = site_url('finanzas/gser/agregar');
     }
     $edit->set_rel_title('gitser', 'Gasto <#o#>');
     $edit->pre_process('insert', '_pre_insert');
     $edit->pre_process('update', '_pre_update');
     $edit->pre_process('delete', '_pre_delete');
     $edit->post_process('insert', '_post_insert');
     $edit->post_process('update', '_post_update');
     $edit->post_process('delete', '_post_delete');
     $edit->tipo_doc = new dropdownField('Documento', 'tipo_doc');
     $edit->tipo_doc->style = 'width:80px';
     $edit->tipo_doc->option('FC', 'Factura');
     $edit->tipo_doc->option('ND', 'N. Debito');
     if ($edit->_status == 'show') {
         $edit->tipo_doc->option('XX', 'Anulado');
         $edit->tipo_doc->option('AD', 'Amortizacion');
         $edit->tipo_doc->option('GA', 'Gasto de Nomina');
     }
     $edit->ffactura = new DateonlyField('Fecha', 'ffactura', 'd/m/Y');
     $edit->ffactura->insertValue = date('Y-m-d');
     $edit->ffactura->size = 12;
     $edit->ffactura->rule = 'required';
     $edit->ffactura->calendar = false;
     $edit->fecha = new DateonlyField('Registro', 'fecha');
     $edit->fecha->insertValue = date('Y-m-d');
     $edit->fecha->size = 12;
     $edit->fecha->rule = 'required';
     $edit->fecha->calendar = false;
     $edit->vence = new DateonlyField('Vence', 'vence', 'd/m/Y');
     $edit->vence->insertValue = date('Y-m-d');
     $edit->vence->size = 12;
     $edit->vence->calendar = false;
     $edit->compra = new inputField('Doc.Asociado', 'compra');
     $edit->compra->rule = 'max_length[8]';
     $edit->compra->size = 10;
     $edit->compra->maxlength = 8;
     $edit->afecta = new inputField('Doc.Afectado', 'afecta');
     $edit->afecta->rule = '';
     $edit->afecta->size = 10;
     $edit->numero = new inputField('Documento Nro.', 'serie');
     $edit->numero->size = 10;
     $edit->numero->maxlength = 12;
     $edit->numero->autocomplete = false;
     $edit->numero->rule = 'condi_required|callback_chnumero|callback_chdupli';
     $edit->proveed = new inputField('Proveedor', 'proveed');
     $edit->proveed->size = 6;
     $edit->proveed->append($bSPRV);
     $edit->proveed->rule = 'existesprv|required';
     $edit->tercero = new inputField('Facturado a nombre de Tercero', 'tercero');
     $edit->tercero->size = 6;
     //$edit->tercero->append($bSPRV);
     $edit->tercero->rule = '';
     $edit->reteter = new inputField('Ret IVA Bs', 'reteter');
     $edit->reteter->rule = 'numeric|positive';
     $edit->reteter->size = 10;
     $edit->reteter->maxlength = 10;
     $edit->reteter->css_class = 'inputnum';
     $edit->reteter->showformat = 'decimal';
     $edit->reteter->autocomplete = false;
     $edit->nfiscal = new inputField('Control Fiscal', 'nfiscal');
     $edit->nfiscal->size = 10;
     $edit->nfiscal->autocomplete = false;
     $edit->nfiscal->maxlength = 20;
     $edit->nombre = new inputField('Nombre', 'nombre');
     $edit->nombre->size = 30;
     $edit->nombre->maxlength = 40;
     $edit->nombre->type = 'inputhidden';
     $edit->nombre->rule = 'required';
     $edit->sprvtipo = new hiddenField('', 'sprvtipo');
     $edit->sprvtipo->db_name = 'sclitipo';
     $edit->sprvtipo->pointer = true;
     $edit->sprvreteiva = new hiddenField('', 'sprvreteiva');
     $edit->sprvreteiva->db_name = 'sprvreteiva';
     $edit->sprvreteiva->insertValue = $tipo_rete == 'ESPECIAL' && strtoupper($rif[0]) != 'V' ? '75' : '0';
     $edit->sprvreteiva->pointer = true;
     $edit->totpre = new inputField('Sub.Total', 'totpre');
     $edit->totpre->size = 10;
     $edit->totpre->css_class = 'inputnum';
     $edit->totpre->readonly = true;
     $edit->totpre->showformat = 'decimal';
     $edit->totpre->type = 'inputhidden';
     $edit->totbruto = new inputField('Total', 'totbruto');
     $edit->totbruto->size = 10;
     $edit->totbruto->css_class = 'inputnum';
     $edit->totbruto->showformat = 'decimal';
     $edit->totbruto->type = 'inputhidden';
     $edit->totiva = new inputField('Total IVA', 'totiva');
     $edit->totiva->css_class = 'inputnum';
     $edit->totiva->size = 10;
     $edit->totiva->showformat = 'decimal';
     $edit->totiva->type = 'inputhidden';
     $edit->reteica = new inputField('Ret. ICA', 'reteica');
     $edit->reteica->css_class = 'inputnum';
     $edit->reteica->when = array('show');
     $edit->reteica->size = 10;
     $edit->reteica->showformat = 'decimal';
     $edit->retesimple = new inputField('Ret', 'retesimple');
     $edit->retesimple->css_class = 'inputnum';
     $edit->retesimple->when = array('show');
     $edit->retesimple->size = 10;
     $edit->retesimple->showformat = 'decimal';
     $edit->codb1 = new dropdownField('Caja/Banco', 'codb1');
     $edit->codb1->option('', 'Ninguno');
     $edit->codb1->options("SELECT TRIM(codbanc) AS ind, CONCAT_WS('-',codbanc,banco) AS label FROM banc WHERE activo='S' AND codbanc<>'00' ORDER BY codbanc");
     $edit->codb1->rule = 'max_length[5]|callback_chcodb|condi_required';
     $edit->codb1->style = 'width:120px';
     $edit->codb1->onchange = "esbancaja(this.value)";
     $edit->fondo = new dropdownField('Fondo', 'fondo');
     $edit->fondo->option('', 'Ninguno');
     $edit->fondo->options("SELECT TRIM(codbanc) AS ind, CONCAT_WS('-',codbanc,banco) AS label FROM banc WHERE activo='S' AND codbanc<>'00' AND tbanco='FO' ORDER BY codbanc");
     $edit->fondo->style = 'width:160px';
     $edit->tipo1 = new dropdownField('Tipo', 'tipo1');
     $edit->tipo1->option('', 'Ninguno');
     $edit->tipo1->option('C', 'Cheque');
     $edit->tipo1->option('D', 'N.Debito');
     $edit->tipo1->rule = 'condi_required|callback_chtipoe';
     $edit->tipo1->style = 'width:70px';
     $edit->cheque1 = new inputField('N&uacute;mero', 'cheque1');
     $edit->cheque1->rule = 'condi_required|callback_chobliganumerog';
     $edit->cheque1->size = 12;
     $edit->cheque1->maxlength = 20;
     $edit->benefi = new inputField('Beneficiario', 'benefi');
     $edit->benefi->size = 39;
     $edit->benefi->maxlength = 40;
     $edit->monto1 = new inputField('Contado', 'monto1');
     $edit->monto1->rule = 'numeric|positive';
     $edit->monto1->size = 10;
     $edit->monto1->css_class = 'inputnum';
     $edit->monto1->onkeyup = 'contado()';
     $edit->monto1->rule = 'condi_required|callback_chmontocontado|positive';
     $edit->monto1->autocomplete = false;
     $edit->monto1->showformat = 'decimal';
     $edit->credito = new inputField('Monto a Cr&eacute;dito', 'credito');
     $edit->credito->rule = 'numeric|positive';
     $edit->credito->size = 10;
     $edit->credito->showformat = 'decimal';
     $edit->credito->css_class = 'inputnum';
     $edit->credito->onkeyup = 'ccredito()';
     $edit->credito->autocomplete = false;
     //$edit->credito->readonly=true;
     $edit->reten = new inputField('Ret. ISLR', 'reten');
     $edit->reten->rule = 'numeric|positive';
     $edit->reten->size = 10;
     $edit->reten->maxlength = 10;
     $edit->reten->css_class = 'inputnum';
     //$edit->reten->when=array('show');
     $edit->reten->showformat = 'decimal';
     $edit->reten->type = 'inputhidden';
     $edit->reteiva = new inputField('Ret de IVA', 'reteiva');
     $edit->reteiva->rule = 'numeric|positive';
     $edit->reteiva->size = 10;
     $edit->reteiva->maxlength = 10;
     $edit->reteiva->rule = 'callback_chreteiva';
     $edit->reteiva->onchange = 'totalizar()';
     $edit->reteiva->css_class = 'inputnum';
     $edit->reteiva->showformat = 'decimal';
     $edit->reteiva->autocomplete = false;
     //$edit->reteiva->onkeyup="reteiva()";
     $edit->cnd = new checkboxField('IVA Deducible', 'cnd', 'S', 'N');
     $edit->cnd->insertValue = 'S';
     $edit->reteica = new inputField('Ret. ICA', 'reteica');
     $edit->reteica->size = 10;
     $edit->reteica->maxlength = 10;
     //$edit->reteica->rule = 'callback_chreteiva';
     $edit->reteica->css_class = 'inputnum';
     $edit->reteica->when = array('show');
     $edit->totneto = new inputField('Monto Neto', 'totneto');
     $edit->totneto->rule = 'numeric|positive';
     $edit->totneto->size = 10;
     $edit->totneto->maxlength = 10;
     $edit->totneto->css_class = 'inputnum';
     $edit->totneto->readonly = true;
     $edit->totneto->showformat = 'decimal';
     //$edit->totneto->type='inputhidden';
     $edit->usuario = new autoUpdateField('usuario', $this->session->userdata('usuario'), $this->session->userdata('usuario'));
     $edit->estampa = new autoUpdateField('estampa', date('Ymd'), date('Ymd'));
     $edit->hora = new autoUpdateField('hora', date('H:i:s'), date('H:i:s'));
     //**************************************************************
     //   Campos para el detalle 1
     //
     $edit->codigo = new inputField('Codigo <#o#>', 'codigo_<#i#>');
     $edit->codigo->size = 7;
     $edit->codigo->db_name = 'codigo';
     //$edit->codigo->append($btn);
     $edit->codigo->rule = 'required|existemgas';
     $edit->codigo->rel_id = 'gitser';
     $edit->descrip = new inputField('Descripcion <#o#>', 'descrip_<#i#>');
     $edit->descrip->size = 40;
     $edit->descrip->db_name = 'descrip';
     $edit->descrip->maxlength = 50;
     $edit->descrip->rel_id = 'gitser';
     $edit->precio = new inputField('Precio <#o#>', 'precio_<#i#>');
     $edit->precio->db_name = 'precio';
     $edit->precio->css_class = 'inputnum';
     $edit->precio->size = 10;
     $edit->precio->rule = 'required|positive';
     $edit->precio->rel_id = 'gitser';
     $edit->precio->autocomplete = false;
     $edit->precio->onkeyup = 'importe(<#i#>)';
     $edit->precio->showformat = 'decimal';
     $ivas = $this->datasis->ivaplica();
     $edit->tasaiva = new dropdownField('IVA <#o#>', 'tasaiva_<#i#>');
     $edit->tasaiva->option($ivas['tasa'], $ivas['tasa'] . '%');
     $edit->tasaiva->option($ivas['redutasa'], $ivas['redutasa'] . '%');
     $edit->tasaiva->option($ivas['sobretasa'], $ivas['sobretasa'] . '%');
     $edit->tasaiva->option('0', '0.00%');
     $edit->tasaiva->db_name = 'tasaiva';
     $edit->tasaiva->rule = 'positive';
     $edit->tasaiva->style = "30px";
     $edit->tasaiva->rel_id = 'gitser';
     $edit->tasaiva->onchange = 'importe(<#i#>)';
     $edit->iva = new inputField('importe <#o#>', 'iva_<#i#>');
     $edit->iva->db_name = 'iva';
     $edit->iva->css_class = 'inputnum';
     $edit->iva->rel_id = 'gitser';
     $edit->iva->size = 8;
     $edit->iva->rule = 'positive|callback_chretiva';
     $edit->iva->onkeyup = 'valida(<#i#>)';
     $edit->iva->showformat = 'decimal';
     $edit->iva->type = 'inputhidden';
     $edit->importe = new inputField('importe <#o#>', 'importe_<#i#>');
     $edit->importe->db_name = 'importe';
     $edit->importe->css_class = 'inputnum';
     $edit->importe->rel_id = 'gitser';
     $edit->importe->size = 10;
     $edit->importe->onkeyup = 'valida(<#i#>)';
     $edit->importe->showformat = 'decimal';
     $edit->importe->type = 'inputhidden';
     $edit->departa = new dropdownField('Departamento <#o#>', 'departa_<#i#>');
     $edit->departa->option('', 'Seleccionar');
     $edit->departa->options("SELECT TRIM(depto) AS codigo, CONCAT_WS('-',depto,TRIM(descrip)) AS label FROM dpto WHERE tipo IN ('G','A') ORDER BY depto");
     $edit->departa->db_name = 'departa';
     $edit->departa->rule = 'required';
     $edit->departa->style = 'width:70px';
     $edit->departa->rel_id = 'gitser';
     $edit->departa->onchange = "gdeparta(this.value)";
     $edit->sucursal = new dropdownField('Sucursal <#o#>', 'sucursal_<#i#>');
     $edit->sucursal->options("SELECT codigo,codigo AS sucursal FROM sucu ORDER BY codigo");
     $edit->sucursal->db_name = 'sucursal';
     $edit->sucursal->rule = 'required';
     $edit->sucursal->style = 'width:40px';
     $edit->sucursal->title = 'Sucursal';
     $edit->sucursal->rel_id = 'gitser';
     $edit->sucursal->onchange = "gsucursal(this.value)";
     $edit->cargo = new dropdownField('Cargo <#o#>', 'cargo_<#i#>');
     $edit->cargo->option('', 'Seleccionar');
     $edit->cargo->options("SELECT id, CONCAT(codigo,' ',nombre) nombre FROM usol WHERE activo='S' ORDER BY codigo");
     $edit->cargo->db_name = 'gcargo';
     $edit->cargo->style = 'width:50px';
     $edit->cargo->title = 'Cargo';
     $edit->cargo->rel_id = 'gitser';
     $edit->cargo->onchange = "gcargo(this.value)";
     //================= Fin de campos para detalle =================
     //**************************************************************
     //   Campos para el detalle reten
     //
     $edit->itorigen = new autoUpdateField('origen', 'GSER', 'GSER');
     $edit->itorigen->rel_id = 'gereten';
     $edit->codigorete = new dropdownField('', 'codigorete_<#i#>');
     $edit->codigorete->option('', 'Seleccionar');
     $edit->codigorete->options('SELECT TRIM(codigo) AS codigo,TRIM(CONCAT_WS("-",tipo,codigo,activida)) AS activida FROM rete ORDER BY tipo,codigo');
     $edit->codigorete->db_name = 'codigorete';
     $edit->codigorete->rule = 'max_length[4]';
     $edit->codigorete->style = 'width: 300px';
     $edit->codigorete->rel_id = 'gereten';
     $edit->codigorete->onchange = 'post_codigoreteselec(<#i#>,this.value)';
     $edit->base = new inputField('base', 'base_<#i#>');
     $edit->base->db_name = 'base';
     $edit->base->rule = 'max_length[10]|numeric|positive';
     $edit->base->css_class = 'inputnum';
     $edit->base->size = 12;
     $edit->base->autocomplete = false;
     $edit->base->rel_id = 'gereten';
     $edit->base->maxlength = 10;
     $edit->base->onkeyup = 'importerete(<#i#>)';
     $edit->base->showformat = 'decimal';
     $edit->porcen = new inputField('porcen', 'porcen_<#i#>');
     $edit->porcen->db_name = 'porcen';
     $edit->porcen->rule = 'max_length[5]|numeric|positive';
     $edit->porcen->css_class = 'inputnum';
     $edit->porcen->size = 7;
     $edit->porcen->rel_id = 'gereten';
     $edit->porcen->readonly = true;
     $edit->porcen->maxlength = 5;
     $edit->porcen->showformat = 'decimal';
     $edit->porcen->type = 'inputhidden';
     $edit->monto = new inputField('monto', 'monto_<#i#>');
     $edit->monto->db_name = 'monto';
     $edit->monto->rule = 'max_length[10]|numeric|positive';
     $edit->monto->css_class = 'inputnum';
     $edit->monto->rel_id = 'gereten';
     $edit->monto->size = 12;
     $edit->monto->readonly = true;
     $edit->monto->maxlength = 8;
     $edit->monto->showformat = 'decimal';
     $edit->monto->type = 'inputhidden';
     $edit->terceroi = new checkboxField('terceroi', 'terceroi_<#i#>', 'S', 'N');
     $edit->terceroi->insertValue = 'N';
     $edit->terceroi->rel_id = 'gereten';
     $edit->terceroi->db_name = 'tercero';
     //********************************
     // Fin de campos para detalle
     //
     $edit->buttons('add_rel');
     $edit->on_save_redirect = false;
     $edit->build();
     if ($edit->on_success()) {
         $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk);
         echo json_encode($rt);
     } else {
         if ($this->genesal) {
             $conten['form'] =& $edit;
             $conten['solo'] = $this->solo;
             $data['content'] = $this->load->view('view_gser', $conten);
         } else {
             $rt = array('status' => 'B', 'mensaje' => html_entity_decode($edit->error_string), 'pk' => '');
             echo json_encode($rt);
         }
     }
 }
Example #9
0
    function dataedit()
    {
        $this->rapyd->load('dataobject', 'datadetails');
        $script = '
		$(function() {
			$("#fecha").datepicker({dateFormat:"dd/mm/yy"});
			$(".inputnum").numeric(".");
		});
		';
        $do = new DataObject('ordp');
        $do->rel_one_to_many('ordpitem', 'ordpitem', 'numero');
        $edit = new DataDetails($this->t**s, $do);
        $edit->script($script, 'modify');
        $edit->script($script, 'create');
        $edit->on_save_redirect = false;
        $edit->back_url = site_url($this->url . 'filteredgrid');
        $edit->post_process('insert', '_post_insert');
        $edit->post_process('update', '_post_update');
        $edit->post_process('delete', '_post_delete');
        $edit->pre_process('insert', '_pre_insert');
        $edit->pre_process('update', '_pre_update');
        $edit->pre_process('delete', '_pre_delete');
        $edit->numero = new inputField('Numero', 'numero');
        $edit->numero->rule = '';
        $edit->numero->size = 10;
        $edit->numero->maxlength = 8;
        $edit->fecha = new dateonlyField('Fecha', 'fecha');
        $edit->fecha->rule = 'chfecha';
        $edit->fecha->calendar = false;
        $edit->fecha->size = 10;
        $edit->fecha->maxlength = 8;
        $edit->codigo = new inputField('Codigo', 'codigo');
        $edit->codigo->rule = '';
        $edit->codigo->size = 17;
        $edit->codigo->maxlength = 15;
        $edit->almacen = new inputField('Almacen', 'almacen');
        $edit->almacen->rule = '';
        $edit->almacen->size = 6;
        $edit->almacen->maxlength = 4;
        $edit->cana = new inputField('Cana', 'cana');
        $edit->cana->rule = 'numeric';
        $edit->cana->css_class = 'inputnum';
        $edit->cana->size = 12;
        $edit->cana->maxlength = 10;
        $edit->status = new inputField('Status', 'status');
        $edit->status->rule = '';
        $edit->status->size = 4;
        $edit->status->maxlength = 2;
        $edit->cliente = new inputField('Cliente', 'cliente');
        $edit->cliente->rule = '';
        $edit->cliente->size = 7;
        $edit->cliente->maxlength = 5;
        $edit->nombre = new inputField('Nombre', 'nombre');
        $edit->nombre->rule = '';
        $edit->nombre->size = 42;
        $edit->nombre->maxlength = 40;
        $edit->instrucciones = new textareaField('Instrucciones', 'instrucciones');
        $edit->instrucciones->rule = '';
        $edit->instrucciones->cols = 70;
        $edit->instrucciones->rows = 4;
        $edit->reserva = new inputField('Reserva', 'reserva');
        $edit->reserva->rule = '';
        $edit->reserva->size = 3;
        $edit->reserva->maxlength = 1;
        $edit->estampa = new autoUpdateField('estampa', date('Ymd'), date('Ymd'));
        $edit->usuario = new autoUpdateField('usuario', $this->session->userdata('usuario'), $this->session->userdata('usuario'));
        $edit->hora = new autoUpdateField('hora', date('H:i:s'), date('H:i:s'));
        $edit->modificado = new inputField('Modificado', 'modificado');
        $edit->modificado->rule = '';
        $edit->modificado->size = 10;
        $edit->modificado->maxlength = 8;
        //******************************************************************
        // Detalle
        //
        $edit->numero = new inputField('Numero', 'numero_<#i#>');
        $edit->numero->rule = '';
        $edit->numero->size = 10;
        $edit->numero->maxlength = 8;
        $edit->numero->rel_id = 'ordpitem';
        $edit->codigo = new inputField('Codigo', 'codigo_<#i#>');
        $edit->codigo->rule = '';
        $edit->codigo->size = 17;
        $edit->codigo->maxlength = 15;
        $edit->codigo->rel_id = 'ordpitem';
        $edit->descrip = new inputField('Descrip', 'descrip_<#i#>');
        $edit->descrip->rule = '';
        $edit->descrip->size = 42;
        $edit->descrip->maxlength = 40;
        $edit->descrip->rel_id = 'ordpitem';
        $edit->cantidad = new inputField('Cantidad', 'cantidad_<#i#>');
        $edit->cantidad->rule = 'numeric';
        $edit->cantidad->css_class = 'inputnum';
        $edit->cantidad->size = 16;
        $edit->cantidad->maxlength = 14;
        $edit->cantidad->rel_id = 'ordpitem';
        $edit->merma = new inputField('Merma', 'merma_<#i#>');
        $edit->merma->rule = 'numeric';
        $edit->merma->css_class = 'inputnum';
        $edit->merma->size = 12;
        $edit->merma->maxlength = 10;
        $edit->merma->rel_id = 'ordpitem';
        $edit->costo = new inputField('Costo', 'costo_<#i#>');
        $edit->costo->rule = 'numeric';
        $edit->costo->css_class = 'inputnum';
        $edit->costo->size = 19;
        $edit->costo->maxlength = 17;
        $edit->costo->rel_id = 'ordpitem';
        $edit->modificado = new inputField('Modificado', 'modificado_<#i#>');
        $edit->modificado->rule = '';
        $edit->modificado->size = 10;
        $edit->modificado->maxlength = 8;
        $edit->modificado->rel_id = 'ordpitem';
        $edit->fijo = new inputField('Fijo', 'fijo_<#i#>');
        $edit->fijo->rule = '';
        $edit->fijo->size = 3;
        $edit->fijo->maxlength = 1;
        $edit->fijo->rel_id = 'ordpitem';
        $edit->id_ordp = new inputField('Id_ordp', 'id_ordp_<#i#>');
        $edit->id_ordp->rule = 'integer';
        $edit->id_ordp->css_class = 'inputonlynum';
        $edit->id_ordp->size = 13;
        $edit->id_ordp->maxlength = 11;
        $edit->id_ordp->rel_id = 'ordpitem';
        //******************************************************************
        $edit->buttons('add_rel');
        $edit->build();
        if ($edit->on_success()) {
            $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk);
            echo json_encode($rt);
        } else {
            $conten['form'] =& $edit;
            $this->load->view('view_ordp', $conten);
        }
    }
Example #10
0
 function dataedit($status = '', $id = '')
 {
     $this->rapyd->load('dataedit', 'datadetails');
     $modbus = array('tabla' => 'sinv', 'columnas' => array('codigo' => 'C&oacute;digo', 'descrip' => 'Descripci&oacute;n', 'precio1' => 'Precio 1', 'precio2' => 'Precio 2', 'precio3' => 'Precio 3', 'existen' => 'Existencia'), 'filtro' => array('codigo' => 'C&oacute;digo', 'descrip' => 'Descripci&oacute;n'), 'retornar' => array(array('codigo' => 'itcodigo_<#i#>'), array('descrip' => 'itdescrip_<#i#>'), array('descrip' => 'itdescrip_<#i#>_val'), array('formcal' => 'itformcal_<#i#>'), array('ultimo' => 'itultimo_<#i#>_val'), array('ultimo' => 'itultimo_<#i#>'), array('pond' => 'itpond_<#i#>'), array('pond' => 'itpond_<#i#>_val'), array('base1' => 'itprecio1_<#i#>')), 'p_uri' => array(4 => '<#i#>'), 'titulo' => 'Buscar Articulo', 'where' => '`activo` = "S"', 'script' => array('totalizarcombo()'));
     $bSINV_C = $this->datasis->p_modbus($modbus, '<#i#>');
     $modbus = array('tabla' => 'sinv', 'columnas' => array('codigo' => 'C&oacute;digo', 'descrip' => 'Descripci&oacute;n', 'precio1' => 'Precio 1', 'precio2' => 'Precio 2', 'precio3' => 'Precio 3', 'existen' => 'Existencia'), 'filtro' => array('codigo' => 'C&oacute;digo', 'descrip' => 'Descripci&oacute;n'), 'retornar' => array(array('codigo' => 'it2codigo_<#i#>'), array('descrip' => 'it2descrip_<#i#>'), array('descrip' => 'it2descrip_<#i#>_val'), array('formcal' => 'it2formcal_<#i#>'), array('ultimo' => 'it2ultimo_<#i#>'), array('pond' => 'it2pond_<#i#>'), array('id' => 'it2id_sinv_<#i#>')), 'p_uri' => array(4 => '<#i#>'), 'titulo' => 'Buscar Articulo', 'where' => '`activo` = "S"', 'script' => array('totalizarpitem()'));
     $bSINV_I = $this->datasis->p_modbus($modbus, '<#i#>', 800, 600, 'sinv_i');
     $do = new DataObject('sinv');
     $do->pointer('grup', 'grup.grupo=sinv.grupo', 'grup.grupo AS grupgrupo', 'left');
     $do->pointer('line', 'line.linea=grup.linea', 'line.linea AS linelinea', 'left');
     $do->pointer('dpto', 'dpto.depto=line.depto', 'dpto.depto AS dptodepto', 'left');
     $do->pointer('sinv AS csinv', 'csinv.codigo=sinv.enlace', 'csinv.formcal AS cformcal,csinv.pond AS cpond,csinv.ultimo AS cultimo,csinv.descrip AS cdescrip,csinv.base1 AS cbase1,csinv.base2 AS cbase2,csinv.base3 AS cbase3,csinv.base4 AS cbase4', 'left');
     $do->rel_one_to_many('sinvcombo', 'sinvcombo', array('codigo' => 'combo'));
     $do->rel_one_to_many('sinvpitem', 'sinvpitem', array('codigo' => 'producto'));
     $do->rel_one_to_many('sinvplabor', 'sinvplabor', array('codigo' => 'producto'));
     $do->rel_pointer('sinvcombo', 'sinv AS p', 'p.codigo=sinvcombo.codigo', 'p.descrip AS sinvdescrip,p.pond AS sinvpond,p.ultimo sinvultimo,p.formcal sinvformcal,p.precio1 sinvprecio1');
     if ($status == 'create' && !empty($id)) {
         $do->load($id);
         $do->set('codigo', '');
         $do->set('alterno', '');
     }
     $edit = new DataDetails('', $do);
     $edit->on_save_redirect = false;
     $edit->pre_process('insert', '_pre_insert');
     $edit->pre_process('update', '_pre_update');
     $edit->pre_process('delete', '_pre_del');
     $edit->post_process('insert', '_post_insert');
     $edit->post_process('update', '_post_update');
     $edit->post_process('delete', '_post_delete');
     $ultimo = '<a href="javascript:ultimo();" title="Consultar ultimo c&oacute;digo ingresado">&Uacute;ltimo</a>';
     $sugerir = '<a href="javascript:sugerir();" title="Sugerir un c&oacute;digo aleatorio">Sugerir</a>';
     $edit->codigo = new inputField('C&oacute;digo', 'codigo');
     $edit->codigo->size = 15;
     $edit->codigo->maxlength = 15;
     $edit->codigo->rule = 'alpha_dash_slash|trim|strtoupper|callback_chexiste';
     $edit->codigo->mode = 'autohide';
     $edit->codigo->append($sugerir);
     //$edit->codigo->append($ultimo);
     $edit->alterno = new inputField('Alterno', 'alterno');
     $edit->alterno->size = 15;
     $edit->alterno->maxlength = 15;
     $edit->alterno->rule = 'trim|strtoupper|callback_chalterno';
     $edit->enlace = new inputField('Caja', 'enlace');
     $edit->enlace->size = 15;
     $edit->enlace->maxlength = 15;
     $edit->enlace->rule = 'trim|condi_required|callback_chenlace';
     $edit->cdescrip = new inputField('', 'cdescrip');
     $edit->cdescrip->pointer = true;
     $edit->cdescrip->db_name = 'cdescrip';
     $edit->cdescrip->type = 'inputhidden';
     $edit->aumento = new inputField('Aumento %', 'aumento');
     $edit->aumento->css_class = 'inputnum';
     $edit->aumento->size = 5;
     $edit->aumento->maxlength = 6;
     $edit->aumento->rule = 'condi_required|callback_chobligafraccion';
     $edit->aumento->autocomplete = false;
     //$edit->aumento->append('Solo si es fracci&oacute;n');
     $edit->maxven = new inputField('Venta m&aacute;xima', 'maxven');
     $edit->maxven->css_class = 'inputnum';
     $edit->maxven->insertValue = '0';
     $edit->maxven->size = 6;
     $edit->maxven->rule = 'numeric';
     $edit->maxven->autocomplete = false;
     $edit->minven = new inputField('Venta m&iacute;nima', 'minven');
     $edit->minven->css_class = 'inputnum';
     $edit->minven->insertValue = '0';
     $edit->minven->size = 6;
     $edit->minven->rule = 'numeric|callback_chminven';
     $edit->minven->autocomplete = false;
     $edit->barras = new inputField('C&oacute;digo Barras', 'barras');
     $edit->barras->size = 15;
     $edit->barras->maxlength = 15;
     $edit->barras->rule = 'trim|unique';
     $edit->tipo = new dropdownField('Tipo', 'tipo');
     $edit->tipo->style = 'width:100px;';
     $edit->tipo->option('Articulo', 'Art&iacute;culo');
     $edit->tipo->option('Servicio', 'Servicio');
     $edit->tipo->option('Descartar', 'Descartar');
     $edit->tipo->option('Fraccion', 'Fracci&oacute;n');
     $edit->tipo->option('Lote', 'Lote');
     $edit->tipo->option('Combo', 'Combo');
     $edit->tipo->rule = 'callback_chtipo';
     $AddUnidad = '<a href="javascript:add_unidad();" title="Haz clic para Agregar una unidad nueva">' . image('list_plus.png', 'Agregar', array("border" => "0")) . '</a>';
     $edit->unidad = new dropdownField('Unidad', 'unidad');
     $edit->unidad->style = 'width:100px;';
     $edit->unidad->option('', 'Seleccionar');
     $edit->unidad->options('SELECT unidades, unidades AS valor FROM unidad ORDER BY unidades');
     $edit->unidad->append($AddUnidad);
     $edit->clave = new inputField('Clave', 'clave');
     $edit->clave->size = 10;
     $edit->clave->maxlength = 8;
     $edit->clave->rule = 'trim|strtoupper';
     $edit->ubica = new dropdownField('Ubicaci&oacute;n', 'ubica');
     $edit->ubica->size = 9;
     $edit->ubica->option('', 'Seleccionar');
     $edit->ubica->options('SELECT ubica, CONCAT(ubica,\'-\',descrip) descrip FROM sinvubica ORDER BY ubica');
     $edit->ubica->style = 'width:100px;white-space:nowrap;';
     //		$edit->ubica->maxlength=9;
     //		$edit->ubica->rule = 'trim|strtoupper';
     $AddDepto = '<a href="javascript:add_depto();" title="Haz clic para Agregar un nuevo Departamento">' . image('list_plus.png', 'Agregar', array("border" => "0")) . '</a>';
     $edit->depto = new dropdownField('Departamento', 'depto');
     $edit->depto->rule = 'required';
     $edit->depto->style = 'width:230px;white-space:nowrap;';
     $edit->depto->option('', 'Seleccione un Departamento');
     $edit->depto->options('SELECT depto, CONCAT(depto,\'-\',descrip) descrip FROM dpto WHERE tipo=\'I\' ORDER BY depto');
     $edit->depto->db_name = 'dptodepto';
     $edit->depto->pointer = true;
     $AddLinea = '<a href="javascript:add_linea();" title="Haz clic para Agregar una nueva Linea;">' . image('list_plus.png', 'Agregar', array("border" => "0")) . '</a>';
     $edit->linea = new dropdownField('L&iacute;nea', 'linea');
     $edit->linea->rule = 'required';
     $edit->linea->style = 'width:230px;';
     $edit->linea->db_name = 'linelinea';
     $edit->linea->pointer = true;
     $depto = $edit->getval('depto');
     if ($depto !== false) {
         $dbdepto = $this->db->escape($depto);
         $edit->linea->options("SELECT linea, CONCAT(LINEA,'-',descrip) descrip FROM line WHERE depto={$dbdepto} ORDER BY descrip");
     } else {
         $edit->linea->option('', 'Seleccione un Departamento primero');
     }
     $AddGrupo = '<a href="javascript:add_grupo();" title="Haz clic para Agregar un nuevo Grupo;">' . image('list_plus.png', 'Agregar', array("border" => "0")) . '</a>';
     $edit->grupo = new dropdownField('Grupo', 'grupo');
     $edit->grupo->rule = 'required';
     $edit->grupo->style = 'width:230px;';
     $linea = $edit->getval('linea');
     if ($linea !== false) {
         $dblinea = $this->db->escape($linea);
         $edit->grupo->options("SELECT grupo, CONCAT(grupo,'-',nom_grup) nom_grup FROM grup WHERE linea={$dblinea} ORDER BY nom_grup");
     } else {
         $edit->grupo->option('', 'Seleccione un Departamento primero');
     }
     $edit->comision = new inputField('Comisi&oacute;n %', 'comision');
     $edit->comision->size = 7;
     $edit->comision->maxlength = 5;
     $edit->comision->css_class = 'inputnum';
     $edit->comision->rule = 'numeric|callback_positivo|trim';
     $edit->fracci = new inputField('Cant. X Empaque', 'fracci');
     $edit->fracci->size = 10;
     $edit->fracci->maxlength = 4;
     $edit->fracci->css_class = 'inputnum';
     $edit->fracci->rule = 'condi_required|trim|callback_chobligafraccion';
     $edit->fracci->insertValue = '1';
     $edit->activo = new dropdownField('Activo', 'activo');
     $edit->activo->style = 'width:50px;';
     $edit->activo->option('S', 'Si');
     $edit->activo->option('N', 'No');
     $edit->serial2 = new freeField('', 'free', 'Serial');
     $edit->serial2->in = 'activo';
     $edit->serial = new dropdownField('Usa Seriales', 'serial');
     $edit->serial->style = 'width:80px;';
     $edit->serial->option('N', 'No');
     $edit->serial->option('S', 'Si');
     $edit->serial->option('V', 'Vehicular');
     $edit->serial->in = 'activo';
     $edit->premin = new dropdownField('Precio M&iacute;nimo', 'premin');
     $edit->premin->style = 'width:100px;';
     $edit->premin->option('0', 'Todos');
     $edit->premin->option('2', 'Precio 2');
     $edit->premin->option('3', 'Precio 3');
     $edit->premin->option('4', 'Precio 4');
     $edit->vnega = new dropdownField('Venta Negativa', 'vnega');
     $edit->vnega->style = 'width:60px;';
     $edit->vnega->option('S', 'Si');
     $edit->vnega->option('N', 'No');
     $edit->tdecimal2 = new freeField('', 'free', 'Usa Decimales');
     $edit->tdecimal2->in = 'activo';
     $edit->tdecimal = new dropdownField('Usa Decimales', 'tdecimal');
     $edit->tdecimal->style = 'width:80px;';
     $edit->tdecimal->option('N', 'No');
     $edit->tdecimal->option('S', 'Si');
     $edit->tdecimal->in = 'activo';
     $edit->descrip = new inputField('Descripci&oacute;n', 'descrip');
     $edit->descrip->size = 45;
     $edit->descrip->maxlength = 45;
     $edit->descrip->rule = 'trim|required';
     $edit->descrip2 = new inputField('Descripci&oacute;n adicional', 'descrip2');
     $edit->descrip2->size = 45;
     $edit->descrip2->maxlength = 45;
     $edit->descrip2->rule = 'trim';
     $edit->url = new inputField('Sitio Web', 'url');
     $edit->url->size = 80;
     $edit->url->maxlength = 200;
     $edit->ficha = new textareaField('Ficha Tecnica', 'ficha');
     $edit->ficha->rule = 'trim';
     $edit->ficha->cols = 85;
     $edit->ficha->rows = 9;
     $edit->peso = new inputField('Peso Bruto', 'peso');
     $edit->peso->size = 10;
     $edit->peso->maxlength = 12;
     $edit->peso->css_class = 'inputnum';
     $edit->peso->rule = 'numeric|callback_positivo';
     $edit->peso->insertValue = 0;
     $edit->pesoneto = new inputField('Peso Neto', 'pesoneto');
     $edit->pesoneto->size = 10;
     $edit->pesoneto->maxlength = 12;
     $edit->pesoneto->css_class = 'inputnum';
     $edit->pesoneto->rule = 'numeric|callback_positivo';
     $edit->pesoneto->insertValue = '0';
     $edit->alto = new inputField('Alto', 'alto');
     $edit->alto->size = 10;
     $edit->alto->maxlength = 12;
     $edit->alto->css_class = 'inputnum';
     $edit->alto->rule = 'numeric|callback_positivo';
     $edit->alto->insertValue = 0;
     $edit->ancho = new inputField('Ancho', 'ancho');
     $edit->ancho->size = 10;
     $edit->ancho->maxlength = 12;
     $edit->ancho->css_class = 'inputnum';
     $edit->ancho->rule = 'numeric|callback_positivo';
     $edit->ancho->insertValue = 0;
     $edit->largo = new inputField('Largo', 'largo');
     $edit->largo->size = 10;
     $edit->largo->maxlength = 12;
     $edit->largo->css_class = 'inputnum';
     $edit->largo->rule = 'numeric|callback_positivo';
     $edit->largo->insertValue = 0;
     $edit->garantia = new inputField('Garantia', 'garantia');
     $edit->garantia->size = 9;
     $edit->garantia->maxlength = 3;
     $edit->garantia->css_class = 'inputonlynum';
     $edit->garantia->rule = 'numeric|callback_positivo';
     $edit->garantia->insertValue = 0;
     $edit->marca = new dropdownField('Marca', 'marca');
     $edit->marca->rule = 'required';
     $edit->marca->style = 'width:180px;';
     $edit->marca->option('', 'Seleccionar');
     $edit->marca->options('SELECT marca AS codigo, marca FROM marc ORDER BY marca');
     $edit->modelo = new inputField('Modelo', 'modelo');
     $edit->modelo->size = 20;
     $edit->modelo->maxlength = 20;
     $edit->modelo->rule = 'trim|strtoupper';
     $edit->clase = new dropdownField('Clase', 'clase');
     $edit->clase->style = 'width:100px;';
     $edit->clase->db_name = 'a.clase';
     $edit->clase->clause = 'where';
     $edit->clase->operator = '=';
     $edit->clase->option('', 'Seleccionar');
     $edit->clase->options('SELECT codigo,CONCAT_WS("-",codigo,descrip) AS val FROM sinvclase ORDER BY codigo');
     $ivas = $this->datasis->ivaplica();
     $edit->iva = new dropdownField('IVA %', 'iva');
     foreach ($ivas as $tasa => $ivamonto) {
         $edit->iva->option($ivamonto, nformat($ivamonto));
     }
     $edit->iva->style = 'width:100px;';
     $edit->iva->insertValue = $ivas['tasa'];
     $edit->iva->onchange = 'calculos(\'S\');';
     $edit->exento = new dropdownField('Vender Exento', 'exento');
     $edit->exento->style = 'width:50px;';
     $edit->exento->option('N', 'No');
     $edit->exento->option('E', 'Si');
     $edit->dolar = new inputField('Precio en $', 'dolar');
     $edit->dolar->css_class = 'inputnum';
     $edit->dolar->size = 10;
     $edit->dolar->maxlength = 13;
     $edit->dolar->autocomplete = false;
     $edit->dolar->insertValue = 0;
     $edit->margenu = new inputField('Margen Unico', 'margenu');
     $edit->margenu->css_class = 'inputnum';
     $edit->margenu->size = 10;
     $edit->margenu->maxlength = 13;
     $edit->margenu->autocomplete = false;
     $edit->margenu->insertValue = 0;
     $edit->ultimo = new inputField('&Uacute;ltimo', 'ultimo');
     $edit->ultimo->css_class = 'inputnum';
     $edit->ultimo->size = 10;
     $edit->ultimo->maxlength = 13;
     $edit->ultimo->onkeyup = 'calculos(\'S\');';
     $edit->ultimo->rule = 'required|mayorcero';
     $edit->ultimo->autocomplete = false;
     $edit->pond = new inputField('Promedio', 'pond');
     $edit->pond->css_class = 'inputnum';
     $edit->pond->size = 10;
     $edit->pond->maxlength = 13;
     $edit->pond->onkeyup = 'calculos(\'S\');';
     $edit->pond->rule = 'required|mayorcero';
     $edit->pond->autocomplete = false;
     //Para el caso de las fraccciones
     $edit->cultimo = new hiddenField('', 'cultimo');
     $edit->cultimo->pointer = true;
     $edit->cultimo->db_name = 'cultimo';
     $edit->cpond = new hiddenField('', 'cpond');
     $edit->cpond->pointer = true;
     $edit->cpond->db_name = 'cpond';
     $edit->standard = new inputField('Estandar', 'standard');
     $edit->standard->css_class = 'inputnum';
     $edit->standard->size = 10;
     $edit->standard->maxlength = 13;
     $edit->standard->insertValue = 0;
     $edit->standard->autocomplete = false;
     $edit->formcal = new dropdownField('Base C&aacute;lculo', 'formcal');
     $edit->formcal->style = 'width:110px;';
     $edit->formcal->rule = 'required|enum[U,P,M,S]';
     $edit->formcal->option('U', 'Ultimo');
     $edit->formcal->option('P', 'Promedio');
     $edit->formcal->option('M', 'Mayor');
     $edit->formcal->option('S', 'Standard');
     $edit->formcal->insertValue = 'U';
     $edit->formcal->onchange = 'requeridos();calculos(\'S\');';
     $edit->cformcal = new hiddenField('', 'cformcal');
     $edit->cformcal->pointer = true;
     $edit->cformcal->db_name = 'cformcal';
     $edit->redecen = new dropdownField('Redondear', 'redecen');
     $edit->redecen->style = 'width:110px;';
     $edit->redecen->option('N', 'No Cambiar');
     $edit->redecen->option('M', 'Solo un Decimal');
     $edit->redecen->option('F', 'Sin Decimales');
     $edit->redecen->option('D', 'Decenas');
     $edit->redecen->option('C', 'Centenas');
     $edit->redecen->rule = 'enum[N,M,F,D,C]';
     $edit->redecen->insertValue = 'N';
     $edit->redecen->onchange = 'calculos(\'S\');';
     $edit->servidor = new dropdownField('Registrar quien o que presta o fabrica este servicio', 'servidor');
     $edit->servidor->style = 'width:45px;';
     $edit->servidor->option('N', 'No');
     $edit->servidor->option('S', 'Si');
     $edit->servidor->insertValue = 'N';
     //$edit->servidor->rule='enum[N,S]';
     $edit->servidor->title = 'Activar si este item es instalado o realizado por alguien o utiliza algun recurso';
     $edit->linfe = new dropdownField('Limitar ventas', 'linfe');
     $edit->linfe->style = 'width:45px;';
     $edit->linfe->option('N', 'No');
     $edit->linfe->option('S', 'Si');
     $edit->linfe->insertValue = 'N';
     $edit->linfe->rule = 'enum[N,S]|callback_chlinfe';
     $edit->linfe->title = 'Activar si desea evitar que este producto no sea vendido a la misma persona en un per&iacute;odo de d&iacute;as';
     $edit->lindia = new inputField('D&iacute;as limite', 'lindia');
     $edit->lindia->css_class = 'inputnum';
     $edit->lindia->size = 3;
     $edit->lindia->maxlength = 5;
     $edit->lindia->rule = 'numeric';
     $edit->lindia->insertValue = '0';
     $edit->lindia->autocomplete = false;
     $edit->lincan = new inputField('Cantidad Limite', 'lincan');
     $edit->lincan->css_class = 'inputnum';
     $edit->lincan->size = 3;
     $edit->lincan->maxlength = 5;
     $edit->lincan->rule = 'numeric';
     $edit->lincan->insertValue = '0';
     $edit->lincan->autocomplete = false;
     $maxiss = 4;
     for ($i = 1; $i <= $maxiss; $i++) {
         $objeto = "margen{$i}";
         $edit->{$objeto} = new inputField("Margen {$i}", $objeto);
         $edit->{$objeto}->css_class = 'inputnum';
         $edit->{$objeto}->size = 10;
         $edit->{$objeto}->maxlength = 6;
         $edit->{$objeto}->onkeyup = 'calculos(\'I\');';
         $edit->{$objeto}->autocomplete = false;
         $edit->{$objeto}->rule = 'required';
         $edit->{$objeto}->tabindex = $i;
         $objeto = "base{$i}";
         $edit->{$objeto} = new inputField("Base {$i}", $objeto);
         $edit->{$objeto}->css_class = 'inputnum';
         $edit->{$objeto}->size = 10;
         $edit->{$objeto}->maxlength = 13;
         $edit->{$objeto}->autocomplete = false;
         $edit->{$objeto}->in = "margen{$i}";
         $edit->{$objeto}->onkeyup = 'cambiobase(\'I\');';
         $edit->{$objeto}->rule = 'required|mayorcero';
         $edit->{$objeto}->tabindex = $i + $maxiss;
         $objeto = "precio{$i}";
         $edit->{$objeto} = new inputField("Precio {$i}", $objeto);
         $edit->{$objeto}->css_class = 'inputnum';
         $edit->{$objeto}->size = 10;
         $edit->{$objeto}->autocomplete = false;
         $edit->{$objeto}->maxlength = 13;
         $edit->{$objeto}->in = "margen{$i}";
         $edit->{$objeto}->onkeyup = 'cambioprecio(\'I\');';
         $edit->{$objeto}->rule = 'required|mayorcero';
         $edit->{$objeto}->tabindex = $i + $maxiss * 2;
         //para el caso de las fraccciones
         $objeto = "cbase{$i}";
         $edit->{$objeto} = new hiddenField('', $objeto);
         $edit->{$objeto}->pointer = true;
         $edit->{$objeto}->db_name = $objeto;
         //$edit->$objeto->type='inputhidden';
     }
     $edit->existen = new inputField('Cantidad Actual', 'existen');
     $edit->existen->size = 10;
     $edit->existen->readonly = true;
     $edit->existen->css_class = 'inputonlynum';
     $edit->existen->style = 'background:#F5F6CE;';
     $edit->exmin = new inputField('M&iacute;nimo', 'exmin');
     $edit->exmin->size = 10;
     $edit->exmin->maxlength = 12;
     $edit->exmin->css_class = 'inputonlynum';
     $edit->exmin->rule = 'numeric|callback_positivo|trim';
     $edit->exmin->insertValue = '0';
     $edit->exmax = new inputField('M&aacute;ximo', 'exmax');
     $edit->exmax->size = 10;
     $edit->exmax->maxlength = 12;
     $edit->exmax->css_class = 'inputonlynum';
     $edit->exmax->rule = 'numeric|callback_positivo|trim';
     $edit->exmax->insertValue = '0';
     $edit->exord = new inputField('Orden Proveedor', 'exord');
     $edit->exord->readonly = true;
     $edit->exord->insertValue = '0';
     $edit->exord->size = 10;
     $edit->exord->css_class = 'inputonlynum';
     $edit->exord->style = 'background:#F5F6CE;';
     $edit->exdes = new inputField('Pedidos Cliente', 'exdes');
     $edit->exdes->readonly = true;
     $edit->exdes->size = 10;
     $edit->exdes->css_class = 'inputonlynum';
     $edit->exdes->style = 'background:#F5F6CE;';
     // Exhibidores
     $edit->exhimin = new inputField('M&iacute;nimo', 'exhimin');
     $edit->exhimin->size = 10;
     $edit->exhimin->maxlength = 12;
     $edit->exhimin->css_class = 'inputonlynum';
     $edit->exhimin->rule = 'numeric|callback_positivo|trim';
     $edit->exhimin->insertValue = '0';
     $edit->exhimax = new inputField('M&aacute;ximo', 'exhimax');
     $edit->exhimax->size = 10;
     $edit->exhimax->maxlength = 12;
     $edit->exhimax->css_class = 'inputonlynum';
     $edit->exhimax->rule = 'numeric|callback_positivo|trim';
     $edit->exhimax->insertValue = '0';
     $edit->exhalma = new dropdownField('Exhibidor', 'exhalma');
     $edit->exhalma->option('', 'Seleccione');
     $edit->exhalma->options('SELECT ubica, CONCAT(ubica,\' \',ubides) nombre FROM caub WHERE gasto="N" AND tipo="S" ORDER BY ubica');
     $edit->exhalma->style = 'width:145px;';
     $edit->fechav = new dateField('&Uacute;ltima Venta', 'fechav', 'd/m/Y');
     $edit->fechav->readonly = true;
     $edit->fechav->size = 10;
     $edit->fdesde = new dateField('Desde', 'fdesde', 'd/m/Y');
     $edit->fdesde->calendar = false;
     $edit->fdesde->size = 10;
     $edit->fhasta = new dateField('Desde', 'fhasta', 'd/m/Y');
     $edit->fhasta->calendar = false;
     $edit->fhasta->size = 10;
     $edit->bonicant = new inputField('Cant. Bonifica', 'bonicant');
     $edit->bonicant->size = 10;
     $edit->bonicant->maxlength = 12;
     $edit->bonicant->css_class = 'inputonlynum';
     $edit->bonicant->rule = 'numeric|callback_positivo|trim';
     $edit->bonifica = new inputField('Bonifica', 'bonifica');
     $edit->bonifica->size = 10;
     $edit->bonifica->maxlength = 12;
     $edit->bonifica->css_class = 'inputonlynum';
     $edit->bonifica->rule = 'numeric|callback_positivo|trim';
     $edit->sada = new dropdownField('Rubro SADA', 'sada');
     $edit->sada->style = 'width:110px;';
     $edit->sada->option('', 'Seleccionar');
     $edit->sada->options('SELECT id,descrip FROM sadacod ORDER BY descrip');
     $edit->sada->style = 'width:320px;';
     $edit->color = new dropdownField('Color', 'color');
     $edit->color->style = 'width:150px;';
     $edit->color->option('', 'Ninguno');
     $edit->color->option('FFFF00', 'Amarillo');
     $edit->color->option('FFD700', 'Dorado');
     $edit->color->option('0000FF', 'Azul');
     $edit->color->option('00008B', 'Azul Oscuro');
     $edit->color->option('FF0000', 'Rojo');
     $edit->color->option('B22222', 'Ladrillo');
     $edit->color->option('00FF00', 'Verde');
     $edit->color->option('808000', 'Oliva');
     $edit->color->add_extra(array('FFFF00' => 'style="background:#FFFF00"', 'FFD700' => 'style="background:#FFD700"', '0000FF' => 'style="background:#0000FF"', '00008B' => 'style="background:#00008B"', 'FF0000' => 'style="background:#FF0000"', 'B22222' => 'style="background:#B22222"', '00FF00' => 'style="background:#00FF00"', '808000' => 'style="background:#808000"'));
     if ($this->datasis->traevalor('SUNDECOP') == 'S') {
         $edit->mpps = new inputField('MPPS', 'mpps');
         $edit->mpps->rule = 'max_length[20]';
         $edit->mpps->size = 22;
         $edit->mpps->maxlength = 20;
         $edit->cpe = new inputField('CPE', 'cpe');
         $edit->cpe->rule = 'max_length[20]';
         $edit->cpe->size = 22;
         $edit->cpe->maxlength = 20;
         $edit->dcomercial = new dropdownField('Destino Comercial', 'dcomercial');
         $edit->dcomercial->style = 'width:200px;';
         $edit->dcomercial->option('', 'Seleccionar');
         $edit->dcomercial->options('SELECT codigo, descrip FROM sc_dcomercial ORDER BY descrip');
         $edit->rubro = new dropdownField('Rubro', 'rubro');
         $edit->rubro->style = 'width:200px;';
         $edit->rubro->option('', 'Seleccionar');
         $edit->rubro->options('SELECT codigo, concat(codigo, " ", descrip) descrip FROM sc_rubro ORDER BY codigo');
         $edit->subrubro = new dropdownField('Sub Rubro', 'subrubro');
         $edit->subrubro->style = 'width:200px;';
         $edit->subrubro->option('', 'Seleccionar');
         $edit->subrubro->options('SELECT codigo, concat(codigo, " ", descrip) descrip FROM sc_subrubro ORDER BY codigo');
         $edit->cunidad = new dropdownField('Unidad Med.', 'cunidad');
         $edit->cunidad->style = 'width:200px;';
         $edit->cunidad->option('', 'Seleccionar');
         $edit->cunidad->options('SELECT codigo, descrip descrip FROM sc_unidad ORDER BY codigo');
         $edit->cmarca = new inputField('Marca', 'cmarca');
         $edit->cmarca->rule = 'max_length[6]|integer';
         $edit->cmarca->css_class = 'inputonlynum';
         $edit->cmarca->size = 8;
         $edit->cmarca->maxlength = 6;
         $edit->cmaterial = new dropdownField('Material', 'cmaterial');
         $edit->cmaterial->style = 'width:200px;';
         $edit->cmaterial->option('', 'Seleccionar');
         $edit->cmaterial->options('SELECT codigo,  descrip FROM sc_material ORDER BY descrip');
         $edit->cforma = new dropdownField('Forma', 'cforma');
         $edit->cforma->style = 'width:200px;';
         $edit->cforma->option('', 'Seleccionar');
         $edit->cforma->options('SELECT codigo, descrip FROM sc_forma ORDER BY descrip');
         $edit->cpactivo = new inputField('Principio Act.', 'cpactivo');
         $edit->cpactivo->rule = 'max_length[6]|integer';
         $edit->cpactivo->css_class = 'inputonlynum';
         $edit->cpactivo->size = 8;
         $edit->cpactivo->maxlength = 6;
     }
     //Descuentos por escala
     for ($i = 1; $i <= 3; $i++) {
         $objeto = "pescala{$i}";
         $edit->{$objeto} = new inputField('Descuento por escala ' . $i, $objeto);
         $edit->{$objeto}->rule = 'numeric|callback_positivo|trim';
         $edit->{$objeto}->insertValue = '0';
         $edit->{$objeto}->css_class = 'inputnum';
         $edit->{$objeto}->size = 5;
         $edit->{$objeto}->autocomplete = false;
         $objeto = "escala{$i}";
         $edit->{$objeto} = new inputField('Cantidad m&iacute;nima para la escala ' . $i, $objeto);
         $edit->{$objeto}->rule = 'numeric|callback_positivo|trim';
         $edit->{$objeto}->insertValue = '0';
         $edit->{$objeto}->css_class = 'inputnum';
         $edit->{$objeto}->size = 10;
         $edit->{$objeto}->autocomplete = false;
     }
     for ($i = 1; $i <= 3; $i++) {
         $objeto = "pfecha{$i}";
         $edit->{$objeto} = new dateField("Fecha {$i}", $objeto, 'd/m/Y');
         $edit->{$objeto}->when = array('show');
         $edit->{$objeto}->size = 10;
         $objeto = "Eprepro{$i}";
         $edit->{$objeto} = new freeField('', '', 'Precio');
         $edit->{$objeto}->in = "pfecha{$i}";
         $edit->{$objeto}->when = array('show');
         $objeto = "prepro{$i}";
         $edit->{$objeto} = new inputField('', $objeto);
         $edit->{$objeto}->when = array('show');
         $edit->{$objeto}->size = 10;
         $edit->{$objeto}->in = "pfecha{$i}";
         $objeto = "prov{$i}";
         $edit->{$objeto} = new inputField('', $objeto);
         $edit->{$objeto}->when = array('show');
         $edit->{$objeto}->size = 10;
         $objeto = "Eprov{$i}";
         $edit->{$objeto} = new freeField('', '', 'Proveedor');
         $edit->{$objeto}->in = "pfecha{$i}";
         $edit->{$objeto}->when = array('show');
         if ($edit->_status == 'show') {
             $prov = $edit->_dataobject->get('prov' . $i);
             $dbprov = $this->db->escape($prov);
             $proveed = $this->datasis->dameval("SELECT nombre FROM sprv WHERE proveed={$dbprov} LIMIT 1");
             $objeto = "proveed{$i}";
             $edit->{$objeto} = new freeField('', '', $proveed);
             $edit->{$objeto}->in = "pfecha{$i}";
         }
     }
     $codigo = $edit->_dataobject->get('codigo');
     $edit->almacenes = new containerField('almacenes', $this->_detalle($codigo));
     $edit->almacenes->when = array('show', 'modify');
     $edit->mmargen = new inputField('Margen al Mayor', 'mmargen');
     $edit->mmargen->css_class = 'inputnum';
     $edit->mmargen->size = 10;
     $edit->mmargen->insertValue = '0';
     $edit->mmargen->maxlength = 10;
     $edit->mmargenplus = new inputField('Descuento +', 'mmargenplus');
     $edit->mmargenplus->css_class = 'inputnum';
     $edit->mmargenplus->insertValue = '0';
     $edit->mmargenplus->size = 10;
     $edit->mmargenplus->maxlength = 10;
     $edit->pm = new inputField('Descuento al Mayor A', 'pm');
     $edit->pm->css_class = 'inputnum';
     $edit->pm->rule = 'numeric';
     $edit->pm->size = 10;
     $edit->pm->insertValue = '0';
     $edit->pm->maxlength = 10;
     $edit->pmb = new inputField('Descuento al Mayor B', 'pmb');
     $edit->pmb->css_class = 'inputnum';
     $edit->pmb->rule = 'numeric';
     $edit->pmb->insertValue = '0';
     $edit->pmb->size = 10;
     $edit->pmb->maxlength = 10;
     /*INICIO SINV COMBO*/
     $edit->itcodigo = new inputField('C&oacute;digo <#o#>', 'itcodigo_<#i#>');
     $edit->itcodigo->size = 12;
     $edit->itcodigo->db_name = 'codigo';
     $edit->itcodigo->rel_id = 'sinvcombo';
     $edit->itcodigo->rule = 'callback_chtiposinv';
     $edit->itcodigo->append($bSINV_C);
     $edit->itdescrip = new inputField('Descripci&oacute;n <#o#>', 'itdescrip_<#i#>');
     $edit->itdescrip->size = 32;
     $edit->itdescrip->db_name = 'descrip';
     $edit->itdescrip->maxlength = 50;
     $edit->itdescrip->readonly = true;
     $edit->itdescrip->rel_id = 'sinvcombo';
     $edit->itdescrip->type = 'inputhidden';
     $edit->itcantidad = new inputField('Cantidad <#o#>', 'itcantidad_<#i#>');
     $edit->itcantidad->db_name = 'cantidad';
     $edit->itcantidad->css_class = 'inputnum';
     $edit->itcantidad->rel_id = 'sinvcombo';
     $edit->itcantidad->maxlength = 10;
     $edit->itcantidad->size = 5;
     $edit->itcantidad->rule = 'condi_required|positive';
     $edit->itcantidad->autocomplete = false;
     $edit->itcantidad->onkeyup = 'totalizarcombo();';
     $edit->itcantidad->insertValue = '1';
     $edit->itprecio = new inputField('Precio <#o#>', 'itprecio_<#i#>');
     $edit->itprecio->size = 15;
     $edit->itprecio->db_name = 'precio';
     $edit->itprecio->maxlength = 50;
     $edit->itprecio->rel_id = 'sinvcombo';
     $edit->itprecio->onkeyup = 'totalizarcombo();';
     $edit->itprecio->css_class = 'inputnum';
     $edit->itultimo = new inputField('Ultimo <#o#>', 'itultimo_<#i#>');
     $edit->itultimo->size = 32;
     $edit->itultimo->db_name = 'ultimo';
     $edit->itultimo->maxlength = 50;
     $edit->itultimo->readonly = true;
     $edit->itultimo->rel_id = 'sinvcombo';
     $edit->itultimo->type = 'inputhidden';
     $edit->itpond = new inputField('Promedio <#o#>', 'itpond_<#i#>');
     $edit->itpond->size = 32;
     $edit->itpond->db_name = 'pond';
     $edit->itpond->maxlength = 50;
     $edit->itpond->readonly = true;
     $edit->itpond->rel_id = 'sinvcombo';
     $edit->itpond->type = 'inputhidden';
     $ocultos = array('precio1', 'formcal');
     foreach ($ocultos as $obj) {
         $obj2 = 'it' . $obj;
         $edit->{$obj2} = new hiddenField($obj . ' <#o#>', $obj2 . '_<#i#>');
         $edit->{$obj2}->db_name = 'sinv' . $obj;
         $edit->{$obj2}->rel_id = 'sinvcombo';
         $edit->{$obj2}->pointer = true;
     }
     /*FIN SINV COMBO*/
     /*INICIO SINV ITEM RECETAS*/
     $edit->it2codigo = new inputField('C&oacute;digo <#o#>', 'it2codigo_<#i#>');
     $edit->it2codigo->size = 16;
     $edit->it2codigo->db_name = 'codigo';
     $edit->it2codigo->rel_id = 'sinvpitem';
     $edit->it2codigo->append($bSINV_I);
     $edit->it2descrip = new inputField('Descripci&oacute;n <#o#>', 'it2descrip_<#i#>');
     $edit->it2descrip->size = 34;
     $edit->it2descrip->db_name = 'descrip';
     $edit->it2descrip->maxlength = 50;
     $edit->it2descrip->readonly = true;
     $edit->it2descrip->rel_id = 'sinvpitem';
     $edit->it2descrip->type = 'inputhidden';
     $edit->it2cantidad = new inputField('Cantidad <#o#>', 'it2cantidad_<#i#>');
     $edit->it2cantidad->db_name = 'cantidad';
     $edit->it2cantidad->css_class = 'inputnum';
     $edit->it2cantidad->rel_id = 'sinvpitem';
     $edit->it2cantidad->maxlength = 10;
     $edit->it2cantidad->size = 5;
     $edit->it2cantidad->rule = 'positive';
     $edit->it2cantidad->autocomplete = false;
     $edit->it2cantidad->onkeyup = 'totalizarpitem(<#i#>)';
     $edit->it2cantidad->insertValue = '1';
     $edit->itunidad = new dropdownField('Unidad <#o#>', 'itunidad_<#i#>');
     $edit->itunidad->style = 'width:100px;';
     $edit->itunidad->option('', 'Seleccionar');
     $edit->itunidad->options('SELECT unidades, unidades descrip FROM unidad ORDER BY unidades');
     $edit->itunidad->rel_id = 'sinvpitem';
     $edit->itunidad->db_name = 'unidad';
     $edit->itfactor = new inputField('Factor <#o#>', 'itfactor_<#i#>');
     $edit->itfactor->size = 8;
     $edit->itfactor->db_name = 'factor';
     $edit->itfactor->maxlength = 15;
     $edit->itfactor->css_class = 'inputnum';
     $edit->itfactor->rel_id = 'sinvpitem';
     $edit->itfactor->insertValue = '0';
     $edit->itfactor->autocomplete = false;
     $edit->it2merma = new inputField('Ultimo <#o#>', 'it2merma_<#i#>');
     $edit->it2merma->size = 5;
     $edit->it2merma->db_name = 'merma';
     $edit->it2merma->maxlength = 15;
     $edit->it2merma->css_class = 'inputnum';
     $edit->it2merma->rel_id = 'sinvpitem';
     $edit->it2merma->insertValue = '0';
     $edit->it2merma->autocomplete = false;
     $ocultos = array('ultimo', 'pond', 'formcal', 'id_sinv');
     foreach ($ocultos as $obj) {
         $obj2 = 'it2' . $obj;
         $edit->{$obj2} = new hiddenField($obj . ' <#o#>', $obj2 . '_<#i#>');
         $edit->{$obj2}->db_name = $obj;
         $edit->{$obj2}->rel_id = 'sinvpitem';
     }
     /*INICIO SINV LABOR  ESTACIONES*/
     $edit->it3estacion = new dropdownField('Estacion <#o#>', 'it3estacion_<#i#>');
     $edit->it3estacion->option('', 'Seleccionar');
     $edit->it3estacion->options('SELECT estacion,CONCAT(estacion,\'-\',nombre) AS lab FROM esta ORDER BY estacion');
     $edit->it3estacion->style = 'width:250px;';
     $edit->it3estacion->db_name = 'estacion';
     $edit->it3estacion->rel_id = 'sinvplabor';
     $edit->it3actividad = new inputField('Actividad <#o#>', 'it3actividad_<#i#>');
     $edit->it3actividad->size = 32;
     $edit->it3actividad->db_name = 'actividad';
     $edit->it3actividad->maxlength = 50;
     $edit->it3actividad->rel_id = 'sinvplabor';
     $edit->it3tunidad = new dropdownField('', 'it3tunidad_<#i#>');
     $edit->it3tunidad->option('H', 'Horas');
     $edit->it3tunidad->option('D', 'Dias');
     $edit->it3tunidad->option('S', 'Semanas');
     $edit->it3tunidad->style = 'width:80px;';
     $edit->it3tunidad->db_name = 'tunidad';
     $edit->it3tunidad->css_class = 'inputnum';
     $edit->it3tunidad->rel_id = 'sinvplabor';
     $edit->it3tunidad->rule = 'enum[H,S,D]';
     $edit->it3tunidad->insertValue = 'H';
     $edit->it3tiempo = new inputField('', 'it3tiempo_<#i#>');
     $edit->it3tiempo->db_name = 'tiempo';
     $edit->it3tiempo->css_class = 'inputnum';
     $edit->it3tiempo->rel_id = 'sinvplabor';
     $edit->it3tiempo->maxlength = 10;
     $edit->it3tiempo->size = 5;
     $edit->it3tiempo->rule = 'positive';
     $edit->it3tiempo->autocomplete = false;
     $edit->it3tiempo->insertValue = '1';
     $inven = array();
     $query = $this->db->query('SELECT TRIM(codigo) AS codigo ,TRIM(descrip) AS descrip,tipo,base1,base2,base3,base4,iva,peso,precio1,pond,ultimo FROM sinv WHERE activo=\'S\' AND tipo=\'Articulo\'');
     if ($query->num_rows() > 0) {
         foreach ($query->result() as $row) {
             $ind = '_' . $row->codigo;
             $inven[$ind] = array($row->descrip, $row->tipo, $row->base1, $row->base2, $row->base3, $row->base4, $row->iva, $row->peso, $row->precio1, $row->pond);
         }
     }
     $edit->button_status('btn_add_sinvcombo', 'Agregar', 'javascript:add_sinvcombo()', 'CO', 'modify', 'button_add_rel');
     $edit->button_status('btn_add_sinvcombo', 'Agregar', 'javascript:add_sinvcombo()', 'CO', 'create', 'button_add_rel');
     $edit->button_status('btn_add_sinvpitem', 'Agregar', 'javascript:add_sinvpitem()', 'IT', 'create', 'button_add_rel');
     $edit->button_status('btn_add_sinvpitem', 'Agregar', 'javascript:add_sinvpitem()', 'IT', 'modify', 'button_add_rel');
     $edit->button_status('btn_add_sinvplabor', 'Agregar', 'javascript:add_sinvplabor()', 'LA', 'create', 'button_add_rel');
     $edit->button_status('btn_add_sinvplabor', 'Agregar', 'javascript:add_sinvplabor()', 'LA', 'modify', 'button_add_rel');
     /*
     		$plim = $this->datasis->sidapuede('SINVOTR', 'FIJA_MARG()');
     		if(!$plim){
     			$edit->pond->mode    = 'autohide';
     			$edit->ultimo->mode  = 'autohide';
     			$edit->margenu->mode = 'autohide';
     			//$edit->motivo->mode  = 'autohide';
     		}
     */
     $edit->build();
     $mcodigo = $edit->codigo->value;
     $dbmcodigo = $this->db->escape($mcodigo);
     $mfdesde = $this->datasis->dameval("SELECT ADDDATE(MAX(fecha),-30) AS val FROM costos WHERE codigo={$dbmcodigo}");
     $mfhasta = $this->datasis->dameval("SELECT MAX(fecha) AS val FROM costos WHERE codigo={$dbmcodigo}");
     if ($edit->on_success()) {
         $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk);
         echo json_encode($rt);
     } else {
         $conten['form'] =& $edit;
         $this->load->view('view_sinv', $conten);
     }
 }
Example #11
0
 function dataedit()
 {
     $this->rapyd->load('dataobject', 'datadetails');
     $this->qformato = $qformato = $this->datasis->formato_cpla();
     $modbus = array('tabla' => 'cpla', 'columnas' => array('codigo' => 'C&oacute;digo', 'descrip' => 'Descripci&oacute;n'), 'filtro' => array('codigo' => 'C&oacute;digo', 'descrip' => 'Descripci&oacute;n'), 'retornar' => array('codigo' => 'cuenta_<#i#>', 'departa' => 'ccosto<#i#>', 'descrip' => 'concepto_<#i#>', 'departa' => 'cpladeparta_<#i#>', 'ccosto' => 'cplaccosto_<#i#>'), 'titulo' => 'Buscar Cuenta', 'p_uri' => array(4 => '<#i#>'), 'where' => "codigo LIKE \"{$qformato}\"", 'script' => array('post_modbus(<#i#>)'));
     $btn = $this->datasis->p_modbus($modbus, '<#i#>');
     $uri = '/contabilidad/casi/dpto/';
     $do = new DataObject('casi');
     $do->rel_one_to_many('itcasi', 'itcasi', array('id' => 'idcasi'));
     $do->rel_pointer('itcasi', 'cpla', 'itcasi.cuenta=cpla.codigo', 'cpla.ccosto AS cplaccosto,cpla.departa AS cpladeparta');
     $edit = new DataDetails('Asientos', $do);
     $edit->back_url = site_url('contabilidad/casi/dataedit/create');
     $edit->on_save_redirect = false;
     $edit->set_rel_title('itcasi', 'cuenta contables');
     $edit->pre_process('insert', '_pre_insert');
     $edit->pre_process('update', '_pre_update');
     $edit->pre_process('delete', '_pre_delete');
     $edit->post_process('insert', '_post_insert');
     $edit->post_process('update', '_post_update');
     $edit->post_process('delete', '_post_delete');
     $edit->fecha = new DateonlyField('Fecha', 'fecha', 'd/m/Y');
     $edit->fecha->insertValue = date('Y-m-d');
     $edit->fecha->rule = 'required|chfecha';
     $edit->fecha->size = 12;
     $edit->fecha->calendar = false;
     $edit->comprob = new inputField('N&uacute;mero', 'comprob');
     $edit->comprob->size = 12;
     $edit->comprob->maxlength = 8;
     $edit->comprob->rule = 'required|unique';
     //$edit->comprob->apply_rules=false; //necesario cuando el campo es clave y no se pide al usuario
     $edit->descrip = new inputField('Descripci&oacute;n', 'descrip');
     $edit->descrip->size = 60;
     $edit->descrip->maxlength = 60;
     $edit->status = new dropdownField('Estatus', 'status');
     $edit->status->option('A', 'Actualizado');
     $edit->status->option('D', 'Diferido');
     $edit->status->style = 'width:110px;';
     $edit->status->size = 5;
     //**************************
     //  Campos para el detalle
     //**************************
     $edit->cuenta = new inputField('Cuenta <#o#>', 'cuenta_<#i#>');
     $edit->cuenta->size = 15;
     $edit->cuenta->db_name = 'cuenta';
     $edit->cuenta->rel_id = 'itcasi';
     $edit->cuenta->rule = 'required';
     $edit->cuenta->append($btn);
     $edit->referen = new inputField('Referencia <#o#>', 'referen_<#i#>');
     $edit->referen->size = 20;
     $edit->referen->db_name = 'referen';
     $edit->referen->maxlength = 12;
     $edit->referen->rel_id = 'itcasi';
     $edit->concepto = new inputField('Concepto <#o#>', 'concepto_<#i#>');
     $edit->concepto->size = 25;
     $edit->concepto->db_name = 'concepto';
     $edit->concepto->maxlength = 50;
     $edit->concepto->rel_id = 'itcasi';
     $edit->itdebe = new inputField('Debe <#o#>', 'itdebe_<#i#>');
     $edit->itdebe->db_name = 'debe';
     $edit->itdebe->css_class = 'inputnum';
     $edit->itdebe->rel_id = 'itcasi';
     $edit->itdebe->maxlength = 19;
     $edit->itdebe->size = 18;
     $edit->itdebe->rule = 'required|positive';
     $edit->itdebe->autocomplete = false;
     $edit->itdebe->showformat = 'decimal';
     $edit->itdebe->onkeyup = 'validaDebe(<#i#>)';
     $edit->ithaber = new inputField('Haber <#o#>', 'ithaber_<#i#>');
     $edit->ithaber->db_name = 'haber';
     $edit->ithaber->css_class = 'inputnum';
     $edit->ithaber->rel_id = 'itcasi';
     $edit->ithaber->maxlength = 19;
     $edit->ithaber->size = 18;
     $edit->ithaber->rule = 'required|positive';
     $edit->ithaber->showformat = 'decimal';
     $edit->ithaber->autocomplete = false;
     $edit->ithaber->onkeyup = 'validaHaber(<#i#>)';
     $edit->itccosto = new dropdownField('Centro de costo', 'itccosto_<#i#>');
     $edit->itccosto->option('', 'Ninguno');
     $edit->itccosto->options("SELECT depto,descrip FROM dpto WHERE tipo='G' ORDER BY descrip");
     $edit->itccosto->db_name = 'ccosto';
     $edit->itccosto->rel_id = 'itcasi';
     $edit->itccosto->rule = 'condi_required|callback_chdepaccosto[<#i#>]';
     $edit->itccosto->style = 'width:150px;';
     $edit->itsucursal = new dropdownField('Sucursal', 'itsucursal_<#i#>');
     $edit->itsucursal->option('', 'Ninguno');
     $edit->itsucursal->options("SELECT codigo,CONCAT(codigo,'-', sucursal) AS sucursal FROM sucu ORDER BY codigo");
     $edit->itsucursal->db_name = 'sucursal';
     $edit->itsucursal->rel_id = 'itcasi';
     $edit->itsucursal->rule = 'condi_required|callback_chdepaccosto[<#i#>]';
     $edit->itsucursal->style = 'width:150px';
     $edit->cplaccosto = new hiddenField('', 'cplaccosto_<#i#>');
     $edit->cplaccosto->db_name = 'cplaccosto';
     $edit->cplaccosto->rel_id = 'itcasi';
     $edit->cplaccosto->pointer = true;
     $edit->cpladeparta = new hiddenField('', 'cpladeparta_<#i#>');
     $edit->cpladeparta->db_name = 'cpladeparta';
     $edit->cpladeparta->rel_id = 'itcasi';
     $edit->cpladeparta->pointer = true;
     //**************************
     //fin de campos para detalle
     //**************************
     $edit->debe = new inputField('Debe', 'debe');
     $edit->debe->css_class = 'inputnum';
     $edit->debe->readonly = true;
     $edit->debe->size = 10;
     $edit->debe->showformat = 'decimal';
     $edit->debe->type = 'inputhidden';
     $edit->haber = new inputField('Haber', 'haber');
     $edit->haber->css_class = 'inputnum';
     $edit->haber->readonly = true;
     $edit->haber->size = 10;
     $edit->haber->showformat = 'decimal';
     $edit->haber->type = 'inputhidden';
     $edit->total = new inputField('Saldo', 'total');
     $edit->total->css_class = 'inputnum';
     $edit->total->readonly = true;
     $edit->total->size = 10;
     $edit->total->showformat = 'decimal';
     $edit->total->type = 'inputhidden';
     $edit->usuario = new autoUpdateField('usuario', $this->session->userdata('usuario'), $this->session->userdata('usuario'));
     $edit->origen = new autoUpdateField('origen', 'MANUAL', 'MANUAL');
     $edit->buttons('add_rel');
     $edit->build();
     if ($edit->on_success()) {
         $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk);
         echo json_encode($rt);
     } else {
         $conten['form'] =& $edit;
         $this->load->view('view_casi', $conten);
     }
 }
Example #12
0
    function dataedit($cliente = '', $status = '', $id = '')
    {
        $this->datasis->modulo_id(143, 1);
        if (!$this->_exitescli($cliente)) {
            redirect($this->url . 'filterscli');
        }
        $this->db->select_sum('a.monto*IF(tipo_doc IN ("FC","ND","GI"),1,-1)', 'saldo');
        $this->db->from('smov AS a');
        $this->db->where('a.cod_cli', $cliente);
        $q = $this->db->get();
        $row = $q->row_array();
        $saldo = empty($row['saldo']) ? 0 : $row['saldo'];
        $this->rapyd->load('dataobject', 'datadetails');
        $this->load->helper('form');
        $vd = $this->secu->getvendedor();
        $dbvd = $this->db->escape($vd);
        $do = new DataObject('pfac');
        $do->rel_one_to_many('itpfac', 'itpfac', array('numero' => 'numa'));
        $do->pointer('scli', 'scli.cliente=pfac.cod_cli', 'scli.tipo AS sclitipo', 'left');
        $do->rel_pointer('itpfac', 'sinv', 'itpfac.codigoa=sinv.codigo', '
			sinv.iva AS sinviva,
			sinv.existen AS pexisten,
			sinv.marca AS pmarca,
			sinv.descrip AS pdesca,
			sinv.peso AS ppeso');
        $do->order_by('itpfac', 'sinv.marca', ' ');
        $do->order_by('itpfac', 'sinv.descrip', ' ');
        $edit = new DataDetails('Pedidos', $do);
        $edit->back_url = site_url('ventas/pfaclite/filteredgrid');
        $edit->set_rel_title('itpfac', 'Producto <#o#>');
        $edit->pre_process('insert', '_pre_insert');
        $edit->pre_process('update', '_pre_update');
        $edit->pre_process('delete', '_pre_delete');
        $edit->post_process('insert', '_post_insert');
        $edit->post_process('update', '_post_update');
        $edit->post_process('delete', '_post_delete');
        $fenvia = strtotime($edit->get_from_dataobjetct('fenvia'));
        $faplica = strtotime($edit->get_from_dataobjetct('faplica'));
        $hoy = strtotime(date('Y-m-d'));
        $edit->fecha = new inputField('Fecha', 'fecha');
        $edit->fecha->insertValue = date('Y-m-d');
        $edit->fecha->mode = 'autohide';
        $edit->fecha->size = 10;
        $edit->mmargen = new inputField('mmargen', 'mmargen');
        $edit->numero = new inputField('N&uacute;mero', 'numero');
        $edit->numero->size = 10;
        $edit->numero->mode = 'autohide';
        $edit->numero->maxlength = 8;
        $edit->numero->apply_rules = false;
        //necesario cuando el campo es clave y no se pide al usuario
        $edit->numero->when = array('show', 'modify');
        $edit->cliente = new hiddenField('Cliente', 'cod_cli');
        $edit->cliente->insertValue = $cliente;
        $edit->cliente->rule = 'required';
        $dbcliente = $this->db->escape($cliente);
        $nombre = $this->datasis->dameval("SELECT nombre FROM scli WHERE cliente={$dbcliente}");
        $edit->nombre = new freeField('Nombre', 'nombre', $nombre);
        $edit->observa = new inputField('Observaciones', 'observa');
        $edit->observa->size = 40;
        // Campos para el detalle
        $edit->codigoa = new inputField('C&oacute;digo <#o#>', 'codigoa_<#i#>');
        $edit->codigoa->size = 12;
        $edit->codigoa->db_name = 'codigoa';
        $edit->codigoa->rel_id = 'itpfac';
        $edit->codigoa->rule = 'callback_chcodigoa';
        $edit->codigoa->type = 'inputhidden';
        $edit->pdesca = new inputField('Descripci&oacute;n <#o#>', 'pdesca_<#i#>');
        $edit->pdesca->size = 32;
        $edit->pdesca->db_name = 'desca';
        $edit->pdesca->maxlength = 50;
        $edit->pdesca->readonly = true;
        $edit->pdesca->rel_id = 'itpfac';
        $edit->pdesca->type = 'inputhidden';
        $edit->pdesca->pointer = true;
        $edit->itdesca = new hiddenField('descrip', 'itdesca_<#i#>');
        $edit->itdesca->insertValue = '';
        $edit->itdesca->db_name = 'desca';
        $edit->itdesca->rel_id = 'itpfac';
        $edit->pexisten = new inputField('Existencia <#o#>', 'pexisten_<#i#>');
        $edit->pexisten->size = 10;
        $edit->pexisten->db_name = 'pexisten';
        $edit->pexisten->rel_id = 'itpfac';
        $edit->pexisten->type = 'inputhidden';
        $edit->pexisten->pointer = true;
        $edit->cana = new inputField('Cantidad <#o#>', 'cana_<#i#>');
        $edit->cana->db_name = 'cana';
        $edit->cana->css_class = 'inputnum';
        $edit->cana->rel_id = 'itpfac';
        $edit->cana->maxlength = 10;
        $edit->cana->size = 4;
        $edit->cana->rule = 'positive|callback_chcana[<#i#>]';
        $edit->cana->autocomplete = false;
        $edit->cana->onkeyup = 'total(\'<#i#>\')';
        $edit->cana->style = "height: 30px; font-size: 18px;";
        $edit->preca = new dropdownField('Precio <#o#>', 'preca_<#i#>');
        $edit->preca->db_name = 'preca';
        $edit->preca->css_class = 'inputnum';
        $edit->preca->rel_id = 'itpfac';
        $edit->preca->rule = 'positive|callback_chpreca[<#i#>]';
        $edit->itiva = new hiddenField('', 'itiva_<#i#>');
        $edit->itiva->db_name = 'iva';
        $edit->itiva->rel_id = 'itpfac';
        $edit->pmarca = new inputField('', 'pmarca_<#i#>');
        $edit->pmarca->db_name = 'pmarca';
        $edit->pmarca->rel_id = 'itpfac';
        $edit->pmarca->pointer = true;
        // fin de campos para detalle
        $edit->totalg = new hiddenField('Monto Total', 'totalg');
        $edit->totalg->css_class = 'inputnum';
        $edit->totalg->readonly = true;
        $edit->totalg->size = 10;
        $edit->iva = new hiddenField('Impuesto', 'iva');
        $edit->iva->css_class = 'inputnum';
        $edit->iva->readonly = true;
        $edit->iva->size = 10;
        $edit->usuario = new autoUpdateField('usuario', $this->session->userdata('usuario'), $this->session->userdata('usuario'));
        $edit->estampa = new autoUpdateField('estampa', date('Ymd'), date('Ymd'));
        $edit->hora = new autoUpdateField('hora', date('H:i:s'), date('H:i:s'));
        $control = $this->rapyd->uri->get_edited_id();
        if ($edit->getstatus() == 'show') {
            $action = "javascript:window.location='" . site_url($this->url . 'filterscli') . "'";
            $edit->button('btn_add', 'Incluir nuevo pedido', $action, 'TR');
        }
        $iusr = $edit->get_from_dataobjetct('usuario');
        if ($fenvia < $hoy && $iusr == $this->secu->usuario()) {
            $edit->buttons('modify', 'save', 'delete', 'undo', 'back', 'add_rel');
            $PFACRESERVA = $this->datasis->traevalor('PFACRESERVA', 'indica si un pedido descuenta de inventario los producto');
            if ($PFACRESERVA == 'S') {
                $accion = "javascript:window.location='" . site_url('ventas/pfaclite/reserva/' . $control) . "/pfaclite'";
                $edit->button_status('btn_envia', 'Enviar Pedido', $accion, 'TR', 'show');
            }
        } else {
            $edit->buttons('save', 'undo', 'back', 'add_rel');
        }
        //$edit->button_status('btn_load','Subir desde Excel',$accion,'TL','show');
        //$edit->button_status('btn_load','Subir desde Excel',$accion,'TL','create');
        //$edit->button_status('btn_load','Subir desde Excel',$accion,'TL','modify');
        $alma = $this->secu->getalmacen();
        $dbalma = $this->db->escape($alma);
        $tiposcli = $this->datasis->dameval("SELECT tipo FROM scli WHERE cliente={$dbcliente}");
        if ($tiposcli < 1) {
            $tiposcli = 1;
        } elseif ($tiposcli > 4) {
            $tiposcli = 4;
        }
        $sel = array('TRIM(a.codigo) AS codigo', 'a.descrip', 'a.precio1', 'a.precio2', 'a.precio3', 'a.precio4', 'a.exdes', 'a.marca', 'b.existen', 'a.iva', 'a.peso');
        $this->db->from('sinv AS a');
        $this->db->where('a.activo', 'S');
        $this->db->where('a.tipo', 'Articulo');
        $this->db->group_by('a.codigo');
        $this->db->order_by('a.marca , a.descrip , a.peso');
        $this->db->limit($this->limit);
        $act_meta = false;
        if ($status == 'create' || $status == 'insert') {
            $this->db->join('itsinv AS b', 'a.codigo=b.codigo AND b.alma=' . $dbalma);
            $this->db->where('b.existen > 0');
            if ($this->db->table_exists('metas')) {
                $pmargen = $this->datasis->dameval('SELECT pmargen FROM vend WHERE vendedor=' . $dbvd);
                if (empty($pmargen)) {
                    $pmargen = 0;
                } else {
                    $pmargen = $pmargen / 100;
                }
                $mmes = date('Ym');
                $uday = days_in_month(substr($mmes, 4), substr($mmes, 0, 4));
                $this->db->join('metas  AS c', 'a.codigo=c.codigo AND c.fecha=' . $mmes, 'left');
                $this->db->join('sitems AS d', 'd.codigoa=c.codigo AND vendedor=' . $dbvd . ' AND d.fecha BETWEEN ' . $mmes . '01 AND ' . $mmes . $uday, 'left');
                $sel[] = "COALESCE(c.cantidad,0)*{$pmargen} AS meta";
                $sel[] = 'COALESCE(SUM(d.cana*IF(tipoa=\'D\',-1,1)),0) AS vendido';
                $act_meta = true;
            }
        } elseif ($status == 'show') {
            $this->db->join('itsinv AS b', 'a.codigo=b.codigo');
        } else {
            $this->db->where('b.existen > 0');
            $this->db->join('itsinv AS b', 'a.codigo=b.codigo AND b.alma=' . $dbalma);
        }
        $this->db->select($sel);
        $sinv = $this->db->get();
        $sinv = $sinv->result_array();
        $sinv_arr = array();
        foreach ($sinv as $k => $v) {
            $sinv_arr[$v['codigo']] = array('descrip' => $v['descrip'], 'precio1' => $v['precio1'] * 100 / (100 + $v['iva']), 'precio2' => $v['precio2'] * 100 / (100 + $v['iva']), 'precio3' => $v['precio3'] * 100 / (100 + $v['iva']), 'precio4' => $v['precio4'] * 100 / (100 + $v['iva']), 'marca' => $v['marca'], 'existen' => $v['existen'], 'iva' => $v['iva'], 'peso' => $v['peso'], 'codigo' => $v['codigo'], 'exdes' => $v['exdes']);
            if ($act_meta) {
                $sinv_arr[$v['codigo']]['meta'] = $v['meta'];
                $sinv_arr[$v['codigo']]['vendido'] = $v['vendido'];
            }
        }
        $pedido = array();
        if ($status == 'create' || $status == 'insert' || $status == 'modify' || $status == 'update') {
            $vds = array();
            $mmSQL = "SELECT TRIM(vendedor) AS vd FROM usuario WHERE almacen={$dbalma}";
            $qquery = $this->db->query($mmSQL);
            foreach ($qquery->result() as $rrow) {
                $vds[] = $this->db->escape($rrow->vd);
            }
            $vds = implode(',', $vds);
            $mmSQL = "SELECT TRIM(a.codigoa) AS codigo,SUM(a.cana) AS cana\n\t\t\t\tFROM itpfac AS a\n\t\t\t\tJOIN pfac AS b ON b.numero=a.numa\n\t\t\tWHERE b.status='P' AND b.vd IN ({$vds})\n\t\t\tGROUP BY a.codigoa";
            $qquery = $this->db->query($mmSQL);
            foreach ($qquery->result() as $rrow) {
                $pedido[$rrow->codigo] = $rrow->cana;
            }
        }
        if ($edit->getstatus() == 'update') {
            $pfacnum = $edit->get_from_dataobjetct('numero');
            $dbpfacnum = $this->db->escape($pfacnum);
            $mmSQL = "SELECT TRIM(a.codigoa) AS codigo,SUM(a.cana) AS cana\n\t\t\t\tFROM itpfac AS a\n\t\t\tWHERE a.numa={$dbpfacnum}\n\t\t\tGROUP BY a.codigoa";
            $qquery = $this->db->query($mmSQL);
            foreach ($qquery->result() as $rrow) {
                $lleva[$rrow->codigo] = floatval($rrow->cana);
            }
        } else {
            $lleva = array();
        }
        if ($this->genesal) {
            $edit->build();
            $conten['lleva'] = $lleva;
            $conten['status'] = $status;
            $conten['pedido'] = $pedido;
            $conten['saldo'] = $saldo;
            $conten['act_meta'] = $act_meta;
            $conten['tiposcli'] = $tiposcli;
            $conten['form'] =& $edit;
            $conten['sinv'] = $sinv_arr;
            $data['content'] = $this->load->view('view_pfaclite', $conten, true);
            $data['head'] = style('mayor/estilo.css');
            //$data['title']     = heading('Pedidos No. '.$edit->numero->value);
            $data['title'] = heading('Pedidos ligeros');
            $this->load->view('view_ventanas_lite', $data);
        } else {
            $edit->on_save_redirect = false;
            $edit->build();
            if ($edit->on_success()) {
                $numero = $edit->_dataobject->get('numero');
                $rt = 'Pedido del cliente ' . $edit->cliente->value . ' - ' . $edit->nombre->value . ' ha sido guardado bajo el n&uacute;mero ' . $numero . '.';
            } elseif ($edit->on_error()) {
                $rt = html_entity_decode(preg_replace('/<[^>]*>/', '', $edit->error_string));
            } else {
                $rt = '';
            }
            return $rt;
        }
    }
Example #13
0
    function dataedit()
    {
        $this->rapyd->load('dataobject', 'datadetails');
        if (isset($this->_creanfac) && $this->_creanfac) {
            //Para hacer el corte por maxlin en las facturas pendientes
            $this->rapyd->uri->un_set('update');
            $this->rapyd->uri->set('insert');
        }
        $manual = $this->uri->segment(4);
        if ($manual != 'S') {
            $manual = 'N';
        }
        $do = new DataObject('sfac');
        $do->rel_one_to_many('sitems', 'sitems', array('id' => 'id_sfac'));
        $do->rel_one_to_many('sfpa', 'sfpa', array('numero', 'transac'));
        $do->pointer('scli', 'scli.cliente=sfac.cod_cli', 'scli.tipo AS sclitipo', 'left');
        $do->rel_pointer('sitems', 'sinv', 'sitems.codigoa=sinv.codigo', 'sinv.descrip AS sinvdescrip, sinv.base1 AS sinvprecio1, sinv.base2 AS sinvprecio2, sinv.base3 AS sinvprecio3, sinv.base4 AS sinvprecio4, sinv.iva AS sinviva, sinv.peso AS sinvpeso,sinv.tipo AS sinvtipo');
        $edit = new DataDetails('', $do);
        $edit->on_save_redirect = false;
        $edit->cid = 'df1';
        $edit->set_rel_title('sitems', 'Producto <#o#>');
        $edit->set_rel_title('sfpa', 'Forma de pago <#o#>');
        $edit->pre_process('insert', '_pre_insert');
        $edit->pre_process('update', '_pre_update');
        $edit->pre_process('delete', '_pre_delete');
        $edit->post_process('insert', '_post_insert');
        $edit->post_process('update', '_post_update');
        $edit->post_process('delete', '_post_delete');
        $edit->sclitipo = new hiddenField('', 'sclitipo');
        $edit->sclitipo->db_name = 'sclitipo';
        $edit->sclitipo->pointer = true;
        $edit->sclitipo->insertValue = 1;
        $edit->fecha = new DateonlyField('Fecha', 'fecha', 'd/m/Y');
        $edit->fecha->rule = 'required|chfecha';
        $edit->fecha->calendar = false;
        $edit->fecha->size = 12;
        if ($manual != 'S') {
            $edit->fecha->insertValue = date('Y-m-d');
            $edit->fecha->readonly = true;
        }
        //$edit->tipo_doc = new  dropdownField('Documento', 'tipo_doc');
        $edit->tipo_doc = new hiddenField('Documento', 'tipo_doc');
        $edit->tipo_doc->insertValue = 'F';
        $edit->manual = new hiddenField('Manual', 'manual');
        $edit->manual->insertValue = $manual;
        $edit->vd = new dropdownField('Vendedor', 'vd');
        $edit->vd->options('SELECT TRIM(vendedor) AS vendedor, CONCAT(vendedor,\' \',nombre) nombre FROM vend ORDER BY vendedor');
        $edit->vd->style = 'width:150px;';
        $edit->vd->insertValue = trim($this->secu->getvendedor());
        $alma = $this->secu->getalmacen();
        if (empty($alma)) {
            $edit->almacen = new dropdownField('Almac&eacute;n', 'almacen');
            $edit->almacen->options('SELECT ubica,ubides FROM caub WHERE gasto="N" ORDER BY ubides');
            $edit->almacen->rule = 'required';
            $edit->almacen->style = 'width:200px;';
            $alma = $this->datasis->traevalor('ALMACEN');
            $edit->almacen->insertValue = $alma;
        } else {
            $edit->almacen = new inputField('Almac&eacute;n', 'almacen');
            $edit->almacen->readonly = true;
            $edit->almacen->size = 8;
            $edit->almacen->insertValue = $alma;
        }
        $edit->numero = new inputField('N&uacute;mero', 'numero');
        $edit->numero->size = 10;
        $edit->numero->mode = 'autohide';
        $edit->numero->maxlength = 8;
        $edit->numero->apply_rules = false;
        //necesario cuando el campo es clave y no se pide al usuario
        $edit->numero->when = array('show', 'modify');
        $edit->factura = new hiddenField('Factura', 'factura');
        $edit->factura->size = 12;
        //$edit->factura->mode='autohide';
        //$edit->factura->type='inputhidden';
        $edit->factura->maxlength = 8;
        $edit->factura->rule = 'condi_required|chfechafut|callback_chfactura';
        $edit->peso = new inputField('Peso', 'peso');
        $edit->peso->css_class = 'inputnum';
        $edit->peso->readonly = true;
        $edit->peso->size = 10;
        $edit->cliente = new inputField('Cliente', 'cod_cli');
        $edit->cliente->size = 8;
        $edit->cliente->autocomplete = false;
        $edit->cliente->rule = 'required|trim|existescli';
        $edit->bultos = new hiddenField('Bultos', 'bultos');
        $edit->bultos->css_class = 'inputnum';
        $edit->bultos->size = 10;
        $edit->nombre = new hiddenField('Nombre', 'nombre');
        $edit->nombre->size = 25;
        $edit->nombre->maxlength = 40;
        $edit->nombre->readonly = true;
        $edit->nombre->autocomplete = false;
        $edit->nombre->rule = 'required';
        $edit->upago = new hiddenField('Ultimo pago de servicio', 'upago');
        $edit->upago->readonly = true;
        $edit->upago->autocomplete = false;
        $edit->rifci = new hiddenField('RIF/CI', 'rifci');
        $edit->rifci->autocomplete = false;
        $edit->rifci->readonly = true;
        $edit->rifci->size = 15;
        $edit->direc = new hiddenField('Direcci&oacute;n', 'direc');
        $edit->direc->readonly = true;
        $edit->direc->size = 40;
        $edit->cajero = new autoUpdateField('cajero', $this->secu->getcajero(), $this->secu->getcajero());
        $edit->descuento = new hiddenField('Desc.', 'descuento');
        $edit->descuento->insertValue = '0';
        $edit->descu1 = new inputField('Descuento 1', 'descu1');
        $edit->descu1->css_class = 'inputnum';
        $edit->descu1->size = 5;
        $edit->descu1->insertValue = '0';
        $edit->descu1->onkeyup = 'totalizar()';
        $edit->descu2 = new inputField('Descuento 2', 'descu2');
        $edit->descu2->css_class = 'inputnum';
        $edit->descu2->size = 5;
        $edit->descu2->insertValue = '0';
        $edit->descu2->onkeyup = 'totalizar()';
        $edit->descu3 = new inputField('Descuento 3', 'descu3');
        $edit->descu3->css_class = 'inputnum';
        $edit->descu3->size = 5;
        $edit->descu3->insertValue = '0';
        $edit->descu3->onkeyup = 'totalizar()';
        $edit->orden = new inputField('Orden', 'orden');
        $edit->orden->size = 12;
        //***********************************
        //  Campos para el detalle 1 sitems
        // todo campo que se agrege aqui debe
        // tomarse en cuenta en el post_process
        // seccion maxlin ****
        //***********************************
        $edit->codigoa = new inputField('C&oacute;digo <#o#>', 'codigoa_<#i#>');
        $edit->codigoa->size = 12;
        $edit->codigoa->db_name = 'codigoa';
        $edit->codigoa->rel_id = 'sitems';
        $edit->codigoa->rule = 'required';
        $edit->lote = new inputField('Lote <#o#>', 'lote_<#i#>');
        $edit->lote->db_name = 'lote';
        $edit->lote->css_class = 'inputnum';
        $edit->lote->rel_id = 'sitems';
        $edit->lote->maxlength = 5;
        $edit->lote->size = 4;
        $edit->lote->autocomplete = false;
        //$edit->lote->showformat ='decimal';
        $edit->lote->disable_paste = true;
        $edit->desca = new inputField('Descripci&oacute;n <#o#>', 'desca_<#i#>');
        $edit->desca->size = 40;
        $edit->desca->db_name = 'desca';
        $edit->desca->maxlength = 50;
        $edit->desca->readonly = true;
        $edit->desca->rel_id = 'sitems';
        $edit->cana = new inputField('Cantidad <#o#>', 'cana_<#i#>');
        $edit->cana->db_name = 'cana';
        $edit->cana->css_class = 'inputnum';
        $edit->cana->rel_id = 'sitems';
        $edit->cana->maxlength = 10;
        $edit->cana->size = 6;
        $edit->cana->rule = 'required|positive|callback_chcanadev[<#i#>]|callback_chcananeg[<#i#>]';
        $edit->cana->autocomplete = false;
        $edit->cana->onkeyup = 'importe(<#i#>)';
        $edit->cana->showformat = 'decimal';
        $edit->cana->disable_paste = true;
        $edit->preca = new inputField('Precio <#o#>', 'preca_<#i#>');
        $edit->preca->db_name = 'preca';
        $edit->preca->css_class = 'inputnum';
        $edit->preca->rel_id = 'sitems';
        $edit->preca->size = 9;
        $edit->preca->rule = 'required|positive|callback_chpreca[<#i#>]';
        $edit->preca->onkeyup = 'post_precioselec(<#i#>,this);';
        $edit->preca->showformat = 'decimal';
        $pidescu = $this->datasis->traevalor('SFACDESCU', 'ApLica Descuentos en facturacio');
        if ($pidescu == 'S') {
            $edit->descu = new inputField('Descuento <#o#>', 'descu_<#i#>');
            $edit->descu->db_name = 'descu';
            $edit->descu->css_class = 'inputnum';
            $edit->descu->rel_id = 'sitems';
            $edit->descu->maxlength = 6;
            $edit->descu->size = 4;
            $edit->descu->autocomplete = false;
            $edit->descu->onkeyup = 'importe(<#i#>)';
            $edit->descu->showformat = 'decimal';
            $edit->descu->disable_paste = true;
            $edit->descu->insertValue = 0;
        } else {
            $edit->descu = new hiddenField('Descuento <#o#>', 'descu_<#i#>');
            $edit->descu->db_name = 'descu';
            $edit->descu->rel_id = 'sitems';
        }
        $edit->detalle = new hiddenField('', 'detalle_<#i#>');
        $edit->detalle->db_name = 'detalle';
        $edit->detalle->rel_id = 'sitems';
        $edit->tota = new inputField('Importe <#o#>', 'tota_<#i#>');
        $edit->tota->db_name = 'tota';
        $edit->tota->type = 'inputhidden';
        $edit->tota->size = 10;
        $edit->tota->css_class = 'inputnum';
        $edit->tota->rel_id = 'sitems';
        $edit->tota->showformat = 'decimal';
        for ($i = 1; $i < 4; $i++) {
            $obj = 'precio' . $i;
            $edit->{$obj} = new hiddenField('Precio <#o#>', $obj . '_<#i#>');
            $edit->{$obj}->db_name = 'sinv' . $obj;
            $edit->{$obj}->rel_id = 'sitems';
            $edit->{$obj}->pointer = true;
        }
        $edit->precio4 = new hiddenField('', 'precio4_<#i#>');
        $edit->precio4->db_name = 'precio4';
        $edit->precio4->rel_id = 'sitems';
        $edit->combo = new hiddenField('', 'combo_<#i#>');
        $edit->combo->db_name = 'combo';
        $edit->combo->rel_id = 'sitems';
        $edit->recurso = new hiddenField('', 'recurso_<#i#>');
        $edit->recurso->db_name = 'recurso';
        $edit->recurso->rel_id = 'sitems';
        $edit->itiva = new hiddenField('', 'itiva_<#i#>');
        $edit->itiva->db_name = 'iva';
        $edit->itiva->rel_id = 'sitems';
        $edit->sinvpeso = new hiddenField('', 'sinvpeso_<#i#>');
        $edit->sinvpeso->db_name = 'sinvpeso';
        $edit->sinvpeso->rel_id = 'sitems';
        $edit->sinvpeso->pointer = true;
        $edit->sinvtipo = new hiddenField('', 'sinvtipo_<#i#>');
        $edit->sinvtipo->db_name = 'sinvtipo';
        $edit->sinvtipo->rel_id = 'sitems';
        $edit->sinvtipo->pointer = true;
        //************************************************
        //fin de campos para detalle,inicio detalle2 sfpa
        //************************************************
        $edit->tipo = new dropdownField('Tipo <#o#>', 'tipo_<#i#>');
        $edit->tipo->option('', 'CREDITO');
        $edit->tipo->options('SELECT tipo, nombre FROM tarjeta WHERE activo=\'S\' ORDER BY nombre');
        $edit->tipo->db_name = 'tipo';
        $edit->tipo->rel_id = 'sfpa';
        $edit->tipo->insertValue = 'EF';
        $edit->tipo->style = 'width:150px;';
        $edit->tipo->onchange = 'sfpatipo(<#i#>)';
        //$edit->tipo->rule     = 'required';
        /*
        		$edit->sfpafecha = new dateonlyField('Fecha','sfpafecha_<#i#>');
        		$edit->sfpafecha->rel_id   = 'sfpa';
        		$edit->sfpafecha->db_name  = 'fecha';
        		$edit->sfpafecha->size     = 10;
        		$edit->sfpafecha->maxlength= 8;
        		$edit->sfpafecha->calendar = false;
        		$edit->sfpafecha->rule ='condi_required|callback_chtipo[<#i#>]';
        */
        $edit->numref = new inputField('Numero <#o#>', 'num_ref_<#i#>');
        $edit->numref->size = 12;
        $edit->numref->db_name = 'num_ref';
        $edit->numref->rel_id = 'sfpa';
        $edit->numref->rule = 'condi_required|callback_chtipo[<#i#>]';
        $edit->banco = new dropdownField('Banco <#o#>', 'banco_<#i#>');
        $edit->banco->option('', 'Ninguno');
        $edit->banco->options('SELECT cod_banc,nomb_banc
		FROM tban WHERE cod_banc<>\'CAJ\'
		UNION ALL
		SELECT codbanc,CONCAT_WS(\' \',TRIM(banco),numcuent)
		FROM banc WHERE tbanco <> \'CAJ\' ORDER BY nomb_banc');
        $edit->banco->db_name = 'banco';
        $edit->banco->rel_id = 'sfpa';
        $edit->banco->style = 'width:150px;';
        $edit->banco->rule = 'condi_required|callback_chtipo[<#i#>]';
        $edit->monto = new inputField('Monto <#o#>', 'monto_<#i#>');
        $edit->monto->db_name = 'monto';
        $edit->monto->css_class = 'inputnum';
        $edit->monto->rel_id = 'sfpa';
        $edit->monto->size = 10;
        $edit->monto->rule = 'required|mayorcero';
        $edit->monto->showformat = 'decimal';
        //************************************************
        // Fin detalle 2 (sfpa)
        //************************************************
        $edit->ivat = new hiddenField('I.V.A', 'iva');
        $edit->ivat->css_class = 'inputnum';
        $edit->ivat->readonly = true;
        $edit->ivat->size = 10;
        $edit->totals = new hiddenField('Sub-Total', 'totals');
        $edit->totals->css_class = 'inputnum';
        $edit->totals->readonly = true;
        $edit->totals->size = 10;
        $edit->totalg = new hiddenField('Total', 'totalg');
        $edit->totalg->css_class = 'inputnum';
        $edit->totalg->readonly = true;
        $edit->totalg->size = 10;
        $edit->observa = new textareaField('Observaci&oacute;n', 'observa');
        $edit->observa->cols = 50;
        $edit->observa->rows = 3;
        $edit->pagacon = new inputField('Paga con', 'pagacon');
        $edit->pagacon->css_class = 'inputnum';
        $edit->pagacon->size = 10;
        $edit->pagacon->insertValue = '0.00';
        $edit->pagacon->onkeyup = 'fvuelto()';
        $edit->nfiscal = new inputField('No.Fiscal', 'nfiscal');
        $edit->observ1 = new inputField('Observaci&oacute;n', 'observ1');
        $edit->zona = new inputField('Zona', 'zona');
        $edit->ciudad = new inputField('Ciudad', 'ciudad');
        $edit->exento = new inputField('Exento', 'exento');
        $edit->maqfiscal = new inputField('Mq.Fiscal', 'maqfiscal');
        $edit->pfac = new hiddenField('Presupuesto', 'pfac');
        $edit->snte = new hiddenField('Nota de entrega', 'snte');
        $edit->reiva = new inputField('Retencion de IVA', 'reiva');
        $edit->creiva = new inputField('Comprobante', 'creiva');
        $edit->freiva = new inputField('Fecha', 'freiva');
        $edit->ereiva = new inputField('Emision', 'ereiva');
        $edit->usuario = new autoUpdateField('usuario', $this->session->userdata('usuario'), $this->session->userdata('usuario'));
        $edit->estampa = new autoUpdateField('estampa', date('Ymd'), date('Ymd'));
        $edit->hora = new autoUpdateField('hora', date('H:i:s'), date('H:i:s'));
        $sfacreferen = trim($this->datasis->traevalor('SFACREFEREN', 'Forma de pago predeterminada en facturacion Ej. E'));
        $edit->referen = new radiogroupField('', 'referen', array('P' => 'Dejar Pendiente', 'E' => 'Efectivo', 'C' => 'Credito', 'M' => 'Multiple/Otros'));
        $edit->referen->insertValue = empty($sfacreferen) ? 'P' : $sfacreferen;
        $edit->referen->onchange = 'chreferen()';
        if ($manual == 'S') {
            $edit->referen->when = array('');
        } else {
            $edit->referen->when = array('create', 'modify');
        }
        //Fin de los campos comodines
        $edit->buttons('add_rel');
        if (!empty($this->_url)) {
            $edit->_process_uri = $this->_url;
        }
        //Necesario cuando se crea desde presupuesto o pedido
        $edit->build();
        if ($edit->on_success()) {
            if (isset($this->_sfacmaestra)) {
                $numero = $edit->_dataobject->get('numero');
                if ($numero == $this->_sfacmaestra) {
                    $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk, 'manual' => $manual, 'vuelto' => $edit->pagacon->newValue - $edit->totalg->newValue);
                    echo json_encode($rt);
                }
            } else {
                $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk, 'manual' => $manual, 'vuelto' => $edit->pagacon->newValue - $edit->totalg->newValue);
                echo json_encode($rt);
            }
        } else {
            if ($this->genesal) {
                $conten['form'] =& $edit;
                //$this->load->view('view_sfac_add', $conten);
                $this->load->view('view_sfac_pos1', $conten);
            } else {
                $rt = array('status' => 'B', 'mensaje' => html_entity_decode(preg_replace('/<[^>]*>/', '', $edit->error_string)), 'pk' => '', 'manual' => $manual, 'vuelto' => 0.0);
                echo json_encode($rt);
            }
        }
    }
Example #14
0
    function dataedit()
    {
        $this->rapyd->load('datadetails', 'dataobject');
        $modbusp = array('tabla' => 'scli', 'columnas' => array('cliente' => 'C&oacute;digo Cliente', 'nombre' => 'Nombre', 'dire11' => 'Direcci&oacute;n', 'rifci' => 'Rif/CI'), 'filtro' => array('cliente' => 'C&oacute;digo Cliente', 'nombre' => 'Nombre'), 'retornar' => array('cliente' => 'cod_cli'), 'titulo' => 'Buscar Cliente');
        $boton = $this->datasis->modbus($modbusp);
        $modbus = array('tabla' => 'botr', 'columnas' => array('codigo' => 'C&oacute;digo', 'nombre' => 'Descripci&oacute;n'), 'filtro' => array('codigo' => 'C&oacute;digo', 'nombre' => 'Descripci&oacute;n'), 'retornar' => array('codigo' => 'codigo_<#i#>', 'nombre' => 'descrip_<#i#>', 'nombre' => 'larga_<#i#>'), 'p_uri' => array(4 => '<#i#>'), 'where' => 'tipo = "C"', 'titulo' => 'Buscar concepto');
        $do = new DataObject('otin');
        $do->rel_one_to_many('itotin', 'itotin', array('tipo_doc' => 'tipo_doc', 'numero' => 'numero'));
        $do->rel_one_to_many('sfpa', 'sfpa', array('numero', 'transac'));
        $do->pointer('scli', 'scli.cliente=otin.cod_cli', 'scli.tipo AS sclitipo', 'left');
        $do->rel_pointer('itotin', 'botr', 'itotin.codigo=botr.codigo', 'botr.nombre AS botrnombre, botr.precio AS botrprecio, botr.iva AS botriva, botr.tipo AS botrtipo');
        $edit = new DataDetails('', $do);
        $edit->on_save_redirect = false;
        $edit->set_rel_title('sfpa', 'Forma de pago');
        $edit->set_rel_title('itotin', 'Concepto');
        $edit->post_process('insert', '_post_insert');
        $edit->post_process('update', '_post_update');
        $edit->post_process('delete', '_post_delete');
        $edit->pre_process('insert', '_pre_insert');
        $edit->pre_process('update', '_pre_update');
        $edit->pre_process('delete', '_pre_delete');
        $edit->tipo_doc = new dropdownField('Tipo', 'tipo_doc');
        $edit->tipo_doc->option('OT', 'Otro Ingreso');
        $edit->tipo_doc->option('OC', 'O.I. a Cr&eacute;dito');
        $edit->tipo_doc->option('ND', 'Nota de D&eacute;bito');
        $edit->tipo_doc->rule = 'enum[ND,OC,OT]|required';
        $edit->tipo_doc->style = 'width:100px;';
        $edit->cajero = new dropdownField('Cajero', 'cajero');
        $edit->cajero->options('SELECT cajero,TRIM(nombre) AS nombre FROM scaj ORDER BY nombre');
        $edit->cajero->rule = 'condi_required|callback_chobliga[OT]|cajerostatus';
        $edit->cajero->style = 'width:150px;';
        $edit->cajero->insertValue = $this->secu->getcajero();
        $edit->numero = new inputField('N&uacute;mero', 'numero');
        $edit->numero->size = 10;
        $edit->numero->rule = 'required';
        $edit->numero->mode = 'autohide';
        $edit->numero->maxlength = 8;
        $edit->numero->when = array('show');
        $edit->fecha = new DateonlyField('Fecha', 'fecha');
        $edit->fecha->insertValue = date('Y-m-d');
        $edit->fecha->mode = 'autohide';
        $edit->fecha->rule = 'chfecha';
        $edit->fecha->size = 12;
        $edit->fecha->calendar = false;
        $edit->vence = new DateonlyField('Vence', 'vence');
        $edit->vence->insertValue = date('Y-m-d');
        $edit->vence->rule = 'chfecha';
        $edit->vence->size = 12;
        $edit->vence->calendar = false;
        $edit->cliente = new inputField('Cliente', 'cod_cli');
        $edit->cliente->size = 10;
        $edit->cliente->rule = 'required|existescli';
        $edit->cliente->append($boton);
        $edit->nombre = new inputField('Nombre', 'nombre');
        $edit->nombre->size = 55;
        $edit->nombre->type = 'inputhidden';
        $edit->nombre->maxlength = 40;
        $edit->rifci = new inputField('RIF/CI', 'rifci');
        $edit->rifci->type = 'inputhidden';
        $edit->rifci->size = 20;
        $edit->direc = new inputField('Direcci&oacute;n', 'direc');
        $edit->direc->type = 'inputhidden';
        $edit->direc->size = 55;
        $edit->dire1 = new inputField(' ', 'dire1');
        $edit->dire1->type = 'inputhidden';
        $edit->dire1->size = 55;
        $edit->iva = new inputField('Impuesto', 'iva');
        $edit->iva->size = 20;
        $edit->iva->rule = 'numeric';
        $edit->iva->type = 'inputhidden';
        $edit->iva->css_class = 'inputnum';
        $edit->iva->showformat = 'decimal';
        $edit->totals = new inputField('Sub-Total', 'totals');
        $edit->totals->size = 20;
        $edit->totals->rule = 'numeric';
        $edit->totals->type = 'inputhidden';
        $edit->totals->css_class = 'inputnum';
        $edit->totals->showformat = 'decimal';
        $edit->totalg = new inputField('Total', 'totalg');
        $edit->totalg->size = 20;
        $edit->totalg->rule = 'numeric';
        $edit->totalg->type = 'inputhidden';
        $edit->totalg->css_class = 'inputnum';
        $edit->totalg->showformat = 'decimal';
        $edit->observa1 = new inputField('Observaciones', 'observa1');
        $edit->observa1->size = 40;
        $edit->observa2 = new inputField('Observaciones', 'observa2');
        $edit->observa2->size = 40;
        $edit->orden = new inputField('Orden', 'orden');
        $edit->orden->size = 12;
        $edit->dpto = new dropdownField('Depto.', 'dpto');
        $edit->dpto->option('', 'Seleccionar');
        $edit->dpto->options('SELECT TRIM(depto) AS codigo, CONCAT_WS(\'-\',depto,TRIM(descrip)) AS label FROM dpto WHERE tipo=\'G\' ORDER BY depto');
        $edit->dpto->rule = 'required';
        $edit->dpto->style = 'width:140px';
        $edit->sucu = new dropdownField('Sucursal', 'sucu');
        $edit->sucu->options('SELECT codigo,CONCAT(codigo,\'-\', sucursal) AS sucursal FROM sucu ORDER BY codigo');
        $edit->sucu->rule = 'required';
        $edit->sucu->style = 'width:100px';
        $edit->afecta = new inputField('Factura Afectada', 'afecta');
        $edit->afecta->rule = '';
        $edit->afecta->size = 10;
        $edit->afecta->maxlength = 8;
        $edit->afecta->rule = 'condi_required|callback_chobliga[ND]';
        $edit->fafecta = new dateonlyField('Fecha de la factura afecta', 'fafecta');
        $edit->fafecta->rule = 'chfecha';
        $edit->fafecta->size = 10;
        $edit->fafecta->maxlength = 8;
        $edit->fafecta->calendar = false;
        $edit->fafecta->rule = 'condi_required|callback_chobliga[ND]';
        $edit->libro = new dropdownField('Enviar al Libro de ventas', 'libro');
        $edit->libro->option('S', 'Si');
        $edit->libro->option('N', 'No');
        $edit->libro->db_name = 'libro';
        $edit->libro->style = '30px';
        //******************************
        //Campos para el detalle
        //******************************
        $edit->codigo = new inputField('C&oacute;digo', 'codigo_<#i#>');
        $edit->codigo->size = 10;
        $edit->codigo->db_name = 'codigo';
        $edit->codigo->rule = 'required|existebotr';
        $edit->codigo->rel_id = 'itotin';
        $edit->codigo->append($this->datasis->p_modbus($modbus, '<#i#>'));
        $edit->descrip = new inputField('Descripci&oacute;n', 'descrip_<#i#>');
        $edit->descrip->size = 30;
        $edit->descrip->db_name = 'descrip';
        $edit->descrip->rel_id = 'itotin';
        $edit->descrip->type = 'inputhidden';
        $edit->larga = new textareaField('', 'larga_<#i#>');
        $edit->larga->db_name = 'larga';
        $edit->larga->rel_id = 'itotin';
        $edit->larga->rows = 2;
        $edit->larga->cols = 45;
        $ivas = $this->datasis->ivaplica();
        $edit->tasaiva = new dropdownField('IVA <#o#>', 'tasaiva_<#i#>');
        $edit->tasaiva->option($ivas['tasa'], $ivas['tasa'] . '%');
        $edit->tasaiva->option($ivas['redutasa'], $ivas['redutasa'] . '%');
        $edit->tasaiva->option($ivas['sobretasa'], $ivas['sobretasa'] . '%');
        $edit->tasaiva->option('0', '0.00%');
        $edit->tasaiva->db_name = 'tasaiva';
        $edit->tasaiva->rule = 'positive';
        $edit->tasaiva->style = '30px';
        $edit->tasaiva->rel_id = 'itotin';
        $edit->tasaiva->onchange = 'importe(<#i#>)';
        $edit->precio = new inputField('Precio', 'precio_<#i#>');
        $edit->precio->css_class = 'inputnum';
        $edit->precio->rule = 'numeric|mayorcero';
        $edit->precio->size = 12;
        $edit->precio->onkeyup = 'importe(<#i#>)';
        $edit->precio->rel_id = 'itotin';
        $edit->precio->showformat = 'decimal';
        $edit->precio->db_name = 'precio';
        $edit->impuesto = new inputField('Impuesto', 'impuesto_<#i#>');
        $edit->impuesto->css_class = 'inputnum';
        $edit->impuesto->rule = 'numeric';
        $edit->impuesto->size = 6;
        $edit->impuesto->onkeyup = 'importe(<#i#>)';
        $edit->impuesto->rel_id = 'itotin';
        $edit->impuesto->showformat = 'decimal';
        $edit->impuesto->db_name = 'impuesto';
        $edit->importe = new inputField('Total', 'importe_<#i#>');
        $edit->importe->db_name = 'importe';
        $edit->importe->rule = 'numeric|mayorcero';
        $edit->importe->size = 10;
        $edit->importe->type = 'inputhidden';
        $edit->importe->rel_id = 'itotin';
        $edit->importe->showformat = 'decimal';
        $edit->importe->css_class = 'inputnum';
        //*******************************
        //fin de campos para detalle
        //*******************************
        //************************************************
        //fin de campos para detalle,inicio detalle2 sfpa
        //************************************************
        $edit->tipo = new dropdownField('Tipo <#o#>', 'tipo_<#i#>');
        $edit->tipo->options('SELECT tipo, nombre FROM tarjeta WHERE activo=\'S\' ORDER BY nombre');
        $edit->tipo->db_name = 'tipo';
        $edit->tipo->rel_id = 'sfpa';
        $edit->tipo->insertValue = 'EF';
        $edit->tipo->style = 'width:150px;';
        $edit->tipo->onchange = 'sfpatipo(<#i#>)';
        //$edit->tipo->rule     = 'required';
        $edit->sfpafecha = new dateonlyField('Fecha', 'sfpafecha_<#i#>');
        $edit->sfpafecha->rel_id = 'sfpa';
        $edit->sfpafecha->db_name = 'fecha';
        $edit->sfpafecha->size = 10;
        $edit->sfpafecha->maxlength = 8;
        $edit->sfpafecha->calendar = false;
        $edit->sfpafecha->rule = 'condi_required|callback_chtipo[<#i#>]';
        $edit->numref = new inputField('Numero <#o#>', 'num_ref_<#i#>');
        $edit->numref->size = 12;
        $edit->numref->db_name = 'num_ref';
        $edit->numref->rel_id = 'sfpa';
        $edit->numref->rule = 'condi_required|callback_chtipo[<#i#>]';
        $edit->banco = new dropdownField('Banco <#o#>', 'banco_<#i#>');
        $edit->banco->option('', 'Ninguno');
        $edit->banco->options('SELECT cod_banc,nomb_banc
			FROM tban
			WHERE cod_banc<>\'CAJ\'
			UNION ALL
			SELECT codbanc,CONCAT_WS(\' \',TRIM(banco),numcuent)
			FROM banc
			WHERE tbanco <> \'CAJ\' AND activo="S" ORDER BY nomb_banc');
        $edit->banco->db_name = 'banco';
        $edit->banco->rel_id = 'sfpa';
        $edit->banco->style = 'width:180px;';
        $edit->banco->rule = 'condi_required|callback_chtipo[<#i#>]';
        $edit->monto = new inputField('Monto <#o#>', 'monto_<#i#>');
        $edit->monto->db_name = 'monto';
        $edit->monto->css_class = 'inputnum';
        $edit->monto->rel_id = 'sfpa';
        $edit->monto->size = 10;
        $edit->monto->rule = 'condi_required|chpagopositivo[<#i#>]';
        $edit->monto->showformat = 'decimal';
        //************************************************
        // Fin detalle 2 (sfpa)
        //************************************************
        //$edit->buttons('add_rel');
        $edit->build();
        if ($edit->on_success()) {
            $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk);
            echo json_encode($rt);
        } else {
            $conten['form'] =& $edit;
            $this->load->view('view_otin', $conten);
        }
    }
Example #15
0
    function ccli($id_scli)
    {
        $id_scli = intval($id_scli);
        $row = $this->datasis->damerow("SELECT cliente,nombre,rifci FROM scli WHERE id={$id_scli}");
        if (empty($row)) {
            echo 'Cliente inexistente';
            return '';
        }
        $cliente = $row['cliente'];
        $dbcliente = $this->db->escape($cliente);
        $scli_nombre = $row['nombre'];
        $scli_rif = $row['rifci'];
        $cajero = $this->secu->getcajero();
        if (empty($cajero)) {
            echo 'El usuario debe tener registrado un cajero para poder usar este modulo';
            exit;
        }
        $this->rapyd->load('dataobject', 'datadetails');
        $this->rapyd->uri->keep_persistence();
        $do = new DataObject('smov');
        $do->rel_one_to_many('itccli', 'itccli', array('tipo_doc' => 'tipoccli', 'numero' => 'numccli', 'cod_cli' => 'cod_cli', 'transac' => 'transac'));
        $do->rel_one_to_many('sfpa', 'sfpa', array('transac' => 'transac', 'numero' => 'numero', 'tipo_doc' => 'tipo_doc'));
        $do->order_by('itccli', 'itccli.fecha');
        $edit = new DataDetails('Cobro a cliente', $do);
        $edit->on_save_redirect = false;
        $edit->back_url = site_url('finanzas/ccli/filteredgrid');
        $edit->set_rel_title('itccli', 'Efecto <#o#>');
        $edit->set_rel_title('sfpa', 'Forma de pago <#o#>');
        $edit->pre_process('insert', '_pre_ccli_insert');
        $edit->pre_process('update', '_pre_ccli_update');
        $edit->pre_process('delete', '_pre_ccli_delete');
        $edit->post_process('insert', '_post_ccli_insert');
        //$edit->post_process('delete', '_post_delete');
        $edit->cod_cli = new hiddenField('Cliente', 'cod_cli');
        $edit->cod_cli->rule = 'max_length[5]';
        $edit->cod_cli->size = 7;
        $edit->cod_cli->insertValue = $cliente;
        $edit->cod_cli->maxlength = 5;
        $edit->nombre = new inputField('Nombre', 'nombre');
        $edit->nombre->rule = 'max_length[40]';
        $edit->nombre->size = 42;
        $edit->nombre->maxlength = 40;
        $edit->codigo = new dropdownField('Motivo', 'codigo');
        $edit->codigo->option('', 'Seleccionar');
        $edit->codigo->options('SELECT TRIM(codigo) AS cod, nombre FROM botr WHERE tipo=\'C\' ORDER BY nombre');
        $edit->codigo->style = 'width:200px;';
        $edit->codigo->rule = '';
        $edit->vendedor = new dropdownField('Cobrador', 'vd');
        $edit->vendedor->option('', 'Seleccione cobrador');
        $edit->vendedor->options('SELECT TRIM(vendedor) AS vendedor, CONCAT(vendedor,\' \',nombre) nombre FROM vend WHERE tipo <> "V" ORDER BY vendedor');
        $edit->vendedor->style = 'width:200px;';
        $edit->vendedor->insertValue = trim($this->secu->getvendedor());
        $edit->vendedor->db_name = 'vendedor';
        $edit->numero = new inputField('N&uacute;mero', 'numero');
        $edit->numero->rule = 'max_length[8]';
        $edit->numero->size = 10;
        $edit->numero->maxlength = 8;
        $edit->fecdoc = new dateonlyField('Fecha', 'fecdoc');
        $edit->fecdoc->db_name = 'fecha';
        $edit->fecdoc->size = 12;
        $edit->fecdoc->maxlength = 8;
        $edit->fecdoc->insertValue = date('Y-m-d');
        $edit->fecdoc->calendar = false;
        $edit->fecdoc->rule = 'chfecha|chfechafut|required|callback_chcierre';
        $edit->monto = new inputField('Total', 'monto');
        $edit->monto->rule = 'max_length[17]|numeric';
        $edit->monto->css_class = 'inputnum';
        $edit->monto->size = 19;
        $edit->monto->maxlength = 17;
        $edit->monto->type = 'inputhidden';
        $edit->observa1 = new textareaField('Concepto:', 'observa1');
        $edit->observa1->cols = 70;
        $edit->observa1->rows = 2;
        $edit->observa1->style = 'width:100%;';
        $edit->observa2 = new textareaField('', 'observa2');
        $edit->observa2->cols = 70;
        $edit->observa2->rows = 2;
        $edit->observa2->style = 'width:100%;';
        $edit->observa2->when = array('show');
        $edit->codigo = new dropdownField('Motivo', 'codigo');
        $edit->codigo->option('', 'Ninguno');
        $edit->codigo->options('SELECT TRIM(codigo) AS cod, nombre FROM botr WHERE tipo=\'C\' ORDER BY nombre');
        $edit->codigo->style = 'width:200px;';
        $edit->codigo->rule = 'condi_required|callback_chobligatipo[NC]';
        $edit->nroex = new inputField('Referencia Externa', 'nroex');
        $edit->nroex->rule = 'max_length[15]';
        $edit->nroex->size = 15;
        $edit->nroex->maxlength = 15;
        $edit->usuario = new autoUpdateField('usuario', $this->secu->usuario(), $this->secu->usuario());
        $edit->estampa = new autoUpdateField('estampa', date('Ymd'), date('Ymd'));
        $edit->hora = new autoUpdateField('hora', date('H:i:s'), date('H:i:s'));
        //$edit->fecha   = new autoUpdateField('fecha'   ,date('Ymd'), date('Ymd'));
        //**************************************************************
        //inicio detalle itccli
        //
        $i = 0;
        $arr_ivas = array();
        $edit->detail_expand_except('itccli');
        $sel = array('a.tipo_doc', 'a.numero', 'a.fecha', 'a.monto', 'a.abonos', 'a.monto - a.abonos AS saldo');
        $this->db->select($sel);
        $this->db->from('smov AS a');
        $this->db->where('a.cod_cli', $cliente);
        $transac = $edit->get_from_dataobjetct('transac');
        if ($transac !== false) {
            $tipo_doc = $edit->get_from_dataobjetct('tipo_doc');
            $dbtransac = $this->db->escape($transac);
            $this->db->join('itccli AS b', 'a.tipo_doc = b.tipoccli AND a.numero=b.numccli AND a.transac=' . $dbtransac);
            $this->db->where('a.tipo_doc', $tipo_doc);
        } else {
            $this->db->where('a.monto > a.abonos');
            $this->db->where_in('a.tipo_doc', array('FC', 'ND', 'GI'));
        }
        $this->db->order_by('a.fecha');
        $query = $this->db->get();
        //echo $this->db->last_query();
        foreach ($query->result() as $row) {
            //$arr_ivas[$i]=array('');
            $obj = 'cod_cli_' . $i;
            $edit->{$obj} = new autoUpdateField('cod_cli', $cliente, $cliente);
            $edit->{$obj}->rel_id = 'itccli';
            $edit->{$obj}->ind = $i;
            $obj = 'tipo_doc_' . $i;
            $edit->{$obj} = new inputField('Tipo_doc', $obj);
            $edit->{$obj}->db_name = 'tipo_doc';
            $edit->{$obj}->rel_id = 'itccli';
            $edit->{$obj}->rule = 'max_length[2]';
            $edit->{$obj}->insertValue = $row->tipo_doc;
            $edit->{$obj}->size = 4;
            $edit->{$obj}->maxlength = 2;
            $edit->{$obj}->ind = $i;
            $edit->{$obj}->type = 'inputhidden';
            $obj = 'numero_' . $i;
            $edit->{$obj} = new inputField('Numero', $obj);
            $edit->{$obj}->db_name = 'numero';
            $edit->{$obj}->rel_id = 'itccli';
            $edit->{$obj}->rule = 'max_length[8]';
            $edit->{$obj}->insertValue = $row->numero;
            $edit->{$obj}->size = 10;
            $edit->{$obj}->maxlength = 8;
            $edit->{$obj}->ind = $i;
            $edit->{$obj}->type = 'inputhidden';
            $obj = 'fecha_' . $i;
            $edit->{$obj} = new dateonlyField('Fecha', $obj);
            $edit->{$obj}->db_name = 'fecha';
            $edit->{$obj}->rel_id = 'itccli';
            $edit->{$obj}->rule = 'chfecha';
            $edit->{$obj}->insertValue = $row->fecha;
            $edit->{$obj}->size = 10;
            $edit->{$obj}->maxlength = 8;
            $edit->{$obj}->ind = $i;
            $edit->{$obj}->type = 'inputhidden';
            $obj = 'monto_' . $i;
            $edit->{$obj} = new inputField('Monto', $obj);
            $edit->{$obj}->db_name = 'monto';
            $edit->{$obj}->rel_id = 'itccli';
            $edit->{$obj}->rule = 'max_length[18]|numeric';
            $edit->{$obj}->css_class = 'inputnum';
            $edit->{$obj}->size = 20;
            $edit->{$obj}->insertValue = $row->monto;
            $edit->{$obj}->maxlength = 18;
            $edit->{$obj}->ind = $i;
            $edit->{$obj}->showformat = 'decimal';
            $edit->{$obj}->type = 'inputhidden';
            $obj = 'saldo_' . $i;
            $edit->{$obj} = new freeField($obj, $obj, nformat($row->saldo));
            $edit->{$obj}->ind = $i;
            $obj = 'abono_' . $i;
            $edit->{$obj} = new inputField('Abono', $obj);
            $edit->{$obj}->db_name = 'abono';
            $edit->{$obj}->rel_id = 'itccli';
            $edit->{$obj}->rule = "max_length[18]|numeric|positive|callback_chabono[{$i}]";
            $edit->{$obj}->css_class = 'inputnum';
            $edit->{$obj}->showformat = 'decimal';
            $edit->{$obj}->autocomplete = false;
            $edit->{$obj}->disable_paste = true;
            $edit->{$obj}->size = 15;
            $edit->{$obj}->maxlength = 18;
            $edit->{$obj}->ind = $i;
            $edit->{$obj}->onfocus = 'itsaldo(this,' . round($row->saldo, 2) . ');';
            $obj = 'ppago_' . $i;
            $edit->{$obj} = new inputField('Pronto Pago', $obj);
            $edit->{$obj}->db_name = 'ppago';
            $edit->{$obj}->rel_id = 'itccli';
            $edit->{$obj}->rule = "max_length[18]|numeric|positive|callback_chppago[{$i}]";
            $edit->{$obj}->css_class = 'inputnum';
            $edit->{$obj}->showformat = 'decimal';
            $edit->{$obj}->autocomplete = false;
            $edit->{$obj}->disable_paste = true;
            $edit->{$obj}->size = 15;
            $edit->{$obj}->maxlength = 18;
            $edit->{$obj}->ind = $i;
            $edit->{$obj}->onchange = "itppago(this,'{$i}');";
            $i++;
        }
        $edit->tipo_doc = new dropdownField('Tipo doc.', 'tipo_doc');
        if ($i > 0) {
            $edit->tipo_doc->option('AB', 'Abono');
            $edit->tipo_doc->option('NC', 'Nota de credito');
        } else {
            $edit->tipo_doc->insertValue = 'AN';
        }
        $edit->tipo_doc->option('AN', 'Anticipo');
        $edit->tipo_doc->style = 'width:140px;';
        $edit->tipo_doc->onchange = 'chtipodoc()';
        $edit->tipo_doc->rule = 'enum[AB,NC,AN]|required';
        //**************************************************************
        //fin de campos para detalle,inicio detalle2 sfpa
        //
        $edit->tipo = new dropdownField('Tipo <#o#>', 'tipo_<#i#>');
        $edit->tipo->option('', 'Ninguno');
        $edit->tipo->options('SELECT tipo, nombre FROM tarjeta WHERE activo=\'S\' ORDER BY nombre');
        $edit->tipo->db_name = 'tipo';
        $edit->tipo->rel_id = 'sfpa';
        $edit->tipo->style = 'width:160px;';
        $edit->tipo->rule = 'condi_required|callback_chsfpatipo[<#i#>]';
        $edit->tipo->insertValue = 'EF';
        $edit->tipo->onchange = 'sfpatipo(<#i#>)';
        $edit->tipo->rule = 'callback_chbmovrep[<#i#>]';
        $edit->sfpafecha = new dateonlyField('Fecha', 'sfpafecha_<#i#>');
        $edit->sfpafecha->rel_id = 'sfpa';
        $edit->sfpafecha->db_name = 'fecha';
        $edit->sfpafecha->size = 12;
        $edit->sfpafecha->maxlength = 8;
        $edit->sfpafecha->calendar = false;
        $edit->sfpafecha->rule = 'condi_required|chitfecha|callback_chtipo[<#i#>]';
        $edit->numref = new inputField('Numero <#o#>', 'num_ref_<#i#>');
        $edit->numref->size = 15;
        $edit->numref->db_name = 'num_ref';
        $edit->numref->rel_id = 'sfpa';
        $edit->numref->rule = 'trim|condi_required|callback_chtipo[<#i#>]|callback_chnumrep[<#i#>]';
        $edit->banco = new dropdownField('Banco <#o#>', 'banco_<#i#>');
        $edit->banco->option('', 'Ninguno');
        $edit->banco->options('SELECT cod_banc,nomb_banc
			FROM tban
			WHERE cod_banc<>\'CAJ\'
		UNION ALL
			SELECT codbanc,CONCAT_WS(\' \',TRIM(banco),numcuent)
			FROM banc
			WHERE tbanco <> \'CAJ\' ORDER BY nomb_banc');
        $edit->banco->db_name = 'banco';
        $edit->banco->rel_id = 'sfpa';
        $edit->banco->style = 'width:200px;';
        $edit->banco->rule = 'condi_required|callback_chtipo[<#i#>]';
        $edit->itmonto = new inputField('Monto <#o#>', 'itmonto_<#i#>');
        $edit->itmonto->db_name = 'monto';
        $edit->itmonto->css_class = 'inputnum';
        $edit->itmonto->rel_id = 'sfpa';
        $edit->itmonto->size = 14;
        $edit->itmonto->rule = 'condi_required|positive|callback_chmontosfpa[<#i#>]';
        $edit->itmonto->showformat = 'decimal';
        $edit->itmonto->autocomplete = false;
        //**************************************************************
        // Fin detalle 2 (sfpa)
        //
        $edit->buttons('add_rel');
        $edit->build();
        if ($edit->on_success()) {
            $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk);
            echo json_encode($rt);
        } else {
            if ($this->genesal) {
                $conten['cana'] = $i;
                $conten['form'] =& $edit;
                $conten['title'] = heading("Cobro a cliente: ({$cliente}) {$scli_nombre} {$scli_rif}");
                $data['content'] = $this->load->view('view_ccli.php', $conten);
            } else {
                if ($edit->on_error()) {
                    $rt = array('status' => 'B', 'mensaje' => preg_replace('/<[^>]*>/', '', $edit->error_string), 'pk' => null);
                    echo json_encode($rt);
                }
                if ($edit->on_success()) {
                    $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => null);
                    echo json_encode($rt);
                }
            }
        }
    }
Example #16
0
    function dataedit()
    {
        $this->rapyd->load('dataobject', 'datadetails');
        $modbusSinv = array('tabla' => 'sinv', 'columnas' => array('codigo' => 'C&oacute;digo', 'descrip' => 'Descripci&oacute;n'), 'filtro' => array('codigo' => 'C&oacute;digo', 'descrip' => 'Descripci&oacute;n'), 'retornar' => array('codigo' => 'codigo_<#i#>', 'descrip' => 'descrip_<#i#>'), 'p_uri' => array(4 => '<#i#>'), 'titulo' => 'Buscar Articulo', 'where' => '`activo` = "S" AND `tipo` = "Articulo"');
        //$boton=$this->datasis->p_modbus($modbusSinv,'<#i#>');
        $modbus = array('tabla' => 'sfac', 'columnas' => array('numero' => 'N&uacute;mero', 'fecha' => 'Fecha', 'cod_cli' => 'Cliente', 'rifci' => 'Rif', 'nombre' => 'Nombre', 'tipo_doc' => 'Tipo'), 'filtro' => array('numero' => 'N&uacute;mero', 'cod_cli' => 'Cliente', 'rifci' => 'Rif', 'nombre' => 'Nombre'), 'where' => 'tipo_doc = "F" and mid(numero,1,1) <> "_"', 'retornar' => array('numero' => 'factura', 'fecha' => 'fechafa', 'cod_cli' => 'cod_cli', 'nombre' => 'nombre'), 'titulo' => 'Buscar Factura');
        //$btn=$this->datasis->modbus($modbus);
        $do = new DataObject('snot');
        $do->rel_one_to_many('itsnot', 'itsnot', 'numero');
        $do->rel_pointer('itsnot', 'sinv', 'itsnot.codigo=sinv.codigo', 'sinv.descrip AS sinvdescrip', 'sinv.ultimo AS sinvultimo');
        $edit = new DataDetails('Nota de Entrega', $do);
        $edit->on_save_redirect = false;
        $edit->set_rel_title('itsnot', 'Producto <#o#>');
        $script = '
		$(function() {
			$("#fecha").datepicker({dateFormat:"dd/mm/yy"});
			$("#fechafa").datepicker({dateFormat:"dd/mm/yy"});
		});		';
        $edit->script($script, 'create');
        $edit->script($script, 'modify');
        $edit->pre_process('insert', '_pre_insert');
        $edit->pre_process('delete', '_pre_delete');
        $edit->pre_process('update', '_pre_update');
        $edit->post_process('insert', '_post_insert');
        $edit->post_process('update', '_post_update');
        $edit->post_process('delete', '_post_delete');
        $edit->fecha = new DateonlyField('Fecha', 'fecha', 'd/m/Y');
        $edit->fecha->insertValue = date('Y-m-d');
        $edit->fecha->rule = 'required|chfecha';
        $edit->fecha->mode = 'autohide';
        $edit->fecha->calendar = false;
        $edit->fecha->size = 10;
        $edit->numero = new inputField('N&uacute;mero', 'numero');
        $edit->numero->size = 10;
        $edit->numero->mode = 'autohide';
        $edit->numero->maxlength = 8;
        $edit->numero->apply_rules = false;
        //necesario cuando el campo es clave y no se pide al usuario
        $edit->numero->when = array('show', 'modify');
        $edit->tipo = new dropdownField('Tipo', 'tipo');
        $edit->tipo->option('E', 'Entrega');
        $edit->tipo->option('D', 'Devoluci&oacute;n');
        $edit->tipo->style = 'width:140px;';
        $edit->tipo->size = 5;
        $edit->tipo->rule = 'required|enum[D,E]';
        $edit->tipo->insertValue = 'E';
        $edit->fechafa = new DateonlyField('Fecha Factura', 'fechafa', 'd/m/Y');
        $edit->fechafa->rule = 'required|chfecha';
        $edit->fechafa->mode = 'autohide';
        $edit->fechafa->calendar = false;
        $edit->fechafa->size = 10;
        $edit->fechafa->type = 'inputhidden';
        $edit->factura = new inputField('Factura', 'factura');
        $edit->factura->size = 10;
        $edit->factura->mode = 'autohide';
        $edit->factura->maxlength = 8;
        $edit->factura->rule = 'required|existefac|callback_chsnte';
        //$edit->factura->append($btn);
        $edit->peso = new inputField('Peso', 'peso');
        $edit->peso->css_class = 'inputnum';
        $edit->peso->readonly = true;
        $edit->peso->size = 10;
        $edit->peso->type = 'inputhidden';
        $edit->cliente = new inputField('Cliente', 'cod_cli');
        $edit->cliente->size = 6;
        $edit->cliente->maxlength = 5;
        $edit->cliente->type = 'inputhidden';
        $edit->cliente->rule = 'required|callback_chsclifa';
        $edit->nombre = new inputField('Nombre', 'nombre');
        $edit->nombre->size = 25;
        $edit->nombre->maxlength = 40;
        $edit->nombre->autocomplete = false;
        $edit->nombre->rule = 'required';
        $edit->nombre->type = 'inputhidden';
        $edit->observa1 = new inputField('Observaciones', 'observ1');
        $edit->observa1->size = 40;
        $edit->observa1->maxlength = 80;
        //**************************
        //  Campos para el detalle
        //**************************
        $edit->codigo = new inputField('C&oacute;digo', 'codigo_<#i#>');
        $edit->codigo->size = 12;
        $edit->codigo->db_name = 'codigo';
        $edit->codigo->readonly = true;
        $edit->codigo->rel_id = 'itsnot';
        $edit->codigo->rule = 'required|existesinv|callback_chrepetidos';
        $edit->codigo->type = 'inputhidden';
        //$edit->codigo->append($boton);
        $edit->descrip = new inputField('Descripci&oacute;n', 'descrip_<#i#>');
        $edit->descrip->size = 36;
        $edit->descrip->db_name = 'descrip';
        $edit->descrip->maxlength = 50;
        $edit->descrip->readonly = true;
        $edit->descrip->rel_id = 'itsnot';
        $edit->descrip->type = 'inputhidden';
        $edit->cant = new inputField('Cantidad', 'cant_<#i#>');
        $edit->cant->db_name = 'cant';
        $edit->cant->css_class = 'inputnum';
        $edit->cant->rel_id = 'itsnot';
        $edit->cant->maxlength = 10;
        $edit->cant->size = 6;
        $edit->cant->rule = 'required|positive|numeric';
        $edit->cant->type = 'inputhidden';
        $edit->cant->showformat = 'decimal';
        $edit->cant->autocomplete = false;
        $edit->saldo = new inputField('Saldo', 'saldo_<#i#>');
        $edit->saldo->db_name = 'saldo';
        $edit->saldo->css_class = 'inputnum';
        $edit->saldo->rel_id = 'itsnot';
        $edit->saldo->maxlength = 10;
        $edit->saldo->size = 6;
        $edit->saldo->showformat = 'decimal';
        $edit->saldo->rule = 'required|positive|numeric';
        $edit->saldo->type = 'inputhidden';
        $edit->saldo->autocomplete = false;
        $edit->entrega = new inputField('Entrega', 'entrega_<#i#>');
        $edit->entrega->db_name = 'entrega';
        $edit->entrega->css_class = 'inputnum';
        $edit->entrega->rel_id = 'itsnot';
        $edit->entrega->maxlength = 10;
        $edit->entrega->size = 6;
        $edit->entrega->rule = 'positive|numeric|callback_chitems[<#i#>]';
        $edit->entrega->showformat = 'decimal';
        $edit->entrega->autocomplete = false;
        //$edit->itfactura = new inputField('Factura <#o#>', 'itfactura_<#i#>');
        //$edit->itfactura->size     = 12;
        //$edit->itfactura->db_name  = 'factura';
        //$edit->itfactura->readonly = true;
        //$edit->itfactura->rel_id   = 'itsnot';
        //**************************
        //fin de campos para detalle
        //**************************
        $edit->hora = new autoUpdateField('hora', date('Hi'), date('Hi'));
        $edit->estampa = new autoUpdateField('estampa', date('Ymd'), date('Ymd'));
        $edit->usuario = new autoUpdateField('usuario', $this->session->userdata('usuario'), $this->session->userdata('usuario'));
        //$edit->buttons('save', 'undo', 'delete', 'back','add_rel');
        //$edit->buttons('add_rel');
        $edit->build();
        if ($edit->on_success()) {
            $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk);
            echo json_encode($rt);
        } else {
            $conten['form'] =& $edit;
            $data['content'] = $this->load->view('view_snot', $conten);
        }
    }
Example #17
0
 function dataedit()
 {
     $this->rapyd->load('dataobject', 'datadetails');
     $modbus = array('tabla' => 'obpa', 'columnas' => array('codigo' => 'C&oacute;digo', 'descrip' => 'descrip'), 'filtro' => array('codigo' => 'C&oacute;digo', 'descrip' => 'descrip'), 'retornar' => array('codigo' => 'partida_<#i#>', 'descrip' => 'descrip_<#i#>'), 'p_uri' => array(4 => '<#i#>'), 'titulo' => 'Buscar Partidas');
     $mSPRV = array('tabla' => 'sprv', 'columnas' => array('proveed' => 'C&oacute;digo Proveedor', 'nombre' => 'Nombre', 'rif' => 'RIF', 'telefono' => 'Telefono', 'email' => 'Email'), 'filtro' => array('proveed' => 'C&oacute;digo Proveedor', 'nombre' => 'Nombre', 'rif' => 'RIF'), 'retornar' => array('proveed' => 'cod_prv', 'nombre' => 'nombre', 'rif' => 'rif', 'telefono' => 'telefono'), 'titulo' => 'Buscar Proveedor');
     $bsprv = $this->datasis->modbus($mSPRV);
     $mccont = array('tabla' => 'ccont', 'columnas' => array('numero' => 'N&uacute;mero de Contrato', 'cod_prv' => 'Proveedor', 'nombre' => 'Nombre'), 'filtro' => array('numero' => 'Número de Contrato', 'titulo' => 'Titulo'), 'retornar' => array('numero' => 'obrap'), 'titulo' => 'Buscar Contrato');
     $bccont = $this->datasis->modbus($mccont);
     $script = "\n\t\tfunction post_add_itccont(id){\n\t\t\t\$('#cantidad_'+id).numeric('.');\n\t\t\treturn true;\n\t\t}";
     $do = new DataObject('ccont');
     $do->rel_one_to_many('itccont', 'itccont', 'numero');
     $edit = new DataDetails('Contratos', $do);
     $edit->back_url = site_url('finanzas/ccont');
     $edit->set_rel_title('itccont', 'Partida <#o#>');
     $edit->script($script, 'create');
     $edit->script($script, 'modify');
     $edit->post_process('insert', '_post_insert');
     $edit->post_process('update', '_post_update');
     $edit->post_process('delete', '_post_delete');
     $edit->obrap = new inputField('Obra Principal', 'obrap');
     $edit->obrap->size = 12;
     $edit->obrap->maxlength = 20;
     $edit->obrap->append($bccont);
     $edit->obrap->readonly = true;
     //$edit->obrap->rule = 'required';
     $edit->numero = new inputField('N&uacute;mero de contrato', 'numero');
     $edit->numero->when = array("show");
     $edit->numero->size = 10;
     $edit->numero->maxlength = 20;
     $edit->numero->readonly = true;
     $edit->fecha = new DateonlyField('Fecha', 'fecha', 'd/m/Y');
     $edit->fecha->insertValue = date('Y-m-d');
     $edit->fecha->size = 12;
     $edit->fecha->rule = 'chfecha';
     $edit->fecha->rule = 'required';
     $edit->tipo = new dropdownField('Tipo', 'tipo');
     $edit->tipo->option('', 'Seleccione');
     $edit->tipo->options("SELECT codigo,descrip  FROM tipoc ORDER BY descrip");
     $edit->tipo->rule = 'required';
     $edit->cod_prv = new inputField('Proveedor', 'cod_prv');
     $edit->cod_prv->size = 12;
     $edit->cod_prv->maxlength = 20;
     $edit->cod_prv->append($bsprv);
     $edit->cod_prv->readonly = true;
     //$edit->cod_prv->rule = 'required';
     $lriffis = '<a href="javascript:consulrif();" title="Consultar RIF en el SENIAT" onclick=""> Consultar RIF en el SENIAT</a>';
     $edit->rif = new inputField('R.I.F.', 'rif');
     //$edit->rif->mode='autohide';
     $edit->rif->rule = 'strtoupper|callback_chci';
     $edit->rif->append($lriffis);
     $edit->rif->maxlength = 20;
     $edit->rif->size = 18;
     $edit->telefono = new inputField('Tel&eacute;fono', 'telefono');
     $edit->telefono->size = 30;
     $edit->telefono->maxlength = 100;
     $edit->email = new inputField('E-mail', 'email');
     $edit->email->rule = 'trim|valid_email';
     $edit->email->size = 30;
     $edit->email->maxlength = 50;
     $edit->nombre = new inputField('Nombre o Raz&oacute;n Social', 'nombre');
     $edit->nombre->size = 50;
     $edit->nombre->maxlength = 100;
     $edit->nombre->rule = 'required|strtoupper';
     $edit->direccion = new textareaField('Direcci&oacute;n o Domicilio', 'direccion');
     $edit->direccion->rows = 3;
     $edit->direccion->cols = 60;
     $edit->direccion->rule = 'required|strtoupper';
     $edit->detalles = new textareaField('Detalle del Objeto Contractual', 'detalle');
     $edit->detalles->size = 50;
     $edit->detalles->rows = 3;
     $edit->detalles->cols = 60;
     $edit->detalles->rule = 'required|strtoupper';
     $edit->base = new inputField('Sub Total sin IVA', 'base');
     $edit->base->size = 20;
     $edit->base->css_class = 'inputnum';
     $edit->base->rule = 'numeric';
     $edit->base->group = 'Totales';
     //$edit->base->rule = 'required';
     $edit->base->readonly = true;
     $edit->impuesto = new inputField('IVA', 'impuesto');
     $edit->impuesto->size = 20;
     $edit->impuesto->css_class = 'inputnum';
     $edit->impuesto->rule = 'numeric';
     $edit->impuesto->group = "Totales";
     //$edit->impuesto->rule = 'required';
     $edit->impuesto->readonly = true;
     $edit->tota = new inputField('Total Bs', 'tota');
     $edit->tota->size = 20;
     $edit->tota->css_class = 'inputnum';
     $edit->tota->rule = 'numeric';
     $edit->tota->group = "Totales";
     //$edit->tota->rule = 'required';
     $edit->tota->readonly = true;
     $edit->retencion = new inputField("Retenci&oacute;n por Garant&iacute;a", 'retencion');
     $edit->retencion->size = 10;
     $edit->retencion->css_class = 'inputnum';
     $edit->retencion->rule = 'numeric';
     $edit->retencion->append(' %');
     $edit->fecha_inicio = new DateonlyField('Fecha de Inicio', 'fecha_inicio', 'd/m/Y');
     $edit->fecha_inicio->insertValue = date('Y-m-d');
     $edit->fecha_inicio->size = 12;
     $edit->fecha_inicio->rule = 'chfecha';
     $edit->fecha_inicio->rule = 'required';
     $edit->fecha_final = new DateonlyField('Fecha de Culminaci&oacute;n', 'fecha_final', 'd/m/Y');
     $edit->fecha_final->insertValue = date('Y-m-d');
     $edit->fecha_final->size = 12;
     $edit->fecha_final->rule = 'required|chfecha';
     $numero = $edit->_dataobject->get('numero');
     $edit->itccont = new containerField('numero', $this->_detalle($numero));
     $edit->itccont->when = array('show', 'modify');
     $edit->itccont->group = 'Totales';
     //Campos para el detalle
     $edit->partida = new inputField('Partida', 'partida_<#i#>');
     $edit->partida->size = 18;
     $edit->partida->db_name = 'partida';
     $edit->partida->rel_id = 'itccont';
     $edit->partida->append($this->datasis->p_modbus($modbus, '<#i#>'));
     $edit->partida->readonly = TRUE;
     $edit->descrip = new inputField('Descripci&oacute;n', 'descrip_<#i#>');
     $edit->descrip->size = 30;
     $edit->descrip->db_name = 'descrip';
     $edit->descrip->rel_id = 'itccont';
     $edit->descrip->readonly = TRUE;
     $edit->unidad = new inputField('Unidad de Medida', 'unidad_<#i#>');
     $edit->unidad->size = 12;
     $edit->unidad->rel_id = 'itccont';
     $edit->unidad->db_name = 'unidad';
     $edit->cantidad = new inputField('Cantidad', 'cantidad_<#i#>');
     $edit->cantidad->size = 10;
     $edit->cantidad->db_name = 'cantidad';
     $edit->cantidad->maxlength = 7;
     $edit->cantidad->rel_id = 'itccont';
     $edit->cantidad->css_class = 'inputnum';
     $edit->cantidad->onchange = 'cal_monto(<#i#>);';
     $edit->precio = new inputField('Precio Unitario', 'precio_<#i#>');
     $edit->precio->css_class = 'inputnum';
     $edit->precio->size = 15;
     $edit->precio->rel_id = 'itccont';
     $edit->precio->db_name = 'precio';
     $edit->precio->onchange = 'cal_monto(<#i#>);';
     $edit->monto = new inputField("Importe Total Bs", "monto_<#i#>");
     $edit->monto->db_name = 'monto';
     $edit->monto->size = 15;
     $edit->monto->rel_id = 'itccont';
     $edit->monto->css_class = 'inputnum';
     $edit->monto->readonly = true;
     $edit->buttons('add_rel');
     $edit->build();
     if ($edit->on_success()) {
         $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk);
         echo json_encode($rt);
     } else {
         echo $edit->output;
     }
 }
Example #18
0
 function dataedit()
 {
     $this->rapyd->load('dataobject', 'datadetails');
     $modbus = array('tabla' => 'sinv', 'columnas' => array('codigo' => 'C&oacute;digo', 'descrip' => 'Descripci&oacute;n', 'ultimo' => 'Costo'), 'filtro' => array('codigo' => 'C&oacute;digo', 'descrip' => 'Descripci&oacute;n'), 'retornar' => array('codigo' => 'codigo_<#i#>', 'descrip' => 'itdescrip_<#i#>', 'ultimo' => 'costo_<#i#>'), 'p_uri' => array(4 => '<#i#>'), 'titulo' => 'Buscar Art&iacute;culo', 'where' => '`activo` = "S" AND tipo="Articulo"');
     $btn = $this->datasis->p_modbus($modbus, '<#i#>');
     $modbusic = array('tabla' => 'icon', 'columnas' => array('codigo' => 'C&oacute;digo', 'concepto' => 'Descripci&oacute;n', 'tipo' => 'Tipo'), 'filtro' => array('codigo' => 'C&oacute;digo', 'concepto' => 'Descripci&oacute;n'), 'retornar' => array('codigo' => 'concepto_<#i#>'), 'p_uri' => array(4 => '<#i#>'), 'titulo' => 'Buscar Art&iacute;culo', 'where' => '`tipo` = "E"');
     $btnc1 = $this->datasis->p_modbus($modbusic, '<#i#>');
     $modbusic2 = array('tabla' => 'icon', 'columnas' => array('codigo' => 'C&oacute;digo', 'concepto' => 'Descripci&oacute;n', 'tipo' => 'Tipo'), 'filtro' => array('codigo' => 'C&oacute;digo', 'concepto' => 'Descripci&oacute;n'), 'retornar' => array('codigo' => 'concepto_<#i#>'), 'p_uri' => array(4 => '<#i#>'), 'titulo' => 'Buscar Art&iacute;culo', 'where' => '`tipo` = "I"');
     $btnc2 = $this->datasis->p_modbus($modbusic2, '<#i#>', 800, 600, 'iconI');
     $do = new DataObject('ssal');
     $do->rel_one_to_many('itssal', 'itssal', 'numero');
     $do->pointer('caub', 'caub.ubica=ssal.almacen', 'ubides AS caububides', 'left');
     $do->rel_pointer('itssal', 'sinv', 'itssal.codigo=sinv.codigo', 'sinv.descrip AS sinvdescrip, sinv.base1 AS sinvprecio1, sinv.base2 AS sinvprecio2, sinv.base3 AS sinvprecio3, sinv.base4 AS sinvprecio4, sinv.iva AS sinviva, sinv.peso AS sinvpeso,sinv.tipo AS sinvtipo');
     $edit = new DataDetails('Entradas y Salidas', $do);
     //$edit->set_rel_title('itssal','Producto <#o#>');
     $edit->pre_process('insert', '_pre_insert');
     $edit->pre_process('update', '_pre_update');
     $edit->pre_process('delete', '_pre_delete');
     $edit->post_process('insert', '_post_insert');
     $edit->post_process('update', '_post_update');
     $edit->post_process('delete', '_post_delete');
     $edit->numero = new inputField('N&uacute;mero', 'numero');
     $edit->numero->size = 10;
     $edit->numero->mode = 'autohide';
     $edit->numero->maxlength = 8;
     $edit->numero->apply_rules = false;
     //necesario cuando el campo es clave y no se pide al usuario
     $edit->numero->when = array('show', 'modify');
     $edit->fecha = new DateonlyField('Fecha', 'fecha', 'd/m/Y');
     $edit->fecha->insertValue = date('Y-m-d');
     $edit->fecha->rule = 'required|chfecha|chfechafut';
     $edit->fecha->mode = 'autohide';
     $edit->fecha->readonly = true;
     $edit->fecha->calendar = false;
     $edit->fecha->size = 12;
     $edit->tipo = new dropdownField('Tipo', 'tipo');
     $edit->tipo->option('S', 'Salida');
     $edit->tipo->option('E', 'Entrada');
     $edit->tipo->onchange = 'chtipo()';
     $edit->tipo->style = 'width:80px;';
     $edit->tipo->rule = 'enum[S,E]|required';
     $edit->tipo->size = 5;
     $edit->almacen = new dropdownField('Almac&eacute;n', 'almacen');
     $edit->almacen->option('', 'Seleccionar');
     $edit->almacen->options('SELECT ubica, CONCAT(ubica, " ", ubides) descrip FROM caub WHERE invfis="N" AND gasto="N" ORDER BY ubica');
     $edit->almacen->rule = 'required|existecaub';
     $edit->almacen->style = 'width:200px;';
     $edit->depto = new dropdownField('Depto.', 'depto');
     $edit->depto->option('', 'Seleccionar');
     $edit->depto->options('SELECT depto, CONCAT(depto, " ", descrip) descrip FROM dpto WHERE tipo="G" ORDER BY depto');
     $edit->depto->rule = 'required';
     $edit->depto->style = 'width:180px;';
     $edit->cargo = new dropdownField('Cargo', 'cargo');
     $edit->cargo->option('', 'Seleccionar');
     $edit->cargo->options('SELECT codigo, CONCAT(codigo, " ", nombre) descrip FROM usol ORDER BY codigo');
     $edit->cargo->rule = 'required';
     $edit->cargo->style = 'width:180px;';
     $edit->descrip = new inputField('Descripci&oacute;n', 'descrip');
     $edit->descrip->size = 40;
     $edit->descrip->maxlength = 50;
     $edit->motivo = new inputField('Motivo', 'motivo');
     $edit->motivo->size = 40;
     $edit->motivo->maxlength = 50;
     //Para saber que precio se le va a dar al cliente
     $edit->caububides = new hiddenField('', 'caububides');
     $edit->caububides->db_name = 'caububides';
     $edit->caububides->pointer = true;
     $edit->caububides->insertValue = 1;
     //**************************
     //  Campos para el detalle
     //**************************
     $edit->codigo = new inputField('C&oacute;digo <#o#>', 'codigo_<#i#>');
     $edit->codigo->size = 12;
     $edit->codigo->db_name = 'codigo';
     $edit->codigo->rel_id = 'itssal';
     $edit->codigo->rule = 'required';
     $edit->codigo->append($btn);
     $edit->itdescrip = new inputField('Descripci&oacute;n <#o#>', 'itdescrip_<#i#>');
     $edit->itdescrip->size = 36;
     $edit->itdescrip->db_name = 'descrip';
     $edit->itdescrip->maxlength = 50;
     $edit->itdescrip->readonly = true;
     $edit->itdescrip->rel_id = 'itssal';
     $edit->cantidad = new inputField('Cantidad <#o#>', 'cantidad_<#i#>');
     $edit->cantidad->db_name = 'cantidad';
     $edit->cantidad->css_class = 'inputnum';
     $edit->cantidad->rel_id = 'itssal';
     $edit->cantidad->maxlength = 10;
     $edit->cantidad->size = 6;
     $edit->cantidad->rule = 'required|positive';
     $edit->cantidad->autocomplete = false;
     $edit->costo = new inputField('Costo <#o#>', 'costo_<#i#>');
     $edit->costo->db_name = 'costo';
     $edit->costo->css_class = 'inputnum';
     $edit->costo->rel_id = 'itssal';
     $edit->costo->size = 10;
     $edit->costo->rule = 'required|positive';
     $edit->costo->readonly = true;
     // busca concepto en icon, si tipo=E en icon=I si es tipo=S icon=E
     $edit->concepto = new inputField('Concepto <#o#>', 'concepto_<#i#>');
     $edit->concepto->db_name = 'concepto';
     $edit->concepto->rel_id = 'itssal';
     $edit->concepto->size = 10;
     $edit->concepto->rule = 'required|callback_chconcepto';
     $edit->concepto->append('<span id="mbE_<#i#>">' . $btnc1 . '</span><span id="mbI_<#i#>">' . $btnc2 . '</span>');
     $edit->usuario = new autoUpdateField('usuario', $this->secu->usuario(), $this->secu->usuario());
     //$edit->buttons('modify', 'save', 'undo', 'delete', 'back','add_rel');
     $edit->build();
     if ($edit->on_success()) {
         $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk);
         echo json_encode($rt);
     } else {
         $conten['form'] =& $edit;
         $data['content'] = $this->load->view('view_ssal', $conten, false);
     }
 }
Example #19
0
 function dataeditvehiculo($sta, $id)
 {
     $this->rapyd->load('dataobject', 'datadetails');
     //Chequea que tenga vehiculos
     $dbid = $this->db->escape($id);
     $cana = $this->datasis->dameval("SELECT COUNT(*) AS cana FROM sinvehiculo WHERE id_scst={$dbid}");
     if (empty($cana)) {
         $mSQL = "SELECT c.codigo,c.descrip,c.peso,b.cantidad AS cana\n\t\t\t\tFROM scst   AS a\n\t\t\t\tJOIN itscst AS b ON a.control=b.control\n\t\t\t\tJOIN sinv   AS c ON b.codigo=c.codigo\n\t\t\t\tWHERE c.serial='V' AND a.id={$dbid}";
         $query = $this->db->query($mSQL);
         if ($query->num_rows() > 0) {
             foreach ($query->result() as $row) {
                 for ($i = 0; $i < $row->cana; $i++) {
                     $data = array('codigo_sinv' => $row->codigo, 'modelo' => $row->descrip, 'peso' => $row->peso, 'anio' => date('Y'), 'color' => '', 'motor' => '', 'carroceria' => '', 'id_scst' => $id);
                     $sql = $this->db->insert_string('sinvehiculo', $data);
                     $this->db->simple_query($sql);
                 }
             }
         } else {
             echo 'Compra no tiene Veh&iacute;culos.';
             exit;
         }
     }
     $do = new DataObject('scst');
     $do->rel_one_to_many('sinvehiculo', 'sinvehiculo', array('id' => 'id_scst'));
     $do->pointer('sprv', 'sprv.proveed=scst.proveed', 'sprv.nombre AS sprvnombre', 'left');
     $do->order_rel_one_to_many('sinvehiculo', 'codigo_sinv');
     //$do->rel_pointer('itscst','sinv','itscst.codigo=sinv.codigo','sinv.descrip AS sinvdescrip, sinv.base1 AS sinvprecio1, sinv.base2 AS sinvprecio2, sinv.base3 AS sinvprecio3, sinv.base4 AS sinvprecio4, sinv.iva AS sinviva, sinv.peso AS sinvpeso,sinv.tipo AS sinvtipo');
     $edit = new DataDetails('Compras', $do);
     $edit->set_rel_title('itscst', 'Producto <#o#>');
     $edit->on_save_redirect = false;
     $edit->pre_process('insert', '_pre_vehi_insert');
     $edit->pre_process('update', '_pre_vehi_update');
     $edit->pre_process('delete', '_pre_vehi_delete');
     $edit->post_process('update', '_post_vehi_update');
     $edit->proveed = new inputField('Proveedor', 'proveed');
     $edit->proveed->size = 7;
     $edit->proveed->maxlength = 5;
     $edit->proveed->autocomplete = false;
     $edit->proveed->mode = 'autohide';
     $edit->proveed->rule = 'required';
     $edit->nombre = new hiddenField('Nombre', 'nombre');
     $edit->nombre->mode = 'autohide';
     $edit->nombre->size = 50;
     $edit->nombre->maxlength = 40;
     $edit->fecha = new DateonlyField('Fecha', 'fecha', 'd/m/Y');
     $edit->fecha->insertValue = date('Y-m-d');
     $edit->fecha->size = 12;
     $edit->fecha->rule = 'required';
     $edit->fecha->calendar = false;
     $edit->fecha->mode = 'autohide';
     $transac = $edit->get_from_dataobjetct('transac');
     $edit->vence = new DateonlyField('Vence', 'vence', 'd/m/Y');
     $edit->vence->insertValue = date('Y-m-d');
     $edit->vence->size = 12;
     $edit->vence->rule = 'required';
     $edit->vence->mode = 'autohide';
     $edit->vence->calendar = false;
     $edit->serie = new inputField('N&uacute;mero', 'serie');
     $edit->serie->size = 15;
     $edit->serie->autocomplete = false;
     $edit->serie->rule = 'required';
     $edit->serie->mode = 'autohide';
     $edit->serie->maxlength = 12;
     $edit->cfis = new inputField('N&uacute;mero fiscal', 'nfiscal');
     $edit->cfis->size = 15;
     $edit->cfis->autocomplete = false;
     $edit->cfis->mode = 'autohide';
     $edit->cfis->rule = 'required';
     $edit->cfis->maxlength = 12;
     $edit->almacen = new dropdownField('Almacen', 'depo');
     $edit->almacen->options('SELECT ubica, CONCAT(ubica,\' \',ubides) nombre FROM caub ORDER BY ubica');
     $edit->almacen->rule = 'required';
     $edit->almacen->mode = 'autohide';
     $edit->almacen->style = 'width:145px;';
     $alma = $this->datasis->traevalor('ALMACEN');
     if (!empty($alma)) {
         $edit->almacen->insertValue = $alma;
     }
     $edit->tipo = new dropdownField('Tipo', 'tipo_doc');
     $edit->tipo->option('FC', 'Factura a Cr&eacute;dito');
     $edit->tipo->option('NC', 'Nota de Cr&eacute;dito');
     //Falta implementar los metodos post para este caso
     //$edit->tipo->option('NE','Nota de Entrega');        //Falta implementar los metodos post para este caso
     $edit->tipo->rule = 'required';
     $edit->tipo->style = 'width:140px;';
     $edit->observa1 = new textareaField('Observaci&oacute;n', 'observa1');
     $edit->observa1->cols = 40;
     $edit->observa1->rows = 3;
     $edit->montotot = new inputField('Subtotal', 'montotot');
     $edit->montotot->onkeyup = 'cmontotot()';
     $edit->montotot->size = 12;
     $edit->montotot->autocomplete = false;
     $edit->montotot->css_class = 'inputnum';
     $edit->montoiva = new inputField('IVA', 'montoiva');
     $edit->montoiva->onkeyup = 'cmontoiva()';
     $edit->montoiva->size = 12;
     $edit->montoiva->autocomplete = false;
     $edit->montoiva->css_class = 'inputnum';
     $edit->montonet = new hiddenField('Total', 'montonet');
     //$edit->montonet->size = 20;
     //$edit->montonet->css_class='inputnum';
     $edit->idrel = new hiddenField('', 'id_<#i#>');
     $edit->idrel->rel_id = 'sinvehiculo';
     $edit->idrel->size = 10;
     $edit->idrel->db_name = 'id';
     $edit->codigo = new hiddenField('C&oacute;digo', 'codigo_<#i#>');
     $edit->codigo->rel_id = 'sinvehiculo';
     $edit->codigo->size = 10;
     $edit->codigo->db_name = 'codigo_sinv';
     $edit->codigo->autocomplete = false;
     $edit->codigo->rule = 'required|callback_chcodigoa';
     $edit->modelo = new hiddenField('Modelo', 'modelo_<#i#>');
     $edit->modelo->rel_id = 'sinvehiculo';
     $edit->modelo->size = 30;
     $edit->modelo->db_name = 'modelo';
     $edit->modelo->group = 'Datos del veh&iacute;culo';
     $edit->anio = new inputField('A&ntildeo', 'anio_<#i#>');
     $edit->anio->rel_id = 'sinvehiculo';
     $edit->anio->rule = 'exact_length[4]|numeric|required';
     $edit->anio->db_name = 'anio';
     $edit->anio->size = 5;
     $edit->anio->maxlength = 4;
     $edit->anio->insertValue = date('Y');
     $edit->anio->autocomplete = false;
     $edit->color = new inputField('Color', 'color_<#i#>');
     $edit->color->rel_id = 'sinvehiculo';
     $edit->color->db_name = 'color';
     $edit->color->rule = 'max_length[50]|strtoupper|required';
     $edit->color->size = 10;
     $edit->color->maxlength = 50;
     $edit->color->autocomplete = false;
     $edit->motor = new inputField('Serial de Motor', 'motor_<#i#>');
     $edit->motor->rel_id = 'sinvehiculo';
     $edit->motor->rule = 'max_length[50]|strtoupper|callback_chrepetidos[motor]|required';
     $edit->motor->db_name = 'motor';
     $edit->motor->size = 25;
     $edit->motor->maxlength = 50;
     $edit->motor->autocomplete = false;
     $edit->carroceria = new inputField('Serial de Carrocer&iacute;a', 'carroceria_<#i#>');
     $edit->carroceria->rel_id = 'sinvehiculo';
     $edit->carroceria->rule = 'max_length[50]|strtoupper|callback_chrepetidos[carroceria]|required';
     $edit->carroceria->db_name = 'carroceria';
     $edit->carroceria->size = 25;
     $edit->carroceria->maxlength = 50;
     $edit->carroceria->autocomplete = false;
     $edit->uso = new dropdownField('Tipo de uso', 'uso_<#i#>');
     $edit->uso->rel_id = 'sinvehiculo';
     $edit->uso->db_name = 'uso';
     $edit->uso->option('P', 'Particular');
     $edit->uso->option('T', 'Trabajo');
     $edit->uso->option('C', 'Carga');
     $edit->uso->style = 'width:150px;';
     $edit->uso->size = 6;
     $edit->uso->rule = 'required';
     $edit->tipo = new dropdownField('Tipo', 'tipo_<#i#>');
     $edit->tipo->rel_id = 'sinvehiculo';
     $edit->tipo->db_name = 'tipo';
     $edit->tipo->option('UTILITARIO', 'Utilitario');
     $edit->tipo->option('ENDURO', 'Enduro');
     $edit->tipo->option('SCOOTER', 'Scooter');
     $edit->tipo->option('MOTOCICLETA', 'Motocicleta');
     $edit->tipo->option('RACING', 'Racing');
     $edit->tipo->option('CHASIS', 'Chasis');
     $edit->tipo->option('CAVA REFRIGERADA', 'Cava Refrigerada');
     $edit->tipo->option('CAVA TERMINA', 'Cava Termina');
     $edit->tipo->option('CAVA SECA', 'Cava Seca');
     $edit->tipo->option('PLATAFORMA', 'Plataforma');
     $edit->tipo->option('PLATAFORMA GRUA', 'Plataforma Grua');
     $edit->tipo->option('PLATAFORMA BARANDA', 'Plataforma Barandas');
     $edit->tipo->option('AUTOBUS', 'Autobus');
     $edit->tipo->option('VOLTEO', 'Volteo');
     $edit->tipo->option('CUADRILLERO', 'Cuadrillero');
     $edit->tipo->option('CHUTO', 'Chuto');
     $edit->tipo->option('TANQUE', 'Tanque');
     $edit->tipo->option('JAULA GANADERA', 'Jaula Ganadera');
     $edit->tipo->option('FERRETERO', 'Ferretero');
     $edit->tipo->option('AMBULACIA', 'Ambulacia');
     $edit->tipo->style = 'width:150px;';
     $edit->tipo->size = 6;
     $edit->tipo->rule = 'required';
     $edit->clase = new dropdownField('Clase', 'clase_<#i#>');
     $edit->clase->rel_id = 'sinvehiculo';
     $edit->clase->db_name = 'clase';
     $edit->clase->option('', 'Seleccionar');
     $edit->clase->option('AUTOMOVIL', 'Automovil');
     $edit->clase->option('MOTO', 'Moto');
     $edit->clase->option('CAMIONETA', 'Camioneta');
     $edit->clase->option('CAMION', 'Camion');
     $edit->clase->style = 'width:120px;';
     $edit->clase->size = 6;
     $edit->clase->rule = 'required';
     $edit->transmision = new dropdownField('Transmisi&oacute;n', 'transmision_<#i#>');
     $edit->transmision->rel_id = 'sinvehiculo';
     $edit->transmision->db_name = 'transmision';
     $edit->transmision->option('', 'Seleccionar');
     $edit->transmision->option('AUTOMATICO', 'Automatico');
     $edit->transmision->option('MANUAL', 'Manual');
     $edit->transmision->style = 'width:120px;';
     $edit->transmision->size = 6;
     $edit->transmision->rule = 'required';
     $edit->peso = new inputField('Peso Kg.', 'peso_<#i#>');
     $edit->peso->rel_id = 'sinvehiculo';
     $edit->peso->db_name = 'peso';
     $edit->peso->rule = 'max_length[10]|numeric|required';
     $edit->peso->css_class = 'inputnum';
     $edit->peso->size = 12;
     $edit->peso->maxlength = 12;
     $edit->placa = new inputField('Placa', 'placa_<#i#>');
     $edit->placa->rel_id = 'sinvehiculo';
     $edit->placa->db_name = 'placa';
     $edit->placa->rule = 'max_length[50]|strtoupper|callback_chrepetidos[placa]';
     $edit->placa->size = 12;
     $edit->placa->maxlength = 50;
     $edit->placa->autocomplete = false;
     $mSQL = "SELECT a.costo FROM itscst AS a JOIN scst   AS b ON a.control=b.control WHERE codigo='PLACA' AND b.id={$dbid} GROUP BY a.costo";
     $qquery = $this->db->query($mSQL);
     $edit->precioplaca = new dropdownField('Precio placa.', 'precioplaca_<#i#>');
     $edit->precioplaca->rel_id = 'sinvehiculo';
     $edit->precioplaca->db_name = 'precioplaca';
     $edit->precioplaca->rule = 'max_length[10]|numeric|required';
     $edit->precioplaca->style = 'width:100px;';
     if ($qquery->num_rows() > 1) {
         $edit->precioplaca->option('', 'Seleccionar');
     }
     foreach ($qquery->result() as $rrow) {
         $edit->precioplaca->option($rrow->costo, nformat($rrow->costo));
     }
     $edit->id_sfac = new hiddenField('', 'id_sfac_<#i#>');
     $edit->id_sfac->rel_id = 'sinvehiculo';
     $edit->id_sfac->db_name = 'id_sfac';
     $recep = strtotime($edit->get_from_dataobjetct('recep'));
     $fecha = strtotime($edit->get_from_dataobjetct('fecha'));
     $actuali = strtotime($edit->get_from_dataobjetct('actuali'));
     if ($actuali >= $fecha) {
         $edit->carroceria->type = 'inputhidden';
         $edit->motor->type = 'inputhidden';
     }
     $edit->build();
     if ($edit->on_success()) {
         $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk);
         echo json_encode($rt);
     } else {
         $conten['form'] =& $edit;
         $this->load->view('view_seriales_vehi', $conten);
     }
 }
Example #20
0
    function dataedit()
    {
        $this->rapyd->load('dataobject', 'datadetails');
        $script = '
		$(function() {
			$("#fecha").datepicker({dateFormat:"dd/mm/yy"});
			$(".inputnum").numeric(".");
		});
		';
        $do = new DataObject('sinvaudit');
        $do->rel_one_to_many('itsinvaudit', 'itsinvaudit', 'numero');
        $edit = new DataDetails($this->t**s, $do);
        $edit->script($script, 'modify');
        $edit->script($script, 'create');
        $edit->on_save_redirect = false;
        $edit->back_url = site_url($this->url . 'filteredgrid');
        $edit->post_process('insert', '_post_insert');
        $edit->post_process('update', '_post_update');
        $edit->post_process('delete', '_post_delete');
        $edit->pre_process('insert', '_pre_insert');
        $edit->pre_process('update', '_pre_update');
        $edit->pre_process('delete', '_pre_delete');
        $edit->id_sinv = new inputField('Id_sinv', 'id_sinv');
        $edit->id_sinv->rule = 'integer';
        $edit->id_sinv->css_class = 'inputonlynum';
        $edit->id_sinv->size = 13;
        $edit->id_sinv->maxlength = 11;
        $edit->status = new inputField('Status', 'status');
        $edit->status->rule = '';
        $edit->status->size = 3;
        $edit->status->maxlength = 1;
        $edit->codigo = new inputField('Codigo', 'codigo');
        $edit->codigo->rule = '';
        $edit->codigo->size = 17;
        $edit->codigo->maxlength = 15;
        $edit->corte = new dateonlyField('Corte', 'corte');
        $edit->corte->rule = 'chfecha';
        $edit->corte->calendar = false;
        $edit->corte->size = 10;
        $edit->corte->maxlength = 8;
        $edit->existen = new inputField('Existen', 'existen');
        $edit->existen->rule = 'numeric';
        $edit->existen->css_class = 'inputnum';
        $edit->existen->size = 12;
        $edit->existen->maxlength = 10;
        $edit->estampa = new autoUpdateField('estampa', date('Ymd'), date('Ymd'));
        $edit->usuario = new autoUpdateField('usuario', $this->session->userdata('usuario'), $this->session->userdata('usuario'));
        //******************************************************************
        // Detalle
        $edit->id_sinvaudit = new inputField('Id_sinvaudit', 'id_sinvaudit_<#i#>');
        $edit->id_sinvaudit->rule = 'integer';
        $edit->id_sinvaudit->css_class = 'inputonlynum';
        $edit->id_sinvaudit->size = 13;
        $edit->id_sinvaudit->maxlength = 11;
        $edit->id_sinvaudit->rel_id = 'itsinvaudit';
        $edit->almacen = new inputField('Almacen', 'almacen_<#i#>');
        $edit->almacen->rule = '';
        $edit->almacen->size = 52;
        $edit->almacen->maxlength = 50;
        $edit->almacen->rel_id = 'itsinvaudit';
        $edit->existen = new inputField('Existen', 'existen_<#i#>');
        $edit->existen->rule = 'numeric';
        $edit->existen->css_class = 'inputnum';
        $edit->existen->size = 15;
        $edit->existen->maxlength = 13;
        $edit->existen->rel_id = 'itsinvaudit';
        $edit->despacho = new inputField('Despacho', 'despacho_<#i#>');
        $edit->despacho->rule = 'numeric';
        $edit->despacho->css_class = 'inputnum';
        $edit->despacho->size = 15;
        $edit->despacho->maxlength = 13;
        $edit->despacho->rel_id = 'itsinvaudit';
        $edit->reparto = new inputField('Reparto', 'reparto_<#i#>');
        $edit->reparto->rule = 'numeric';
        $edit->reparto->css_class = 'inputnum';
        $edit->reparto->size = 15;
        $edit->reparto->maxlength = 13;
        $edit->reparto->rel_id = 'itsinvaudit';
        $edit->pendiente = new inputField('Pendiente', 'pendiente_<#i#>');
        $edit->pendiente->rule = 'numeric';
        $edit->pendiente->css_class = 'inputnum';
        $edit->pendiente->size = 15;
        $edit->pendiente->maxlength = 13;
        $edit->pendiente->rel_id = 'itsinvaudit';
        $edit->contado = new inputField('Contado', 'contado_<#i#>');
        $edit->contado->rule = 'numeric';
        $edit->contado->css_class = 'inputnum';
        $edit->contado->size = 15;
        $edit->contado->maxlength = 13;
        $edit->contado->rel_id = 'itsinvaudit';
        //******************************************************************
        $edit->buttons('add_rel');
        $edit->build();
        if ($edit->on_success()) {
            $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk);
            echo json_encode($rt);
        } else {
            $conten['form'] =& $edit;
            $this->load->view('view_sinvaudit', $conten);
        }
    }
Example #21
0
    function dataedit()
    {
        $this->rapyd->load('dataobject', 'datadetails');
        $script = '
		$(function() {
			$("#fecha").datepicker({dateFormat:"dd/mm/yy"});
			$("#vence").datepicker({dateFormat:"dd/mm/yy"});
			$(".inputnum").numeric(".");
		});
		';
        $do = new DataObject('edrec');
        $do->rel_one_to_many('editrec', 'editrec', 'numero');
        //$do->rel_one_to_many('itpfac', 'itpfac', array('numero' => 'numa'));
        $edit = new DataDetails($this->t**s, $do);
        $edit->script($script, 'modify');
        $edit->script($script, 'create');
        $edit->on_save_redirect = false;
        //$edit->back_url = site_url($this->url.'filteredgrid');
        $edit->post_process('insert', '_post_insert');
        $edit->post_process('update', '_post_update');
        $edit->post_process('delete', '_post_delete');
        $edit->pre_process('insert', '_pre_insert');
        $edit->pre_process('update', '_pre_update');
        $edit->pre_process('delete', '_pre_delete');
        $edit->numero = new inputField('Numero', 'numero');
        $edit->numero->rule = '';
        $edit->numero->size = 10;
        $edit->numero->maxlength = 8;
        $edit->fecha = new dateonlyField('Fecha', 'fecha');
        $edit->fecha->rule = 'chfecha';
        $edit->fecha->calendar = false;
        $edit->fecha->size = 10;
        $edit->fecha->maxlength = 8;
        $edit->fecha->insertValue = date('Y-m-d');
        $edit->vence = new dateonlyField('Vence', 'vence');
        $edit->vence->rule = 'chfecha';
        $edit->vence->calendar = false;
        $edit->vence->size = 10;
        $edit->vence->maxlength = 8;
        $edit->vence->insertValue = date('Y-m-d');
        $edit->cod_cli = new inputField('Cliente', 'cod_cli');
        $edit->cod_cli->rule = '';
        $edit->cod_cli->size = 7;
        $edit->cod_cli->maxlength = 5;
        $edit->inmueble = new dropdownField('Inmueble', 'inmueble');
        $edit->inmueble->style = 'width:550px;';
        $edit->inmueble->options('SELECT a.codigo, CONCAT(a.codigo," ", a.descripcion, " ", b.nombre) descrip FROM edinmue a JOIN scli b ON a.ocupante=b.cliente ORDER BY a.codigo ');
        $edit->total = new inputField('Total', 'total');
        $edit->total->rule = 'numeric';
        $edit->total->css_class = 'inputnum';
        $edit->total->size = 14;
        $edit->total->maxlength = 12;
        $edit->alicuota = new inputField('Alicuota', 'alicuota');
        $edit->alicuota->rule = 'numeric';
        $edit->alicuota->css_class = 'inputnum';
        $edit->alicuota->size = 14;
        $edit->alicuota->maxlength = 12;
        $edit->cuota = new inputField('Cuota', 'cuota');
        $edit->cuota->rule = 'numeric';
        $edit->cuota->css_class = 'inputnum';
        $edit->cuota->size = 14;
        $edit->cuota->maxlength = 17;
        $edit->status = new dropdownField('Status', 'status');
        $edit->status->style = 'width:100px;';
        $edit->status->option('P', 'Pendiente');
        $edit->status->option('F', 'Facturado');
        $edit->observa = new textareaField('Observacion', 'observa');
        $edit->observa->rule = '';
        $edit->observa->cols = 40;
        $edit->observa->rows = 2;
        $edit->usuario = new autoUpdateField('usuario', $this->session->userdata('usuario'), $this->session->userdata('usuario'));
        $edit->estampa = new autoUpdateField('estampa', date('Ymd'), date('Ymd'));
        $edit->hora = new autoUpdateField('hora', date('H:i:s'), date('H:i:s'));
        //**************************************************************
        // Detalle
        $edit->tipo = new dropdownField('Tipo', 'tipo_<#i#>');
        $edit->tipo->style = 'width:120px;';
        $edit->tipo->options('SELECT depto, CONCAT(depto," ", descrip) descrip FROM dpto WHERE tipo="G" AND depto <> "GP" UNION ALL SELECT codbanc, CONCAT(codbanc," ",banco) banco FROM banc WHERE tbanco="FO" AND activo="S"');
        $edit->tipo->db_name = 'tipo';
        $edit->tipo->rel_id = 'editrec';
        $edit->codigo = new inputField('Codigo', 'codigo_<#i#>');
        $edit->codigo->size = 7;
        $edit->codigo->rule = 'required';
        $edit->codigo->db_name = 'codigo';
        $edit->codigo->rel_id = 'editrec';
        $edit->detalle = new inputField('Detalle', 'detalle_<#i#>');
        $edit->detalle->rule = '';
        $edit->detalle->size = 35;
        $edit->detalle->maxlength = 200;
        $edit->detalle->db_name = 'detalle';
        $edit->detalle->rel_id = 'editrec';
        $edit->totald = new inputField('Total', 'total_<#i#>');
        $edit->totald->rule = 'numeric';
        $edit->totald->css_class = 'inputnum';
        $edit->totald->size = 12;
        $edit->totald->maxlength = 12;
        $edit->totald->db_name = 'total';
        $edit->totald->rel_id = 'editrec';
        $edit->totald->onkeyup = 'cuotatot(<#i#>)';
        $edit->alicuotad = new inputField('Alicuota', 'alicuota_<#i#>');
        $edit->alicuotad->rule = 'numeric';
        $edit->alicuotad->css_class = 'inputnum';
        $edit->alicuotad->size = 12;
        $edit->alicuotad->insertValue = 1;
        $edit->alicuotad->maxlength = 12;
        $edit->alicuotad->db_name = 'alicuota';
        $edit->alicuotad->rel_id = 'editrec';
        $edit->alicuotad->onkeyup = 'cuotatot(<#i#>)';
        $edit->cuotad = new inputField('Cuota', 'cuota_<#i#>');
        $edit->cuotad->rule = 'numeric';
        $edit->cuotad->css_class = 'inputnum';
        $edit->cuotad->size = 10;
        $edit->cuotad->maxlength = 12;
        $edit->cuotad->db_name = 'cuota';
        $edit->cuotad->rel_id = 'editrec';
        //**************************************************************
        $edit->buttons('add_rel');
        $edit->build();
        if ($edit->on_success()) {
            $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk);
            echo json_encode($rt);
        } else {
            $conten['form'] =& $edit;
            $this->load->view('view_edrec', $conten);
        }
    }
Example #22
0
 function dataedit($opttipo)
 {
     $opt_key = array_search($opttipo, array('C', 'P'));
     if ($opt_key === false) {
         show_404('');
     }
     $this->rapyd->load('dataobject', 'datadetails');
     $modbus = array('tabla' => 'sinv', 'columnas' => array('codigo' => 'C&oacute;digo', 'descrip' => 'Descripci&oacute;n', 'precio1' => 'Precio 1', 'precio2' => 'Precio 2', 'precio3' => 'Precio 3', 'existen' => 'Existencia'), 'filtro' => array('codigo' => 'C&oacute;digo', 'descrip' => 'Descripci&oacute;n'), 'p_uri' => array(4 => '<#i#>'), 'where' => '`activo` = "S" AND `tipo` = "Articulo"', 'script' => array('post_modbus_sinv(<#i#>)'), 'titulo' => 'Buscar Art&iacute;culo');
     if ($opttipo == 'C') {
         $mCLIPRO = array('tabla' => 'scli', 'columnas' => array('cliente' => 'C&oacute;digo Cliente', 'nombre' => 'Nombre', 'cirepre' => 'Rif/Cedula', 'dire11' => 'Direcci&oacute;n', 'tipo' => 'Tipo'), 'filtro' => array('cliente' => 'C&oacute;digo Cliente', 'nombre' => 'Nombre'), 'retornar' => array('cliente' => 'clipro', 'nombre' => 'nombre', 'dire11' => 'direc1', 'tipo' => 'cliprotipo'), 'titulo' => 'Buscar Cliente', 'script' => array('post_modbus_scli()'));
         $modbus['retornar'] = array('codigo' => 'codigo_<#i#>', 'descrip' => 'desca_<#i#>', 'base1' => 'precio1_<#i#>', 'base2' => 'precio2_<#i#>', 'base3' => 'precio3_<#i#>', 'base4' => 'precio4_<#i#>', 'iva' => 'itiva_<#i#>', 'peso' => 'sinvpeso_<#i#>', 'tipo' => 'sinvtipo_<#i#>');
     } else {
         $mCLIPRO = array('tabla' => 'sprv', 'columnas' => array('proveed' => 'C&oacute;digo Proveedor', 'nombre' => 'Nombre', 'direc1' => 'Direcci&oacute;n', 'rif' => 'RIF'), 'filtro' => array('proveed' => 'C&oacute;digo Proveedor', 'nombre' => 'Nombre'), 'retornar' => array('proveed' => 'clipro', 'nombre' => 'nombre', 'direc1' => 'direc1'), 'titulo' => 'Buscar Proveedor');
         $modbus['retornar'] = array('codigo' => 'codigo_<#i#>', 'descrip' => 'desca_<#i#>', 'base1' => 'precio1_<#i#>', 'base2' => 'precio2_<#i#>', 'base3' => 'precio3_<#i#>', 'base4' => 'precio4_<#i#>', 'iva' => 'itiva_<#i#>', 'peso' => 'sinvpeso_<#i#>', 'tipo' => 'sinvtipo_<#i#>');
     }
     $btnc = $this->datasis->modbus($mCLIPRO);
     $btn = $this->datasis->p_modbus($modbus, '<#i#>');
     $do = new DataObject('scon');
     $do->rel_one_to_many('itscon', 'itscon', array('id' => 'id_scon'));
     if ($opttipo == 'C') {
         $do->pointer('scli', 'scli.cliente=scon.clipro', 'scli.tipo AS cliprotipo', 'left');
         $do->rel_pointer('itscon', 'sinv', 'itscon.codigo=sinv.codigo', 'sinv.descrip AS sinvdescrip, sinv.base1 AS sinvprecio1, sinv.base2 AS sinvprecio2, sinv.base3 AS sinvprecio3, sinv.base4 AS sinvprecio4, sinv.iva AS sinviva, sinv.peso AS sinvpeso,sinv.tipo AS sinvtipo');
     } else {
         //$do->pointer('sprv' ,'sprv.proveed=psinv.clipro','"1" AS `cliprotipo`','left');
         $do->rel_pointer('itscon', 'sinv', 'itscon.codigo=sinv.codigo', 'sinv.descrip AS sinvdescrip, sinv.ultimo AS sinvprecio1, sinv.ultimo AS sinvprecio2, sinv.ultimo AS sinvprecio3, sinv.ultimo AS sinvprecio4, sinv.iva AS sinviva, sinv.peso AS sinvpeso,sinv.tipo AS sinvtipo');
     }
     $edit = new DataDetails('Inventario a consignaci&oacute;n', $do);
     $edit->on_save_redirect = false;
     $edit->set_rel_title('itscon', 'Producto <#o#>');
     $edit->pre_process('insert', '_pre_insert');
     $edit->pre_process('update', '_pre_update');
     $edit->pre_process('delete', '_pre_delete');
     $edit->post_process('insert', '_post_insert');
     $edit->fecha = new DateonlyField('Fecha', 'fecha', 'd/m/Y');
     $edit->fecha->insertValue = date('Y-m-d');
     $edit->fecha->rule = 'required';
     $edit->fecha->mode = 'autohide';
     $edit->fecha->size = 12;
     $edit->fecha->calendar = false;
     $edit->tipod = new dropdownField('Tipo de movimiento', 'tipod');
     $edit->tipod->option('E', 'Entregado');
     $edit->tipod->option('R', 'Recibido');
     $edit->tipod->rule = 'required';
     $edit->tipod->insertValue = $opttipo == 'C' ? 'E' : 'R';
     $edit->tipod->style = 'width:120px';
     $edit->numero = new inputField('N&uacute;mero', 'numero');
     $edit->numero->size = 12;
     $edit->numero->mode = 'autohide';
     $edit->numero->maxlength = 8;
     //$edit->numero->apply_rules=false; //necesario cuando el campo es clave y no se pide al usuario
     $edit->numero->when = array('show', 'modify');
     $edit->peso = new inputField('Peso', 'peso');
     $edit->peso->css_class = 'inputnum';
     $edit->peso->readonly = true;
     $edit->peso->size = 10;
     $edit->peso->type = 'inputhidden';
     $edit->clipro = new inputField($opttipo == 'C' ? 'Cliente' : 'Proveedor', 'clipro');
     $edit->clipro->size = 6;
     $edit->clipro->maxlength = 5;
     $edit->clipro->rule = 'required';
     $edit->clipro->append($btnc);
     $edit->nombre = new inputField('Nombre', 'nombre');
     $edit->nombre->size = 25;
     $edit->nombre->maxlength = 40;
     $edit->nombre->type = 'inputhidden';
     $edit->nombre->autocomplete = false;
     $edit->dir_clipro = new inputField('Direcci&oacute;n', 'direc1');
     $edit->dir_clipro->size = 37;
     $edit->dir_clipro->type = 'inputhidden';
     $edit->asociado = new inputField('Doc. Asociado', 'asociado');
     $edit->asociado->mode = 'autohide';
     $edit->asociado->size = 10;
     $edit->almacen = new dropdownField('Almac&eacute;n', 'almacen');
     $edit->almacen->options('SELECT ubica, CONCAT(ubica,\' \',ubides) nombre FROM caub ORDER BY ubica');
     $edit->almacen->rule = 'required';
     $edit->almacen->style = 'width:200px;';
     $edit->almacen->size = 5;
     $edit->observ1 = new inputField('Observaci&oacute;n', 'observ1');
     $edit->observ1->size = 37;
     //Para saber que precio se le va a dar al cliente
     $edit->cliprotipo = new hiddenField('', 'cliprotipo');
     $edit->cliprotipo->db_name = 'cliprotipo';
     $edit->cliprotipo->pointer = true;
     $edit->cliprotipo->insertValue = 1;
     //Campos para el detalle
     $edit->codigo = new inputField('C&oacute;digo <#o#>', 'codigo_<#i#>');
     $edit->codigo->size = 12;
     $edit->codigo->db_name = 'codigo';
     $edit->codigo->onkeyup = 'OnEnter(event,<#i#>)';
     $edit->codigo->autocomplete = false;
     $edit->codigo->rel_id = 'itscon';
     $edit->codigo->rule = 'required';
     $edit->codigo->append($btn);
     $edit->desca = new inputField('Descripci&oacute;n <#o#>', 'desca_<#i#>');
     $edit->desca->size = 34;
     $edit->desca->db_name = 'desca';
     $edit->desca->maxlength = 50;
     $edit->desca->readonly = true;
     $edit->desca->rel_id = 'itscon';
     $edit->cana = new inputField('Cantidad <#o#>', 'cana_<#i#>');
     $edit->cana->db_name = 'cana';
     $edit->cana->css_class = 'inputnum';
     $edit->cana->rel_id = 'itscon';
     $edit->cana->maxlength = 10;
     $edit->cana->size = 6;
     $edit->cana->rule = 'required|positive';
     $edit->cana->autocomplete = false;
     $edit->cana->onkeyup = 'importe(<#i#>)';
     $edit->precio = new inputField('Precio <#o#>', 'precio_<#i#>');
     $edit->precio->db_name = 'precio';
     $edit->precio->css_class = 'inputnum';
     $edit->precio->rel_id = 'itscon';
     $edit->precio->size = 10;
     if ($opttipo == 'C') {
         $edit->precio->rule = 'required|positive|callback_chpreca[<#i#>]';
     } else {
         $edit->precio->rule = 'required|positive';
     }
     $edit->precio->readonly = true;
     $edit->importe = new inputField('Importe <#o#>', 'importe_<#i#>');
     $edit->importe->db_name = 'importe';
     $edit->importe->size = 10;
     $edit->importe->css_class = 'inputnum';
     $edit->importe->rel_id = 'itscon';
     for ($i = 1; $i <= 4; $i++) {
         $obj = 'precio' . $i;
         $edit->{$obj} = new hiddenField('Precio <#o#>', $obj . '_<#i#>');
         $edit->{$obj}->db_name = 'sinv' . $obj;
         $edit->{$obj}->rel_id = 'itscon';
         $edit->{$obj}->pointer = true;
     }
     $edit->itiva = new hiddenField('', 'itiva_<#i#>');
     $edit->itiva->db_name = 'iva';
     $edit->itiva->rel_id = 'itscon';
     $edit->sinvpeso = new hiddenField('', 'sinvpeso_<#i#>');
     $edit->sinvpeso->db_name = 'sinvpeso';
     $edit->sinvpeso->rel_id = 'itscon';
     $edit->sinvpeso->pointer = true;
     $edit->sinvtipo = new hiddenField('', 'sinvtipo_<#i#>');
     $edit->sinvtipo->db_name = 'sinvtipo';
     $edit->sinvtipo->rel_id = 'itscon';
     $edit->sinvtipo->pointer = true;
     //fin de campos para detalle
     $edit->impuesto = new inputField('Impuesto', 'impuesto');
     $edit->impuesto->size = 20;
     $edit->impuesto->css_class = 'inputnum';
     $edit->impuesto->type = 'inputhidden';
     $edit->stotal = new inputField('Sub.Total', 'stotal');
     $edit->stotal->size = 20;
     $edit->stotal->css_class = 'inputnum';
     $edit->stotal->type = 'inputhidden';
     $edit->gtotal = new inputField('Total', 'gtotal');
     $edit->gtotal->size = 20;
     $edit->gtotal->css_class = 'inputnum';
     $edit->gtotal->type = 'inputhidden';
     $edit->tipo = new autoUpdateField('tipo', $opttipo, $opttipo);
     //$edit->buttons('save', 'undo', 'back','add_rel');
     $edit->build();
     $inven = array();
     if ($opttipo == 'C') {
         $titulo = 'Consignaci&oacute;n a Cliente';
         //$query=$this->db->query('SELECT TRIM(codigo) AS codigo ,TRIM(descrip) AS descrip,tipo,base1,base2,base3,base4,iva,peso,precio1,pond FROM sinv WHERE activo=\'S\'');
         $edit->tipo = new autoUpdateField('tipo', 'C', 'C');
     } else {
         $titulo = 'Consignaci&oacute;n a Proveedor';
         //$query=$this->db->query('SELECT TRIM(codigo) AS codigo ,TRIM(descrip) AS descrip,tipo,ultimo AS base1,ultimo AS base2,ultimo AS base3,ultimo AS base4,iva,peso,precio1,pond FROM sinv WHERE activo=\'S\'');
         $edit->tipo = new autoUpdateField('tipo', 'R', 'R');
     }
     if ($edit->on_success()) {
         $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk);
         echo json_encode($rt);
     } else {
         $conten['opttipo'] = $opttipo;
         $conten['form'] =& $edit;
         $this->load->view('view_scon', $conten);
     }
 }
Example #23
0
    function dataedit()
    {
        $this->rapyd->load('dataobject', 'datadetails');
        $modbus = array('tabla' => 'sinv', 'columnas' => array('codigo' => 'C&oacute;digo', 'descrip' => 'Descripci&oacute;n', 'precio1' => 'Precio 1', 'precio2' => 'Precio 2', 'precio3' => 'Precio 3', 'existen' => 'Existencia'), 'filtro' => array('codigo' => 'C&oacute;digo', 'descrip' => 'Descripci&oacute;n'), 'retornar' => array('codigo' => 'codigoa_<#i#>', 'descrip' => 'desca_<#i#>'), 'p_uri' => array(4 => '<#i#>'), 'titulo' => 'Buscar Art&iacute;culo', 'where' => '`activo` = "S"');
        $btn = $this->datasis->p_modbus($modbus, '<#i#>');
        $mSCLId = array('tabla' => 'scli', 'columnas' => array('cliente' => 'C&oacute;digo Cliente', 'nombre' => 'Nombre', 'cirepre' => 'Rif/Cedula', 'dire11' => 'Direcci&oacute;n', 'tipo' => 'Tipo'), 'filtro' => array('cliente' => 'C&oacute;digo Cliente', 'nombre' => 'Nombre'), 'retornar' => array('cliente' => 'cod_cli', 'nombre' => 'nombre', 'rifci' => 'rifci', 'dire11' => 'direc', 'tipo' => 'sclitipo'), 'titulo' => 'Buscar Cliente');
        $boton = $this->datasis->modbus($mSCLId);
        $do = new DataObject('sfac');
        $do->rel_one_to_many('sitems', 'sitems', array('id' => 'id_sfac'));
        $do->rel_one_to_many('sfpa', 'sfpa', array('numero', 'transac'));
        $do->pointer('scli', 'scli.cliente=sfac.cod_cli', 'scli.tipo AS sclitipo', 'left');
        $do->rel_pointer('sitems', 'sinv', 'sitems.codigoa=sinv.codigo', 'sinv.descrip AS sinvdescrip, sinv.base1 AS sinvprecio1, sinv.base2 AS sinvprecio2, sinv.base3 AS sinvprecio3, sinv.base4 AS sinvprecio4, sinv.iva AS sinviva, sinv.peso AS sinvpeso,sinv.tipo AS sinvtipo');
        $edit = new DataDetails('Facturas', $do);
        $edit->back_url = !empty($this->back_url) ? $this->back_url : site_url('ventas/sfac/index');
        $edit->set_rel_title('sitems', 'Producto <#o#>');
        $edit->set_rel_title('sfpa', 'Forma de pago <#o#>');
        $edit->pre_process('insert', '_pre_insert');
        $edit->pre_process('update', '_pre_update');
        $edit->pre_process('delete', '_pre_delete');
        $edit->post_process('insert', '_post_insert');
        $edit->post_process('update', '_post_update');
        $edit->post_process('delete', '_post_delete');
        $edit->sclitipo = new hiddenField('', 'sclitipo');
        $edit->sclitipo->db_name = 'sclitipo';
        $edit->sclitipo->pointer = true;
        $edit->sclitipo->insertValue = 1;
        $edit->fecha = new DateonlyField('Fecha', 'fecha', 'd/m/Y');
        $edit->fecha->insertValue = date('Y-m-d');
        $edit->fecha->rule = 'required';
        $edit->fecha->mode = 'autohide';
        $edit->fecha->size = 10;
        $edit->tipo_doc = new dropdownField('Documento', 'tipo_doc');
        $edit->tipo_doc->option('F', 'Factura');
        $edit->tipo_doc->option('D', 'Devoluci&oacute;n');
        $edit->tipo_doc->style = 'width:120px;';
        $edit->tipo_doc->size = 5;
        $edit->tipo_doc->rule = 'required';
        $edit->vd = new dropdownField('Vendedor', 'vd');
        $edit->vd->options('SELECT vendedor, CONCAT(vendedor,\' \',nombre) nombre FROM vend ORDER BY vendedor');
        $edit->vd->style = 'width:120px;';
        $edit->vd->insertValue = $this->secu->getvendedor();
        $edit->almacen = new dropdownField('Almac&eacute;n', 'almacen');
        $edit->almacen->options('SELECT ubica,ubides FROM caub WHERE gasto="N" ORDER BY ubides');
        $edit->almacen->rule = 'required';
        $alma = $this->secu->getalmacen();
        if (strlen($alma) <= 0) {
            $alma = $this->datasis->traevalor('ALMACEN');
        }
        $edit->almacen->insertValue = $alma;
        $edit->almacen->style = 'width:120px;';
        $edit->numero = new inputField('N&uacute;mero', 'numero');
        $edit->numero->size = 10;
        $edit->numero->mode = 'autohide';
        $edit->numero->maxlength = 8;
        $edit->numero->apply_rules = false;
        //necesario cuando el campo es clave y no se pide al usuario
        $edit->numero->when = array('show', 'modify');
        $edit->factura = new inputField('Factura', 'factura');
        $edit->factura->size = 10;
        $edit->factura->mode = 'autohide';
        $edit->factura->maxlength = 8;
        $edit->factura->rule = 'condi_required|callback_chfactura';
        $edit->peso = new inputField('Peso', 'peso');
        $edit->peso->css_class = 'inputnum';
        $edit->peso->readonly = true;
        $edit->peso->size = 10;
        $edit->cliente = new inputField('Cliente', 'cod_cli');
        $edit->cliente->size = 6;
        $edit->cliente->autocomplete = false;
        $edit->cliente->rule = 'required|existescli';
        //$edit->cliente->append($boton);
        $edit->nombre = new hiddenField('Nombre', 'nombre');
        $edit->nombre->size = 25;
        $edit->nombre->maxlength = 40;
        $edit->nombre->readonly = true;
        $edit->nombre->autocomplete = false;
        $edit->nombre->rule = 'required';
        $edit->upago = new hiddenField('Ultimo pago de servicio', 'upago');
        $edit->upago->readonly = true;
        $edit->upago->autocomplete = false;
        $edit->rifci = new hiddenField('RIF/CI', 'rifci');
        $edit->rifci->autocomplete = false;
        $edit->rifci->readonly = true;
        $edit->rifci->size = 15;
        $edit->direc = new hiddenField('Direcci&oacute;n', 'direc');
        $edit->direc->readonly = true;
        $edit->direc->size = 40;
        $edit->cajero = new dropdownField('Cajero', 'cajero');
        $edit->cajero->options('SELECT cajero,nombre FROM scaj ORDER BY nombre');
        $edit->cajero->rule = 'required|cajerostatus';
        $edit->cajero->style = 'width:120px;';
        $edit->cajero->insertValue = $this->secu->getcajero();
        $edit->descuento = new hiddenField('Desc.', 'descuento');
        $edit->descuento->insertValue = '0';
        //***********************************
        //  Campos para el detalle 1 sitems
        //***********************************
        $edit->codigoa = new inputField('C&oacute;digo <#o#>', 'codigoa_<#i#>');
        $edit->codigoa->size = 12;
        $edit->codigoa->db_name = 'codigoa';
        $edit->codigoa->rel_id = 'sitems';
        $edit->codigoa->rule = 'required';
        $edit->desca = new inputField('Descripci&oacute;n <#o#>', 'desca_<#i#>');
        $edit->desca->size = 36;
        $edit->desca->db_name = 'desca';
        $edit->desca->maxlength = 50;
        $edit->desca->readonly = true;
        $edit->desca->rel_id = 'sitems';
        $edit->cana = new inputField('Cantidad <#o#>', 'cana_<#i#>');
        $edit->cana->db_name = 'cana';
        $edit->cana->css_class = 'inputnum';
        $edit->cana->rel_id = 'sitems';
        $edit->cana->maxlength = 10;
        $edit->cana->size = 6;
        $edit->cana->rule = 'required|positive|callback_chcanadev[<#i#>]';
        $edit->cana->autocomplete = false;
        $edit->cana->onkeyup = 'importe(<#i#>)';
        $edit->cana->showformat = 'decimal';
        $edit->cana->disable_paste = true;
        $edit->preca = new inputField('Precio <#o#>', 'preca_<#i#>');
        $edit->preca->db_name = 'preca';
        $edit->preca->css_class = 'inputnum';
        $edit->preca->rel_id = 'sitems';
        $edit->preca->size = 10;
        $edit->preca->rule = 'required|positive|callback_chpreca[<#i#>]';
        $edit->preca->readonly = true;
        $edit->preca->showformat = 'decimal';
        $edit->detalle = new hiddenField('', 'detalle_<#i#>');
        $edit->detalle->db_name = 'detalle';
        $edit->detalle->rel_id = 'sitems';
        $edit->tota = new inputField('Importe <#o#>', 'tota_<#i#>');
        $edit->tota->db_name = 'tota';
        $edit->tota->type = 'inputhidden';
        $edit->tota->size = 10;
        $edit->tota->css_class = 'inputnum';
        $edit->tota->rel_id = 'sitems';
        $edit->tota->showformat = 'decimal';
        for ($i = 1; $i < 4; $i++) {
            $obj = 'precio' . $i;
            $edit->{$obj} = new hiddenField('Precio <#o#>', $obj . '_<#i#>');
            $edit->{$obj}->db_name = 'sinv' . $obj;
            $edit->{$obj}->rel_id = 'sitems';
            $edit->{$obj}->pointer = true;
        }
        $edit->precio4 = new hiddenField('', 'precio4_<#i#>');
        $edit->precio4->db_name = 'precio4';
        $edit->precio4->rel_id = 'sitems';
        $edit->combo = new hiddenField('', 'combo_<#i#>');
        $edit->combo->db_name = 'combo';
        $edit->combo->rel_id = 'sitems';
        $edit->itiva = new hiddenField('', 'itiva_<#i#>');
        $edit->itiva->db_name = 'iva';
        $edit->itiva->rel_id = 'sitems';
        $edit->sinvpeso = new hiddenField('', 'sinvpeso_<#i#>');
        $edit->sinvpeso->db_name = 'sinvpeso';
        $edit->sinvpeso->rel_id = 'sitems';
        $edit->sinvpeso->pointer = true;
        $edit->sinvtipo = new hiddenField('', 'sinvtipo_<#i#>');
        $edit->sinvtipo->db_name = 'sinvtipo';
        $edit->sinvtipo->rel_id = 'sitems';
        $edit->sinvtipo->pointer = true;
        //************************************************
        //fin de campos para detalle,inicio detalle2 sfpa
        //************************************************
        $edit->tipo = new dropdownField('Tipo <#o#>', 'tipo_<#i#>');
        $edit->tipo->option('', 'CREDITO');
        $edit->tipo->options('SELECT tipo, nombre FROM tarjeta WHERE activo=\'S\' ORDER BY nombre');
        $edit->tipo->db_name = 'tipo';
        $edit->tipo->rel_id = 'sfpa';
        $edit->tipo->insertValue = 'EF';
        $edit->tipo->style = 'width:150px;';
        $edit->tipo->onchange = 'sfpatipo(<#i#>)';
        //$edit->tipo->rule     = 'required';
        $edit->sfpafecha = new dateonlyField('Fecha', 'sfpafecha_<#i#>');
        $edit->sfpafecha->rel_id = 'sfpa';
        $edit->sfpafecha->db_name = 'fecha';
        $edit->sfpafecha->size = 10;
        $edit->sfpafecha->maxlength = 8;
        $edit->sfpafecha->rule = 'condi_required|callback_chtipo[<#i#>]';
        $edit->numref = new inputField('Numero <#o#>', 'num_ref_<#i#>');
        $edit->numref->size = 12;
        $edit->numref->db_name = 'num_ref';
        $edit->numref->rel_id = 'sfpa';
        $edit->numref->rule = 'condi_required|callback_chtipo[<#i#>]';
        $edit->banco = new dropdownField('Banco <#o#>', 'banco_<#i#>');
        $edit->banco->option('', 'Ninguno');
        $edit->banco->options('SELECT cod_banc,nomb_banc
			FROM tban
			WHERE cod_banc<>\'CAJ\'
		UNION ALL
			SELECT codbanc,CONCAT_WS(\' \',TRIM(banco),numcuent)
			FROM banc
			WHERE tbanco <> \'CAJ\' ORDER BY nomb_banc');
        $edit->banco->db_name = 'banco';
        $edit->banco->rel_id = 'sfpa';
        $edit->banco->style = 'width:180px;';
        $edit->banco->rule = 'condi_required|callback_chtipo[<#i#>]';
        $edit->monto = new inputField('Monto <#o#>', 'monto_<#i#>');
        $edit->monto->db_name = 'monto';
        $edit->monto->css_class = 'inputnum';
        $edit->monto->rel_id = 'sfpa';
        $edit->monto->size = 10;
        $edit->monto->rule = 'required|mayorcero';
        $edit->monto->showformat = 'decimal';
        //************************************************
        // Fin detalle 2 (sfpa)
        //************************************************
        $edit->ivat = new hiddenField('I.V.A', 'iva');
        $edit->ivat->css_class = 'inputnum';
        $edit->ivat->readonly = true;
        $edit->ivat->size = 10;
        $edit->totals = new hiddenField('Sub-Total', 'totals');
        $edit->totals->css_class = 'inputnum';
        $edit->totals->readonly = true;
        $edit->totals->size = 10;
        $edit->totalg = new hiddenField('Total', 'totalg');
        $edit->totalg->css_class = 'inputnum';
        $edit->totalg->readonly = true;
        $edit->totalg->size = 10;
        $edit->observa = new inputField('Observacion', 'observa');
        $edit->nfiscal = new inputField('No.Fiscal', 'nfiscal');
        $edit->observ1 = new inputField('Observacion', 'observ1');
        $edit->zona = new inputField('Zona', 'zona');
        $edit->ciudad = new inputField('Ciudad', 'ciudad');
        $edit->exento = new inputField('Exento', 'exento');
        $edit->maqfiscal = new inputField('Mq.Fiscal', 'maqfiscal');
        $edit->referen = new inputField('Referencia', 'referen');
        $edit->pfac = new hiddenField('Presupuesto', 'pfac');
        $edit->reiva = new inputField('Retencion de IVA', 'reiva');
        $edit->creiva = new inputField('Comprobante', 'creiva');
        $edit->freiva = new inputField('Fecha', 'freiva');
        $edit->ereiva = new inputField('Emision', 'ereiva');
        $edit->manual = new hiddenField('Manual', 'manual');
        $edit->manual->insertValue = 'N';
        $edit->usuario = new autoUpdateField('usuario', $this->session->userdata('usuario'), $this->session->userdata('usuario'));
        $edit->estampa = new autoUpdateField('estampa', date('Ymd'), date('Ymd'));
        $edit->hora = new autoUpdateField('hora', date('H:i:s'), date('H:i:s'));
        if ($edit->_status == 'show') {
            $print_url = site_url('ventas/sfac_add/dataprint/modify') . $edit->pk_URI();
            $action = "javascript:window.location='{$print_url}'";
            $edit->button('btn_print', 'Imprimir', $action, 'TR');
        }
        $edit->buttons('save', 'back', 'add_rel');
        if (!empty($this->_url)) {
            $edit->_process_uri = $this->_url;
        }
        if (!empty($this->back_url)) {
            $edit->buttons('undo');
        }
        if ($this->genesal) {
            $edit->build();
            $conten['form'] =& $edit;
            $data['style'] = style('redmond/jquery-ui.css');
            //$data['style']  .= style('gt_grid.css');
            //$data['style']  .= style('impromptu.css');
            $data['script'] = script('jquery.js');
            $data['script'] .= script('jquery-ui.js');
            $data['script'] .= script("jquery-impromptu.js");
            $data['script'] .= script("plugins/jquery.blockUI.js");
            $data['script'] .= script('plugins/jquery.numeric.pack.js');
            $data['script'] .= script('plugins/jquery.ui.autocomplete.autoSelectOne.js');
            $data['script'] .= phpscript('nformat.js');
            $data['script'] .= script('plugins/jquery.floatnumber.js');
            $data['script'] .= script('gt_msg_en.js');
            $data['script'] .= script('gt_grid_all.js');
            $data['content'] = $this->load->view('view_sfac_add', $conten, true);
            $data['head'] = $this->rapyd->get_head();
            $data['title'] = heading($this->titp);
            $this->load->view('view_ventanas', $data);
        } else {
            $edit->on_save_redirect = false;
            $edit->build();
            if ($edit->on_success()) {
                $this->claves = $edit->_dataobject->pk;
                $this->claves['numero'] = $edit->_dataobject->get('numero');
                $this->claves['tipo_doc'] = $edit->_dataobject->get('tipo_doc');
                $rt = 'Venta Guardada ' . $this->datasis->dameval("SELECT id FROM sfac WHERE numero=" . $edit->_dataobject->get('numero') . " AND tipo_doc='F'");
            } elseif ($edit->on_error()) {
                $rt = html_entity_decode(preg_replace('/<[^>]*>/', '', $edit->error_string));
            }
            return $rt;
        }
    }
Example #24
0
 function dataedit()
 {
     $this->rapyd->load('dataobject', 'datadetails');
     $modbus = array('tabla' => 'sinv', 'columnas' => array('codigo' => 'C&oacute;digo', 'descrip' => 'Descripci&oacute;n', 'precio1' => 'Precio 1', 'precio2' => 'Precio 2', 'precio3' => 'Precio 3', 'existen' => 'Existencia'), 'filtro' => array('codigo' => 'C&oacute;digo', 'descrip' => 'descrip'), 'retornar' => array('codigo' => 'codigo_<#i#>', 'descrip' => 'desca_<#i#>', 'base1' => 'precio1_<#i#>', 'base2' => 'precio2_<#i#>', 'base3' => 'precio3_<#i#>', 'base4' => 'precio4_<#i#>', 'iva' => 'itiva_<#i#>', 'peso' => 'sinvpeso_<#i#>', 'tipo' => 'sinvtipo_<#i#>'), 'p_uri' => array(4 => '<#i#>'), 'where' => '`activo` = "S" AND `tipo` = "Articulo"', 'script' => array('post_modbus_sinv(<#i#>)'), 'titulo' => 'Buscar Articulo');
     $btn = $this->datasis->p_modbus($modbus, '<#i#>');
     $mSCLId = array('tabla' => 'scli', 'columnas' => array('cliente' => 'C&oacute;digo Cliente', 'nombre' => 'Nombre', 'cirepre' => 'Rif/Cedula', 'dire11' => 'Direcci&oacute;n', 'tipo' => 'Tipo'), 'filtro' => array('cliente' => 'C&oacute;digo Cliente', 'nombre' => 'Nombre'), 'retornar' => array('cliente' => 'cod_cli', 'nombre' => 'nombre', 'dire11' => 'dir_cli', 'tipo' => 'sclitipo'), 'titulo' => 'Buscar Cliente', 'script' => array('post_modbus_scli()'));
     $btnc = $this->datasis->modbus($mSCLId);
     $do = new DataObject('snte');
     $do->rel_one_to_many('itsnte', 'itsnte', 'numero');
     $do->pointer('scli', 'scli.cliente=snte.cod_cli', 'scli.tipo AS sclitipo', 'left');
     $do->rel_pointer('itsnte', 'sinv', 'itsnte.codigo=sinv.codigo', 'sinv.descrip AS sinvdescrip, sinv.base1 AS sinvprecio1, sinv.base2 AS sinvprecio2, sinv.base3 AS sinvprecio3, sinv.base4 AS sinvprecio4, sinv.iva AS sinviva, sinv.peso AS sinvpeso,sinv.tipo AS sinvtipo');
     $edit = new DataDetails('Nota de entrega', $do);
     $edit->on_save_redirect = false;
     $edit->set_rel_title('itsnte', 'Producto <#o#>');
     $edit->pre_process('insert', '_pre_insert');
     $edit->pre_process('update', '_pre_update');
     $edit->pre_process('delete', '_pre_delete');
     $edit->post_process('insert', '_post_insert');
     $edit->post_process('update', '_post_update');
     $edit->post_process('delete', '_post_delete');
     $edit->fecha = new DateonlyField('Fecha', 'fecha', 'd/m/Y');
     $edit->fecha->insertValue = date('Y-m-d');
     $edit->fecha->rule = 'required';
     $edit->fecha->mode = 'autohide';
     $edit->fecha->calendar = false;
     $edit->fecha->size = 10;
     $edit->vende = new dropdownField('Vendedor', 'vende');
     $edit->vende->options('SELECT vendedor, CONCAT(vendedor,\' \',nombre) nombre FROM vend ORDER BY vendedor');
     $edit->vende->style = 'width:200px;';
     $edit->vende->size = 5;
     $edit->numero = new inputField('N&uacute;mero', 'numero');
     $edit->numero->size = 10;
     $edit->numero->mode = 'autohide';
     $edit->numero->maxlength = 8;
     $edit->numero->apply_rules = false;
     //necesario cuando el campo es clave y no se pide al usuario
     $edit->numero->when = array('show', 'modify');
     $edit->peso = new inputField('Peso', 'peso');
     $edit->peso->css_class = 'inputnum';
     $edit->peso->readonly = true;
     $edit->peso->type = 'inputhidden';
     $edit->peso->size = 10;
     $edit->cliente = new inputField('Cliente', 'cod_cli');
     $edit->cliente->size = 6;
     //$edit->cliente->maxlength=5;
     $edit->cliente->rule = 'required';
     $edit->cliente->append($btnc);
     $edit->nombre = new inputField('Nombre', 'nombre');
     $edit->nombre->size = 25;
     $edit->nombre->type = 'inputhidden';
     $edit->nombre->maxlength = 40;
     $edit->nombre->autocomplete = false;
     $edit->factura = new inputField('Factura', 'factura');
     $edit->factura->size = 10;
     $edit->factura->when = array('show');
     $edit->almacen = new dropdownField('Almac&eacute;n', 'almacen');
     $edit->almacen->options('SELECT ubica, CONCAT(ubica,\' \',ubides) nombre FROM caub ORDER BY ubica');
     $edit->almacen->rule = 'required';
     $edit->almacen->style = 'width:200px;';
     $edit->almacen->size = 5;
     $alma = $this->secu->getalmacen();
     if (empty($alma)) {
         $alma = $this->datasis->traevalor('ALMACEN');
     }
     $edit->almacen->insertValue = $alma;
     $edit->orden = new inputField('Orden', 'orden');
     $edit->orden->size = 10;
     $edit->observa = new inputField('Observaci&oacute;n', 'observa');
     $edit->observa->size = 37;
     $edit->dir_cli = new inputField('Direcci&oacute;n', 'dir_cli');
     $edit->dir_cli->type = 'inputhidden';
     $edit->dir_cli->size = 37;
     //$edit->dir_cl1 = new inputField(' ','dir_cl1');
     //$edit->dir_cl1->size = 55;
     //Para saber que precio se le va a dar al cliente
     $edit->sclitipo = new hiddenField('', 'sclitipo');
     $edit->sclitipo->db_name = 'sclitipo';
     $edit->sclitipo->pointer = true;
     $edit->sclitipo->insertValue = 1;
     //Campos para el detalle
     $edit->codigo = new inputField('C&oacute;digo <#o#>', 'codigo_<#i#>');
     $edit->codigo->size = 8;
     $edit->codigo->db_name = 'codigo';
     $edit->codigo->rel_id = 'itsnte';
     $edit->codigo->rule = 'required';
     $edit->codigo->append($btn);
     $edit->codigo->style = 'width:80%';
     $edit->desca = new inputField('Descripci&oacute;n <#o#>', 'desca_<#i#>');
     $edit->desca->size = 36;
     $edit->desca->db_name = 'desca';
     $edit->desca->maxlength = 40;
     $edit->desca->readonly = true;
     $edit->desca->rel_id = 'itsnte';
     $edit->desca->style = 'width:98%';
     $edit->cana = new inputField('Cantidad <#o#>', 'cana_<#i#>');
     $edit->cana->db_name = 'cana';
     $edit->cana->css_class = 'inputnum';
     $edit->cana->rel_id = 'itsnte';
     $edit->cana->maxlength = 10;
     $edit->cana->size = 6;
     $edit->cana->rule = 'required|positive|callback_chcananeg[<#i#>]';
     $edit->cana->autocomplete = false;
     $edit->cana->onkeyup = 'importe(<#i#>)';
     $edit->cana->style = 'width:98%';
     $edit->precio = new inputField('Precio <#o#>', 'precio_<#i#>');
     $edit->precio->db_name = 'precio';
     $edit->precio->css_class = 'inputnum';
     $edit->precio->rel_id = 'itsnte';
     $edit->precio->size = 10;
     $edit->precio->rule = 'required|positive|callback_chpreca[<#i#>]';
     $edit->precio->readonly = true;
     $edit->precio->style = 'width:98%';
     $edit->importe = new inputField('Importe <#o#>', 'importe_<#i#>');
     $edit->importe->db_name = 'importe';
     $edit->importe->size = 10;
     $edit->importe->css_class = 'inputnum';
     $edit->importe->rel_id = 'itsnte';
     $edit->importe->style = 'width:98%';
     $edit->importe->type = 'inputhidden';
     for ($i = 1; $i <= 4; $i++) {
         $obj = 'precio' . $i;
         $edit->{$obj} = new hiddenField('Precio <#o#>', $obj . '_<#i#>');
         $edit->{$obj}->db_name = 'sinv' . $obj;
         $edit->{$obj}->rel_id = 'itsnte';
         $edit->{$obj}->pointer = true;
     }
     $edit->itiva = new hiddenField('', 'itiva_<#i#>');
     $edit->itiva->db_name = 'iva';
     $edit->itiva->rel_id = 'itsnte';
     $edit->sinvpeso = new hiddenField('', 'sinvpeso_<#i#>');
     $edit->sinvpeso->db_name = 'sinvpeso';
     $edit->sinvpeso->rel_id = 'itsnte';
     $edit->sinvpeso->pointer = true;
     $edit->sinvtipo = new hiddenField('', 'sinvtipo_<#i#>');
     $edit->sinvtipo->db_name = 'sinvtipo';
     $edit->sinvtipo->rel_id = 'itsnte';
     $edit->sinvtipo->pointer = true;
     //fin de campos para detalle
     $edit->impuesto = new hiddenField('Impuesto', 'impuesto');
     $edit->impuesto->size = 20;
     $edit->impuesto->css_class = 'inputnum';
     $edit->stotal = new hiddenField('Sub.Total', 'stotal');
     $edit->stotal->size = 20;
     $edit->stotal->css_class = 'inputnum';
     $edit->gtotal = new hiddenField('Total', 'gtotal');
     $edit->gtotal->size = 20;
     $edit->gtotal->css_class = 'inputnum';
     $edit->usuario = new autoUpdateField('usuario', $this->session->userdata('usuario'), $this->session->userdata('usuario'));
     //$edit->buttons('add_rel');
     $edit->build();
     if ($edit->on_success()) {
         $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk);
         echo json_encode($rt);
     } else {
         $conten['form'] =& $edit;
         $this->load->view('view_snte', $conten);
     }
 }
Example #25
0
 function dataedit()
 {
     $this->rapyd->load('dataobject', 'datadetails');
     $do = new DataObject('edcont');
     $do->pointer('scli', 'scli.cliente=edcont.cliente', 'scli.tipo AS sclitipo, scli.nombre AS nombre, dire11 AS direc, scli.rifci AS rifci', 'left');
     //$do->pointer('edres' ,'edres.id=edcont.id_edres','scli.tipo AS sclitipo, scli.nombre AS edresnumero','left');
     $do->rel_one_to_many('itedcont', 'itedcont', array('id' => 'id_edcont'));
     $do->order_rel_one_to_many('itedcont', 'id');
     $edit = new DataDetails('', $do);
     /*
     		$script= '
     		$(function() {
     			$("#fecha").datepicker({dateFormat:"dd/mm/yy"});
     			$(".inputnum").numeric(".");
     			$(".inputonlynum").numeric();
     		});
     		';
     		$edit->script($script,'modify');
     		$edit->script($script,'create');
     */
     $edit->on_save_redirect = false;
     $id = $edit->get_from_dataobjetct('id');
     if ($id !== false) {
         $action = "javascript:window.location='" . site_url($this->url . 'formato/' . $id . '/contrato.xml') . "'";
         $edit->button('btn_formato', 'Descargar formato', $action, 'TR');
     }
     $status = $edit->get_from_dataobjetct('status');
     if ($status == 'P') {
         $action = "javascript:window.location='" . site_url($this->url . 'actualizar/' . $id) . "'";
         $edit->button('btn_actuali', 'Actualizar', $action, 'TR');
     }
     //$edit->back_url = site_url($this->url.'filteredgrid');
     $edit->post_process('insert', '_post_insert');
     $edit->post_process('update', '_post_update');
     $edit->post_process('delete', '_post_delete');
     $edit->pre_process('insert', '_pre_insert');
     $edit->pre_process('update', '_pre_update');
     $edit->pre_process('delete', '_pre_delete');
     $edit->id_edres = new inputField('Id_edres', 'id_edres');
     $edit->id_edres->rule = 'max_length[11]|integer';
     $edit->id_edres->css_class = 'inputonlynum';
     $edit->id_edres->size = 13;
     $edit->id_edres->maxlength = 11;
     $edit->numero = new inputField('N&uacute;mero', 'numero');
     $edit->numero->rule = 'max_length[8]';
     $edit->numero->size = 10;
     $edit->numero->maxlength = 8;
     $edit->status = new dropdownField('Estatus', 'status');
     $edit->status->option('P', 'Pendiente');
     $edit->status->option('A', 'Aprobado');
     $edit->status->style = 'width:180px;';
     $edit->status->rule = 'max_length[1]';
     $edit->status->when = array('show');
     $edit->numero_edres = new inputField('Reservaci&oacute;n', 'numero_edres');
     $edit->numero_edres->rule = 'max_length[8]';
     $edit->numero_edres->size = 10;
     $edit->numero_edres->maxlength = 8;
     $edit->numero = new inputField('N&uacute;mero', 'numero');
     $edit->numero->size = 10;
     $edit->numero->maxlength = 8;
     $edit->numero->apply_rules = false;
     //necesario cuando el campo es clave y no se pide al usuario
     $edit->numero->when = array('show', 'modify');
     $edit->fecha = new dateField('Fecha', 'fecha');
     $edit->fecha->rule = 'chfecha';
     $edit->fecha->size = 10;
     $edit->fecha->insertValue = date('Y-m-d');
     $edit->fecha->maxlength = 8;
     $edit->fecha->calendar = false;
     $edit->cliente = new inputField('Cliente', 'cliente');
     $edit->cliente->rule = 'max_length[5]|required';
     $edit->cliente->size = 7;
     $edit->cliente->maxlength = 5;
     $edit->sclitipo = new hiddenField('', 'sclitipo');
     $edit->sclitipo->db_name = 'sclitipo';
     $edit->sclitipo->pointer = true;
     $edit->sclitipo->insertValue = 1;
     $edit->nombre = new inputField('Nombre', 'nombre');
     $edit->nombre->size = 25;
     $edit->nombre->maxlength = 40;
     $edit->nombre->readonly = true;
     $edit->nombre->autocomplete = false;
     $edit->nombre->rule = 'required';
     $edit->nombre->type = 'inputhidden';
     $edit->nombre->pointer = true;
     $edit->rifci = new inputField('RIF/CI', 'rifci');
     $edit->rifci->autocomplete = false;
     $edit->rifci->readonly = true;
     $edit->rifci->size = 15;
     $edit->rifci->type = 'inputhidden';
     $edit->rifci->pointer = true;
     $edit->direc = new inputField('Direcci&oacute;n', 'direc');
     $edit->direc->readonly = true;
     $edit->direc->size = 40;
     $edit->direc->type = 'inputhidden';
     $edit->direc->pointer = true;
     $edit->edificacion = new dropdownField('Edificaci&oacute;n', 'edificacion');
     $edit->edificacion->option('', 'Seleccionar');
     $edit->edificacion->options('SELECT id,TRIM(nombre) AS nombre FROM edif ORDER BY nombre');
     $edit->edificacion->style = 'width:150px;';
     $edit->edificacion->rule = 'max_length[11]|required';
     $edit->inmueble = new dropdownField('Inmueble', 'inmueble');
     $edit->inmueble->option('', 'Seleccionar');
     $edif = $edit->getval('edificacion');
     if ($edif !== false) {
         $dbedif = $this->db->escape($edif);
         $edit->inmueble->option('', 'Seleccionar');
         $edit->inmueble->options("SELECT id,TRIM(descripcion) AS nombre FROM edinmue WHERE status='D' AND edificacion={$dbedif} ORDER BY descripcion");
     } else {
         $edit->inmueble->option('', 'Seleccione una edificacion');
     }
     $edit->inmueble->style = 'width:150px;';
     $edit->inmueble->rule = 'max_length[11]|required';
     $edit->reserva = new inputField('Reserva', 'reserva');
     $edit->reserva->rule = 'max_length[17]|numeric';
     $edit->reserva->css_class = 'inputnum';
     $edit->reserva->size = 10;
     $edit->reserva->maxlength = 17;
     $edit->precioxmt2 = new inputField('Precio m2', 'precioxmt2');
     $edit->precioxmt2->rule = 'max_length[17]|numeric|mayorcero|required';
     $edit->precioxmt2->css_class = 'inputnum';
     $edit->precioxmt2->size = 10;
     $edit->precioxmt2->maxlength = 17;
     $edit->precioxmt2->showformat = 'decimal';
     $edit->mt2 = new inputField('&Aacute;rea m2', 'mt2');
     $edit->mt2->rule = 'max_length[17]|numeric|mayorcero|required';
     $edit->mt2->css_class = 'inputnum';
     $edit->mt2->size = 7;
     $edit->mt2->maxlength = 17;
     $edit->mt2->showformat = 'decimal';
     $edit->uso = new dropdownField('Uso', 'uso');
     $edit->uso->option('', 'Seleccionar');
     $edit->uso->options('SELECT id,uso FROM `eduso` ORDER BY uso');
     $edit->uso->style = 'width:180px;';
     $edit->uso->rule = 'required';
     $edit->inicial = new inputField('Inicial', 'inicial');
     $edit->inicial->rule = 'max_length[17]|numeric|mayorcero';
     $edit->inicial->css_class = 'inputnum';
     $edit->inicial->size = 19;
     $edit->inicial->maxlength = 17;
     $edit->inicial->showformat = 'decimal';
     $edit->financiable = new inputField('Monto financiable', 'financiable');
     $edit->financiable->rule = 'max_length[17]|numeric';
     $edit->financiable->css_class = 'inputnum';
     $edit->financiable->size = 19;
     $edit->financiable->maxlength = 17;
     $edit->financiable->showformat = 'decimal';
     $edit->firma = new inputField('Pago final (firma)', 'firma');
     $edit->firma->rule = 'max_length[17]|numeric|mayorcero';
     $edit->firma->css_class = 'inputnum';
     $edit->firma->size = 19;
     $edit->firma->type = 'inputhidden';
     $edit->firma->maxlength = 17;
     $edit->firma->showformat = 'decimal';
     $edit->monto = new inputField('Monto total', 'monto');
     $edit->monto->rule = 'max_length[17]|numeric|mayorcero';
     $edit->monto->css_class = 'inputnum';
     $edit->monto->size = 19;
     $edit->monto->type = 'inputhidden';
     $edit->monto->maxlength = 17;
     $edit->monto->showformat = 'decimal';
     $edit->notas = new textareaField('Notas', 'notas');
     $edit->notas->rule = 'max_length[8]';
     $edit->notas->cols = 70;
     $edit->notas->rows = 4;
     //*******************************
     // Inicio del detalle
     //*******************************
     $edit->it_vencimiento = new dateField('Vencimiento <#o#>', 'it_vencimiento_<#i#>');
     $edit->it_vencimiento->rule = 'chfecha|required';
     $edit->it_vencimiento->size = 10;
     $edit->it_vencimiento->insertValue = date('Y-m-d');
     $edit->it_vencimiento->db_name = 'vencimiento';
     $edit->it_vencimiento->rel_id = 'itedcont';
     $edit->it_vencimiento->maxlength = 8;
     $edit->it_vencimiento->calendar = false;
     $edit->it_especial = new dropdownField('Especial <#o#>', 'it_especial_<#i#>');
     $edit->it_especial->rule = 'max_length[1]|enum[S,N]';
     $edit->it_especial->db_name = 'especial';
     $edit->it_especial->rel_id = 'itedcont';
     $edit->it_especial->style = 'width:80px;';
     $edit->it_especial->option('N', 'Normal');
     $edit->it_especial->option('S', 'Especial');
     $edit->it_monto = new inputField('Monto <#o#>', 'it_monto_<#i#>');
     $edit->it_monto->rule = 'max_length[10]|numeric';
     $edit->it_monto->db_name = 'monto';
     $edit->it_monto->rel_id = 'itedcont';
     //$edit->it_monto->on_keyup  = 'totagiro()';
     //$edit->it_monto->on_keyup  ='distrib()';
     $edit->it_monto->css_class = 'inputnum';
     $edit->it_monto->size = 12;
     $edit->it_monto->maxlength = 10;
     $edit->it_monto->showformat = 'decimal';
     //******************************
     // Fin del detalle
     //******************************
     if ($status != 'A') {
         $edit->buttons('modify', 'delete', 'add_rel');
         //$edit->buttons('modify', 'save', 'undo', 'delete','add_rel');
     }
     //$edit->buttons('back', 'add');
     $edit->build();
     if ($edit->on_success()) {
         $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk);
         echo json_encode($rt);
     } else {
         $conten['form'] =& $edit;
         $data['content'] = $this->load->view('view_edcont', $conten, false);
         //$data['content'] = $this->load->view('view_edcont', $conten,true);
         //echo $edit->output;
     }
     /*
     		$conten['form']     =& $edit;
     		$data['content'] = $this->load->view('view_edcont', $conten,true);
     		$data['title']   = heading($this->t**s);
     		$data['head']    = $this->rapyd->get_head();
     		$data['head']   .= script('jquery.js');
     		$data['head']   .= script('jquery-ui.js');
     		$data['head']   .= script('plugins/jquery.numeric.pack.js');
     		$data['head']   .= script('plugins/jquery.floatnumber.js');
     		$data['head']   .= script('plugins/jquery.meiomask.js');
     		$data['head']   .= phpscript('nformat.js');
     		$data['head']   .= style('redmond/jquery-ui-1.8.1.custom.css');
     		$this->load->view('view_ventanas', $data);
     */
 }
Example #26
0
 function dataedit()
 {
     $this->rapyd->load('datadetails', 'dataobject');
     $do = new DataObject('rivc');
     //$do->pointer('scli' ,'scli.cliente=rivc.cod_cli','sprv.tipo AS sprvtipo, sprv.reteiva AS sprvreteiva','left');
     $do->rel_one_to_many('itrivc', 'itrivc', array('id' => 'idrivc'));
     $edit = new DataDetails($this->t**s, $do);
     $edit->on_save_redirect = false;
     $edit->back_url = site_url($this->url . 'filteredgrid');
     $edit->post_process('insert', '_post_insert');
     $edit->post_process('update', '_post_update');
     $edit->post_process('delete', '_post_delete');
     $edit->pre_process('insert', '_pre_insert');
     $edit->pre_process('update', '_pre_update');
     $edit->pre_process('delete', '_pre_delete');
     $edit->nrocomp = new inputField('Comprobante', 'nrocomp');
     $edit->nrocomp->rule = 'max_length[8]|required';
     $edit->nrocomp->size = 10;
     $edit->nrocomp->maxlength = '8';
     $edit->nrocomp->autocomplete = false;
     $edit->emision = new dateField('Fecha de Emisi&oacute;n', 'emision');
     $edit->emision->rule = 'chfecha|required';
     $edit->emision->size = 12;
     $edit->emision->maxlength = 8;
     $edit->emision->calendar = false;
     $edit->periodo = new inputField('Per&iacute;odo', 'periodo');
     $edit->periodo->rule = 'max_length[6]|required';
     $edit->periodo->size = 7;
     $edit->periodo->insertValue = date('Ym');
     $edit->periodo->maxlength = 6;
     $edit->fecha = new dateField('Fecha de Recepci&oacute;n', 'fecha');
     $edit->fecha->rule = 'chfecha|required';
     $edit->fecha->insertValue = date('Y-m-d');
     $edit->fecha->size = 12;
     $edit->fecha->maxlength = 8;
     $edit->fecha->calendar = false;
     $edit->cod_cli = new inputField('Cliente', 'cod_cli');
     $edit->cod_cli->rule = 'max_length[5]|required|strtoupper|existescli';
     $edit->cod_cli->size = 10;
     //$edit->cod_cli->maxlength =5;
     $edit->nombre = new hiddenField('Nombre', 'nombre');
     $edit->nombre->rule = 'max_length[200]';
     $edit->nombre->size = 42;
     $edit->nombre->maxlength = 200;
     $edit->rif = new hiddenField('RIF', 'rif');
     $edit->rif->rule = 'max_length[14]|strtoupper';
     $edit->rif->size = 16;
     $edit->rif->maxlength = 14;
     $edit->rif->autocomplete = false;
     $edit->operacion = new radiogroupField('Operaci&oacute;n', 'operacion', array('R' => 'Reintegrar', 'A' => 'Crear anticipo', 'P' => 'Crear CxP'));
     $edit->operacion->insertValue = 'A';
     $edit->operacion->rule = 'required|enum[R,A,P]';
     $edit->exento = new inputField('Monto Exento', 'exento');
     $edit->exento->rule = 'max_length[15]|numeric';
     $edit->exento->css_class = 'inputnum';
     $edit->exento->size = 17;
     $edit->exento->maxlength = 15;
     $edit->tasa = new inputField('tasa', 'tasa');
     $edit->tasa->rule = 'max_length[5]|numeric';
     $edit->tasa->css_class = 'inputnum';
     $edit->tasa->size = 7;
     $edit->tasa->maxlength = 5;
     $edit->general = new inputField('general', 'general');
     $edit->general->rule = 'max_length[15]|numeric';
     $edit->general->css_class = 'inputnum';
     $edit->general->size = 17;
     $edit->general->maxlength = 15;
     $edit->geneimpu = new inputField('geneimpu', 'geneimpu');
     $edit->geneimpu->rule = 'max_length[15]|numeric';
     $edit->geneimpu->css_class = 'inputnum';
     $edit->geneimpu->size = 17;
     $edit->geneimpu->maxlength = 15;
     $edit->tasaadic = new inputField('tasaadic', 'tasaadic');
     $edit->tasaadic->rule = 'max_length[5]|numeric';
     $edit->tasaadic->css_class = 'inputnum';
     $edit->tasaadic->size = 7;
     $edit->tasaadic->maxlength = 5;
     $edit->adicional = new inputField('adicional', 'adicional');
     $edit->adicional->rule = 'max_length[15]|numeric';
     $edit->adicional->css_class = 'inputnum';
     $edit->adicional->size = 17;
     $edit->adicional->maxlength = 15;
     $edit->adicimpu = new inputField('adicimpu', 'adicimpu');
     $edit->adicimpu->rule = 'max_length[15]|numeric';
     $edit->adicimpu->css_class = 'inputnum';
     $edit->adicimpu->size = 17;
     $edit->adicimpu->maxlength = 15;
     $edit->tasaredu = new inputField('tasaredu', 'tasaredu');
     $edit->tasaredu->rule = 'max_length[5]|numeric';
     $edit->tasaredu->css_class = 'inputnum';
     $edit->tasaredu->size = 7;
     $edit->tasaredu->maxlength = 5;
     $edit->reducida = new inputField('reducida', 'reducida');
     $edit->reducida->rule = 'max_length[15]|numeric';
     $edit->reducida->css_class = 'inputnum';
     $edit->reducida->size = 17;
     $edit->reducida->maxlength = 15;
     $edit->reduimpu = new inputField('reduimpu', 'reduimpu');
     $edit->reduimpu->rule = 'max_length[15]|numeric';
     $edit->reduimpu->css_class = 'inputnum';
     $edit->reduimpu->size = 17;
     $edit->reduimpu->maxlength = 15;
     $edit->stotal = new hiddenField('Sub-total', 'stotal');
     $edit->stotal->rule = 'max_length[15]|numeric';
     $edit->stotal->css_class = 'inputnum';
     $edit->stotal->size = 17;
     $edit->stotal->maxlength = 15;
     $edit->impuesto = new hiddenField('Impuesto', 'impuesto');
     $edit->impuesto->rule = 'max_length[15]|numeric';
     $edit->impuesto->css_class = 'inputnum';
     $edit->impuesto->size = 17;
     $edit->impuesto->maxlength = 15;
     $edit->gtotal = new hiddenField('Total de facturas', 'gtotal');
     $edit->gtotal->rule = 'max_length[15]|numeric';
     $edit->gtotal->css_class = 'inputnum';
     $edit->gtotal->size = 17;
     $edit->gtotal->maxlength = 15;
     $edit->reiva = new hiddenField('Total Retenido', 'reiva');
     $edit->reiva->rule = 'max_length[15]|numeric';
     $edit->reiva->css_class = 'inputnum';
     $edit->reiva->size = 17;
     $edit->reiva->maxlength = 15;
     $edit->estampa = new autoUpdateField('estampa', date('Ymd'), date('Ymd'));
     $edit->hora = new autoUpdateField('hora', date('H:i:s'), date('H:i:s'));
     $edit->usuario = new autoUpdateField('usuario', $this->session->userdata('usuario'), $this->session->userdata('usuario'));
     $edit->origen = new autoUpdateField('origen', 'R', 'R');
     $edit->modificado = new inputField('modificado', 'modificado');
     $edit->modificado->rule = 'max_length[8]';
     $edit->modificado->size = 10;
     $edit->modificado->maxlength = 8;
     //****************************
     //Inicio del Detalle
     //****************************
     $edit->it_tipo_doc = new hiddenField('tipo_doc', 'tipo_doc_<#i#>');
     $edit->it_tipo_doc->db_name = 'tipo_doc';
     $edit->it_tipo_doc->rule = 'max_length[2]|enum[NC,ND,F,D]|required';
     $edit->it_tipo_doc->size = 4;
     $edit->it_tipo_doc->maxlength = 1;
     $edit->it_tipo_doc->rel_id = 'itrivc';
     $edit->it_fecha = new dateonlyField('fecha', 'fecha_<#i#>');
     $edit->it_fecha->db_name = 'fecha';
     $edit->it_fecha->rule = 'required|chfecha';
     $edit->it_fecha->size = 11;
     $edit->it_fecha->maxlength = 10;
     $edit->it_fecha->rel_id = 'itrivc';
     $edit->it_fecha->type = 'inputhidden';
     $edit->it_numero = new inputField('numero', 'numero_<#i#>');
     $edit->it_numero->db_name = 'numero';
     $edit->it_numero->rule = 'max_length[12]|required|callback_chrepetidos|callback_chfac[<#i#>]|callback_chriva[<#i#>]';
     $edit->it_numero->size = 14;
     $edit->it_numero->maxlength = 12;
     $edit->it_numero->title = 'Para mejorar la b&uacute;squeda coloque el tipo de documento seguido del n&uacute;mero, Ej D000001 si es una devoluci&oacute;n, F12345 si es una factura o NC0001 si una nota de cre&dacute;ito';
     $edit->it_numero->rel_id = 'itrivc';
     $edit->it_numero->autocomplete = false;
     $edit->it_stotal = new inputField('stotal', 'stotal_<#i#>');
     $edit->it_stotal->db_name = 'stotal';
     $edit->it_stotal->rule = 'max_length[15]|numeric';
     $edit->it_stotal->css_class = 'inputnum';
     $edit->it_stotal->size = 17;
     $edit->it_stotal->maxlength = 15;
     $edit->it_stotal->rel_id = 'itrivc';
     $edit->it_stotal->showformat = 'decimal';
     $edit->it_impuesto = new hiddenField('impuesto', 'impuesto_<#i#>');
     $edit->it_impuesto->db_name = 'impuesto';
     $edit->it_impuesto->rule = 'max_length[15]|numeric';
     $edit->it_impuesto->css_class = 'inputnum';
     $edit->it_impuesto->size = 17;
     $edit->it_impuesto->maxlength = 15;
     $edit->it_impuesto->showformat = 'decimal';
     $edit->it_impuesto->rel_id = 'itrivc';
     $edit->it_gtotal = new hiddenField('gtotal', 'gtotal_<#i#>');
     $edit->it_gtotal->db_name = 'gtotal';
     $edit->it_gtotal->rule = 'max_length[15]|numeric';
     $edit->it_gtotal->css_class = 'inputnum';
     $edit->it_gtotal->size = 17;
     $edit->it_gtotal->maxlength = 15;
     $edit->it_gtotal->rel_id = 'itrivc';
     $edit->it_gtotal->showformat = 'decimal';
     $edit->it_gtotal->autocomplete = false;
     $edit->it_reiva = new inputField('reiva', 'reiva_<#i#>');
     $edit->it_reiva->db_name = 'reiva';
     $edit->it_reiva->rule = 'max_length[15]|nocero|numeric';
     $edit->it_reiva->css_class = 'inputnum';
     $edit->it_reiva->size = 17;
     $edit->it_reiva->maxlength = 15;
     $edit->it_reiva->rel_id = 'itrivc';
     $edit->it_reiva->onkeyup = 'totalizar()';
     $edit->it_reiva->autocomplete = false;
     $edit->it_reiva->disable_paste = true;
     $edit->it_reiva->showformat = 'decimal';
     //****************************
     //Fin del Detalle
     //****************************
     $edit->codbanc = new dropdownField('Caja', 'codbanc');
     $edit->codbanc->option('', 'Seleccionar');
     $edit->codbanc->options("SELECT codbanc, CONCAT_WS('-',codbanc,banco) AS label FROM banc WHERE activo='S' AND tbanco='CAJ' ORDER BY codbanc");
     $edit->codbanc->rule = 'max_length[5]|condi_required|callback_chcaja';
     $edit->codbanc->style = 'width:200px;';
     //$edit->buttons('save', 'undo','delete', 'back','add_rel','add');
     //$edit->buttons('save', 'undo', 'back','add_rel');
     //$edit->buttons('add_rel');
     $edit->build();
     if ($edit->on_success()) {
         $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk);
         echo json_encode($rt);
     } else {
         $conten['form'] =& $edit;
         $this->load->view('view_rivc', $conten);
     }
 }
Example #27
0
 function pprov($id_sprv)
 {
     $id_sprv = intval($id_sprv);
     $row = $this->datasis->damerow('SELECT proveed,nombre,rif FROM sprv WHERE id=' . $id_sprv);
     if (empty($row)) {
         echo 'El usuario debe tener registrado un cajero para poder usar este modulo';
         return '';
     }
     $proveed = $row['proveed'];
     $sprv_nombre = $row['nombre'];
     $sprv_rif = $row['rif'];
     if (date('d') <= 15) {
         $pdia = '01';
         $dia = '15';
     } else {
         $pdia = '16';
         $dia = date('d', mktime(0, 0, 0, date('n'), 0));
     }
     $rivafechai = date('Ym' . $pdia);
     $rivafechac = date('Ym' . $dia);
     $this->rapyd->load('dataobject', 'datadetails');
     $do = new DataObject('sprm');
     $do->rel_one_to_many('itppro', 'itppro', array('tipo_doc' => 'tipoppro', 'numero' => 'numppro', 'cod_prv' => 'cod_prv', 'transac' => 'transac'));
     $do->order_by('itppro', 'itppro.fecha');
     $edit = new DataDetails('Pago a proveedor', $do);
     $edit->on_save_redirect = false;
     $edit->set_rel_title('itppro', 'Efecto <#o#>');
     //$edit->set_rel_title('sfpa'  , 'Forma de pago <#o#>');
     $edit->pre_process('insert', '_pre_pprv_insert');
     $edit->pre_process('update', '_pre_pprv_update');
     $edit->pre_process('delete', '_pre_pprv_delete');
     $edit->post_process('insert', '_post_pprv_insert');
     //$edit->post_process('delete', '_post_pprv_delete');
     $edit->cod_prv = new hiddenField('Proveedor', 'cod_prv');
     $edit->cod_prv->rule = 'existesprv';
     $edit->cod_prv->size = 7;
     $edit->cod_prv->insertValue = $proveed;
     $edit->cod_prv->maxlength = 5;
     $edit->nombre = new inputField('Nombre', 'nombre');
     $edit->nombre->rule = 'max_length[40]';
     $edit->nombre->size = 42;
     $edit->nombre->maxlength = 40;
     $edit->tipo_doc = new dropdownField('Tipo doc.', 'tipo_doc');
     $edit->tipo_doc->option('AB', 'Abono');
     $edit->tipo_doc->option('NC', 'Nota de credito');
     $edit->tipo_doc->option('AN', 'Anticipo');
     $edit->tipo_doc->onchange = 'chtipodoc()';
     $edit->tipo_doc->style = 'width:140px;';
     $edit->tipo_doc->rule = 'enum[AB,NC,AN]|required';
     $edit->codigo = new dropdownField('Motivo', 'codigo');
     $edit->codigo->option('', 'Seleccionar');
     $edit->codigo->options('SELECT TRIM(codigo) AS cod, nombre FROM botr WHERE tipo=\'P\' ORDER BY nombre');
     $edit->codigo->style = 'width:200px;';
     $edit->codigo->rule = 'condi_required|callback_chobligatipo[NC]';
     $edit->numero = new inputField('N&uacute;mero', 'numero');
     $edit->numero->rule = 'max_length[8]';
     $edit->numero->size = 10;
     $edit->numero->maxlength = 8;
     $edit->fecha = new dateonlyField('Fecha', 'fecha');
     $edit->fecha->size = 12;
     $edit->fecha->maxlength = 8;
     $edit->fecha->insertValue = date('Y-m-d');
     $edit->fecha->calendar = false;
     $edit->fecha->rule = 'chfecha|required';
     $edit->monto = new inputField('Total a pagar', 'monto');
     $edit->monto->rule = 'required|max_length[17]|numeric';
     $edit->monto->css_class = 'inputnum';
     $edit->monto->size = 19;
     $edit->monto->maxlength = 17;
     $edit->monto->type = 'inputhidden';
     $edit->observa1 = new textareaField('Concepto:', 'observa1');
     $edit->observa1->cols = 70;
     $edit->observa1->rows = 2;
     $edit->observa1->style = 'width:100%;';
     $edit->observa2 = new textareaField('', 'observa2');
     $edit->observa2->cols = 70;
     $edit->observa2->rows = 2;
     $edit->observa2->style = 'width:100%;';
     $edit->observa2->when = array('show');
     $edit->depto = new dropdownField('Asignar a departamento', 'depto');
     $edit->depto->option('', 'Seleccionar');
     $edit->depto->options('SELECT depto,CONCAT_WS(\'-\',depto,TRIM(descrip)) AS descrip FROM dpto WHERE tipo IN (\'G\',\'A\') ORDER BY descrip');
     $edit->depto->style = 'width:180px;';
     $edit->depto->rule = 'condi_required|callback_chdepto';
     $edit->usuario = new autoUpdateField('usuario', $this->secu->usuario(), $this->secu->usuario());
     $edit->estampa = new autoUpdateField('estampa', date('Ymd'), date('Ymd'));
     $edit->hora = new autoUpdateField('hora', date('H:i:s'), date('H:i:s'));
     //Campos propios de las NC
     //Campos comodines
     $arr_ptasa = array();
     $edit->apltasa = new dropdownField('', 'apltasa');
     $mSQL = 'SELECT fecha,tasa,redutasa,sobretasa FROM civa ORDER BY fecha DESC LIMIT 3';
     $query = $this->db->query($mSQL);
     foreach ($query->result() as $row) {
         $arr_ptasa[] = array(floatval($row->tasa), floatval($row->redutasa), floatval($row->sobretasa));
         $edit->apltasa->option($row->fecha, dbdate_to_human($row->fecha));
     }
     $edit->apltasa->onchange = 'chapltasa()';
     $edit->apltasa->style = 'width:100px;';
     $edit->apltasa->rule = 'condi_required|callback_chobligatipo[NC]';
     $ivas = $this->datasis->ivaplica();
     $edit->ptasa = new inputField('', 'ptasa');
     $edit->ptasa->rule = 'numeric';
     $edit->ptasa->type = 'inputhidden';
     $edit->ptasa->insertValue = $ivas['tasa'];
     $edit->ptasa->showformat = 'decimal';
     $edit->preducida = new inputField('', 'preducida');
     $edit->preducida->rule = 'numeric';
     $edit->preducida->type = 'inputhidden';
     $edit->preducida->insertValue = $ivas['redutasa'];
     $edit->preducida->showformat = 'decimal';
     $edit->padicional = new inputField('', 'padicional');
     $edit->padicional->rule = 'numeric';
     $edit->padicional->type = 'inputhidden';
     $edit->padicional->insertValue = $ivas['sobretasa'];
     $edit->padicional->showformat = 'decimal';
     //Fin de los comodines
     $edit->serie = new inputField('N&uacute;mero', 'serie');
     $edit->serie->rule = 'condi_required|callback_chobligatipo[NC]';
     $edit->serie->size = 15;
     $edit->serie->maxlength = 17;
     $edit->nfiscal = new inputField('Control F&iacute;scal', 'nfiscal');
     $edit->nfiscal->rule = 'condi_required|callback_chobligatipo[NC]';
     $edit->nfiscal->size = 15;
     $edit->nfiscal->maxlength = 17;
     $edit->montasa = new inputField('Montasa', 'montasa');
     $edit->montasa->rule = 'max_length[17]|numeric|positive';
     $edit->montasa->css_class = 'inputnum';
     $edit->montasa->size = 19;
     $edit->montasa->maxlength = 17;
     $edit->montasa->rule = 'condi_required|callback_chobligatipo[NC]';
     $edit->monredu = new inputField('Monredu', 'monredu');
     $edit->monredu->rule = 'max_length[17]|numeric|positive';
     $edit->monredu->css_class = 'inputnum';
     $edit->monredu->size = 19;
     $edit->monredu->maxlength = 17;
     $edit->monredu->rule = 'condi_required|callback_chobligatipo[NC]';
     $edit->monadic = new inputField('Monadic', 'monadic');
     $edit->monadic->rule = 'max_length[17]|numeric|positive';
     $edit->monadic->css_class = 'inputnum';
     $edit->monadic->size = 19;
     $edit->monadic->maxlength = 17;
     $edit->monadic->rule = 'condi_required|callback_chobligatipo[NC]';
     $edit->tasa = new inputField('general', 'tasa');
     $edit->tasa->rule = 'max_length[17]|numeric';
     $edit->tasa->css_class = 'inputnum';
     $edit->tasa->size = 12;
     $edit->tasa->maxlength = 17;
     $edit->tasa->rule = 'condi_required|callback_chobligatipo[NC]|callback_chmontasa[G]';
     $edit->reducida = new inputField('reducida', 'reducida');
     $edit->reducida->rule = 'max_length[17]|numeric|positive';
     $edit->reducida->css_class = 'inputnum';
     $edit->reducida->size = 12;
     $edit->reducida->maxlength = 17;
     $edit->reducida->rule = 'condi_required|callback_chobligatipo[NC]|callback_chmontasa[R]';
     $edit->sobretasa = new inputField('adicional', 'sobretasa');
     $edit->sobretasa->rule = 'max_length[17]|numeric|positive';
     $edit->sobretasa->css_class = 'inputnum';
     $edit->sobretasa->size = 12;
     $edit->sobretasa->maxlength = 17;
     $edit->sobretasa->rule = 'condi_required|callback_chobligatipo[NC]|callback_chmontasa[A]|positive';
     $edit->exento = new inputField('exento', 'exento');
     $edit->exento->rule = 'max_length[17]|numeric';
     $edit->exento->css_class = 'inputnum';
     $edit->exento->size = 19;
     $edit->exento->maxlength = 17;
     $edit->exento->rule = 'condi_required|callback_chobligatipo[NC]|positive';
     $edit->reteiva = new inputField('Ret. IVA', 'reteiva');
     $edit->reteiva->rule = 'max_length[17]|numeric';
     $edit->reteiva->css_class = 'inputnum';
     $edit->reteiva->size = 19;
     $edit->reteiva->maxlength = 17;
     $edit->reteiva->insertValue = '0';
     $edit->reteiva->rule = 'condi_required|callback_chobligatipo[NC]|positive';
     $edit->afecta = new inputField('Factura Afectada', 'afecta');
     $edit->afecta->rule = 'callback_chafectanc';
     $edit->afecta->size = 15;
     $edit->afecta->maxlength = 12;
     //Para la retencion de iva si aplica
     $contribu = trim($this->datasis->traevalor('CONTRIBUYENTE'));
     $rif = trim($this->datasis->traevalor('RIF'));
     if ($contribu == 'ESPECIAL' && strtoupper($rif[0]) != 'V') {
         $por_rete = $this->datasis->dameval('SELECT reteiva FROM sprv WHERE proveed=' . $this->db->escape($proveed));
         if ($por_rete != 100) {
             $por_rete = 0.75;
         } else {
             $por_rete = $por_rete / 100;
         }
     } else {
         $por_rete = -1;
     }
     //fin de la retencion
     //Fin de los campos para la nc
     //Detalle del pago
     $edit->banco = new dropdownField('Banco', 'banco');
     $edit->banco->option('', 'Seleccionar');
     $edit->banco->options('SELECT TRIM(codbanc) AS codbanc,CONCAT_WS(\' \',TRIM(codbanc),TRIM(banco),numcuent) FROM banc ORDER BY banco');
     $edit->banco->style = 'width:200px;';
     $edit->banco->rule = 'condi_required|callback_chbanc';
     $edit->tipo_op = new dropdownField('Tipo', 'tipo_op');
     $edit->tipo_op->option('CH', 'Cheque');
     $edit->tipo_op->option('ND', 'Nota de debito');
     $edit->tipo_op->style = 'width:150px;';
     $edit->tipo_op->rule = 'condi_required|enum[CH,ND]|callback_chtipoop';
     $edit->numche = new inputField('N&uacute;mero', 'numche');
     $edit->numche->size = 12;
     $edit->numche->rule = 'condi_required|callback_chbmovrep';
     $edit->benefi = new inputField('Beneficiario', 'benefi');
     $edit->benefi->size = 12;
     $edit->benefi->rule = 'condi_required|callback_chtipo';
     $edit->benefi->style = 'width:90%;';
     $edit->benefi->insertValue = $sprv_nombre;
     $edit->posdata = new dateonlyField('Fecha', 'posdata');
     $edit->posdata->size = 12;
     $edit->posdata->maxlength = 8;
     $edit->posdata->insertValue = date('Y-m-d');
     $edit->posdata->calendar = false;
     $edit->posdata->rule = 'condi_required|chfecha';
     //Fin del detalle del pago
     //************************************************
     //inicio detalle itppro
     //************************************************
     $i = 0;
     $arr_ivas = array();
     $edit->detail_expand_except('itppro');
     $sel = array('a.tipo_doc', 'a.numero', 'a.fecha', 'a.vence', 'a.monto', 'a.abonos', 'a.monto - a.abonos AS saldo', 'impuesto', 'reteiva', 'montasa', 'monredu', 'monadic', 'tasa', 'reducida', 'sobretasa', 'exento');
     $this->db->select($sel);
     $this->db->from('sprm AS a');
     $this->db->where('a.cod_prv', $proveed);
     $transac = $edit->get_from_dataobjetct('transac');
     if ($transac !== false) {
         $tipo_doc = $edit->get_from_dataobjetct('tipo_doc');
         $dbtransac = $this->db->escape($transac);
         $this->db->join('itppro AS b', 'a.tipo_doc = b.tipoccli AND a.numero=b.numccli AND a.transac=' . $dbtransac);
         $this->db->where('a.tipo_doc', $tipo_doc);
     } else {
         $this->db->where('a.monto > a.abonos');
         $this->db->where_in('a.tipo_doc', array('FC', 'ND', 'GI'));
     }
     $this->db->order_by('a.fecha');
     $query = $this->db->get();
     //echo $this->db->last_query();
     foreach ($query->result() as $row) {
         $row->montasa = floatval($row->montasa);
         $row->monredu = floatval($row->monredu);
         $row->monadic = floatval($row->monadic);
         $row->tasa = floatval($row->tasa);
         $row->reducida = floatval($row->reducida);
         $row->sobretasa = floatval($row->sobretasa);
         $row->exento = floatval($row->exento);
         if ($row->montasa + $row->monredu + $row->monadic + $row->tasa + $row->reducida + $row->sobretasa + $row->exento > 0) {
             $arr_ivas[$i] = array('montasa' => $row->montasa, 'monredu' => $row->monredu, 'monadic' => $row->monadic, 'tasa' => $row->tasa, 'reducida' => $row->reducida, 'sobretasa' => $row->sobretasa, 'exento' => $row->exento);
         } else {
             $arr_ivas[$i] = array('montasa' => $row->monto - $row->impuesto, 'monredu' => 0, 'monadic' => 0, 'tasa' => floatval($row->impuesto), 'reducida' => 0, 'sobretasa' => 0, 'exento' => $row->exento);
         }
         $obj = 'cod_prv_' . $i;
         $edit->{$obj} = new autoUpdateField('cod_prv', $proveed, $proveed);
         $edit->{$obj}->rel_id = 'itppro';
         $edit->{$obj}->ind = $i;
         $obj = 'tipo_doc_' . $i;
         $edit->{$obj} = new inputField('Tipo_doc', $obj);
         $edit->{$obj}->db_name = 'tipo_doc';
         $edit->{$obj}->rel_id = 'itppro';
         $edit->{$obj}->rule = 'max_length[2]';
         $edit->{$obj}->insertValue = $row->tipo_doc;
         $edit->{$obj}->size = 4;
         $edit->{$obj}->maxlength = 2;
         $edit->{$obj}->ind = $i;
         $edit->{$obj}->type = 'inputhidden';
         $obj = 'numero_' . $i;
         $edit->{$obj} = new inputField('Numero', $obj);
         $edit->{$obj}->db_name = 'numero';
         $edit->{$obj}->rel_id = 'itppro';
         $edit->{$obj}->rule = 'max_length[8]';
         $edit->{$obj}->insertValue = $row->numero;
         $edit->{$obj}->size = 10;
         $edit->{$obj}->maxlength = 8;
         $edit->{$obj}->ind = $i;
         $edit->{$obj}->type = 'inputhidden';
         $obj = 'fecha_' . $i;
         $edit->{$obj} = new dateonlyField('Fecha', $obj);
         $edit->{$obj}->db_name = 'fecha';
         $edit->{$obj}->rel_id = 'itppro';
         $edit->{$obj}->rule = 'chfecha';
         $edit->{$obj}->insertValue = $row->fecha;
         $edit->{$obj}->size = 10;
         $edit->{$obj}->maxlength = 8;
         $edit->{$obj}->ind = $i;
         $edit->{$obj}->type = 'inputhidden';
         $obj = 'monto_' . $i;
         $edit->{$obj} = new inputField('Monto', $obj);
         $edit->{$obj}->db_name = 'monto';
         $edit->{$obj}->rel_id = 'itppro';
         $edit->{$obj}->rule = 'max_length[18]|numeric';
         $edit->{$obj}->css_class = 'inputnum';
         $edit->{$obj}->size = 20;
         $edit->{$obj}->insertValue = $row->monto;
         $edit->{$obj}->maxlength = 18;
         $edit->{$obj}->ind = $i;
         $edit->{$obj}->showformat = 'decimal';
         $edit->{$obj}->type = 'inputhidden';
         $obj = 'riva_' . $i;
         $edit->{$obj} = new hiddenField('riva', $obj);
         $edit->{$obj}->db_name = 'riva';
         $edit->{$obj}->rel_id = 'itppro';
         $fecha = str_replace('-', '', $row->fecha);
         if (floatval($row->reteiva) > 0) {
             if ($fecha >= $rivafechai && $fecha <= $rivafechac) {
                 $aplrete = 'S';
             } else {
                 $aplrete = 'V';
             }
         } else {
             $aplrete = 'N';
         }
         $edit->{$obj}->insertValue = $aplrete;
         $edit->{$obj}->ind = $i;
         $edit->{$obj}->showformat = 'decimal';
         $obj = 'saldo_' . $i;
         $edit->{$obj} = new freeField($obj, $obj, nformat($row->saldo));
         $edit->{$obj}->ind = $i;
         $obj = 'vence_' . $i;
         $edit->{$obj} = new freeField($obj, $obj, dbdate_to_human($row->vence));
         $edit->{$obj}->ind = $i;
         $obj = 'abono_' . $i;
         $edit->{$obj} = new inputField('Abono', $obj);
         $edit->{$obj}->db_name = 'abono';
         $edit->{$obj}->rel_id = 'itppro';
         $edit->{$obj}->rule = "max_length[18]|numeric|positive|callback_chabono[{$i}]";
         $edit->{$obj}->css_class = 'inputnum';
         $edit->{$obj}->showformat = 'decimal';
         $edit->{$obj}->autocomplete = false;
         $edit->{$obj}->disable_paste = true;
         $edit->{$obj}->size = 15;
         $edit->{$obj}->maxlength = 18;
         $edit->{$obj}->ind = $i;
         $edit->{$obj}->onfocus = 'itsaldo(this,' . round($row->saldo, 2) . ');';
         $i++;
     }
     //************************************************
     //fin de campos para detalle
     //************************************************
     $edit->tipo_doc = new dropdownField('Tipo doc.', 'tipo_doc');
     if ($i > 0) {
         $edit->tipo_doc->option('AB', 'Abono');
         $edit->tipo_doc->option('NC', 'Nota de credito');
     } else {
         $edit->tipo_doc->insertValue = 'AN';
     }
     $edit->tipo_doc->option('AN', 'Anticipo');
     $edit->tipo_doc->onchange = 'chtipodoc()';
     $edit->tipo_doc->style = 'width:140px;';
     $edit->tipo_doc->rule = 'enum[AB,NC,AN]|required';
     $edit->buttons('add_rel');
     $edit->build();
     if ($edit->on_success()) {
         $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk);
         echo json_encode($rt);
     } else {
         $conten['json_ptasa'] = json_encode($arr_ptasa);
         $conten['json_ivas'] = json_encode($arr_ivas);
         $conten['cana'] = $i;
         $conten['form'] =& $edit;
         $conten['title'] = heading("Pago a proveedor: ({$proveed}) {$sprv_nombre} {$sprv_rif}");
         $conten['por_rete'] = $por_rete;
         $this->load->view('view_pprv', $conten);
     }
 }
Example #28
0
 function dataedit()
 {
     $this->rapyd->load('dataobject', 'datadetails');
     $do = new DataObject('sfac');
     $do->rel_one_to_many('sitems', 'sitems', array('id' => 'id_sfac'));
     //$do->rel_one_to_many('sfpa'  , 'sfpa'  , array('numero','transac'));
     $do->pointer('scli', 'scli.cliente=sfac.cod_cli', 'scli.tipo AS sclitipo', 'left');
     $do->pointer('sprv', 'sprv.proveed=sfac.sprv', 'sprv.nombre AS sprvnombre, sprv.rif AS sprvrif, sprv.direc1 AS sprvdirec', 'left');
     $do->rel_pointer('sitems', 'sinv', 'sitems.codigoa=sinv.codigo', 'sinv.descrip AS sinvdescrip, sinv.base1 AS sinvprecio1, sinv.base2 AS sinvprecio2, sinv.base3 AS sinvprecio3, sinv.base4 AS sinvprecio4, sinv.iva AS sinviva, sinv.peso AS sinvpeso,sinv.tipo AS sinvtipo');
     $edit = new DataDetails('Facturas', $do);
     //$edit->back_url = site_url('ventas/sfacter/filteredgrid');
     $edit->set_rel_title('sitems', 'Producto <#o#>');
     $edit->pre_process('insert', '_pre_insert');
     $edit->pre_process('update', '_pre_update');
     $edit->post_process('insert', '_post_insert');
     $edit->post_process('update', '_post_update');
     $edit->post_process('delete', '_post_delete');
     $edit->sclitipo = new hiddenField('', 'sclitipo');
     $edit->sclitipo->db_name = 'sclitipo';
     $edit->sclitipo->pointer = true;
     $edit->sclitipo->insertValue = 1;
     $edit->sprv = new inputField('C&oacute;digo', 'sprv');
     $edit->sprv->size = 6;
     $edit->sprv->maxlength = 5;
     $edit->sprv->rule = 'existesprv';
     //$edit->sprv->append($boton);
     $edit->sprvnombre = new hiddenField('Nombre', 'sprvnombre');
     $edit->sprvnombre->db_name = 'sprvnombre';
     $edit->sprvnombre->pointer = true;
     $edit->sprvnombre->maxlength = 40;
     $edit->sprvnombre->size = 25;
     $edit->sprvnombre->readonly = true;
     $edit->sprvrif = new hiddenField('RIF', 'sprvrif');
     $edit->sprvrif->db_name = 'sprvrif';
     $edit->sprvrif->pointer = true;
     $edit->sprvrif->autocomplete = false;
     $edit->sprvrif->size = 15;
     $edit->sprvrif->readonly = true;
     $edit->sprvdirec = new hiddenField('Direcci&oacute;n', 'sprvdirec');
     $edit->sprvdirec->db_name = 'sprvdirec';
     $edit->sprvdirec->pointer = true;
     $edit->sprvdirec->size = 40;
     $edit->sprvdirec->readonly = true;
     $edit->fecha = new DateonlyField('Fecha', 'fecha', 'd/m/Y');
     $edit->fecha->insertValue = date('Y-m-d');
     $edit->fecha->rule = 'required';
     $edit->fecha->mode = 'autohide';
     $edit->fecha->size = 10;
     $edit->vence = new DateonlyField('Vencimiento', 'vence', 'd/m/Y');
     $edit->vence->insertValue = date('Y-m-d');
     $edit->vence->rule = 'required';
     $edit->vence->mode = 'autohide';
     $edit->vence->size = 10;
     $edit->tipo_doc = new dropdownField('Documento', 'tipo_doc');
     $edit->tipo_doc->option('F', 'Factura');
     //$edit->tipo_doc->option('D','Devoluci&oacute;n');
     $edit->tipo_doc->style = 'width:200px;';
     $edit->tipo_doc->size = 5;
     $edit->tipo_doc->rule = 'required';
     $edit->vd = new dropdownField('Vendedor', 'vd');
     $edit->vd->options('SELECT vendedor, CONCAT(vendedor,\' \',nombre) nombre FROM vend ORDER BY vendedor');
     $edit->vd->style = 'width:200px;';
     $edit->vd->insertValue = $this->secu->getvendedor();
     $edit->vd->size = 5;
     $edit->numero = new inputField('N&uacute;mero', 'numero');
     $edit->numero->size = 10;
     $edit->numero->mode = 'autohide';
     $edit->numero->maxlength = 8;
     $edit->numero->apply_rules = false;
     //necesario cuando el campo es clave y no se pide al usuario
     $edit->numero->when = array('show', 'modify');
     $edit->peso = new inputField('Peso', 'peso');
     $edit->peso->css_class = 'inputnum';
     $edit->peso->readonly = true;
     $edit->peso->size = 10;
     $edit->cliente = new inputField('Cliente', 'cod_cli');
     $edit->cliente->size = 6;
     $edit->cliente->maxlength = 5;
     $edit->cliente->autocomplete = false;
     $edit->cliente->rule = 'required|existescli';
     //$edit->cliente->append($boton);
     $edit->nombre = new hiddenField('Nombre', 'nombre');
     $edit->nombre->size = 25;
     $edit->nombre->maxlength = 40;
     $edit->nombre->readonly = true;
     $edit->nombre->autocomplete = false;
     $edit->nombre->rule = 'required';
     $edit->rifci = new hiddenField('RIF/CI', 'rifci');
     $edit->rifci->autocomplete = false;
     $edit->rifci->readonly = true;
     $edit->rifci->size = 15;
     $edit->direc = new hiddenField('Direcci&oacute;n', 'direc');
     $edit->direc->readonly = true;
     $edit->direc->size = 40;
     //***********************************
     //  Campos para el detalle 1 sitems
     //***********************************
     $edit->codigoa = new inputField('C&oacute;digo <#o#>', 'codigoa_<#i#>');
     $edit->codigoa->size = 12;
     $edit->codigoa->db_name = 'codigoa';
     $edit->codigoa->rel_id = 'sitems';
     $edit->codigoa->rule = 'required';
     $edit->desca = new inputField('Descripci&oacute;n <#o#>', 'desca_<#i#>');
     $edit->desca->size = 36;
     $edit->desca->db_name = 'desca';
     $edit->desca->maxlength = 50;
     $edit->desca->readonly = true;
     $edit->desca->rel_id = 'sitems';
     $edit->cana = new inputField('Cantidad <#o#>', 'cana_<#i#>');
     $edit->cana->db_name = 'cana';
     $edit->cana->css_class = 'inputnum';
     $edit->cana->rel_id = 'sitems';
     $edit->cana->maxlength = 10;
     $edit->cana->size = 6;
     $edit->cana->rule = 'required|positive';
     $edit->cana->autocomplete = false;
     $edit->cana->onkeyup = 'importe(<#i#>)';
     $edit->preca = new inputField('Precio <#o#>', 'preca_<#i#>');
     $edit->preca->db_name = 'preca';
     $edit->preca->css_class = 'inputnum';
     $edit->preca->rel_id = 'sitems';
     $edit->preca->size = 10;
     $edit->preca->rule = 'required|positive';
     $edit->preca->readonly = true;
     $edit->detalle = new hiddenField('', 'detalle_<#i#>');
     $edit->detalle->db_name = 'detalle';
     $edit->detalle->rel_id = 'sitems';
     $edit->tota = new inputField('Importe <#o#>', 'tota_<#i#>');
     $edit->tota->db_name = 'tota';
     $edit->tota->size = 10;
     $edit->tota->css_class = 'inputnum';
     $edit->tota->rel_id = 'sitems';
     for ($i = 1; $i < 4; $i++) {
         $obj = 'precio' . $i;
         $edit->{$obj} = new hiddenField('Precio <#o#>', $obj . '_<#i#>');
         $edit->{$obj}->db_name = 'sinv' . $obj;
         $edit->{$obj}->rel_id = 'sitems';
         $edit->{$obj}->pointer = true;
     }
     $edit->precio4 = new hiddenField('', 'precio4_<#i#>');
     $edit->precio4->db_name = 'precio4';
     $edit->precio4->rel_id = 'sitems';
     $edit->itiva = new hiddenField('', 'itiva_<#i#>');
     $edit->itiva->db_name = 'iva';
     $edit->itiva->rel_id = 'sitems';
     $edit->sinvpeso = new hiddenField('', 'sinvpeso_<#i#>');
     $edit->sinvpeso->db_name = 'sinvpeso';
     $edit->sinvpeso->rel_id = 'sitems';
     $edit->sinvpeso->pointer = true;
     $edit->sinvtipo = new hiddenField('', 'sinvtipo_<#i#>');
     $edit->sinvtipo->db_name = 'sinvtipo';
     $edit->sinvtipo->rel_id = 'sitems';
     $edit->sinvtipo->pointer = true;
     $edit->ivat = new hiddenField('I.V.A', 'iva');
     $edit->ivat->css_class = 'inputnum';
     $edit->ivat->readonly = true;
     $edit->ivat->size = 10;
     $edit->totals = new hiddenField('Sub-Total', 'totals');
     $edit->totals->css_class = 'inputnum';
     $edit->totals->readonly = true;
     $edit->totals->size = 10;
     $edit->totalg = new hiddenField('Total', 'totalg');
     $edit->totalg->css_class = 'inputnum';
     $edit->totalg->readonly = true;
     $edit->totalg->size = 10;
     $edit->observa = new inputField('Observacion', 'observa');
     $edit->nfiscal = new inputField('No.Fiscal', 'nfiscal');
     $edit->observ1 = new inputField('Observacion', 'observ1');
     $edit->zona = new inputField('Zona', 'zona');
     $edit->ciudad = new inputField('Ciudad', 'ciudad');
     $edit->exento = new inputField('Exento', 'exento');
     $edit->maqfiscal = new inputField('Mq.Fiscal', 'maqfiscal');
     $edit->cajero = new inputField('Cajero', 'cajero');
     $edit->referen = new inputField('Referencia', 'referen');
     $edit->reiva = new inputField('Retencion de IVA', 'reiva');
     $edit->creiva = new inputField('Comprobante', 'creiva');
     $edit->freiva = new inputField('Fecha', 'freiva');
     $edit->ereiva = new inputField('Emision', 'ereiva');
     $edit->usuario = new autoUpdateField('usuario', $this->session->userdata('usuario'), $this->session->userdata('usuario'));
     $edit->estampa = new autoUpdateField('estampa', date('Ymd'), date('Ymd'));
     $edit->hora = new autoUpdateField('hora', date('H:i:s'), date('H:i:s'));
     $edit->buttons('add_rel');
     $edit->build();
     if ($edit->on_success()) {
         $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk);
         echo json_encode($rt);
     } else {
         $conten['form'] =& $edit;
         $this->load->view('view_sfacter', $conten);
     }
     /*
     		//$data['script'] .= $script;
     		//$data['script'] .= $scriptreiva;
     
     		$conten['form']  =&  $edit;
     
     		$data['style']   = style('redmond/jquery-ui.css');
     		$data['style']  .= style('gt_grid.css');
     		$data['style']	.= style("impromptu.css");
     
     		$data['script']  = script('jquery.js');
     		$data['script'] .= script('jquery-ui.js');
     		$data["script"] .= script("jquery-impromptu.js");
     		$data["script"] .= script("plugins/jquery.blockUI.js");
     		$data['script'] .= script('plugins/jquery.numeric.pack.js');
     		$data['script'] .= phpscript('nformat.js');
     		$data['script'] .= script('plugins/jquery.floatnumber.js');
     		$data['script'] .= script("gt_msg_en.js");
     		$data['script'] .= script("gt_grid_all.js");
     		$data['content'] = $this->load->view('view_sfacter', $conten,true);
     		$data['head']    = $this->rapyd->get_head();
     		$data['title']   = heading($this->titp);
     		$this->load->view('view_ventanas', $data);
     */
 }
Example #29
0
 function dataedit()
 {
     $this->rapyd->load('dataobject', 'datadetails');
     $modbus = array('tabla' => 'sinv', 'columnas' => array('codigo' => 'C&oacute;digo', 'descrip' => 'Descripci&oacute;n', 'precio1' => 'Precio 1', 'precio2' => 'Precio 2', 'precio3' => 'Precio 3', 'existen' => 'Existencia'), 'filtro' => array('codigo' => 'C&oacute;digo', 'descrip' => 'Descripci&oacute;n'), 'retornar' => array('codigo' => 'codigoa_<#i#>', 'descrip' => 'desca_<#i#>', 'base1' => 'precio1_<#i#>', 'base2' => 'precio2_<#i#>', 'base3' => 'precio3_<#i#>', 'base4' => 'precio4_<#i#>', 'iva' => 'itiva_<#i#>', 'tipo' => 'sinvtipo_<#i#>', 'peso' => 'sinvpeso_<#i#>', 'base1' => 'itpvp_<#i#>', 'pond' => 'itcosto_<#i#>', 'pond' => 'pond_<#i#>', 'mmargen' => 'mmargen_<#i#>', 'formcal' => 'formcal_<#i#>', 'ultimo' => 'ultimo_<#i#>', 'pm' => 'pm_<#i#>'), 'p_uri' => array(4 => '<#i#>'), 'titulo' => 'Buscar Articulo', 'where' => '`activo` = "S"', 'script' => array('post_modbus_sinv(<#i#>)'));
     $btn = $this->datasis->p_modbus($modbus, '<#i#>');
     $mSCLId = array('tabla' => 'scli', 'columnas' => array('cliente' => 'C&oacute;digo Cliente', 'nombre' => 'Nombre', 'cirepre' => 'Rif/Cedula', 'dire11' => 'Direcci&oacute;n', 'tipo' => 'Tipo'), 'filtro' => array('cliente' => 'C&oacute;digo Cliente', 'nombre' => 'Nombre'), 'retornar' => array('cliente' => 'cod_cli', 'nombre' => 'nombre', 'rifci' => 'rifci', 'dire11' => 'direc', 'tipo' => 'sclitipo', 'mmargen' => 'mmargen'), 'titulo' => 'Buscar Cliente', 'script' => array('post_modbus_scli()'));
     $boton = $this->datasis->modbus($mSCLId);
     $do = new DataObject('pfac');
     $do->rel_one_to_many('itpfac', 'itpfac', array('numero' => 'numa'));
     $do->pointer('scli', 'scli.cliente=pfac.cod_cli', 'scli.tipo AS sclitipo', 'left');
     $do->rel_pointer('itpfac', 'sinv', 'itpfac.codigoa=sinv.codigo', 'sinv.descrip AS sinvdescrip, sinv.base1 AS sinvprecio1, sinv.base2 AS sinvprecio2, sinv.base3 AS sinvprecio3, sinv.base4 AS sinvprecio4, sinv.iva AS sinviva, sinv.peso AS sinvpeso,sinv.tipo AS sinvtipo,sinv.precio1 As sinvprecio1,sinv.pond AS sinvpond,sinv.mmargen as sinvmmargen,sinv.ultimo sinvultimo,sinv.formcal sinvformcal,sinv.pm sinvpm,itpfac.preca precat');
     $edit = new DataDetails('Pedidos', $do);
     $edit->on_save_redirect = false;
     $edit->back_url = site_url('ventas/pfac/filteredgrid');
     $edit->set_rel_title('itpfac', 'Producto <#o#>');
     $edit->pre_process('insert', '_pre_insert');
     $edit->pre_process('update', '_pre_update');
     $edit->pre_process('delete', '_pre_delete');
     $edit->post_process('insert', '_post_insert');
     $edit->post_process('update', '_post_update');
     $edit->post_process('delete', '_post_delete');
     $fenvia = strtotime($edit->get_from_dataobjetct('fenvia'));
     $faplica = strtotime($edit->get_from_dataobjetct('faplica'));
     $hoy = strtotime(date('Y-m-d'));
     $edit->fecha = new DateonlyField('Fecha', 'fecha', 'd/m/Y');
     $edit->fecha->insertValue = date('Y-m-d');
     $edit->fecha->rule = 'required';
     $edit->fecha->mode = 'autohide';
     $edit->fecha->size = 12;
     $edit->fecha->calendar = false;
     $edit->status = new dropdownField('Estatus', 'status');
     $edit->status->options(array('P' => 'Pendiente', 'C' => 'Cerrado', 'A' => 'Internet', 'B' => 'BackOrder', 'X' => 'Anulado', 'T' => 'Temporal', 'V' => 'V.Externo', 'U' => 'V.Externo'));
     $edit->status->style = 'width:200px;';
     $edit->status->when = array('show');
     $edit->status->rule = 'enum[P,I]';
     $edit->vd = new dropdownField('Vendedor', 'vd');
     $edit->vd->options('SELECT vendedor, CONCAT(vendedor,\' \',nombre) nombre FROM vend ORDER BY vendedor');
     $edit->vd->style = 'width:200px;';
     $edit->mmargen = new inputField('mmargen', 'mmargen');
     $edit->numero = new inputField('N&uacute;mero', 'numero');
     $edit->numero->size = 10;
     $edit->numero->mode = 'autohide';
     $edit->numero->maxlength = 8;
     $edit->numero->apply_rules = false;
     //necesario cuando el campo es clave y no se pide al usuario
     $edit->numero->when = array('show', 'modify');
     $edit->peso = new inputField('Peso', 'peso');
     $edit->peso->css_class = 'inputnum';
     $edit->peso->readonly = true;
     $edit->peso->size = 10;
     $edit->peso->type = 'inputhidden';
     $edit->bultos = new inputField('Bultos', 'bultos');
     $edit->bultos->css_class = 'inputnum';
     $edit->bultos->size = 10;
     $edit->cliente = new inputField('Cliente', 'cod_cli');
     $edit->cliente->size = 6;
     $edit->cliente->rule = 'required';
     if (!($faplica < $fenvia)) {
         $edit->cliente->append($boton);
     }
     $edit->cliente->autocomplete = false;
     $edit->nombre = new inputField('Nombre', 'nombre');
     $edit->nombre->size = 30;
     $edit->nombre->maxlength = 40;
     $edit->nombre->rule = 'required';
     $edit->nombre->type = 'inputhidden';
     $edit->rifci = new inputField('RIF/CI', 'rifci');
     $edit->rifci->autocomplete = false;
     $edit->rifci->size = 15;
     $edit->rifci->type = 'inputhidden';
     $edit->direc = new inputField('Direcci&oacute;n', 'direc');
     $edit->direc->size = 40;
     $edit->direc->type = 'inputhidden';
     $edit->observa = new inputField('Observaciones', 'observa');
     $edit->observa->size = 40;
     $edit->observ1 = new inputField('Observaciones', 'observ1');
     $edit->observ1->size = 40;
     // Para saber que precio se le va a dar al cliente
     $edit->sclitipo = new hiddenField('', 'sclitipo');
     $edit->sclitipo->db_name = 'sclitipo';
     $edit->sclitipo->pointer = true;
     $edit->sclitipo->insertValue = 1;
     // Campos para el detalle
     $edit->codigoa = new inputField('C&oacute;digo <#o#>', 'codigoa_<#i#>');
     $edit->codigoa->size = 12;
     $edit->codigoa->db_name = 'codigoa';
     $edit->codigoa->rel_id = 'itpfac';
     $edit->codigoa->rule = 'required|callback_chcodigoa';
     //$edit->codigoa->onkeyup = 'OnEnter(event,<#i#>)';
     if (!($faplica < $fenvia)) {
         //$edit->codigoa->append($btn);
         $edit->desca = new inputField('Descripci&oacute;n <#o#>', 'desca_<#i#>');
     }
     $edit->desca->size = 32;
     $edit->desca->db_name = 'desca';
     $edit->desca->maxlength = 50;
     $edit->desca->readonly = true;
     $edit->desca->rel_id = 'itpfac';
     $edit->desca->type = 'inputhidden';
     $edit->cana = new inputField('Cantidad <#o#>', 'cana_<#i#>');
     $edit->cana->db_name = 'cana';
     $edit->cana->css_class = 'inputnum';
     $edit->cana->rel_id = 'itpfac';
     $edit->cana->maxlength = 10;
     $edit->cana->size = 5;
     $edit->cana->rule = 'required|positive';
     $edit->cana->autocomplete = false;
     $edit->cana->onkeyup = 'importe(<#i#>)';
     $edit->preca = new inputField('Precio <#o#>', 'preca_<#i#>');
     $edit->preca->db_name = 'preca';
     $edit->preca->css_class = 'inputnum';
     $edit->preca->rel_id = 'itpfac';
     $edit->preca->size = 10;
     $edit->preca->rule = 'required|positive|callback_chpreca[<#i#>]';
     $edit->preca->readonly = true;
     $edit->tota = new inputField('importe <#o#>', 'tota_<#i#>');
     $edit->tota->db_name = 'tota';
     $edit->tota->size = 8;
     $edit->tota->css_class = 'inputnum';
     $edit->tota->rel_id = 'itpfac';
     $edit->tota->type = 'inputhidden';
     $edit->producir = new dropdownField('Enviar a Producion', 'producir');
     $edit->producir->rule = 'enum[S,N]';
     $edit->producir->option('S', 'Si');
     $edit->producir->option('N', 'No');
     $edit->producir->title = 'Producir este pedido';
     $edit->producir->style = 'width: 115px;';
     for ($i = 1; $i <= 4; $i++) {
         $obj = 'precio' . $i;
         $edit->{$obj} = new hiddenField('Precio <#o#>', $obj . '_<#i#>');
         $edit->{$obj}->db_name = 'sinv' . $obj;
         $edit->{$obj}->rel_id = 'itpfac';
         $edit->{$obj}->pointer = true;
     }
     $edit->itiva = new hiddenField('', 'itiva_<#i#>');
     $edit->itiva->db_name = 'iva';
     $edit->itiva->rel_id = 'itpfac';
     $edit->itpvp = new hiddenField('', 'itpvp_<#i#>');
     $edit->itpvp->db_name = 'pvp';
     $edit->itpvp->rel_id = 'itpfac';
     $edit->itcosto = new hiddenField('', 'itcosto_<#i#>');
     $edit->itcosto->db_name = 'costo';
     $edit->itcosto->rel_id = 'itpfac';
     $edit->sinvpeso = new hiddenField('', 'sinvpeso_<#i#>');
     $edit->sinvpeso->db_name = 'sinvpeso';
     $edit->sinvpeso->rel_id = 'itpfac';
     $edit->sinvpeso->pointer = true;
     $edit->sinvtipo = new hiddenField('', 'sinvtipo_<#i#>');
     $edit->sinvtipo->db_name = 'sinvtipo';
     $edit->sinvtipo->rel_id = 'itpfac';
     $edit->sinvtipo->pointer = true;
     $edit->itmmargen = new hiddenField('', 'mmargen_<#i#>');
     $edit->itmmargen->db_name = 'sinvmmargen';
     $edit->itmmargen->rel_id = 'itpfac';
     $edit->itmmargen->pointer = true;
     $edit->itpond = new hiddenField('', 'pond_<#i#>');
     $edit->itpond->db_name = 'sinvpond';
     $edit->itpond->rel_id = 'itpfac';
     $edit->itpond->pointer = true;
     $edit->itultimo = new hiddenField('', 'ultimo_<#i#>');
     $edit->itultimo->db_name = 'sinvultimo';
     $edit->itultimo->rel_id = 'itpfac';
     $edit->itultimo->pointer = true;
     $edit->itformcal = new hiddenField('', 'formcal_<#i#>');
     $edit->itformcal->db_name = 'sinvformcal';
     $edit->itformcal->rel_id = 'itpfac';
     $edit->itformcal->pointer = true;
     $edit->itpm = new hiddenField('', 'pm_<#i#>');
     $edit->itpm->db_name = 'sinvpm';
     $edit->itpm->rel_id = 'itpfac';
     $edit->itpm->pointer = true;
     $edit->precat = new hiddenField('', 'precat_<#i#>');
     $edit->precat->db_name = 'precat';
     $edit->precat->rel_id = 'itpfac';
     $edit->precat->pointer = true;
     // fin de campos para detalle
     $edit->ivat = new hiddenField('Impuesto', 'iva');
     $edit->ivat->css_class = 'inputnum';
     $edit->ivat->readonly = true;
     $edit->ivat->size = 10;
     $edit->totals = new hiddenField('Sub-Total', 'totals');
     $edit->totals->css_class = 'inputnum';
     $edit->totals->readonly = true;
     $edit->totals->size = 10;
     $edit->totalg = new hiddenField('Monto Total', 'totalg');
     $edit->totalg->css_class = 'inputnum';
     $edit->totalg->readonly = true;
     $edit->totalg->size = 10;
     $edit->usuario = new autoUpdateField('usuario', $this->secu->usuario(), $this->secu->usuario());
     $edit->estampa = new autoUpdateField('estampa', date('Ymd'), date('Ymd'));
     $edit->hora = new autoUpdateField('hora', date('H:i:s'), date('H:i:s'));
     $control = $this->rapyd->uri->get_edited_id();
     $edit->build();
     if ($edit->on_success()) {
         $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk);
         echo json_encode($rt);
     } else {
         if ($this->genesal) {
             $conten['form'] =& $edit;
             $conten['hoy'] = $hoy;
             $conten['fenvia'] = $fenvia;
             $conten['faplica'] = $faplica;
             $data['content'] = $this->load->view('view_pfac', $conten);
         } else {
             $rt = array('status' => 'B', 'mensaje' => utf8_encode(html_entity_decode(preg_replace('/<[^>]*>/', '', $edit->error_string))), 'pk' => '');
             echo json_encode($rt);
         }
     }
 }