Merge lp:~openerp-dev/openobject-addons/6.0-opw-50926-vat_declaration-mtr into lp:openobject-addons/6.0

Proposed by Meera Trambadia (OpenERP)
Status: Needs review
Proposed branch: lp:~openerp-dev/openobject-addons/6.0-opw-50926-vat_declaration-mtr
Merge into: lp:openobject-addons/6.0
Diff against target: 308 lines (+150/-68)
3 files modified
l10n_be/company.py (+5/-2)
l10n_be/wizard/l10n_be_account_vat_declaration.py (+100/-23)
l10n_be/wizard/l10n_be_account_vat_declaration_view.xml (+45/-43)
To merge this branch: bzr merge lp:~openerp-dev/openobject-addons/6.0-opw-50926-vat_declaration-mtr
Reviewer Review Type Date Requested Status
Naresh(OpenERP) Pending
Review via email: mp+91239@code.launchpad.net

Description of the change

l10n_be:-Improved the 'Peridical VAT declaration' wizard as per the new VAT format

To post a comment you must log in.
5031. By Olivier Laurent (Open ERP)

[FIX] opw 50985

5032. By Olivier Laurent (Open ERP)

[FIX] opw 50985

5033. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5034. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5035. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5036. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5037. By tfr (Openerp)

[FIX] use employee id to lookup into the user table, now use the corresponding user_id

5038. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5040. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5041. By nel

[MERGE]

5042. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5043. By Stephane Wirtel (OpenERP)

[FIX] web_uservoice: Fix the reference about the translation

5044. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5045. By Olivier Laurent (Open ERP)

[FIX] opw 382100

5046. By tfr (Openerp)

[MERGE] opw 18200 : don't erase unit price when erasing the product in invoice line

5047. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5048. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5049. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5050. By tfr (Openerp)

[FIX] OPW 17161 : don't use the same relational field for two different osv_memory, avoid to mess up 'foreign key'

5051. By tfr (Openerp)

[REVERT] 5050

5052. By tfr (Openerp)

[FIX] mess up relation filled in picking wizard + solve key error 'wizard_pick_id', this error is due to the implementation of the read for one2many field in osv_memory, if a field in osv_memory is never written, the key is not present in the dict (representation of osv_memory) then we get the error key Error,
the workarount is defining default value for missing key (fields) in the osv_memory during the read, the correct fix should be done in the orm

5053. By nel

[MERGE]

5054. By nel

[MERGE]

5055. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5056. By Olivier Laurent (Open ERP)

[FIX] fix needed for opw 51206. Is linked to a server fix for csv import

5057. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5058. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5059. By nel

[MERGE]

5060. By Xavier ALT

[MERGE] OPW 18497

5061. By Xavier ALT

[MERGE] OPW 383649

5062. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5063. By Olivier Laurent (Open ERP)

[FIX] revert revision 5007 (for opw 57602): caused a crash (bool object has not attribute product_id)

5064. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5065. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5066. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5067. By nel

[MERGE]

5068. By nel

[MERGE]

5069. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5070. By Kirti Savalia(OpenERP)

[FIX]:when delete the analytic account at that time raise the warning message

5071. By Kirti Savalia(OpenERP)

[IMP]:use the appropriate variable name

5072. By Jean-Christophe VASSORT

[MERGE] opw 383657: hr_expense: When unit quantity or factor value is zero > get divide by zero error

5073. By Xavier ALT

[MERGE] bug 928899

5074. By Xavier ALT

[MERGE] OPW 381792

5075. By Xavier ALT

[MERGE] OPW 382010 (1st part)

5076. By Xavier ALT

[MERGE] OPW 381927

5077. By Xavier ALT

[MERGE] OPW 50766

5078. By Xavier ALT

[MERGE] OPW 50804

5079. By Xavier ALT

[MERGE] OPW 18373

5081. By Xavier ALT

[FIX] hr_holidays borken test case on report generation

5082. By Xavier ALT

[MERGE] OPW 52676

5083. By Xavier ALT

[MERGE] OPW 51172

5084. By Jean-Christophe VASSORT

[MERGE] OPW 20038 account:[FIX] : Bold text in Balance Sheet Report

