resultBlock.processRollback() resultBlock.initQuery() resultBlock.numberEntry = str(searchBlock.numberEntry)+'%' resultBlock.processQuery() from __future__ import nested_scopes global hack import hack for document in filter(lambda x: (not hack.is_true(x._fields['own_document.is_void'])) != (not hack.is_true(x._initialData['own_document.is_void'])), resultDataSource.getRecords()): if document.getField('own_document.own_document_type') == 4: # got to fix the stock if hack.a2f(document.getField('own_document.is_void')): # return the stock f = lambda y: lambda x: x+y else: # remove the stock f = lambda y: lambda x: x-y itemBlock.processRollback() itemBlock.initQuery() itemBlock.documentEntry = str(document.getField('own_document.id')) itemBlock.processQuery() for item in itemDataSource.getRecords(): levelBlock.processRollback() levelBlock.initQuery() levelBlock.productEntry = str( item.getField('_product_store_data.product') ) levelBlock.processQuery() levelBlock.levelEntry.atomicModify(f(hack.a2f(item.getField('own_product_item.qty')))) levelBlock.processRollback() searchBlock.processRollback() itemBlock.processRollback() levelBlock.processRollback() resultBlock.commit() import hack hack.rollback(resultBlock) import hack hack.rollback(resultBlock) exit()