private void calcularPrecioSd(int index, PrecioItemProxy object, String value) {
   if (!FieldVerifier.notIsNumberPositivo(value, "Precio sin descuento")) {
     ContextMantenimientoPrecioItem context = FACTORY.contextMantenimientoPrecioItem();
     FACTORY.initialize(EVENTBUS);
     PrecioItemProxy beanEdit = context.edit(object);
     BigDecimal valprecioSd = BigDecimal.valueOf(Double.parseDouble(value));
     BigDecimal valDescuento = object.getDescuento();
     BigDecimal valPrecioVenta = valprecioSd.subtract(valDescuento);
     BigDecimal valValorVenta =
         valPrecioVenta.divide(
             UISesionImpl.beanInitParam
                 .getIgv()
                 .divide(BigDecimal.valueOf(100), 5, RoundingMode.HALF_UP)
                 .add(BigDecimal.ONE),
             5,
             RoundingMode.HALF_UP);
     BigDecimal igv = valPrecioVenta.subtract(valValorVenta);
     beanEdit.setPrecioSD(valprecioSd);
     beanEdit.setDescuento(valDescuento);
     beanEdit.setPrecioVenta(valPrecioVenta);
     beanEdit.setValorVenta(valValorVenta);
     beanEdit.setIgv(igv);
     // GWT.log("Index Vista: " + index);
     // Window.alert("inicio"+index);
     // index = dataProvider.getList().indexOf(object);
     // Window.alert("fin"+index);
     int indexModel = data.indexOf(object);
     // GWT.log("Index Modelo: " + indexModel);
     data.set(indexModel, beanEdit);
     indexUpdates.add(indexModel);
     context.fire();
     dataProvider.refresh();
     // Update the row and subrow.
     setKeyboardSelectedRow(index, 0, true);
     // Update the column index.
     setKeyboardSelectedColumn(5, true);
   }
 }
 @Override
 public String getValue(PrecioItemProxy object) {
   return object.getDescuento().toString();
 }