def do_generate(self, action): """ Send data to report """ AccountMove = Pool().get('account.move') move_ids = Transaction().context.get('active_ids') moves = [AccountMove(m) for m in move_ids] # Assign Check Number to all moves AccountMove.assign_check_number(moves) data = { 'moves': move_ids, 'journal': self.start.journal.id, } return action, data
def do_pay(self, action): Line = Pool().get('account.move.line') Move = Pool().get('account.move') sort_key = lambda line: (line.party, line.account) # Sorted by party after removing lines without party move_lines = sorted( filter( lambda line: line.party, Line.browse(Transaction().context['active_ids']) ), key=sort_key ) moves = [] for party_account, lines in groupby(move_lines, key=sort_key): lines = list(lines) move = self.get_move(lines, *party_account) move.save() moves.append(move) # Reconcile the lines Line.reconcile( lines + [line for line in move.lines if line.party] ) move_ids = map(int, moves) self.start.moves = moves # Post all the moves Move.post(moves) # Assign Check Number to all moves Move.assign_check_number(moves) data = { 'moves': move_ids, 'journal': self.start.journal.id, } return action, data