From c01dba098a207dea9ba73863dbe2bf4243702d01 Mon Sep 17 00:00:00 2001 From: "Bharat Devnani (OpenERP)" Date: Fri, 20 Jan 2012 15:17:53 +0530 Subject: [PATCH] [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)