Beispiel #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', '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_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->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->fecha = new dateonlyField('Fecha', 'fecha');
     $edit->fecha->rule = 'required|chfecha';
     $edit->fecha->calendar = false;
     $edit->fecha->insertValue = date('Y-m-d');
     $edit->fecha->size = 12;
     $edit->envia = new dropdownField('Env&iacute;a', 'envia');
     $edit->envia->option('', 'Seleccionar');
     $edit->envia->options('SELECT ubica, CONCAT(ubides," (",ubica,")") FROM caub WHERE invfis<>"S" ORDER BY ubides');
     $edit->envia->rule = 'required|callback_chalma';
     $edit->envia->style = 'width:200px;';
     $edit->recibe = new dropdownField('Recibe', 'recibe');
     $edit->recibe->option('', 'Seleccionar');
     $edit->recibe->options('SELECT ubica, CONCAT(ubides," (",ubica,")") FROM caub WHERE invfis<>"S" ORDER BY ubides');
     $edit->recibe->rule = 'required|callback_chrecibe|callback_chalma';
     $edit->recibe->style = 'width:200px;';
     $edit->observ1 = new inputField('Observaci&oacute;n', 'observ1');
     $edit->observ1->rule = 'max_length[60]|trim';
     $edit->observ1->size = 32;
     $edit->observ1->maxlength = 30;
     $edit->ordp = new inputField('O. Prod', 'ordp');
     $edit->ordp->mode = 'autohide';
     $edit->ordp->size = 10;
     $edit->ordp->when = array('show', 'modify');
     //**************************************************************
     // 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 = 'callback_chrepe|trim|required';
     $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->rel_id = 'itstra';
     $edit->descrip->type = 'inputhidden';
     $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|callback_chcananeg[<#i#>]|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'));
     //$edit->buttons('save', 'undo', 'add','back','add_rel');
     $edit->on_save_redirect = false;
     $edit->build();
     if ($this->genesal) {
         if ($edit->on_success()) {
             $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk);
             echo json_encode($rt);
             return true;
         }
         if ($edit->on_error()) {
             $rt = array('status' => 'B', 'mensaje' => preg_replace('/<[^>]*>/', '', $edit->error_string), 'pk' => $edit->_dataobject->pk);
             echo json_encode($rt);
             return false;
         }
         if ($edit->on_show()) {
             $conten['form'] =& $edit;
             $data['content'] = $this->load->view('view_stra', $conten, false);
         }
     } else {
         if ($edit->on_success()) {
             $rt = 'Transferencia Guardada';
         } elseif ($edit->on_error()) {
             $rt = html_entity_decode(preg_replace('/<[^>]*>/', '', $edit->error_string));
         } else {
             $rt = 'Error en la tranasferencia';
         }
         return $rt;
     }
 }