thank you so much for your explaination, antony, i thought it was an 
illegal operation in web2py work flow or programming logic. but some times 
it's wise to decide it whether use redirect or return locals(), or is there 
any other options to do this except using redirect or return locals()?

here is the example that can not use return locals(), because when the 
condition is true, it will return an error:

def bill():
    if not session.order:
        session.flash=T("Order Now!!!")
        redirect(URL('product'))
    for k, v in session.order.items():
        if v==0:
            del session.order[k]
*            redirect(URL('order')) # if use return locals() an error will 
occur*
    import datetime
    import uuid
    invoice_no=str(datetime.date.today())+'-'+str(uuid.uuid4())
    grand_total=sum(db.product(id).unit_price*qty for id, qty in 
session.order.items())
    form=SQLFORM.factory(Field('note', 'text'))
    if form.accepts(request,session):
        for key, value in session.order.items():
            db.sale.insert(invoice_no=invoice_no,
                           product_id=key,
                           quantity=value,
                           unit_price=db.product(key).unit_price,
                           total_price=db.product(key).unit_price*value,
                           grand_total=grand_total,
                           note=form.vars.note)
            db(db.product.id==key).update(quantity=db.product.quantity - 
value)
        session.order.clear()          
        session.flash=T("Thank you for your Order")
        redirect(URL('invoice', args=invoice_no))
    return dict(order=session.order, form=form, grand_total=grand_total)

-- 

--- 
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