function dataedit() { $this->rapyd->load('dataobject', 'datadetails'); $modbus = array('tabla' => 'sinv', 'columnas' => array('codigo' => 'Código', 'descrip' => 'Descripción', 'precio1' => 'Precio 1', 'precio2' => 'Precio 2', 'precio3' => 'Precio 3', 'existen' => 'Existencia', 'peso' => 'Peso'), 'filtro' => array('codigo' => 'Código', 'descrip' => 'Descripció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ú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í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ó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ó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ó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; } }