Merge lp:~openerp-dev/openobject-addons/trunk-bug-l10n_be-mra into lp:openobject-addons

Proposed by Mustufa Rangwala (Open ERP)
Status: Merged
Merged at revision: 4631
Proposed branch: lp:~openerp-dev/openobject-addons/trunk-bug-l10n_be-mra
Merge into: lp:openobject-addons
Diff against target: 144 lines (+30/-28)
2 files modified
l10n_be/wizard/l10_be_partner_vat_listing.py (+28/-26)
l10n_be/wizard/l10n_be_account_vat_declaration.py (+2/-2)
To merge this branch: bzr merge lp:~openerp-dev/openobject-addons/trunk-bug-l10n_be-mra
Reviewer Review Type Date Requested Status
qdp (OpenERP) Pending
Review via email: mp+56720@code.launchpad.net

Description of the change

Fixed l10n_be: Annual Listing Of VAT-Subjected Customers and Periodical VAT Declaration wizards.

Related bug: https://bugs.launchpad.net/openobject-addons/+bug/731671

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'l10n_be/wizard/l10_be_partner_vat_listing.py'
2--- l10n_be/wizard/l10_be_partner_vat_listing.py 2011-01-14 00:11:01 +0000
3+++ l10n_be/wizard/l10_be_partner_vat_listing.py 2011-04-07 12:11:33 +0000
4@@ -22,6 +22,8 @@
5 import base64
6
7 from tools.translate import _
8+import tools
9+from decimal import Decimal
10 from osv import fields, osv
11
12 class vat_listing_clients(osv.osv_memory):
13@@ -58,8 +60,8 @@
14 obj_vat_lclient = self.pool.get('vat.listing.clients')
15 obj_model_data = self.pool.get('ir.model.data')
16 data = self.read(cursor, user, ids)[0]
17- period = obj_period.search(cursor, user, [('fiscalyear_id', '=', data['fyear'])], context=context)
18- p_id_list = obj_partner.search(cursor, user, [('vat_subjected', '!=', False)], context=context)
19+ period = obj_period.search(cursor, user, [('fiscalyear_id', '=', data['fyear'][0])], context=context)
20+ p_id_list = obj_partner.search(cursor, user, [('vat_subjected', '!=', False),('customer','=',True)], context=context)
21 if not p_id_list:
22 raise osv.except_osv(_('Data Insufficient!'), _('No partner has a VAT Number asociated with him.'))
23 partners = []
24@@ -72,12 +74,12 @@
25 #(or one of their) default address(es) located in Belgium.
26 go_ahead = False
27 for ads in obj_partner.address:
28- if ads.type == 'default' and (ads.country_id and ads.country_id.code == 'BE'):
29+ if ads.type == 'default' and (ads.country_id and ads.country_id.code == 'BE') and (obj_partner.vat or '').startswith('BE'):
30 go_ahead = True
31 break
32 if not go_ahead:
33 continue
34- cursor.execute('select b.code, sum(credit)-sum(debit) from account_move_line l left join account_account a on (l.account_id=a.id) left join account_account_type b on (a.user_type=b.id) where b.code IN %s and l.partner_id=%s and l.period_id IN %s group by b.code',(('produit','tax'),obj_partner.id,tuple(period),))
35+ cursor.execute('select b.code, sum(credit)-sum(debit) from account_move_line l left join account_account a on (l.account_id=a.id) left join account_account_type b on (a.user_type=b.id) where b.code IN %s and l.partner_id=%s and l.period_id IN %s group by b.code',(('produit', 'tax', 'income'),obj_partner.id,tuple(period),))
36 line_info = cursor.fetchall()
37 if not line_info:
38 continue
39@@ -87,14 +89,14 @@
40 #it seems that this listing is only for belgian customers
41 record['country'] = 'BE'
42
43- record['amount'] = 0
44- record['turnover'] = 0
45+ record['amount'] = Decimal(str(0.0))
46+ record['turnover'] = Decimal(str(0.0))
47 record['name'] = obj_partner.name
48 for item in line_info:
49- if item[0] == 'produit':
50- record['turnover'] += item[1]
51+ if item[0] in ('produit','income'):
52+ record['turnover'] += Decimal(str(item[1]))
53 else:
54- record['amount'] += item[1]
55+ record['amount'] += Decimal(str(item[1]))
56 id_client = obj_vat_lclient.create(cursor, user, record, context=context)
57 partners.append(id_client)
58 records.append(record)
59@@ -155,8 +157,8 @@
60 raise osv.except_osv(_('Data Insufficient'),_('No VAT Number Associated with Main Company!'))
61
62 cref = company_vat + seq_controlref
63- dnum = cref + seq_declarantnum
64- obj_year= obj_fyear.browse(cursor, user, context['fyear'], context=context)
65+ dnum = cref[2:] + (seq_declarantnum or '')
66+ obj_year= obj_fyear.browse(cursor, user, context['fyear'][0], context=context)
67 street = zip_city = country = ''
68 addr = obj_partner.address_get(cursor, user, [obj_cmpny.partner_id.id], ['invoice'])
69 if addr.get('invoice',False):
70@@ -173,16 +175,16 @@
71 country = ads.country_id.code
72
73 sender_date = time.strftime('%Y-%m-%d')
74- comp_name = obj_cmpny.name
75+# comp_name = obj_cmpny.name
76 data_file = '<?xml version="1.0"?>\n<VatList xmlns="http://www.minfin.fgov.be/VatList" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.minfin.fgov.be/VatList VatList.xml" RecipientId="VAT-ADMIN" SenderId="'+ str(company_vat) + '"'
77- data_file +=' ControlRef="'+ cref + '" MandataireId="'+ context['mand_id'] + '" SenderDate="'+ str(sender_date)+ '"'
78+ data_file +=' ControlRef="'+ cref[2:] + '" MandataireId="'+ tools.ustr(context['mand_id']) + '" SenderDate="'+ str(sender_date)+ '"'
79 if ['test_xml']:
80 data_file += ' Test="0"'
81- data_file += ' VersionTech="1.2">'
82- data_file += '\n<AgentRepr DecNumber="1">\n\t<CompanyInfo>\n\t\t<VATNum>'+str(company_vat)+'</VATNum>\n\t\t<Name>'+ comp_name +'</Name>\n\t\t<Street>'+ street +'</Street>\n\t\t<CityAndZipCode>'+ zip_city +'</CityAndZipCode>'
83- data_file += '\n\t\t<Country>'+ country +'</Country>\n\t</CompanyInfo>\n</AgentRepr>'
84- data_comp = '\n<CompanyInfo>\n\t<VATNum>'+str(company_vat)+'</VATNum>\n\t<Name>'+ comp_name +'</Name>\n\t<Street>'+ street +'</Street>\n\t<CityAndZipCode>'+ zip_city +'</CityAndZipCode>\n\t<Country>'+ country +'</Country>\n</CompanyInfo>'
85- data_period = '\n<Period>'+ obj_year.date_stop[:4] +'</Period>'
86+ data_file += ' VersionTech="1.3">'
87+ data_file += '\n<AgentRepr DecNumber="1">\n\t<CompanyInfo>\n\t\t<VATNum>'+str(company_vat)+'</VATNum>\n\t\t<Name>'+ tools.ustr(obj_cmpny.name) +'</Name>\n\t\t<Street>'+ tools.ustr(street) +'</Street>\n\t\t<CityAndZipCode>'+ tools.ustr(zip_city) +'</CityAndZipCode>'
88+ data_file += '\n\t\t<Country>'+ tools.ustr(country) +'</Country>\n\t</CompanyInfo>\n</AgentRepr>'
89+ data_comp = '\n<CompanyInfo>\n\t<VATNum>'+str(company_vat)+'</VATNum>\n\t<Name>'+ tools.ustr(obj_cmpny.name) +'</Name>\n\t<Street>'+ tools.ustr(street) +'</Street>\n\t<CityAndZipCode>'+ tools.ustr(zip_city) +'</CityAndZipCode>\n\t<Country>'+ tools.ustr(country) +'</Country>\n</CompanyInfo>'
90+ data_period = '\n<Period>'+ tools.ustr(obj_year.date_stop[:4]) +'</Period>'
91 error_message = []
92 data = self.read(cursor, user, ids)[0]
93 for partner in data['partner_ids']:
94@@ -193,22 +195,22 @@
95 datas.append(client_data)
96 seq = 0
97 data_clientinfo = ''
98- sum_tax = 0.00
99- sum_turnover = 0.00
100+ sum_tax = Decimal(str(0.00))
101+ sum_turnover=Decimal(str(0.00))
102 if len(error_message):
103 return 'Exception : \n' +'-'*50+'\n'+ '\n'.join(error_message)
104 for line in datas:
105 if not line:
106 continue
107- if line['turnover'] < context['limit_amount']:
108+ if Decimal(str(line['turnover'])) < Decimal(str(context['limit_amount'])):
109 continue
110 seq += 1
111- sum_tax += line['amount']
112- sum_turnover += line['turnover']
113- data_clientinfo += '\n<ClientList SequenceNum="'+str(seq)+'">\n\t<CompanyInfo>\n\t\t<VATNum>'+line['vat'] +'</VATNum>\n\t\t<Country>' + line['country'] +'</Country>\n\t</CompanyInfo>\n\t<Amount>'+str(int(round(line['amount'] * 100))) +'</Amount>\n\t<TurnOver>'+str(int(round(line['turnover'] * 100))) +'</TurnOver>\n</ClientList>'
114+ sum_tax +=Decimal(str(line['amount']))
115+ sum_turnover +=Decimal(str(line['turnover']))
116+ data_clientinfo += '\n<ClientList SequenceNum="'+str(seq)+'">\n\t<CompanyInfo>\n\t\t<VATNum>'+ (line['vat'] or '')[2:] +'</VATNum>\n\t\t<Country>' + tools.ustr(line['country']) +'</Country>\n\t</CompanyInfo>\n\t<Amount>'+ str(int(Decimal(str(line['amount'] * 100)))) +'</Amount>\n\t<TurnOver>'+ str(int(Decimal(str(line['turnover'] * 100)))) +'</TurnOver>\n</ClientList>'
117
118- data_decl ='\n<DeclarantList SequenceNum="1" DeclarantNum="'+ dnum + '" ClientNbr="'+ str(seq) +'" TurnOverSum="'+ str(int(round(sum_turnover * 100))) +'" TaxSum="'+ str(int(round(sum_tax * 100))) +'" />'
119- data_file += data_decl + data_comp + str(data_period) + data_clientinfo + '\n</VatList>'
120+ data_decl ='\n<DeclarantList SequenceNum="1" DeclarantNum="'+ dnum + '" ClientNbr="'+ str(seq) +'" TurnOverSum="'+ str(int(Decimal(str(sum_turnover * 100)))) +'" TaxSum="'+ str(int(Decimal(str(sum_tax * 100)))) +'">'
121+ data_file += tools.ustr(data_decl) + tools.ustr(data_comp) + tools.ustr(data_period) + tools.ustr(data_clientinfo) + '\n</DeclarantList></VatList>'
122 msg = 'Save the File with '".xml"' extension.'
123 file_save = base64.encodestring(data_file.encode('utf8'))
124 self.write(cursor, user, ids, {'file_save':file_save, 'msg':msg, 'name':'vat_list.xml'}, context=context)
125
126=== modified file 'l10n_be/wizard/l10n_be_account_vat_declaration.py'
127--- l10n_be/wizard/l10n_be_account_vat_declaration.py 2011-01-14 00:11:01 +0000
128+++ l10n_be/wizard/l10n_be_account_vat_declaration.py 2011-04-07 12:11:33 +0000
129@@ -71,13 +71,13 @@
130 tax_code_ids = obj_tax_code.search(cr, uid, [], context=context)
131 ctx = context.copy()
132 data = self.read(cr, uid, ids)[0]
133- ctx['period_id'] = data['period_id'] #added context here
134+ ctx['period_id'] = data['period_id'][0] #added context here
135 tax_info = obj_tax_code.read(cr, uid, tax_code_ids, ['code','sum_period'], context=ctx)
136
137 address = post_code = city = country_code = ''
138 city, post_code, address, country_code = self.pool.get('res.company')._get_default_ad(obj_company.partner_id.address)
139
140- account_period = obj_acc_period.browse(cr, uid, data['period_id'], context=context)
141+ account_period = obj_acc_period.browse(cr, uid, data['period_id'][0], context=context)
142
143 send_ref = str(obj_company.partner_id.id) + str(account_period.date_start[5:7]) + str(account_period.date_stop[:4])
144 data_of_file = '<?xml version="1.0"?>\n<VATSENDING xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="MultiDeclarationTVA-NoSignature-16.xml">'

Subscribers

People subscribed via source and target branches

to all changes: