I need input on the best way to implement the following...i.e. put into a
transaction
I have records with 0 or more parent, grandparent, etc levels up and need to
ensure that quantities are not exceeded (i.e. qtyfield1-qtyfield2>=0)
If currentrecord qtyfield1-(qtyfield2 + qty)>=0
AND every parent, grandparent, etc qtyfield1-(qtyfield2 + qty)>=0,
then update qtyfield2 with qtyfield2+qty at all levels.
Would putting something like this in the bizObj.validateRecord be
sufficient...?
ret=''
self.tmpCursor= conn.getDaboCursor()
self.tmpCursor.execute('begin transaction')
If self.updateqty2(pk,self.tmpCursor,qty):
self.tmpCursor.execute('commit')
else:
self.tmpCursor.execute('rollback')
ret='No can do'
return(ret)
def updateqty2(self,pk,tmpCursor,qty):
tmpCursor.execute('select fk_parentid, qtyfield1-qtyfield2 as
testqty from public.table where pkid=%s'%(pk,))
if tmpCursor.RowCount==0:
return(True) ## no more parent levels
else:
ds=tmpCursor.getDataSet()
##is there a better way to get the field values?
for parentrecord in ds:
if parentrecord["testqty"]-qty>0
tmpCursor.execute('update public.table set
qtyfield2=qtyfield2+%s where pkid=%s'%(qty,pk))
##is this recursive call ok?
return(self.updateqty2(parentrecord["fk_parentid"],tmpCursor,qty))
else:
return(False)
TIA,
Larry Long
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.5.484 / Virus Database: 269.12.0/957 - Release Date: 08/16/2007
1:46 PM
_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-users
Searchable Archives: http://leafe.com/archives/search/dabo-users
This message: http://leafe.com/archives/byMID/dabo-users/[EMAIL PROTECTED]