From f28259f52c760a4558153e17a15f5807eb59afdb Mon Sep 17 00:00:00 2001 From: bch <> Date: Wed, 17 Jan 2007 13:22:19 +0000 Subject: [PATCH] DTA : Debug \nInvoice: some readonly added bzr revid: bch-233fd760b864d17d118948dc086f07b0af202df1 --- addons/account/account.py | 2 +- addons/account/invoice.py | 9 +++++---- addons/l10n_ch/dta/dta_view.xml | 16 ++++++++++++++-- addons/l10n_ch/dta/dta_wizard.py | 29 +++++++++++++++-------------- addons/l10n_ch/dta/invoice.py | 11 +++++++++++ addons/l10n_ch/partner.py | 2 +- addons/l10n_ch/v11/v11_view.xml | 2 +- 7 files changed, 48 insertions(+), 23 deletions(-) diff --git a/addons/account/account.py b/addons/account/account.py index f1f80316814..98f4e74ae78 100644 --- a/addons/account/account.py +++ b/addons/account/account.py @@ -332,7 +332,7 @@ class account_bank_account(osv.osv): _columns = { 'name': fields.char('Bank Account', size=64, required=True), 'code': fields.char('Code', size=6), - 'iban': fields.char('IBAN', size=24), + 'iban': fields.char('IBAN', size=21), 'swift': fields.char('Swift Code', size=24), 'currency_id': fields.many2one('res.currency', 'Currency', required=True), 'journal_id': fields.many2one('account.journal', 'Journal', required=True), diff --git a/addons/account/invoice.py b/addons/account/invoice.py index 07c59f51bd8..2184ff03a99 100644 --- a/addons/account/invoice.py +++ b/addons/account/invoice.py @@ -83,7 +83,7 @@ class account_invoice(osv.osv): _description = 'Invoice' _order = "number" _columns = { - 'name': fields.char('Invoice Description', size=64, required=True, select=True), + 'name': fields.char('Invoice Description', size=64, required=True, select=True,readonly=True, states={'draft':[('readonly',False)]}), 'origin': fields.char('Origin', size=64), 'type': fields.selection([ ('out_invoice','Customer Invoice'), @@ -116,7 +116,7 @@ class account_invoice(osv.osv): 'partner_contact': fields.char('Partner Contact', size=64), 'partner_ref': fields.char('Partner Reference', size=64), - 'payment_term': fields.many2one('account.payment.term', 'Payment Term'), + 'payment_term': fields.many2one('account.payment.term', 'Payment Term',readonly=True, states={'draft':[('readonly',False)]} ), 'period_id': fields.many2one('account.period', 'Force Period', help="Keep empty to use the period of the validation date."), @@ -128,8 +128,9 @@ class account_invoice(osv.osv): 'amount_untaxed': fields.function(_amount_untaxed, method=True, digits=(16,2),string='Untaxed Amount'), 'amount_tax': fields.function(_amount_tax, method=True, string='Tax'), 'amount_total': fields.function(_amount_total, method=True, string='Total'), - 'currency_id': fields.many2one('res.currency', 'Currency', required=True), - 'journal_id': fields.many2one('account.journal', 'Journal', required=True, relate=True), + 'currency_id': fields.many2one('res.currency', 'Currency', required=True, readonly=True, states={'draft':[('readonly',False)]}), + 'journal_id': fields.many2one('account.journal', 'Journal', required=True, relate=True,readonly=True, + states={'draft':[('readonly',False)]}), } _defaults = { 'type': lambda *a: 'out_invoice', diff --git a/addons/l10n_ch/dta/dta_view.xml b/addons/l10n_ch/dta/dta_view.xml index d380dc7a51a..6bd6a2f5f5f 100644 --- a/addons/l10n_ch/dta/dta_view.xml +++ b/addons/l10n_ch/dta/dta_view.xml @@ -28,7 +28,6 @@ - @@ -41,9 +40,22 @@ + + + + account.invoice.form + account.invoice + form + + + + + + + @@ -116,7 +128,7 @@ tree,form - + diff --git a/addons/l10n_ch/dta/dta_wizard.py b/addons/l10n_ch/dta/dta_wizard.py index 1dc07a40cf4..be8af3f2ca3 100644 --- a/addons/l10n_ch/dta/dta_wizard.py +++ b/addons/l10n_ch/dta/dta_wizard.py @@ -227,7 +227,6 @@ class record: class record_gt826(record): # -> bvr def init_local_context(self): - print "gt826" self.fields=[ ('seg_num1',2), #header @@ -244,7 +243,7 @@ class record_gt826(record): ('comp_city',10),('comp_country',20),('padding',46), #seg3 ('seg_num3',2),('partner_bvr',12),#numero d'adherent bvr - ('padding',80),('invoice_reference',27),#communication structuree + ('padding',80),('invoice_bvr_num',27),#communication structuree ('padding',2),#cle de controle ('padding',5) ] @@ -254,13 +253,13 @@ class record_gt826(record): 'partner_bank_clearing':'','partner_cpt_benef':'', 'genre_trans':'826', 'conv_cours':'', 'option_id_bank':'D', + 'partner_bvr' : '/C/'+ self.global_values['partner_bvr'], 'ref2':'','ref3':'', 'format':'0'}) class record_gt827(record): # -> interne suisse def init_local_context(self): - print "gt826" self.fields=[ ('seg_num1',2), #header @@ -280,7 +279,7 @@ class record_gt827(record): ('comp_name',24),('comp_street',24),('comp_zip',12), ('comp_city',12),('comp_country',24), #seg4 - ('seg_num4',2),('invoice_reference',28),('padding',98), + ('seg_num4',2),('partner_comment',28),('padding',98), #seg5 #('padding',128) ] @@ -299,7 +298,6 @@ class record_gt827(record): class record_gt836(record): # -> iban def init_local_context(self): - print "gt836" self.fields=[ ('seg_num1',2), #header @@ -321,14 +319,14 @@ class record_gt836(record): ('seg_num4',2),('partner_name',35),('partner_street',35),('partner_zip',10),('partner_city',15), ('partner_country',10),('padding',21), #seg5 - ('seg_num5',2),('option_motif',1),('ref1',35),('ref2',35),('ref3',35),('format',1),('padding',19) + ('seg_num5',2),('option_motif',1),('invoice_reference',105),('format',1),('padding',19) ] self.pre.update( { 'partner_bank_clearing':'','partner_cpt_benef':'', 'type_paiement':'1','genre_trans':'836', 'conv_cours':'', - 'ref1': self.global_values['invoice_reference'], + 'invoice_reference': self.global_values['invoice_reference'] or self.global_values['partner_comment'], 'ref2':'','ref3':'', 'format':'0' }) @@ -338,7 +336,6 @@ class record_gt836(record): class record_gt890(record): # -> total def init_local_context(self): - print "gt890" self.fields=[ ('seg_num1',2), #header @@ -359,7 +356,8 @@ def c_ljust(s, size): """ s= s or '' if len(s) > size: - raise Exception("Too long data ! %s exceed %d character." % (s, size)) + s= s[:len(a)] + print "Too long data ! %s exceed %d character." % (s, size) return s.decode('utf-8').encode('latin1','replace').ljust(size) @@ -465,6 +463,8 @@ def _create_dta(self,cr,uid,data,context): v['partner_bank_iban']= i.partner_bank_id.iban or False v['partner_bank_number']= i.partner_bank_id.number or False + v['partner_bank_number']= v['partner_bank_number'].replace('.','').replace('-','') + v['partner_bvr']= i.partner_bank_id.bvr_number or '' if v['partner_bvr']: @@ -480,6 +480,8 @@ def _create_dta(self,cr,uid,data,context): v['partner_bank_country']= i.partner_bank_id.country_id and i.partner_bank_id.country_id.name or '' v['partner_bank_code']= i.partner_bank_id.bank_code or False v['invoice_reference']= i.reference + v['invoice_bvr_num']= i.bvr_ref_num + v['partner_comment']= i.partner_comment v['partner_name'] = i.partner_id and i.partner_id.name or '' if i.partner_id and i.partner_id.address and i.partner_id.address[0]: @@ -508,7 +510,6 @@ def _create_dta(self,cr,uid,data,context): # si payment structure -> bvr (826) # si non -> (827) - elec_pay = i.partner_bank_id.type_id.elec_pay if not elec_pay : log= log +'\nBank type does not support DTA. (invoice '+ invoice_number +')' @@ -540,14 +541,14 @@ def _create_dta(self,cr,uid,data,context): elif elec_pay == 'bvrbank' or elec_pay == 'bvrpost': - if not v['invoice_reference']: - log= log +'\nYou must provide an invoice reference. (invoice '+ invoice_number +')' - + if not v['invoice_bvr_num']: + log= log +'\nYou must provide an Bvr reference number. (invoice '+ invoice_number +')' + continue if not v['partner_bvr']: log= log +'\nYou must provide a BVR reference number in the partner bank. (invoice '+ invoice_number +')' continue record_type = record_gt826 - v['partner_bvr'] = '/C/'+v['partner_bvr'] + elif elec_pay == 'bvbank': diff --git a/addons/l10n_ch/dta/invoice.py b/addons/l10n_ch/dta/invoice.py index ea27bb6c389..324f7e39924 100644 --- a/addons/l10n_ch/dta/invoice.py +++ b/addons/l10n_ch/dta/invoice.py @@ -34,17 +34,28 @@ from osv import fields, osv import ir class account_invoice(osv.osv): + _inherit = "account.invoice" _columns = { 'dta_state': fields.selection([('none','None'), ('2bp','To be paid'), ('paid','Paid')], 'DTA state',readonly=True,select=True, states={'draft':[('readonly',False)]}), + 'bvr_ref_num': fields.char('Bvr Reference Number', size=64,readonly=True, states={'draft':[('readonly',False)]}), + 'partner_comment':fields.char('Partner Comment', size=112, readonly=True, states={'draft':[('readonly',False)]}), } _defaults = { 'dta_state': lambda *a: 'none', } + + def _check_bvr(self, cr, uid, ids): + return True + + _constraints = [ + (_check_bvr, 'Error ! Invalid Bvr Number.', ['bvr_ref_num']) + ] + account_invoice() diff --git a/addons/l10n_ch/partner.py b/addons/l10n_ch/partner.py index 5ece8d17d37..768d520866b 100644 --- a/addons/l10n_ch/partner.py +++ b/addons/l10n_ch/partner.py @@ -34,7 +34,7 @@ from osv import fields, osv class res_partner_bank(osv.osv): _inherit = "res.partner.bank" _columns = { - 'bvr_number': fields.char('BVR Reference Number', size=9), + 'bvr_number': fields.char('BVR Reference Number', size=11), 'bank_code': fields.char('Bank Code', size=64, help='Swift or BIC number'), 'bank_clearing': fields.char('Bank Clearing Number', size=64), } diff --git a/addons/l10n_ch/v11/v11_view.xml b/addons/l10n_ch/v11/v11_view.xml index e96b233346f..0f198791a79 100644 --- a/addons/l10n_ch/v11/v11_view.xml +++ b/addons/l10n_ch/v11/v11_view.xml @@ -42,7 +42,7 @@ form,tree - +