_description = "Account Entry"
_order = 'id desc'
+ def account_assert_balanced(self, cr, uid, context=None):
+ cr.execute("""\
+ SELECT move_id
+ FROM account_move_line
+ WHERE state = 'valid'
+ GROUP BY move_id
+ HAVING abs(sum(debit) - sum(credit)) > 0.00001
+ """)
+ assert len(cr.fetchall()) == 0, \
+ "For all Journal Items, the state is valid implies that the sum " \
+ "of credits equals the sum of debits"
+ return True
+
def account_move_prepare(self, cr, uid, journal_id, date=False, ref='', company_id=False, context=None):
'''
Prepares and returns a dictionary of values, ready to be passed to create() based on the parameters received.
return True
_constraints = [
- (_check_same_partner, 'You can only reconcile journal items with the same partner.', ['line_id']),
+ (_check_same_partner, 'You can only reconcile journal items with the same partner.', ['line_id', 'line_partial_ids']),
]
def reconcile_partial_check(self, cr, uid, ids, type='auto', context=None):
data['tax_amount']=quantity
# data['amount'] = quantity
elif tax.type=='code':
- localdict = {'price_unit':cur_price_unit, 'product':product, 'partner':partner}
+ localdict = {'price_unit':cur_price_unit, 'product':product, 'partner':partner, 'quantity': quantity}
exec tax.python_compute in localdict
amount = localdict['result']
data['amount'] = amount