Surely a desynchronized sequence... :)
Richard On Mon, Feb 13, 2012 at 7:45 PM, Bruce Wade <bruce.w...@gmail.com> wrote: > Deleting the database looks to have fixed it. > > > On Mon, Feb 13, 2012 at 2:24 PM, Bruce Wade <bruce.w...@gmail.com> wrote: > >> Yeah I don't think that is the issue because it has worked several times >> before, probably a bug in the database I will just rebuild it and try again. >> >> >> On Mon, Feb 13, 2012 at 2:08 PM, Richard Vézina < >> ml.richard.vez...@gmail.com> wrote: >> >>> Try db.commit() between your two insert... Maybe web2py is doing only >>> one commit at the end of your function, but since you do insert by hand >>> instead of let the form insert your maybe have to commit... >>> >>> Richard >>> >>> >>> On Mon, Feb 13, 2012 at 4:51 PM, Bruce Wade <bruce.w...@gmail.com>wrote: >>> >>>> Didn't touch psql. there is 3 records in that table already, so I was >>>> not sure why it would even default to 1. >>>> >>>> Here is the code that processes after the form is accepted. My code >>>> didn't increment anything just standard web2py calls. >>>> >>>> ---- >>>> if ucashmethod.process(formname='ucash').accepted: >>>> """ >>>> 1) Check payment amount >>>> 2) Check owing amount >>>> 3) Make sure payment amount is not greater then owing amount >>>> 4) Make sure member has enough ucash to cover the payment amount >>>> 5) Complete the order >>>> 6) Add to the capital investments >>>> 7) Give all the sponsor bonus >>>> 8) Redirect to thank you page >>>> """ >>>> if float(ucash_available) >= >>>> float(product_details['product_orders'].owing): >>>> print "ucash amount is good" >>>> payment_amount = product_details['product_orders'].owing >>>> ucash_before = distributor.ucash_balance >>>> distributor.ucash_balance -= int(payment_amount) >>>> distributor.ucash_balance_available -= int(payment_amount) >>>> ucash_after = distributor.ucash_balance >>>> >>>> product_details['product_orders'].owing -= >>>> int(payment_amount) >>>> product_details['product_orders'].update_record() >>>> distributor.update_record() >>>> >>>> payment = db.payments.insert( >>>> order_id = product_details['product_orders'].id, >>>> ack = '', >>>> transactionid = '', >>>> paymentstatus = 'Completed', >>>> pendingreason = 'None', >>>> currencycode = 'USD', >>>> taxamt = '0.00', >>>> paymenttype = 'Youcash', >>>> token = 'N/A', >>>> version = 1, >>>> build = 1, >>>> feeamt = '', >>>> reasoncode = 'None', >>>> amt = payment_amount, >>>> correlationid = 'CORRELATIONID', >>>> transactiontype = 'Youcash' >>>> ) >>>> >>>> db.cash_journal.insert( >>>> transaction_type = UCashChangeType.buy_product, >>>> distributor_id = distributor.id, >>>> happen_amount = -int(payment_amount), >>>> ucash_before = ucash_before, >>>> ucash_after = ucash_after, >>>> transaction_id = payment, >>>> operator_id = distributor.id >>>> ) >>>> >>>> if product_details['product_orders'].owing <= 0: >>>> # 1) add product, do bonus calculations >>>> x = distributor_engine.addProduct(distributor, >>>> product_details['products']) >>>> buy_time = >>>> distributor_engine.get_valid_buy_times(distributor) >>>> >>>> if distributor.id == 1: >>>> # place member as root >>>> #distributor_engine.place_member(None, None, None) >>>> >>>> distributor_engine.member_purchase_prod_calc(distributor, >>>> product_details['products']) >>>> elif (db(db.capital_investments.member_id == >>>> distributor.id).count() > 1 and x != -1) or ((buy_time==0 or >>>> buy_time==1) and distributor.upline_id and distributor.sponsor_id): >>>> print "Calculating bonuses" >>>> >>>> >>>> distributor_engine.member_purchase_prod_calc(distributor, >>>> product_details['products']) >>>> else: >>>> session.flash = T("Sorry there is not enough ucash in your >>>> account to complete this purchase!") >>>> redirect(URL('products','payment/%s' % purchase_uuid)) >>>> >>>> #session.flash = 'Congrats for your new product' >>>> redirect(URL('products','index')) >>>> >>>> On Mon, Feb 13, 2012 at 1:46 PM, Ron McOuat <ron.mco...@gmail.com>wrote: >>>> >>>>> It is like the sequence for that primary key has started over with a >>>>> reset to initial value since the key value that causes the exception is 1. >>>>> To do that I would think you would have to tweak the sequence with psql >>>>> while there is data in the table. >>>>> >>>>> Ron >>>>> >>>> >>>> >>>> >>>> -- >>>> -- >>>> Regards, >>>> Bruce Wade >>>> http://ca.linkedin.com/in/brucelwade >>>> http://www.wadecybertech.com >>>> http://www.warplydesigned.com >>>> http://www.fitnessfriendsfinder.com >>>> >>> >>> >> >> >> -- >> -- >> Regards, >> Bruce Wade >> http://ca.linkedin.com/in/brucelwade >> http://www.wadecybertech.com >> http://www.warplydesigned.com >> http://www.fitnessfriendsfinder.com >> > > > > -- > -- > Regards, > Bruce Wade > http://ca.linkedin.com/in/brucelwade > http://www.wadecybertech.com > http://www.warplydesigned.com > http://www.fitnessfriendsfinder.com >