Hi,
I have added computed fields to db model, but they are not computed on 
insert. Code is supplied below.
Thanks

db.define_table('t_invoices',
    Field <http://127.0.0.1:8000/examples/global/vars/Field>('f_customer', 
type='reference t_customers',
          label=T <http://127.0.0.1:8000/examples/global/vars/T>('Customer')),
    Field <http://127.0.0.1:8000/examples/global/vars/Field>('f_date', 
type='date',
          label=T <http://127.0.0.1:8000/examples/global/vars/T>('Date')),
    Field <http://127.0.0.1:8000/examples/global/vars/Field>('f_invoice_no', 
type='string',
          label=T <http://127.0.0.1:8000/examples/global/vars/T>('Invoice No')),
    Field <http://127.0.0.1:8000/examples/global/vars/Field>('f_net', 
type='string',
          label=T <http://127.0.0.1:8000/examples/global/vars/T>('Net')),
    Field <http://127.0.0.1:8000/examples/global/vars/Field>('f_tax', 
type='string',
          label=T <http://127.0.0.1:8000/examples/global/vars/T>('Tax')),
    Field <http://127.0.0.1:8000/examples/global/vars/Field>('f_total', 
type='string',
          label=T <http://127.0.0.1:8000/examples/global/vars/T>('Total')),
    auth.signature,
    format='%(f_customer)s %(f_date)d',
    migrate=settings.migrate)

db.define_table('t_invoices_archive',db.t_invoices,Field 
<http://127.0.0.1:8000/examples/global/vars/Field>('current_record','reference 
t_invoices',readable=False,writable=False))

########################################
db.define_table('t_invoice_details',
    Field <http://127.0.0.1:8000/examples/global/vars/Field>('f_invoice', 
type='reference t_invoices',requires=IS_NOT_EMPTY 
<http://127.0.0.1:8000/examples/global/vars/IS_NOT_EMPTY>(),readable=False,writable=False,
          label=T <http://127.0.0.1:8000/examples/global/vars/T>('Invoice')),
    Field <http://127.0.0.1:8000/examples/global/vars/Field>('f_description', 
type='string',
          label=T 
<http://127.0.0.1:8000/examples/global/vars/T>('Description')),
    Field <http://127.0.0.1:8000/examples/global/vars/Field>('f_quantity', 
type='integer',
          label=T <http://127.0.0.1:8000/examples/global/vars/T>('Quantity')),
    Field <http://127.0.0.1:8000/examples/global/vars/Field>('f_price', 
type='double',
          label=T <http://127.0.0.1:8000/examples/global/vars/T>('Price')),
    Field <http://127.0.0.1:8000/examples/global/vars/Field>('f_total', 
type='double',compute=lambda r: r['f_quantity']*r['f_price'],writable=False,
          label=T <http://127.0.0.1:8000/examples/global/vars/T>('Total')),
    Field 
<http://127.0.0.1:8000/examples/global/vars/Field>('f_tax_percentage', 
type='integer',
          label=T <http://127.0.0.1:8000/examples/global/vars/T>('Tax 
Percentage')),
    Field <http://127.0.0.1:8000/examples/global/vars/Field>('f_tax', 
type='double',compute=lambda r: 
r['f_total']*r['f_tax_percentage']/100,writable=False,
          label=T <http://127.0.0.1:8000/examples/global/vars/T>('Tax')),
    Field <http://127.0.0.1:8000/examples/global/vars/Field>('f_total_w_tax', 
type='double',compute=lambda r: r['f_total']+r['f_tax'],writable=False,
          label=T <http://127.0.0.1:8000/examples/global/vars/T>('Total W 
Tax')),
    auth.signature,
    format='%(f_invoice)s',
    migrate=settings.migrate)
    
db.t_invoice_details.f_tax_percentage.requires=IS_IN_SET 
<http://127.0.0.1:8000/examples/global/vars/IS_IN_SET>(['1','8','18'])
db.define_table('t_invoice_details_archive',db.t_invoice_details,Field 
<http://127.0.0.1:8000/examples/global/vars/Field>('current_record','reference 
t_invoice_details',readable=False,writable=False))



def newInvoice():
    form=SQLFORM.factory(db.t_invoices,db.t_invoice_details)
    if form.process().accepted:
        id=db.t_invoices.insert(**db.t_invoices._filter_fields(form.vars))
        form.vars.f_invoice=id
        
id=db.t_invoice_details.insert(**db.t_invoice_details._filter_fields(form.vars))
        response.flash=T('Thanks for filling out the form')
    return dict(form=form)

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to