def onchange_trx_lines(self, cr, uid, ids, transaction_lines, payment_lines, context=None): amount = 0.0 if transaction_lines: _line_pool = self.pool.get('via.assign.transaction.line') transaction_lines = resolve_o2m_operations(cr, uid, _line_pool, transaction_lines, ['amount_to_use'], context=context) or [] if payment_lines: _line_pool = self.pool.get('via.assign.payment.line') payment_lines = resolve_o2m_operations(cr, uid, _line_pool, payment_lines, context=context) or [] if transaction_lines: amount = transaction_lines[0]['amount_to_use'] for _line in payment_lines: _amount_to_pay = min(_line['amount_to_pay'] or _line['residual'], amount) _line['amount_to_pay'] = _amount_to_pay amount -= _amount_to_pay _line = prep_dict_for_write(cr, uid, _line, context=context) return {'value': { 'payment_lines': payment_lines, 'writeoff_amount': amount, 'with_writeoff': amount and 'with_writeoff' or 'no_writeoff', }} else: for _line in payment_lines: _line['amount_to_pay'] = 0.0 _line = prep_dict_for_write(cr, uid, _line, context=context) return {'value': { 'payment_lines': payment_lines, 'writeoff_amount': 0.0, 'with_writeoff': 'no_writeoff', }} return {}
def onchange_lines(self, cr, uid, ids, bank_lines, assignment_lines, context=None): _bank_sum = 0.0 _assignment_sum = 0.0 _line_pool = self.pool.get('via.account.move.line') bank_lines = resolve_o2m_operations(cr, uid, _line_pool, bank_lines, ['amount_to_use'], context) _line_pool = self.pool.get('via.expense.voucher.line') assignment_lines = resolve_o2m_operations(cr, uid, _line_pool, assignment_lines, ['credit', 'debit'], context) for _line in bank_lines: _bank_sum -= _line.get('amount_to_use', 0.0) for _line in assignment_lines: _assignment_sum += (_line['credit'] - _line['debit']) return { 'value': { 'no_of_lines': len(bank_lines), 'bank_sum': _bank_sum, 'assignment_sum': _assignment_sum, 'with_writeoff': (_bank_sum != _assignment_sum), 'writeoff_amount': _bank_sum - _assignment_sum, } }
def onchange_payment_lines(self, cr, uid, ids, transaction_lines, payment_lines, context=None): # _wo_amount = self._get_writeoff_amount(cr, uid, ids, False, False, context=context) # _wwo = _wo_amount[ids[0]] and 'with_writeoff' or 'no_writeoff' # return {'value': {'writeoff_amount': _wo_amount[ids[0]], 'with_writeoff': _wwo}} amount = 0.0 if transaction_lines: _line_pool = self.pool.get('via.assign.transaction.line') transaction_lines = resolve_o2m_operations(cr, uid, _line_pool, transaction_lines, ['amount_to_use'], context=context) or [] if payment_lines: _line_pool = self.pool.get('via.assign.payment.line') payment_lines = resolve_o2m_operations(cr, uid, _line_pool, payment_lines, context=context) or [] if transaction_lines: amount = transaction_lines[0]['amount_to_use'] for _line in payment_lines: amount -= _line['amount_to_pay'] _line = prep_dict_for_write(cr, uid, _line, context=context) return {'value': { 'writeoff_amount': amount, 'with_writeoff': amount and 'with_writeoff' or 'no_writeoff', }} else: return {'value': { 'writeoff_amount': 0.0, 'with_writeoff': 'no_writeoff', }} return {}
def onchange_lines(self, cr, uid, ids, bank_lines, assignment_lines, context=None): _bank_sum = 0.0 _assignment_sum = 0.0 _line_pool = self.pool.get('via.account.move.line') bank_lines = resolve_o2m_operations(cr, uid, _line_pool, bank_lines, ['amount_to_use'], context) _line_pool = self.pool.get('via.expense.voucher.line') assignment_lines = resolve_o2m_operations(cr, uid, _line_pool, assignment_lines, ['credit', 'debit'], context) for _line in bank_lines: _bank_sum -= _line.get('amount_to_use', 0.0) for _line in assignment_lines: _assignment_sum += (_line['credit'] - _line['debit']) return {'value': { 'no_of_lines': len(bank_lines), 'bank_sum': _bank_sum, 'assignment_sum': _assignment_sum, 'with_writeoff': (_bank_sum != _assignment_sum), 'writeoff_amount': _bank_sum - _assignment_sum, }}