Hola!
Estoy extendiendo un ml, y tengo un par de dudas.
Necesito q un valor ingresado en un ef se sume a un campo de una tabla q no está en el ml y q verifique q no supere el valor 100. Si es correcto luego deberia actualizar dicho valor.
Hice lo siquiente:
{$this->objeto_js}.controlar__porcentaje = function (fila)
var item_id = this.ef('item_id').ir_a_fila(fila).valor();
var porcentaje_acumulado = this.dep('datos_it').tabla(items)..................
var porcentaje_actual = this.ef('porc_realizado').ir_a_fila(fila).valor();
porcentaje_acumulado = porcentaje_acumulado + porcentaje_actual;
if (porcentaje_acumulado > 100) {
controlar__porcentaje.set_error('El porcentaje acumulado más el actual no deben superar 100%');
return false;
}else{
return true;
}
Dudas:
¿Cómo puedo acceder a un campo determinado de un DT? (aún no lo encuentro en la wiki)
¿Cómo se vincula el nombre de esta extensión con el objeto ML para realizar la llamada?
Gracias
Los objetos de persistencia unicamente se encuentran del lado del servidor, por tanto desde javascript no puedes accederlos directamente. En tu caso lo que haria es realizar una llamada ajax a un servicio que me devuelva el porcentaje acumulado para el item en cuestion.
Supongo que tu pregunta apunta a ver como disparar la validacion del porcentaje. En dicho caso lo que puedes hacer es un metodo como el siguiente:
{$this->objeto_js}.evt__porc_realizado__validar = function (fila)
{
return this.controlar_porcentaje(fila);
}
Si queres podes setearle un error particular al elemento en cuestion, deberias modificar un poco tu metodo:
{$this->objeto_js}.controlar__porcentaje = function (fila)
var item_id = this.ef('item_id').ir_a_fila(fila).valor();
var porcentaje_acumulado = this.dep('datos_it').tabla(items).................. //Hacer llamada ajax para recuperar valor
var porcentaje_actual = this.ef('porc_realizado').ir_a_fila(fila).valor();
porcentaje_acumulado = porcentaje_acumulado + porcentaje_actual;
if (porcentaje_acumulado > 100) {
this.ef('porc_realizado').ir_a_fila(fila).set_error('El porcentaje acumulado más el actual no deben superar 100%');
return false;
}else{
return true;
}
}