In Balance Sheet report of Account module, The Font display in Bold and Normal mode seems to be incorrect in both landscape and normal view.

5085. By Jean-Christophe VASSORT

[MERGE] opw 55403: stock wizard: Precision of Average Unit Cost in Picking Processing

5086. By Jean-Christophe VASSORT

[MERGE] opw 51169

5087. By Xavier ALT

[REVERT] revert r5086, broke sale tests

5088. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5089. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5090. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5091. By Jean-Christophe VASSORT

[MERGE] OPW 17833: System does not take into account the currency of the pricelist if base price is 'Partner section in product form'

5092. By Jean-Christophe VASSORT

[MERGE] OPW 18123

5093. By Xavier ALT

[MERGE] OPW 57602

5094. By Xavier ALT

[MERGE] OPW 383510

5095. By Xavier ALT

[MERGE] resubmit OPW 383649

5096. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5097. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5098. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5099. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5100. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5101. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5102. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5103. By Xavier ALT

[MERGE] OPW 381937 - stock: product valuation having a price of 0 should be 0, not 1

5104. By Xavier ALT

[MERGE] OPW 381848 - search_default filter not working for purchase requisition

5105. By Jean-Christophe VASSORT

[MERGE] OPW 50627 Issue with act_window

related to this bug: https://bugs.launchpad.net/openobject-addons/+bug/708467

To reproduce the issue:

1 Create a new database with demo and sale module
2. Open Menu Sale/Address Book/Customers
3. Search Agrolait and open it
4. Click on Sales (link)
5. You must see 2 sales
6. Create new sale order
7. The customer field is empty (should have Agrolait)

This happens with all act_windows.

5106. By Xavier ALT

[MERGE] OPW 16328 - do not request write off when generating fy opening entries

5107. By Xavier ALT

[MERGE] OPW 382063 - account fiscal year closing: fix default date in opening entries

5108. By Xavier ALT

[MERGE] OPW 279130 - translate errors raised inside product_id_change (sale/purchase) dep. on user lang., not partner lang.

5109. By Xavier ALT

[MERGE] OPW 51075 - account.move.line: reconcile_partial() error msg when lines are already reconciled

5110. By Xavier ALT

[MERGE] OPW 51189 - on invoice 'refund', keep original salesman and fiscal position

5111. By Xavier ALT

[MERGE] OPW 18001: do not lock-out user when payment.order is 'done', allow it to cancel it

  - When 'Payment Order' is in 'done' state, the workflow is frozen and the
    user is unable to cancel it (required in case bank refuse the payment).
    This allow to cancel the payment order except when some lines are already
    imported in a bank statement (i.e payment done bank-side: modification
    forbidden).

5112. By Xavier ALT

[MERGE] OPW 18001: l10n_ch: create_date wizard was not saving file inside wizard

5113. By Xavier ALT

[MERGE] OPW 381524 - on picking invoicing, do not invoice scrapped products

5114. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

5115. By Amit Dodiya (OpenERP)

[BACKPORT] l10n_be: backported from trunk-l10n_be-periodical-vat-declaration-bde for 'Periodical VAT declaration' wizard

Unmerged revisions

5115. By Amit Dodiya (OpenERP)

