Ok thanks for the help, much appreciated by newbie trying to learn
On Tuesday, 3 November 2015 02:09:28 UTC+11, Niphlod wrote:
>
> it works but it's a rather inefficient way. first() and last() will need
> to fetch every record of that table ............
>
> you'd better rewrite
>
> task = db(db.stock_task.id).select().last()
>
> as
>
> task = db(db.stock_task.id>0).select(limitby=(0,1), orderby=~
> db.stock_task.id).first()
>
> etc etc etc
>
> to leverage the backend capabilities instead of fetching the entire table
> and then discarding every row that is not the last one ...
>
> On Saturday, October 31, 2015 at 7:02:03 AM UTC+1, Anthony Smith wrote:
>>
>> Thanks for the input everyone , I did get it to successfully update using
>> the following
>>
>> def create_stock_task():
>> form = SQLFORM (db.stock_task).process()
>> if form.accepted:
>> task = db(db.stock_task.id).select().last()
>> pdays_row = db(db.product.withholding_period>0).select().last()
>> pdays = pdays_row.withholding_period
>> esidays_row = db(db.product.ESI_withholding>0).select().last()
>> esidays = esidays_row.ESI_withholding
>> wdate_row = db(db.stock_task.completed_date>0).select().last()
>> wdate = wdate_row.completed_date
>> fdate = wdate + datetime.timedelta(days + pdays)
>> esidate = wdate + datetime.timedelta(days + esidays)
>> db(db.stock_task.id == task).update(withhold_until_date=fdate)
>> db(db.stock_task.id ==
>> task).update(ESI_withhold_until_date=esidate)
>>
>> On Wednesday, 28 October 2015 18:00:05 UTC+11, Anthony Smith wrote:
>>>
>>> added the following
>>>
>>> def create_stock_task():
>>> form = SQLFORM (db.stock_task).process()
>>> if form.accepted:
>>> task = db(db.stock_task.id).select().first()
>>> pdays_row = db(db.product.withholding_period>0).select().first()
>>> pdays = pdays_row.withholding_period
>>> wdate_row = db(db.stock_task.completed_date>0).select().first()
>>> wdate = wdate_row.completed_date
>>> fdate = wdate + datetime.timedelta(days + pdays)
>>> ndate_row =
>>> db(db.stock_task.withhold_until_date>0).select().first()
>>> ndate = ndate_row.withhold_until_date
>>> db(db.stock_task.id == task).update(ndate=fdate)
>>> session.flash="New Task Added"
>>> redirect(URL('stock_tasks'))
>>> return locals()
>>>
>>>
>>> and now getting <type 'exceptions.KeyError'>('ndate')
>>>
>>> further would be great
>>>
>>> thanks.
>>>
>>> On Monday, 26 October 2015 20:09:15 UTC+11, Niphlod wrote:
>>>>
>>>> an update operation NEEDS an update() call.
>>>>
>>>> given the records you want to update are defined by a condition, namely
>>>>
>>>> db.table.column_1 == somevalue
>>>>
>>>> and the update on column_2 resulting in all those records equal to
>>>> "somevalue_2", you need to write
>>>>
>>>> db(db.table.column_1 == somevalue).update(column_2 = somevalue_2)
>>>>
>>>>
>>>>
>>>> On Saturday, October 24, 2015 at 7:27:20 AM UTC+2, Anthony Smith wrote:
>>>>>
>>>>> what I want to is update the stock_task.withhold until date with the
>>>>> result of db.product.withholding_
>>>>> period (int) + stock_task.completed date (date)
>>>>>
>>>>>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
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 [email protected].
For more options, visit https://groups.google.com/d/optout.