import codecs
import calendar
import datetime
+import string
import openerp.exceptions
from openerp.osv import osv
}
def _get_header_sage(self, cr, uid, ids, context=None):
- """docstring for _get_header_sage"""
+ """Return header for SAGE export"""
return [_(u'Code du journal'),
_(u'N° de pièce'),
_(u'Date'),
]
def format_row_sage(self, dico, numero_piece, side):
- """docstring for format_row_sage"""
+ """Return a formatted row for SAGE export"""
if side == "D":
debit = dico['debit']
credit = 0
period_obj = self.pool.get('account.period')
journal_obj = self.pool.get('account.journal')
account_obj = self.pool.get('account.account')
+ account_type_obj = self.pool.get('account.account.type')
numero_piece = 0
prev_period = 0
prev_journal = 0
dico['date'] = datetime.datetime(year, month, day).strftime("%d/%m/%Y")
account = account_obj.browse(cr, uid, line[2], context=context)
dico['account_code'] = account.code
- dico['client_name'] = journal.name.split(" - ", 1)[1].upper()
+ preformatted_client_name = journal.name.split(" - ", 1)[1].upper().replace(' ','')
+ for char in string.punctuation:
+ preformatted_client_name = preformatted_client_name.replace(char,'')
+ dico['client_name'] = preformatted_client_name
if account.type in ("receivable", "payable"):
dico['compte_tiers'] = dico['client_name']
else:
dico['analytic_account'] = ""
dico['debit'] = line[3]
dico['credit'] = line[4]
- if dico['debit'] == dico['credit']:
- pass
- else:
+ 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)
+ account_type = account_type_obj.browse(
+ cr, uid, account.user_type.id, context=context
+ )
+ if account_type.code in ("expense","income"):
+ 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)
- if account.type == "other":
- 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