From c01dba098a207dea9ba73863dbe2bf4243702d01 Mon Sep 17 00:00:00 2001 From: "Bharat Devnani (OpenERP)" Date: Fri, 20 Jan 2012 15:17:53 +0530 Subject: [PATCH 01/12] [IMP] improved the format of Annual Listing of Vat Subjected Customers wizard of l10n_be module bzr revid: bde@tinyerp.com-20120120094753-2uhoavhyq9tzfgtb --- .../wizard/l10n_be_partner_vat_listing.py | 65 ++++++++++++++----- 1 file changed, 49 insertions(+), 16 deletions(-) diff --git a/addons/l10n_be/wizard/l10n_be_partner_vat_listing.py b/addons/l10n_be/wizard/l10n_be_partner_vat_listing.py index e43dbfecf2b..d6d56ac653c 100644 --- a/addons/l10n_be/wizard/l10n_be_partner_vat_listing.py +++ b/addons/l10n_be/wizard/l10n_be_partner_vat_listing.py @@ -28,6 +28,32 @@ import base64 from tools.translate import _ from osv import fields, osv +class vat_listing_clients(osv.osv_memory): + + _name = 'vat.listing.clients' + _columns = { + 'name': fields.char('Client Name', size=64), + 'vat': fields.char('VAT', size=64), + 'country': fields.char('Country', size=64), + 'amount': fields.float('Amount'), + 'turnover': fields.float('Turnover'), + } + + def name_get(self, cr, uid, ids, context=None): + if not len(ids): + return [] + return [(r['id'], r['name'] or '' + ' - ' + r['vat'] or '') \ + for r in self.read(cr, uid, ids, ['name', 'vat'], + context, load='_classic_write')] + + def name_search(self, cr, uid, name, args=None, operator='ilike', context=None, limit=100): + client = self.search(cr, uid, [('vat', '=', name)]+args, limit=limit, context=context) + if not client: + client = self.search(cr, uid, [('name', 'ilike', '%%%s%%' % name)]+args, limit=limit, context=context) + return self.name_get(cr, uid, client, context=context) + +vat_listing_clients() + class partner_vat_13(osv.osv_memory): """ Vat Listing """ _name = "partner.vat_13" @@ -118,7 +144,7 @@ class partner_vat_list_13(osv.osv_memory): _name = "partner.vat.list_13" _columns = { # TODO the referenced model has been deleted at revno 4672.1.2. - #'partner_ids': fields.many2many('vat.listing.clients', 'vat_partner_rel', 'vat_id', 'partner_id', 'Clients', required=False, help='You can remove clients/partners which you do not want to show in xml file'), + 'partner_ids': fields.many2many('vat.listing.clients', 'vat_partner_rel', 'vat_id', 'partner_id', 'Clients', required=False, help='You can remove clients/partners which you do not want to show in xml file'), 'name': fields.char('File Name', size=32), 'msg': fields.text('File created', size=64, readonly=True), 'file_save' : fields.binary('Save File', readonly=True), @@ -154,16 +180,20 @@ class partner_vat_list_13(osv.osv_memory): cref = SenderId + seq_controlref dnum = cref + seq_declarantnum #obj_year= obj_fyear.browse(cursor, user, context['fyear'], context=context) - street = zip_city = country = '' + street = city = country = '' addr = obj_partner.address_get(cursor, user, [obj_cmpny.partner_id.id], ['invoice']) if addr.get('invoice',False): ads = obj_addr.browse(cursor, user, [addr['invoice']], context=context)[0] + phone = ads.phone or '' + email = ads.email or '' + name = ads.name or '' - zip_city = obj_addr.get_city(cursor, user, ads.id) - if not zip_city: - zip_city = '' + city = obj_addr.get_city(cursor, user, ads.id) + zip = obj_addr.browse(cursor, user, ads.id, context=context).zip + if not city: + city = '' if ads.street: - street = ads.street + street = ads.street + ' ' if ads.street2: street += ads.street2 if ads.country_id: @@ -171,13 +201,11 @@ class partner_vat_list_13(osv.osv_memory): sender_date = time.strftime('%Y-%m-%d') comp_name = obj_cmpny.name - data_file = '\n\n\t\t'+ comp_name +'\n\t\t'+ street +'\n\t\t'+ zip_city +'' - data_file += '\n\t\t'+ country +'\n\t\n' - data_comp = '\n\n\t'+SenderId+'\n\t'+ comp_name +'\n\t'+ street +'\n\t'+ zip_city +'\n\t'+ country +'\n' - data_period = '\n' + context['year'] +'' + data_file += '\n'+comp_name+'\n' + data_comp = '\n\n\t'+SenderId+'\n\t'+ name +'\n\t'+ street +'\n\t'+ zip +'\n\t'+ city +'\n\t'+ country +'\n\t'+ email +'\n\t'+ phone +'\n' + data_period = '\n' + context['year'] +' \n\n' error_message = [] data = self.read(cursor, user, ids)[0] for partner in data['partner_ids']: @@ -193,6 +221,11 @@ class partner_vat_list_13(osv.osv_memory): if len(error_message): return 'Exception : \n' +'-'*50+'\n'+ '\n'.join(error_message) for line in datas: + vat_issued = line['vat'][:2] + if vat_issued == 'BE': + vat_issued = '' + else: + vat_issued = vat_issued if not line: continue if line['turnover'] < context['limit_amount']: @@ -200,10 +233,10 @@ class partner_vat_list_13(osv.osv_memory): seq += 1 sum_tax += line['amount'] sum_turnover += line['turnover'] - data_clientinfo += '\n\n\t\n\t\t'+line['vat'].replace(' ','').upper()[2:] +'\n\t\t' + line['country'] +'\n\t\n\t'+str(int(round(line['amount'] * 100))) +'\n\t'+str(int(round(line['turnover'] * 100))) +'\n' - - data_decl ='\n' - data_file += data_decl + data_comp + str(data_period) + data_clientinfo + '\n\n' + data_clientinfo += '\n\n\t'+line['vat'].replace(' ','').upper()[2:] +'\n\t'+str(int(round(line['turnover'] * 100))) +'\n\t'+str(int(round(line['amount'] * 100))) +'\n' + data_decl ='\n' + data_decl +='\n\t' + data_file += data_decl + data_comp + str(data_period) + data_clientinfo + '\n\t\n\t\n\n' msg = 'Save the File with '".xml"' extension.' file_save = base64.encodestring(data_file.encode('utf8')) self.write(cursor, user, ids, {'file_save':file_save, 'msg':msg, 'name':'vat_list.xml'}, context=context) From ed62109fe260883599b1064fdb82e7139a7880da Mon Sep 17 00:00:00 2001 From: "Bharat Devnani (OpenERP)" Date: Fri, 27 Jan 2012 11:28:00 +0530 Subject: [PATCH 02/12] [IMP] converted the wizard according to new format bzr revid: bde@tinyerp.com-20120127055800-lzeiu5uqvm58lg8w --- .../wizard/l10n_be_partner_vat_listing.py | 41 ++++-- .../wizard/l10n_be_partner_vat_listing.xml | 127 ++++++++++-------- 2 files changed, 97 insertions(+), 71 deletions(-) diff --git a/addons/l10n_be/wizard/l10n_be_partner_vat_listing.py b/addons/l10n_be/wizard/l10n_be_partner_vat_listing.py index d6d56ac653c..516fa7cfb4c 100644 --- a/addons/l10n_be/wizard/l10n_be_partner_vat_listing.py +++ b/addons/l10n_be/wizard/l10n_be_partner_vat_listing.py @@ -148,6 +148,9 @@ class partner_vat_list_13(osv.osv_memory): 'name': fields.char('File Name', size=32), 'msg': fields.text('File created', size=64, readonly=True), 'file_save' : fields.binary('Save File', readonly=True), + 'identification_type': fields.selection([('tin','TIN'), ('nvat','NVAT'), ('other','Other')], 'Identification Type', required=True), + 'other': fields.char('Other Qlf', size=16, help="Description of a Identification Type"), + 'comments': fields.text('Comments'), } def _get_partners(self, cursor, user, context=None): @@ -156,6 +159,7 @@ class partner_vat_list_13(osv.osv_memory): _defaults={ # TODO the referenced model has been deleted at revno 4672.1.2. # 'partner_ids': _get_partners + 'identification_type' : 'tin' } def create_xml(self, cursor, user, ids, context=None): @@ -166,7 +170,7 @@ class partner_vat_list_13(osv.osv_memory): obj_fyear = self.pool.get('account.fiscalyear') obj_addr = self.pool.get('res.partner.address') obj_vat_lclient = self.pool.get('vat.listing.clients') - + seq_controlref = obj_sequence.get(cursor, user, 'controlref') seq_declarantnum = obj_sequence.get(cursor, user, 'declarantnum') obj_cmpny = obj_users.browse(cursor, user, user, context=context).company_id @@ -177,6 +181,7 @@ class partner_vat_list_13(osv.osv_memory): company_vat = company_vat.replace(' ','').upper() SenderId = company_vat[2:] + issued_by = company_vat[:2] cref = SenderId + seq_controlref dnum = cref + seq_declarantnum #obj_year= obj_fyear.browse(cursor, user, context['fyear'], context=context) @@ -189,7 +194,7 @@ class partner_vat_list_13(osv.osv_memory): name = ads.name or '' city = obj_addr.get_city(cursor, user, ads.id) - zip = obj_addr.browse(cursor, user, ads.id, context=context).zip + zip = obj_addr.browse(cursor, user, ads.id, context=context).zip or '' if not city: city = '' if ads.street: @@ -198,16 +203,27 @@ class partner_vat_list_13(osv.osv_memory): street += ads.street2 if ads.country_id: country = ads.country_id.code - + + data = self.read(cursor, user, ids)[0] + other = data['other'] or '' sender_date = time.strftime('%Y-%m-%d') comp_name = obj_cmpny.name - data_file = '\n\n' - data_comp = '\n\n\t'+SenderId+'\n\t'+ name +'\n\t'+ street +'\n\t'+ zip +'\n\t'+ city +'\n\t'+ country +'\n\t'+ email +'\n\t'+ phone +'\n' - data_period = '\n' + context['year'] +' \n\n' + data_file = '\n' + data_file += '\n\t' + data_file += '\n\t\t'+company_vat+'' + data_file += '\n\t\t'+ comp_name +'' + data_file += '\n\t\t'+ street +'' + data_file += '\n\t\t'+ zip +'' + data_file += '\n\t\t'+ city +'' + data_file += '\n\t\t'+ country +'' + data_file += '\n\t\t'+ email +'' + data_file += '\n\t\t'+ phone +'' + data_file += '\n\t' + data_file += '\n\t' + data_comp = '\n\t\t \n\t\t\n\t\t\t'+SenderId+' \n\t\t\t'+ comp_name +' \n\t\t\t'+ street +' \n\t\t\t'+ zip +' \n\t\t\t'+ city +' \n\t\t\t'+ country +' \n\t\t\t'+ email +' \n\t\t\t'+ phone +' \n\t\t' + data_period = '\n\t\t' + context['year'] +'' error_message = [] - data = self.read(cursor, user, ids)[0] + for partner in data['partner_ids']: if isinstance(partner, list) and partner: datas.append(partner[2]) @@ -233,10 +249,9 @@ class partner_vat_list_13(osv.osv_memory): seq += 1 sum_tax += line['amount'] sum_turnover += line['turnover'] - data_clientinfo += '\n\n\t'+line['vat'].replace(' ','').upper()[2:] +'\n\t'+str(int(round(line['turnover'] * 100))) +'\n\t'+str(int(round(line['amount'] * 100))) +'\n' - data_decl ='\n' - data_decl +='\n\t' - data_file += data_decl + data_comp + str(data_period) + data_clientinfo + '\n\t\n\t\n\n' + data_clientinfo += '\n\t\t\n\t\t\t'+line['vat'].replace(' ','').upper()[2:] +'\n\t\t\t'+str(int(round(line['turnover'] * 100))) +'\n\t\t\t'+str(int(round(line['amount'] * 100))) +'\n\t\t' + data_decl ='\n\t' + data_file += data_decl + data_comp + str(data_period) + data_clientinfo + '\n\t\t \n\t\t'+data['comments']+'\n\t\n' msg = 'Save the File with '".xml"' extension.' file_save = base64.encodestring(data_file.encode('utf8')) self.write(cursor, user, ids, {'file_save':file_save, 'msg':msg, 'name':'vat_list.xml'}, context=context) diff --git a/addons/l10n_be/wizard/l10n_be_partner_vat_listing.xml b/addons/l10n_be/wizard/l10n_be_partner_vat_listing.xml index ff05e5ecefb..3b6679b9d61 100644 --- a/addons/l10n_be/wizard/l10n_be_partner_vat_listing.xml +++ b/addons/l10n_be/wizard/l10n_be_partner_vat_listing.xml @@ -1,63 +1,74 @@ - + + + Partner VAT Listing + partner.vat_13 + form + +
+