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
>

Reply via email to