[BACKPORT] l10n_be: backported from trunk-l10n_be-periodical-vat-declaration-bde for 'Periodical VAT declaration' wizard

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'l10n_be/company.py'
2--- l10n_be/company.py 2011-01-14 00:11:01 +0000
3+++ l10n_be/company.py 2012-03-07 13:19:30 +0000
4@@ -25,7 +25,7 @@
5 _description = 'Company'
6
7 def _get_default_ad(self, addresses):
8- city = post_code = address = country_code = ""
9+ name = email = phone = city = post_code = address = country_code = ""
10 for ads in addresses:
11 if ads.type == 'default':
12 city = ads.city or ""
13@@ -36,7 +36,10 @@
14 address += " " + ads.street2
15 if ads.country_id:
16 country_code = ads.country_id and ads.country_id.code or ""
17- return city, post_code, address, country_code
18+ name = ads.name or ""
19+ email = ads.email or ""
20+ phone = ads.phone or ""
21+ return name, email, phone, city, post_code, address, country_code
22 res_company()
23
24 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
25
26=== modified file 'l10n_be/wizard/l10n_be_account_vat_declaration.py'
27--- l10n_be/wizard/l10n_be_account_vat_declaration.py 2011-01-14 00:11:01 +0000
28+++ l10n_be/wizard/l10n_be_account_vat_declaration.py 2012-03-07 13:19:30 +0000
29@@ -36,17 +36,29 @@
30 _columns = {
31 'name': fields.char('File Name', size=32),
32 'period_id': fields.many2one('account.period','Period', required=True),
33- 'tax_code_id': fields.many2one('account.tax.code', 'Tax Code', domain=[('parent_id', '=', False)]),
34+ 'tax_code_id': fields.many2one('account.tax.code', 'Tax Code', domain=[('parent_id', '=', False)], help="Keep empty to use the user's company"),
35 'msg': fields.text('File created', size=64, readonly=True),
36 'file_save': fields.binary('Save File'),
37- 'ask_resitution': fields.boolean('Ask Restitution',help='It indicates whether a resitution is to made or not?'),
38+ 'ask_restitution': fields.boolean('Ask Restitution',help='It indicates whether a resitution is to made or not?'),
39 'ask_payment': fields.boolean('Ask Payment',help='It indicates whether a payment is to made or not?'),
40- 'client_nihil': fields.boolean('Last Declaration of Enterprise',help='Tick this case only if it concerns only the last statement on the civil or cessation of activity'),
41+ 'client_nihil': fields.boolean('Last Declaration, no clients in client listing',help='Tick this case only if it concerns only the last statement on the civil or cessation of activity: ' \
42+ 'no clients to be included in the client listing.'),
43+ 'comments': fields.text('Comments'),
44+
45 }
46+
47+ def _get_tax_code(self, cr, uid, context=None):
48+ obj_tax_code = self.pool.get('account.tax.code')
49+ obj_user = self.pool.get('res.users')
50+ company_id = obj_user.browse(cr, uid, uid, context=context).company_id.id
51+ tax_code_ids = obj_tax_code.search(cr, uid, [('company_id', '=', company_id), ('parent_id', '=', False)], context=context)
52+ return tax_code_ids and tax_code_ids[0] or False
53+
54 _defaults = {
55 'msg': 'Save the File with '".xml"' extension.',
56 'file_save': _get_xml_data,
57 'name': 'vat_declaration.xml',
58+ 'tax_code_id': _get_tax_code,
59 }
60
61 def create_xml(self, cr, uid, ids, context=None):
62@@ -58,7 +70,7 @@
63 if context is None:
64 context = {}
65
66- list_of_tags = ['00','01','02','03','44','45','46','47','48','49','54','55','56','57','59','61','62','63','64','71','81','82','83','84','85','86','87','88','91']
67+ list_of_tags = ['00','01','02','03','44','45','46','47','48','49','54','55','56','57','59','61','62','63','64','71','72','81','82','83','84','85','86','87','88','91']
68 data_tax = self.browse(cr, uid, ids[0])
69 if data_tax.tax_code_id:
70 obj_company = data_tax.tax_code_id.company_id
71@@ -67,6 +79,8 @@
72 vat_no = obj_company.partner_id.vat
73 if not vat_no:
74 raise osv.except_osv(_('Data Insufficient'), _('No VAT Number Associated with Main Company!'))
75+ vat_no = vat_no.replace(' ','').upper()
76+ vat = vat_no[2:]
77
78 tax_code_ids = obj_tax_code.search(cr, uid, [], context=context)
79 ctx = context.copy()
80@@ -74,41 +88,104 @@
81 ctx['period_id'] = data['period_id'] #added context here
82 tax_info = obj_tax_code.read(cr, uid, tax_code_ids, ['code','sum_period'], context=ctx)
83
84- address = post_code = city = country_code = ''
85- city, post_code, address, country_code = self.pool.get('res.company')._get_default_ad(obj_company.partner_id.address)
86+ name = email = phone = address = post_code = city = country_code = ''
87+ name, email, phone, city, post_code, address, country_code = self.pool.get('res.company')._get_default_ad(obj_company.partner_id.address)
88
89 account_period = obj_acc_period.browse(cr, uid, data['period_id'], context=context)
90+ issued_by = vat_no[:2]
91+ comments = data['comments'] or ''
92
93 send_ref = str(obj_company.partner_id.id) + str(account_period.date_start[5:7]) + str(account_period.date_stop[:4])
94- data_of_file = '<?xml version="1.0"?>\n<VATSENDING xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="MultiDeclarationTVA-NoSignature-16.xml">'
95- data_of_file +='\n\t<DECLARER>\n\t\t<VATNUMBER>'+str(vat_no)+'</VATNUMBER>\n\t\t<NAME>'+ obj_company.name +'</NAME>\n\t\t<ADDRESS>'+address+'</ADDRESS>'
96- data_of_file +='\n\t\t<POSTCODE>'+post_code+'</POSTCODE>\n\t\t<CITY>'+city+'</CITY>\n\t\t<COUNTRY>'+country_code+'</COUNTRY>\n\t\t<SENDINGREFERENCE>'+send_ref+'</SENDINGREFERENCE>\n\t</DECLARER>'
97- data_of_file +='\n\t<VATRECORD>\n\t\t<RECNUM>1</RECNUM>\n\t\t<VATNUMBER>'+((vat_no and str(vat_no[2:])) or '')+'</VATNUMBER>\n\t\t<DPERIODE>\n\t\t\t'
98
99 starting_month = account_period.date_start[5:7]
100 ending_month = account_period.date_stop[5:7]
101+ quarter = str(((int(starting_month) - 1) / 3) + 1)
102+
103+ if not email:
104+ raise osv.except_osv(_('Data Insufficient!'),_('No email address associated with the company.'))
105+ if not phone:
106+ raise osv.except_osv(_('Data Insufficient!'),_('No phone associated with the company.'))
107+
108+ file_data = {
109+ 'issued_by': issued_by,
110+ 'vat_no': vat_no,
111+ 'only_vat': vat_no[2:],
112+ 'cmpny_name': obj_company.name,
113+ 'address': address,
114+ 'post_code': post_code,
115+ 'city': city,
116+ 'country_code': country_code,
117+ 'email': email,
118+ 'phone': phone.replace('.','').replace('/','').replace('(','').replace(')','').replace(' ',''),
119+ 'send_ref': send_ref,
120+ 'quarter': quarter,
121+ 'month': starting_month,
122+ 'year': str(account_period.date_stop[:4]),
123+ 'client_nihil': (data['client_nihil'] and 'YES' or 'NO'),
124+ 'ask_restitution': (data['ask_restitution'] and 'YES' or 'NO'),
125+ 'ask_payment': (data['ask_payment'] and 'YES' or 'NO'),
126+ 'comments': comments,
127+ }
128+ data_of_file = """<?xml version="1.0"?>
129+ <ns2:VATConsignment xmlns="http://www.minfin.fgov.be/InputCommon" xmlns:ns2="http://www.minfin.fgov.be/VATConsignment" VATDeclarationsNbr="1">
130+ <ns2:Representative>
131+ <RepresentativeID identificationType="NVAT" issuedBy="%(issued_by)s">%(only_vat)s</RepresentativeID>
132+ <Name>%(cmpny_name)s</Name>
133+ <Street>%(address)s</Street>
134+ <PostCode>%(post_code)s</PostCode>
135+ <City>%(city)s</City>
136+ <CountryCode>%(country_code)s</CountryCode>
137+ <EmailAddress>%(email)s</EmailAddress>
138+ <Phone>%(phone)s</Phone>
139+ </ns2:Representative>
140+ <ns2:VATDeclaration SequenceNumber="1" DeclarantReference="%(send_ref)s">
141+ <ns2:Declarant>
142+ <VATNumber xmlns="http://www.minfin.fgov.be/InputCommon">%(only_vat)s</VATNumber>
143+ <Name>%(cmpny_name)s</Name>
144+ <Street>%(address)s</Street>
145+ <PostCode>%(post_code)s</PostCode>
146+ <City>%(city)s</City>
147+ <CountryCode>%(country_code)s</CountryCode>
148+ <EmailAddress>%(email)s</EmailAddress>
149+ <Phone>%(phone)s</Phone>
150+ </ns2:Declarant>
151+ <ns2:Period>
152+ """ % (file_data)
153+
154 if starting_month != ending_month:
155 #starting month and ending month of selected period are not the same
156 #it means that the accounting isn't based on periods of 1 month but on quarters
157- quarter = str(((int(starting_month) - 1) / 3) + 1)
158- data_of_file += '<QUARTER>'+quarter+'</QUARTER>\n\t\t\t'
159+ data_of_file += '\t\t<ns2:Quarter>%(quarter)s</ns2:Quarter>\n\t\t' % (file_data)
160 else:
161- data_of_file += '<MONTH>'+starting_month+'</MONTH>\n\t\t\t'
162- data_of_file += '<YEAR>' + str(account_period.date_stop[:4]) + '</YEAR>\n\t\t</DPERIODE>\n\t\t<ASK RESTITUTION="NO" PAYMENT="NO"/>'
163- data_of_file += '\n\t\t<ClientListingNihil>'+ (data['client_nihil'] and 'YES' or 'NO') +'</ClientListingNihil>'
164- data_of_file +='\n\t\t<DATA>\n\t\t\t<DATA_ELEM>'
165-
166+ data_of_file += '\t\t<ns2:Month>%(month)s</ns2:Month>\n\t\t' % (file_data)
167+ data_of_file += '\t<ns2:Year>%(year)s</ns2:Year>' % (file_data)
168+ data_of_file += '\n\t\t</ns2:Period>\n'
169+ data_of_file += '\t\t<ns2:Data>\t'
170+ cases_list = []
171 for item in tax_info:
172 if item['code'] == '91' and ending_month != 12:
173 #the tax code 91 can only be send for the declaration of December
174 continue
175- if item['code']:
176- if item['code'] == '71-72':
177- item['code']='71'
178+ if item['code'] and item['sum_period']:
179+ if item['code'] == 'VI':
180+ if item['sum_period'] >= 0:
181+ item['code'] = '71'
182+ else:
183+ item['code'] = '72'
184 if item['code'] in list_of_tags:
185- data_of_file +='\n\t\t\t\t<D'+str(int(item['code'])) +'>' + str(abs(int(round(item['sum_period']*100)))) + '</D'+str(int(item['code'])) +'>'
186-
187- data_of_file += '\n\t\t\t</DATA_ELEM>\n\t\t</DATA>\n\t</VATRECORD>\n</VATSENDING>'
188+ cases_list.append(item)
189+ cases_list.sort()
190+ for item in cases_list:
191+ grid_amount_data = {
192+ 'code': str(int(item['code'])),
193+ 'amount': str(abs(int(round(item['sum_period']*100)))),
194+ }
195+ data_of_file += '\n\t\t\t<ns2:Amount GridNumber="%(code)s">%(amount)s</ns2:Amount''>' % (grid_amount_data)
196+ data_of_file += '\n\t\t</ns2:Data>'
197+ data_of_file += '\n\t\t<ns2:ClientListingNihil>%(client_nihil)s</ns2:ClientListingNihil>' % (file_data)
198+ data_of_file += '\n\t\t<ns2:Ask Restitution="%(ask_restitution)s" Payment="%(ask_payment)s"/>' % (file_data)
199+ data_of_file += '\n\t\t<ns2:Comment>%(comments)s</ns2:Comment>' % (file_data)
200+ data_of_file += '\n\t</ns2:VATDeclaration> \n</ns2:VATConsignment>'
201 model_data_ids = mod_obj.search(cr, uid,[('model','=','ir.ui.view'),('name','=','view_vat_save')], context=context)
202 resource_id = mod_obj.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id']
203 context['file_save'] = data_of_file
204
205=== modified file 'l10n_be/wizard/l10n_be_account_vat_declaration_view.xml'
206--- l10n_be/wizard/l10n_be_account_vat_declaration_view.xml 2011-01-14 00:11:01 +0000
207+++ l10n_be/wizard/l10n_be_account_vat_declaration_view.xml 2012-03-07 13:19:30 +0000
208@@ -2,55 +2,57 @@
209 <openerp>
210 <data>
211
212- <menuitem
213- id="menu_finance_belgian_statement"
214- name="Belgium Statements"
215- parent="account.menu_finance_legal_statement" groups="account.group_account_manager"/>
216+ <menuitem
217+ id="menu_finance_belgian_statement"
218+ name="Belgium Statements"
219+ parent="account.menu_finance_legal_statement" groups="account.group_account_manager"/>
220
221- <record id="view_vat_declaration" model="ir.ui.view">
222- <field name="name">Vat Declaraion</field>
223- <field name="model">l1on_be.vat.declaration</field>
224- <field name="type">form</field>
225- <field name="arch" type="xml">
226- <form string="Periodical VAT Declaration" >
227- <group>
228- <group colspan="4">
229- <separator string="Declare Periodical VAT" colspan="4"/><newline/>
230- <field name="period_id" widget="selection"/>
231- <field name="tax_code_id" string="Company" widget="selection" groups="base.group_multi_company"/>
232- <newline/>
233- </group>
234- <group>
235- <field name="ask_resitution" colspan="1"/>
236- <field name="ask_payment" colspan="1"/>
237- <field name="client_nihil" string="Is Last Declaration" colspan="1" /><label/>
238- </group>
239- <newline/>
240- <group>
241- <separator colspan="4"/>
242- <newline/>
243- <button special="cancel" string="Close" icon="gtk-cancel"/>
244- <button icon="gtk-execute" name="create_xml" string="Create XML" type="object" default_focus="1" />
245- </group>
246- </group>
247- </form>
248- </field>
249- </record>
250+ <record id="view_vat_declaration" model="ir.ui.view">
251+ <field name="name">Vat Declaraion</field>
252+ <field name="model">l1on_be.vat.declaration</field>
253+ <field name="type">form</field>
254+ <field name="arch" type="xml">
255+ <form string="Periodical VAT Declaration">
256+ <group>
257+ <group colspan="4">
258+ <separator string="Declare Periodical VAT" colspan="4"/>
259+ <field name="period_id" widget="selection"/>
260+ <field name="tax_code_id" string="Company" widget="selection" groups="base.group_multi_company"/>
261+ <newline/>
262+ <separator string="Advanced Options" colspan="4"/>
263+ <field name="ask_restitution"/>
264+ <field name="ask_payment"/>
265+ <field name="client_nihil" string="Is Last Declaration"/><label/>
266+ </group>
267+ <group colspan="4" groups="base.group_extended">
268+ <separator string="Comments" colspan="4"/>
269+ <field colspan="4" name="comments" nolabel="1"/>
270+ </group>
271+ <group>
272+ <separator colspan="4"/>
273+ <newline/>
274+ <button special="cancel" string="Close" icon="gtk-cancel"/>
275+ <button icon="gtk-execute" name="create_xml" string="Create XML" type="object" default_focus="1" />
276+ </group>
277+ </group>
278+ </form>
279+ </field>
280+ </record>
281
282 <record id="view_vat_save" model="ir.ui.view">
283- <field name="name">Save XML</field>
284- <field name="model">l1on_be.vat.declaration</field>
285- <field name="type">form</field>
286- <field name="arch" type="xml">
287+ <field name="name">Save XML</field>
288+ <field name="model">l1on_be.vat.declaration</field>
289+ <field name="type">form</field>
290+ <field name="arch" type="xml">
291 <form string="Save xml">
292 <group colspan="3">
293 <label string="Save the File with '.xml' extension." colspan="2" align="0.0"/><newline/>
294- <field name="name"/><newline/>
295- <field name="file_save" readonly="True"/>
296- <newline/>
297- <separator colspan="4"/><label/>
298- <button special="cancel" string="Ok" icon="gtk-ok"/>
299- </group>
300+ <field name="name"/><newline/>
301+ <field name="file_save" readonly="True"/>
302+ <newline/>
303+ <separator colspan="4"/><label/>
304+ <button special="cancel" string="Ok" icon="gtk-ok"/>
305+ </group>
306 </form>
307 </field>
308 </record>