From: Ludovic CHEVALIER Date: Tue, 13 Sep 2022 10:04:17 +0000 (+0200) Subject: [PYTHON] ~permit single selection of perdiod and journal and code tuning X-Git-Url: https://git.cyclocoop.org/?p=burette%2Fetudesetchantiersidf.git;a=commitdiff_plain;h=0d184d202933325b3f4ba1b4901d5c78bebb3f70 [PYTHON] ~permit single selection of perdiod and journal and code tuning --- diff --git a/wizard/account_export_csv.py b/wizard/account_export_csv.py index 2bd51d5..790e793 100644 --- a/wizard/account_export_csv.py +++ b/wizard/account_export_csv.py @@ -90,6 +90,27 @@ class AccountCSVExport(osv.osv_memory): _(u'Crédit'), ] + def format_row_sage(self, dico, numero_piece, side): + """docstring for format_row_sage""" + if side == "D": + debit = dico['debit'] + credit = 0 + if side == "C": + debit = 0 + credit = dico['credit'] + return [ + dico['journal_code'], + numero_piece, + dico['date'], + dico['account_code'], + dico['compte_tiers'], + dico['general_analytic'], + dico['analytic_account'], + dico['client_name'], + debit, + credit, + ] + def _get_rows_sage(self, cr, uid, ids, fiscalyear_id, period_range_ids, @@ -106,7 +127,7 @@ class AccountCSVExport(osv.osv_memory): numero_piece = 0 prev_period = 0 prev_journal = 0 - req = """ + cr.execute(""" select aml.period_id, aml.journal_id as journal_id, @@ -127,95 +148,55 @@ class AccountCSVExport(osv.osv_memory): period_id, journal_id, account_id - """ % { - 'period_ids': tuple(period_range_ids), - 'journal_ids': tuple(journal_ids), - 'account_ids': tuple(account_ids), - } - cr.execute(req) + """, + { + 'period_ids': tuple(period_range_ids), + 'journal_ids': tuple(journal_ids), + 'account_ids': tuple(account_ids), + } + ) res = cr.fetchall() rows = [] for line in res: + dico = {} journal = journal_obj.browse(cr, uid, line[1], context=context) - journal_code = journal.code[0:2] + dico['journal_code'] = journal.code[0:2] period = period_obj.browse(cr, uid, line[0], context=context) if prev_journal != journal or prev_period != period: numero_piece += 1 year = int(period.code[3:7]) month = int(period.code[0:2]) day = calendar.monthrange(year, month)[1] - date = datetime.datetime(year, month, day).strftime("%d/%m/%Y") + dico['date'] = datetime.datetime(year, month, day).strftime("%d/%m/%Y") account = account_obj.browse(cr, uid, line[2], context=context) - account_code = account.code - client_name = journal.name.split(" - ", 1)[1].upper() + dico['account_code'] = account.code + dico['client_name'] = journal.name.split(" - ", 1)[1].upper() if account.type in ("receivable", "payable"): - compte_tiers = client_name + dico['compte_tiers'] = dico['client_name'] else: - compte_tiers = "" - general_analytic = "G" - analytic_account = "" - debit = line[3] - credit = line[4] - if debit == credit: + dico['compte_tiers'] = "" + dico['general_analytic'] = "G" + dico['analytic_account'] = "" + dico['debit'] = line[3] + dico['credit'] = line[4] + if dico['debit'] == dico['credit']: pass else: - if debit: - rows.append([ - journal_code, - numero_piece, - date, - account_code, - compte_tiers, - general_analytic, - analytic_account, - client_name, - debit, - 0, - ]) - if credit: - rows.append([ - journal_code, - numero_piece, - date, - account_code, - compte_tiers, - general_analytic, - analytic_account, - client_name, - 0, - credit, - ]) + if dico['debit']: + row = self.format_row_sage(dico, numero_piece, "D") + rows.append(row) + if dico['credit']: + row = self.format_row_sage(dico, numero_piece, "C") + rows.append(row) if account.type == "other": - general_analytic = "A" - analytic_account = journal.code[3:] - if debit: - rows.append([ - journal_code, - numero_piece, - date, - account_code, - compte_tiers, - general_analytic, - analytic_account, - client_name, - debit, - 0, - ]) - if credit: - rows.append([ - journal_code, - numero_piece, - date, - account_code, - compte_tiers, - general_analytic, - analytic_account, - client_name, - 0, - credit, - ]) - - + dico['general_analytic'] = "A" + dico['analytic_account'] = journal.code[3:] + if dico['debit']: + row = self.format_row_sage(dico, numero_piece, "D") + rows.append(row) + if dico['credit']: + row = self.format_row_sage(dico, numero_piece, "C") + rows.append(row) prev_journal = journal prev_period = period