On Viernes, 19 de Marzo de 2010 21:45:00 Pedro G. escribió:
> Thanks a lot, Sergio
>
> I'm almost there, the problem is that I'm still facing is the
> following one: I want to update the net_amount column in my model
> whenever the amount column or the vat column changes in the following
> way: net_amount = amount * (1.0 + vat/100.0). The amount column is
> formatted in the form as a currency.
>
> To this purpose I overrode render_field.js.rjs as you said (with minor
> modifications):
>
> page << render(:super)
> net_amount_id =
> active_scaffold_input_options(active_scaffold_config.columns[:net_amount],
> params[:scope])[:id]
> amount_id =
> active_scaffold_input_options(active_scaffold_config.columns[:amount],
> params[:scope])[:id]
> vat_id =
> active_scaffold_input_options(active_scaffold_config.columns[:vat],
> params[:scope])[:id]
> page << "$('#{net_amount_id}').value =
> $F('#{amount_id}').gsub(',','.').gsub('€','') * (1.0 + $F('#{vat_id}')/
> 100.0)" + ' €'"
>
> I can't use @record.amount since this can be called when the vat
> column is modified, and then I don't have that value. The gsubs in the
> last line are hideous, but that gets rid of the separator and the
> currency symbol in amount (please let me know if you can think of a
> more elegant way of doing this)
>
> The problem is that I can't figure out how to display back that value
> in the form as a currency (in Spanish format, that is 1,23 €) in a
> similar fashion to what number_to_currency would display.

If you don't need to change HTML, it would be better to use only JS without 
AJAX request, without using update_column. Make a JS function and bind 
onchange event of those fields using JS or setting onchange in 
config.columns[:column_name].options.

>
>
> On Mar 19, 10:30 am, "Sergio Cambra .:: entreCables S.L. ::."
>
> <[email protected]> wrote:
> > On Viernes, 19 de Marzo de 2010 01:13:30 Pedro G. escribió:
> > > Hi,
> > >
> > > I have the following situation that I've been unable to solve
> > > succesfully: in one of the columns of my controller I have defined the
> > > following
> > >     config.columns[:units].options = {:update_column => :amount}
> > >
> > > Basically I want to update the value of the amount column based on the
> > > values of the units column plus another column of the record. However,
> > > in the after_render_field(record, column) method I don't have access
> > > to other fields in record apart from units.
> > >
> > > ¿Is there any way to overcome this?
> > > Thanks in advance
> > > Pedro
> >
> > If you want to use the value in the form, you can override
> > render_field.js.rjs in your controller views directory as:
> >
> > page << render(:super)
> > amount_id = active_scaffold_input_options(:amount, params[:scope])[:id]
> > field_id = active_scaffold_input_options(column, params[:scope])[:id]
> > page << "$('#{amount_id}').value = $F('#{field_id}') +
> > '[email protected]}'
> >
> > --
> > Sergio Cambra .:: entreCables S.L. ::.
> > Mariana Pineda 23, 50.018 Zaragoza
> > T) 902 021 404 F) 976 52 98 07 E) [email protected]

-- 
Sergio Cambra .:: entreCables S.L. ::.
Mariana Pineda 23, 50.018 Zaragoza
T) 902 021 404 F) 976 52 98 07 E) [email protected]

-- 
You received this message because you are subscribed to the Google Groups 
"ActiveScaffold : Ruby on Rails plugin" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/activescaffold?hl=en.

Reply via email to