I have a website where I am selling items, what I desperately want to achieve is to be able to show the buyers the remaining number of each item. I have 2 tables, the table that has all the items being sold & has a field amount which is the current number of items in stock and the other table which records sales as customers buy and has a field quantity which is the quantity of items purchased. After a customer has made a purchase I want to be able to subtract quantity from amount and have difference update and be the new value for amount.
I wrote some controller code which is not achieving this, it is instead updating the amount field for all items with the same figure. THE VIEW {{extend 'layout.html'}} <div class="row"> {{for p in products:}} {{if p.product_type=="Earrings":}} <div class="clothes"> <h4 style="color: #ff69b4;">{{=p.name}}</h4> <h7 style="color: #ff69b4;">{{=p.amount}} available in stock</h7> <h5> <span style="color: aqua; font-weight: bold;">{{=MoneyFormat(p.price)}}</span> </h5> <img class="magnify" src="{{=URL('download',args=p.image)}}" height="200px"/> <br /> <span id="{{='item%s'%p.id}}" style="font-weight: bold; color: red;">{{=session.cart.get(p.id,0)}}</span> in cart - {{=A('add to cart',callback=URL('cart_callback',vars=dict(id=p.id,action='add')),target='item%s'%p.id,_class='button pill')}} <br /> <span style="font-size:12px;font-weight: bold; color: #ff69b4;">Click the image to enlarge</span> <br /> </div> {{pass}} {{pass}} </div> THE CART_CALLBACK FUNCTION def cart_callback(): id = int(request.vars.id) if request.vars.action == 'add': session.cart[id]=session.cart.get(id,0)+1 if request.vars.action == 'sub': session.cart[id]=max(0,session.cart.get(id,0)-1) return str(session.cart[id]) MY FUNCTION FOR UPDATING AFTER PURCHASES def index(): if not auth.user: response.flash=T('PLEASE LOG IN FIRST TO BE ABLE TO GET THE MENU AND BUY') products = db(db.product).select(orderby=db.product.name) num=db(db.sale).select() for n in num: quantity=n.quantity if quantity is None: quantity=0 for p in products: amount1=p.amount-quantity db(db.product.amount).update(amount=amount1) return locals() What should happen is that every time a customer buys whatever number of items a new figure showing reduction in number of items should be displayed. Regards; Mostwanted -- 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 web2py+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/web2py/0825a673-1af7-4940-ab0a-8c0d3e2533e4%40googlegroups.com.