Hello,
I try to import this files in my account journal entry.
NUMJL;DTOPE;NPIEC;INPIE;MONNAIE_IDENT;COURS;NUMCP;VMTDEB;VMTCRE;
PAY;30042016;0000000001;O.D.;EUR;0;633300;0.1;0;
PAY;30042016;0000000001;O.D.;EUR;0;448600;0;0.1;
For this i use this code :
def _import_data(self, data):
move_obj = self.env['account.move']
line_obj = self.env['account.move.line']
move = None
for row in data:
if move and row['NPIEC'] != move.name:
move.post()
move = None
move_vals = {}
line_vals = {}
for col in row:
value = row[col]
if not move:
if col == 'NUMJL':
move_vals['journal_id'] = self._get_record_id(value, 'account.journal')
elif col == 'NUMPIEC':
move_vals['name'] = value
elif col == 'DTOPE':
move_vals['ref'] = 'PAY-%s%s-01' % (value[4:],value[2:4])
move_vals['date'] = self._get_date(value)
if col == 'NUMCP':
line_vals['account_id'] = self._get_record_id(value, 'account.account')
elif col == 'INPIE':
line_vals['name'] = value
elif col == 'VMTDEB':
line_vals['debit'] = self._get_amount(value)
elif col == 'VMTCRE':
line_vals['credit'] = self._get_amount(value)
if not move:
move = move_obj.create(move_vals)
line_vals['move_id'] = move.id
line = line_obj.create(line_vals)
if move:
move.post()
But i've this message warning box in odoo :
"Cannot create unbalanced journal entry."
I've try to change my code like this without success
elif col == 'VMTDEB':
line_vals['debit'] = self._get_amount(value)
if value <> 0:
line_vals['balance'] = self._get_amount(value)
elif col == 'VMTCRE':
line_vals['credit'] = self._get_amount(value)
if value <> 0:
line_vals['balance'] = self._get_amount(value) * -1
Can you help me please ?
I've finaly found the solution.
For line, we need to inhibit some controll by remplacing this
"line = line_obj.create(line_vals)"
by this
"line =line_obj.with_context(check_move_validity=False).create(line_vals)"