diff --git a/addons/l10n_be/__terp__.py b/addons/l10n_be/__terp__.py
index 618367dfef7..d8f2c22b78a 100644
--- a/addons/l10n_be/__terp__.py
+++ b/addons/l10n_be/__terp__.py
@@ -51,6 +51,8 @@
'account_pcmn_belgium.xml',
'l10n_be_wizard.xml',
'wizard/l10n_be_account_vat_declaration_view.xml',
+ 'wizard/l10n_be_vat_intra_view.xml',
+ 'wizard/l10n_be_partner_vat_listing.xml',
'l10n_be_sequence.xml',
'fiscal_templates.xml',
'security/ir.model.access.csv'
diff --git a/addons/l10n_be/l10n_be_wizard.xml b/addons/l10n_be/l10n_be_wizard.xml
index 86c4d828b70..317effd19b7 100644
--- a/addons/l10n_be/l10n_be_wizard.xml
+++ b/addons/l10n_be/l10n_be_wizard.xml
@@ -2,90 +2,9 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- step.vat.listing
- vat.listing.clients
- form
-
-
-
-
-
-
- step.vat.listing
- vat.listing.clients
- tree
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/addons/l10n_be/wizard/__init__.py b/addons/l10n_be/wizard/__init__.py
index 88fb82f2d71..9db9b1ec853 100644
--- a/addons/l10n_be/wizard/__init__.py
+++ b/addons/l10n_be/wizard/__init__.py
@@ -19,8 +19,8 @@
#
##############################################################################
-import partner_vat_listing
-import wizard_vat_intra
+import l10_be_partner_vat_listing
+import l10n_be_vat_intra
import l10n_be_account_vat_declaration
diff --git a/addons/l10n_be/wizard/partner_vat_listing.py b/addons/l10n_be/wizard/l10_be_partner_vat_listing.py
similarity index 54%
rename from addons/l10n_be/wizard/partner_vat_listing.py
rename to addons/l10n_be/wizard/l10_be_partner_vat_listing.py
index ba5620a0b4e..ecec9369ede 100644
--- a/addons/l10n_be/wizard/partner_vat_listing.py
+++ b/addons/l10n_be/wizard/l10_be_partner_vat_listing.py
@@ -1,3 +1,6 @@
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
+
# -*- coding: utf-8 -*-
##############################################################################
#
@@ -18,14 +21,11 @@
# along with this program. If not, see .
#
##############################################################################
+
import time
import datetime
import base64
-from tools.translate import _
-import tools
-import wizard
-import pooler
from tools.translate import _
import tools
from osv import fields, osv
@@ -33,7 +33,7 @@ from osv import fields, osv
class vat_listing_clients(osv.osv_memory):
_name = 'vat.listing.clients'
_columns = {
- 'name': fields.char('Cleint Name', size=64),
+ 'name': fields.char('Client Name', size=64),
'vat': fields.char('VAT', size=64),
'country': fields.char('Country', size=64),
'amount': fields.float('Amount'),
@@ -42,66 +42,23 @@ class vat_listing_clients(osv.osv_memory):
vat_listing_clients()
-form = """
-
"""
+class partner_vat(osv.osv_memory):
+ """ Vat Listing """
+ _name = "partner.vat"
-fields = {
- 'fyear': {'string': 'Fiscal Year', 'type': 'many2one', 'relation': 'account.fiscalyear', 'required': True,},
- 'mand_id':{'string':'MandataireId','type':'char','size':'30','required': True,},
- 'limit_amount':{'string':'Limit Amount','type':'integer','required': True, },
- 'test_xml': {'string':'Test XML file', 'type':'boolean', },
- }
-
-client_form = """
-"""
-
-client_fields = {
- 'partners': {'string': 'Cleints', 'type': 'many2many', 'relation': 'vat.listing.clients', 'required': False, 'help': 'You can remove clients/partners which you do not want to show in xml file'},
- }
-
-msg_form = """
-"""
-
-msg_fields = {
- 'name': {'string': 'File name', 'type':'char', 'size':'32'},
- 'msg': {'string':'File created', 'type':'text', 'size':'100','readonly':True},
- 'file_save':{'string': 'Save File',
- 'type': 'binary',
- 'readonly': True,},
-}
-
-class wizard_vat(wizard.interface):
-
- def _get_partner(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- period = pool.get('account.period').search(cr, uid, [('fiscalyear_id', '=', data['form']['fyear'])])
- p_id_list = pool.get('res.partner').search(cr,uid,[('vat_subjected','!=',False)])
+ def get_partner(self, cursor, user, ids, context={}):
+ obj_period = self.pool.get('account.period')
+ obj_partner = self.pool.get('res.partner')
+ obj_vat_lclient = self.pool.get('vat.listing.clients')
+ obj_model_data = self.pool.get('ir.model.data')
+ data = self.read(cursor, user, ids)[0]
+ period = obj_period.search(cursor, user, [('fiscalyear_id', '=', data['fyear'])], context=context)
+ p_id_list = obj_partner.search(cursor, user, [('vat_subjected','!=',False)], context=context)
if not p_id_list:
- raise wizard.except_wizard(_('Data Insufficient!'),_('No partner has a VAT Number asociated with him.'))
+ raise osv.except_osv(_('Data Insufficient!'),_('No partner has a VAT Number asociated with him.'))
partners = []
records = []
- for obj_partner in pool.get('res.partner').browse(cr, uid, p_id_list):
-
+ for obj_partner in obj_partner.browse(cursor, user, p_id_list, context=context):
record = {} # this holds record per partner
#This listing is only for customers located in belgium, that's the
@@ -114,8 +71,8 @@ class wizard_vat(wizard.interface):
break
if not go_ahead:
continue
- cr.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=ANY(%s) group by b.code',(('produit','tax'),obj_partner.id,period,))
- line_info = cr.fetchall()
+ 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=ANY(%s) group by b.code',(('produit','tax'),obj_partner.id,period,))
+ line_info = cursor.fetchall()
if not line_info:
continue
@@ -127,7 +84,7 @@ class wizard_vat(wizard.interface):
#~addr = pool.get('res.partner').address_get(cr, uid, [obj_partner.id], ['invoice'])
#~ if addr.get('invoice',False):
- #~ads=pool.get('res.partner.address').browse(cr,uid,[addr['invoice']])[0]
+ #~ads=pool.get('res.partner.address').browse(cr, uid, [addr['invoice']])[0]
#~ if ads.country_id:
#~ record.append(ads.country_id.code)
@@ -141,38 +98,77 @@ class wizard_vat(wizard.interface):
record['amount'] = 0
record['turnover'] = 0
record['name'] = obj_partner.name
-
for item in line_info:
if item[0]=='produit':
record['turnover'] += item[1]
else:
record['amount'] += item[1]
- id_client = pool.get('vat.listing.clients').create(cr, uid, record)
+ id_client = obj_vat_lclient.create(cursor, user, record, context=context)
partners.append(id_client)
records.append(record)
+ context.update({'partner_ids': partners, 'fyear': data['fyear'], 'limit_amount': data['limit_amount'], 'mand_id':data['mand_id']})
+ model_data_ids = obj_model_data.search(cursor, user, [('model','=','ir.ui.view'), ('name','=','view_vat_listing')])
+ resource_id = obj_model_data.read(cursor, user, model_data_ids, fields=['res_id'])[0]['res_id']
+ return {
+# 'domain': "[('id','in', ["+','.join(map(str,data['form']['invoice_ids']))+"])]",
+ 'name': 'Vat Listing',
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'partner.vat.list',
+ 'views': [(resource_id,'form')],
+ 'context': context,
+ 'type': 'ir.actions.act_window',
+ 'target': 'new',
+ }
- return {'partners':partners}
+ _columns = {
+ 'fyear': fields.many2one('account.fiscalyear','Fiscal Year', required=True),
+ 'mand_id': fields.char('MandataireId', size=14, required=True, help="This identifies the representative of the sending company. This is a string of 14 characters"),
+ 'limit_amount': fields.integer('Limit Amount', required=True),
+ 'test_xml': fields.boolean('Test XML file', help="Sets the XML output as test file"),
+ }
+partner_vat()
- def _create_xml(self, cr, uid, data, context):
+class partner_vat_list(osv.osv_memory):
+
+ """ Partner Vat Listing """
+ _name = "partner.vat.list"
+ _columns = {
+ '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),
+ }
+
+ def get_partners(self, cursor, user, context={}):
+ return context.get('partner_ids', [])
+
+ def create_xml(self, cursor, user, ids, context={}):
datas=[]
- pool = pooler.get_pool(cr.dbname)
- seq_controlref = pool.get('ir.sequence').get(cr, uid,'controlref')
- seq_declarantnum = pool.get('ir.sequence').get(cr, uid,'declarantnum')
- obj_cmpny = pool.get('res.users').browse(cr, uid, uid).company_id
+ obj_sequence = self.pool.get('ir.sequence')
+ obj_users = self.pool.get('res.users')
+ obj_partner = self.pool.get('res.partner')
+ obj_fyear = self.pool.get('account.fiscalyear')
+ obj_addr = self.pool.get('res.partner.address')
+ obj_vat_lclient = self.pool.get('vat.listing.clients')
+ obj_model_data = self.pool.get('ir.model.data')
+
+ 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
company_vat = obj_cmpny.partner_id.vat
if not company_vat:
- raise wizard.except_wizard(_('Data Insufficient'),_('No VAT Number Associated with Main Company!'))
+ raise osv.except_osv(_('Data Insufficient'),_('No VAT Number Associated with Main Company!'))
cref = company_vat + seq_controlref
dnum = cref + seq_declarantnum
-
- obj_year=pool.get('account.fiscalyear').browse(cr,uid,data['form']['fyear'])
+ obj_year= obj_fyear.browse(cursor, user, context['fyear'], context=context)
street = zip_city = country = ''
- addr = pool.get('res.partner').address_get(cr, uid, [obj_cmpny.partner_id.id], ['invoice'])
+ addr = obj_partner.address_get(cursor, user, [obj_cmpny.partner_id.id], ['invoice'])
if addr.get('invoice',False):
- ads=pool.get('res.partner.address').browse(cr,uid,[addr['invoice']])[0]
+ ads = obj_addr.browse(cursor, user, [addr['invoice']], context=context)[0]
- zip_city = pool.get('res.partner.address').get_city(cr,uid,ads.id)
+ zip_city = obj_addr.get_city(cursor, user, ads.id)
if not zip_city:
zip_city = ''
if ads.street:
@@ -185,8 +181,8 @@ class wizard_vat(wizard.interface):
sender_date = time.strftime('%Y-%m-%d')
data_file = '\n'
data_file += '\n\n\t\n\t\t'+str(company_vat)+'\n\t\t'+tools.ustr(obj_cmpny.name)+'\n\t\t'+ tools.ustr(street) +'\n\t\t'+ tools.ustr(zip_city) +''
@@ -194,25 +190,24 @@ class wizard_vat(wizard.interface):
data_comp = '\n\n\t'+str(company_vat)+'\n\t'+tools.ustr(obj_cmpny.name)+'\n\t'+ tools.ustr(street) +'\n\t'+ tools.ustr(zip_city) +'\n\t'+ tools.ustr(country) +'\n'
data_period = '\n'+ tools.ustr(obj_year.date_stop[:4]) +''
error_message = []
-
- for partner in data['form']['partners']:
+ data = self.read(cursor, user, ids)[0]
+ for partner in data['partner_ids']:
if isinstance(partner, list) and partner:
datas.append(partner[2])
else:
- client_data = pool.get('vat.listing.clients').read(cr, uid, partner, context=context)
+ client_data = obj_vat_lclient.read(cursor, user, partner, context=context)
datas.append(client_data)
-
seq=0
data_clientinfo=''
sum_tax=0.00
sum_turnover=0.00
if len(error_message):
- data['form']['msg']='Exception : \n' +'-'*50+'\n'+ '\n'.join(error_message)
- return data['form']
+ msg ='Exception : \n' +'-'*50+'\n'+ '\n'.join(error_message)
+ return msg
for line in datas:
if not line:
continue
- if line['turnover'] < data['form']['limit_amount']:
+ if line['turnover'] < context['limit_amount']:
continue
seq +=1
sum_tax +=line['amount']
@@ -221,28 +216,16 @@ class wizard_vat(wizard.interface):
data_decl ='\n'
data_file += tools.ustr(data_decl) + tools.ustr(data_comp) + tools.ustr(data_period) + tools.ustr(data_clientinfo) + '\n'
+ msg = 'Save the File with '".xml"' extension.'
+ file_save = base64.encodestring(data_file.encode('utf8'))
- data['form']['msg'] = 'Save the File with '".xml"' extension.'
- data['form']['file_save'] = base64.encodestring(data_file.encode('utf8'))
- data['form']['name'] = 'vat_list.xml'
- return data['form']
+ self.write(cursor, user, ids, {'file_save':file_save, 'msg':msg, 'name':'vat_list.xml'}, context=context)
+ return True
- states = {
- 'init': {
- 'actions': [],
- 'result': {'type':'form', 'arch':form, 'fields':fields, 'state':[('end','Cancel', 'gtk-cancel'),('go_step','View Clients', 'gtk-ok')]},
- },
- 'go_step': {
- 'actions': [_get_partner],
- 'result': {'type':'form', 'arch':client_form, 'fields':client_fields, 'state':[('end','Cancel', 'gtk-cancel'),('go','Create XML', 'gtk-ok')]},
- },
- 'go': {
- 'actions': [_create_xml],
- 'result': {'type':'form', 'arch':msg_form, 'fields':msg_fields, 'state':[('end','Ok', 'gtk-cancel')]},
- }
+ _defaults={
+ 'partner_ids': get_partners
+ }
- }
+partner_vat_list()
-wizard_vat('list.vat.detail')
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/l10n_be/wizard/l10n_be_account_vat_declaration_view.xml b/addons/l10n_be/wizard/l10n_be_account_vat_declaration_view.xml
index f0c19198bf3..1c3ae12ca06 100644
--- a/addons/l10n_be/wizard/l10n_be_account_vat_declaration_view.xml
+++ b/addons/l10n_be/wizard/l10n_be_account_vat_declaration_view.xml
@@ -15,7 +15,7 @@