P.S.

Instead of

compute=lambda row: double(row['human_cost'])*double(row
['external_cost'])

this should work too

compute=lambda row: row['human_cost']*row['external_cost']

not sure, but let us know.



On Jan 29, 9:03 am, mdipierro <mdipie...@cs.depaul.edu> wrote:
> db.define_table('product cost',
>         Field('quote_products_id', db.quote_products, requires=IS_IN_DB
> (db,
> 'quote_products.id', lambda row: row.product.description')),
>         Field('quote_products_id', db.quote_products, requires=IS_IN_DB
> (db,
> 'quote_products.id', 'quote_products.product')),
>         Field('human_cost', 'double'),
>         Field('external_cost', 'double'),
>         Field('total_cost', 'double', writable=False, compute=lambda
> row: double(row['human_cost'])*double(row['external_cost'])))
>
> On Jan 29, 5:59 am, Leandro - ProfessionalIT <lsever...@gmail.com>
> wrote:
>
> > Friends,
>
> >     I have this situation:
> >     My customers quote products and all products in the quote has a
> > separated cost. The sum of all cost for all products of a quote is the
> > price of product for this customer.
>
> > To map this scenario, I have these tables:
>
> > a) customer:
>
> > db.define_table('customer',
> >         Field('name))
>
> > Example Data:
> > id | name
> > 1  | Google
> > 2  | IBM
> > 3  | Oracle
>
> > b) products:
>
> > db.define_table('products',
> >         Field('internal_code', 'string', length=4),
> >         Field('description', 'string', length=50))
>
> > Example Data:
> > id | internal_code | description
> > 1  | A001               | Website
> > 2  | A002               | CRM
> > 3  | B001               | Mobile App
>
> > c) quotes:
> > db.define_table('quotes',
> >         Field('quote_date', 'date'),
> >         Field('customer_id', db.customers, requires=IS_IN_DB(db,
> > 'customer.id', 'customer.name')))
>
> > Example Data:
> > id | quote_date | customer_id
> > 1  | 2010-10-01 | 1 (Google)
> > 2  | 2010-10-02 | 2 (IBM)
>
> > d) quote_products:
> > db.define_table('quote_products',
> >         Field('quote_id', db.quotes, requires=IS_IN_DB(db, 'quotes.id',
> > 'quotes.id')),
> >         Field('product_id', db.products, requires=IS_IN_DB(db,
> > 'products.id', 'products.description')))
>
> > Example Data:
> > id | quote_id | product_id
> > 1  | 1             | 3 (Mobile APP)
> > 2  | 1             | 2 (CRM)
> > 3  | 1             | 1 (Website)
>
> > e) product cost
> >    id
> >    quote_products_id
> >    human_cost
> >    external_cost
> >    total_cost
>
> > db.define_table('product cost',
> >         # A) this don't runs, generate a error, because the column
> > description can not be accessed.
> >         #Field('quote_products_id', db.quote_products, requires=IS_IN_DB(db,
> > 'quote_products.id', 'quote_products.product.description')),
> >         Field('quote_products_id', db.quote_products, requires=IS_IN_DB(db,
> > 'quote_products.id', 'quote_products.product')),
> >         Field('human_cost', 'double'),
> >         Field('external_cost', 'double'),
> >         Field('total_cost', 'double'))
>
> > Example Data:
> > id | quote_products_id | human_cost | external_cost | total_cost
> > 1  | 1                             | 2.00              |
> > 5.00               | 7.00
> > 2  | 2                             | 1.00
> > |                       | 1
> > 3  | 3                             | 5.00              |
> > 6.00               | 11.00
>
> > PS:
> >     For each item in quote_products table...I can have a record in the
> > table product_cost.
> >     And the SUM() of the all 'total_cost columns' grouped by
> > quote_products_id is the total value for a quote.
> >     For example, the cost of the quote in the date 2010-10-01 (id=01)
> > is $ 19.00
>
> > Then, I have two questions:
> >   1) How to solve the A) question ?
> >   2) How to, automatically, SUM the columns 'human_cost' and
> > 'external_cost' and put this sum in the column total_cost ?
>
> > -- Leandro.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web...@googlegroups.com.
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en.

Reply via email to