Merge lp:~vauxoo/openerp-venezuela-localization/miguel-wizard-url-seniat into lp:~openerp-venezuela/openerp-venezuela-localization/6.0-trunk

Proposed by Miguel Delgado (Vauxoo)
Status: Merged
Merged at revision: 429
Proposed branch: lp:~vauxoo/openerp-venezuela-localization/miguel-wizard-url-seniat
Merge into: lp:~openerp-venezuela/openerp-venezuela-localization/6.0-trunk
Diff against target: 297 lines (+128/-62)
10 files modified
l10n_ve_fiscal_requirements/__openerp__.py (+2/-1)
l10n_ve_fiscal_requirements/data/seniat_url_data.xml (+9/-0)
l10n_ve_fiscal_requirements/installer.py (+1/-0)
l10n_ve_fiscal_requirements/partner.py (+11/-20)
l10n_ve_fiscal_requirements/seniat_url.py (+2/-6)
l10n_ve_fiscal_requirements/view/seniat_url_view.xml (+0/-29)
l10n_ve_fiscal_requirements/wizard/__init__.py (+1/-0)
l10n_ve_fiscal_requirements/wizard/wizard_url_seniat.py (+62/-0)
l10n_ve_fiscal_requirements/wizard/wizard_url_seniat_view.xml (+34/-0)
l10n_ve_withholding_iva/partner.py (+6/-6)
To merge this branch: bzr merge lp:~vauxoo/openerp-venezuela-localization/miguel-wizard-url-seniat
Reviewer Review Type Date Requested Status
Nhomar - Vauxoo Needs Fixing
Review via email: mp+78772@code.launchpad.net

Description of the change

Added a wizard to configure the url of SENIAT if they were modified over time.

Improvement the model partner.py found in the module l10n_ve_witholding_iva,in order to take the url of SENIAT found in the model seniat.url from module l10n_ve_fiscal_requirements.

Improvement the logic in models res_partner (l10n_ve_fiscal_requirements, l10n_ve_withholding_iva) to update fiscal information

To post a comment you must log in.
Revision history for this message
Nhomar - Vauxoo (nhomar) wrote :

hELLO.

Trying in a new db:

[2011-10-09 14:08:27,391][tr_ve] WARNING:init:[01]: object seniat.url (
[2011-10-09 14:08:27,391][tr_ve] WARNING:init:[02]: OpenERP Model : seniat_url
[2011-10-09 14:08:27,391][tr_ve] WARNING:init:[03]: ) has no access rules!

And then this traceback appear.

[2011-10-09 14:09:02,371][tr_ve] WARNING:browse_record:[01]: Field 'url_seniat1_company' does not exist in object 'browse_record(seniat.url, 1)':
[2011-10-09 14:09:02,371][tr_ve] WARNING:browse_record:[02]: None
[2011-10-09 14:09:02,372][tr_ve] ERROR:web-services:Uncaught exception
Traceback (most recent call last):
  File "/home/nhomar/instancias/pedimento/server/bin/osv/osv.py", line 122, in wrapper
    return f(self, dbname, *args, **kwargs)
  File "/home/nhomar/instancias/pedimento/server/bin/osv/osv.py", line 176, in execute
    res = self.execute_cr(cr, uid, obj, method, *args, **kw)
  File "/home/nhomar/instancias/pedimento/server/bin/osv/osv.py", line 167, in execute_cr
    return getattr(object, method)(cr, uid, *args, **kw)
  File "/home/nhomar/instancias/pedimento/modules/l10n_ve_fiscal_requirements/installer.py", line 43, in onchange_update_rif
    partner_info = self.pool.get('res.partner').update_rif(cr, uid, ids, context)
  File "/home/nhomar/instancias/pedimento/modules/l10n_ve_fiscal_requirements/partner.py", line 165, in update_rif
    url1 = url_obj.url_seniat1_company + '%s'
  File "/home/nhomar/instancias/pedimento/server/bin/osv/orm.py", line 294, in __getattr__
    raise AttributeError(e)
AttributeError: "Field 'url_seniat1_company' does not exist in object 'browse_record(seniat.url, 1)'"

IMHO, it need some checks.

review: Needs Fixing
Revision history for this message
Nhomar - Vauxoo (nhomar) wrote :

The traceback appear, whern i put a RIF-VAT number

433. By Miguel Delgado (Vauxoo)

[FIX] fixed problem in the model res_partner in module l10n_ve_fiscal_requiremens when load url from seniat

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'l10n_ve_fiscal_requirements/__openerp__.py'
2--- l10n_ve_fiscal_requirements/__openerp__.py 2011-10-07 18:46:58 +0000
3+++ l10n_ve_fiscal_requirements/__openerp__.py 2011-10-09 19:21:23 +0000
4@@ -49,6 +49,7 @@
5 """,
6 'init_xml': [
7 'data/l10n_ut_data.xml',
8+ 'data/seniat_url_data.xml',
9 ],
10 "depends" : ["base_vat", "account", "account_accountant"],
11 'update_xml': [
12@@ -58,9 +59,9 @@
13 'view/res_company_view.xml',
14 'view/l10n_ut_view.xml',
15 'view/partner_view.xml',
16- 'view/seniat_url_view.xml',
17 'wizard/wizard_invoice_nro_ctrl_view.xml',
18 'wizard/wizard_nro_ctrl_view.xml',
19+ 'wizard/wizard_url_seniat_view.xml',
20 ],
21 'demo_xml': [
22 'demo/demo_partners.xml',
23
24=== added file 'l10n_ve_fiscal_requirements/data/seniat_url_data.xml'
25--- l10n_ve_fiscal_requirements/data/seniat_url_data.xml 1970-01-01 00:00:00 +0000
26+++ l10n_ve_fiscal_requirements/data/seniat_url_data.xml 2011-10-09 19:21:23 +0000
27@@ -0,0 +1,9 @@
28+<?xml version="1.0"?>
29+<openerp>
30+ <data noupdate="1">
31+ <record id="seniat_url_2011" model="seniat.url">
32+ <field name="name">http://contribuyente.seniat.gob.ve/getContribuyente/getrif?rif=</field>
33+ <field name="url_seniat">http://contribuyente.seniat.gob.ve/BuscaRif/BuscaRif.jsp?p_rif=</field>
34+ </record>
35+ </data>
36+</openerp>
37
38=== modified file 'l10n_ve_fiscal_requirements/installer.py'
39--- l10n_ve_fiscal_requirements/installer.py 2011-10-07 18:26:34 +0000
40+++ l10n_ve_fiscal_requirements/installer.py 2011-10-09 19:21:23 +0000
41@@ -48,6 +48,7 @@
42 wiz_data = self.browse(cr, uid, ids[0])
43 data = {'name': wiz_data.name, 'vat': "VE%s" % wiz_data.vat, 'vat_apply': wiz_data.vat_apply}
44 partner = self.pool.get('res.users').browse(cr, uid, uid).company_id.partner_id
45+ print 'esto es partner_id',partner.id
46 self.pool.get('res.partner').write(cr, uid, [partner.id], data)
47
48 _columns = {
49
50=== modified file 'l10n_ve_fiscal_requirements/partner.py'
51--- l10n_ve_fiscal_requirements/partner.py 2011-10-07 18:26:34 +0000
52+++ l10n_ve_fiscal_requirements/partner.py 2011-10-09 19:21:23 +0000
53@@ -142,20 +142,14 @@
54
55 def _eval_seniat_data(self,xml_data,context={}):
56 if xml_data.find('450')>=0:
57- if not 'all_rif' in context:
58- self._print_error(_('Vat Error !'),_('Invalid VAT!'))
59- else:
60- return True
61+ self._print_error(_('Vat Error !'),_('Invalid VAT!'))
62+
63 if xml_data.find('452')>=0:
64- if not 'all_rif' in context:
65- self._print_error(_('Vat Error !'),_('Unregistered VAT!'))
66- else:
67- return True
68+ self._print_error(_('Vat Error !'),_('Unregistered VAT!'))
69+
70 if xml_data.find("404")>=0:
71- if not 'all_rif' in context:
72- self._print_error(_('No Connection !'),_("Could not connect! Check the URL "))
73- else:
74- return True
75+ self._print_error(_('No Connection !'),_("Could not connect! Check the URL "))
76+
77
78 def _dom_giver(self, url1, url2, context, vat):
79 xml_data = self._load_url(3,url1 % vat)
80@@ -168,19 +162,16 @@
81 def update_rif(self, cr, uid, ids, context={}):
82 pool = self.pool.get('seniat.url')
83 url_obj = pool.browse(cr, uid, pool.search(cr, uid, []))[0]
84- url1 = url_obj.url_seniat1_company + '%s'
85- url2 = url_obj.url_seniat2_company + '%s'
86+ url1 = url_obj.name + '%s'
87+ url2 = url_obj.url_seniat + '%s'
88 if context.get('exec_wizard'):
89 return self._dom_giver(url1, url2, context, context['vat'])
90
91 for partner in self.browse(cr,uid,ids):
92 if partner.vat:
93- data = self._dom_giver(url1, url2, context, partner.vat[2:])
94- print data
95- self.write(cr,uid,partner.id,data)
96- else:
97- if not 'all_rif' in context:
98- self._print_error(_('Vat Error !'),_('The field vat is empty'))
99+ data = self._dom_giver(url1, url2, context, partner.vat[2:])
100+ print data
101+ self.write(cr,uid,partner.id,data)
102 return True
103
104 res_partner()
105
106=== modified file 'l10n_ve_fiscal_requirements/seniat_url.py'
107--- l10n_ve_fiscal_requirements/seniat_url.py 2011-10-07 17:09:18 +0000
108+++ l10n_ve_fiscal_requirements/seniat_url.py 2011-10-09 19:21:23 +0000
109@@ -34,11 +34,7 @@
110 _name = 'seniat.url'
111 _description = __doc__
112 _columns = {
113- 'url_seniat1_company':fields.char('URL Seniat for Partner Information',size=64, required=True, readonly=False,help='In this field enter the URL from Seniat for search the fiscal information from partner'),
114- 'url_seniat2_company':fields.char('URL Seniat for Retention Rate',size=64, required=True, readonly=False,help='In this field enter the URL from Seniat for search the retention rate from partner'),
115- }
116- _defaults = {
117- 'url_seniat1_company':'http://contribuyente.seniat.gob.ve/getContribuyente/getrif?rif=',
118- 'url_seniat2_company':'http://contribuyente.seniat.gob.ve/BuscaRif/BuscaRif.jsp?p_rif=',
119+ 'name':fields.char('URL Seniat for Partner Information',size=64, required=True, readonly=False,help='In this field enter the URL from Seniat for search the fiscal information from partner'),
120+ 'url_seniat':fields.char('URL Seniat for Retention Rate',size=64, required=True, readonly=False,help='In this field enter the URL from Seniat for search the retention rate from partner'),
121 }
122 seniat_url()
123
124=== removed file 'l10n_ve_fiscal_requirements/view/seniat_url_view.xml'
125--- l10n_ve_fiscal_requirements/view/seniat_url_view.xml 2011-10-07 17:15:47 +0000
126+++ l10n_ve_fiscal_requirements/view/seniat_url_view.xml 1970-01-01 00:00:00 +0000
127@@ -1,29 +0,0 @@
128-<?xml version="1.0"?>
129-<openerp>
130- <data>
131-
132- <record id="view_seniat_url_form" model="ir.ui.view">
133- <field name="name">seniat.url.form</field>
134- <field name="model">seniat.url</field>
135- <field name="type">form</field>
136- <field name="arch" type="xml">
137- <form string="Seniat URL">
138- <field name="url_seniat1_company"/>
139- <field name="url_seniat2_company"/>
140- </form>
141- </field>
142- </record>
143-
144- <record id="action_seniat_url" model="ir.actions.act_window">
145- <field name="name">Seniat URL</field>
146- <field name="type">ir.actions.act_window</field>
147- <field name="res_model">seniat.url</field>
148- <field name="view_type">form</field>
149- <field name="view_mode">form,form</field>
150- <field name="view_id" ref="view_seniat_url_form"/>
151- </record>
152-
153- <menuitem action="action_seniat_url" string="Seniat URL" id="seniat_url_menu" parent="base.menu_res_company_global"/>
154-
155- </data>
156-</openerp>
157
158=== modified file 'l10n_ve_fiscal_requirements/wizard/__init__.py'
159--- l10n_ve_fiscal_requirements/wizard/__init__.py 2011-09-30 22:47:49 +0000
160+++ l10n_ve_fiscal_requirements/wizard/__init__.py 2011-10-09 19:21:23 +0000
161@@ -25,3 +25,4 @@
162 ##############################################################################
163 import wizard_nro_ctrl
164 import wizard_invoice_nro_ctrl
165+import wizard_url_seniat
166
167=== added file 'l10n_ve_fiscal_requirements/wizard/wizard_url_seniat.py'
168--- l10n_ve_fiscal_requirements/wizard/wizard_url_seniat.py 1970-01-01 00:00:00 +0000
169+++ l10n_ve_fiscal_requirements/wizard/wizard_url_seniat.py 2011-10-09 19:21:23 +0000
170@@ -0,0 +1,62 @@
171+# -*- encoding: utf-8 -*-
172+##############################################################################
173+#
174+# OpenERP, Open Source Management Solution
175+# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
176+# author.name@company.com
177+#
178+# This program is free software: you can redistribute it and/or modify
179+# it under the terms of the GNU General Public License as published by
180+# the Free Software Foundation, either version 3 of the License, or
181+# (at your option) any later version.
182+#
183+# This program is distributed in the hope that it will be useful,
184+# but WITHOUT ANY WARRANTY; without even the implied warranty of
185+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
186+# GNU General Public License for more details.
187+#
188+# You should have received a copy of the GNU General Public License
189+# along with this program. If not, see <http://www.gnu.org/licenses/>.
190+#
191+##############################################################################
192+from osv import fields, osv
193+import tools
194+from tools.translate import _
195+from tools import config
196+
197+class wizard_url_seniat(osv.osv_memory):
198+
199+
200+ def _get_url(self,cr,uid,ids,context=None):
201+ url= self.pool.get('seniat.url')
202+ url_ids = url.search(cr, uid,[])
203+ if len(url_ids)>1:
204+ url.unlink(cr, uid,url_ids[1:])
205+ url_obj=url.browse(cr, uid,url_ids,context=None)[0]
206+ return url_obj
207+
208+ def _get_url1(self,cr,uid,ids,context=None):
209+ url_obj = self._get_url(cr,uid,ids,context)
210+ return url_obj.name
211+
212+ def _get_url2(self,cr,uid,ids,context=None):
213+ url_obj = self._get_url(cr,uid,ids,context)
214+ return url_obj.url_seniat
215+
216+ def update_url(self,cr,uid,ids,context=None):
217+ data= self.pool.get('wizard.seniat.url').read(cr, uid, ids)[0]
218+ url_obj = self._get_url(cr,uid,ids,context)
219+ url_obj.write({'name':data['url1'],'url_seniat':data['url2']})
220+ return {}
221+
222+ _name = "wizard.seniat.url"
223+ _columns = {
224+ 'url1':fields.char('URL1',64, required=True, readonly=False,help='In this field enter the URL from Seniat for search the fiscal information from partner'),
225+ 'url2':fields.char('URL2',64, required=True, readonly=False,help='In this field enter the URL from Seniat for search the retention rate from partner'),
226+ }
227+ _defaults = {
228+ 'url1': _get_url1,
229+ 'url2': _get_url2,
230+ }
231+wizard_url_seniat()
232+
233
234=== added file 'l10n_ve_fiscal_requirements/wizard/wizard_url_seniat_view.xml'
235--- l10n_ve_fiscal_requirements/wizard/wizard_url_seniat_view.xml 1970-01-01 00:00:00 +0000
236+++ l10n_ve_fiscal_requirements/wizard/wizard_url_seniat_view.xml 2011-10-09 19:21:23 +0000
237@@ -0,0 +1,34 @@
238+<?xml version="1.0" encoding="utf-8"?>
239+<openerp>
240+ <data>
241+ <record id="view_wizard_url_seniat" model="ir.ui.view">
242+ <field name="name">view.wizard.seniat.url</field>
243+ <field name="model">wizard.seniat.url</field>
244+ <field name="type">form</field>
245+ <field name="arch" type="xml">
246+ <form string="Update Url From Seniat">
247+ <separator string="URL Seniat for Partner Information" colspan="4"/>
248+ <field name="url1"/>
249+ <newline/>
250+ <separator string="URL Seniat for Retention Rate" colspan="4"/>
251+ <field name="url2"/>
252+ <separator string="Are you sure you want to do this?" colspan="4"/>
253+ <group colspan="8" col="8">
254+ <button icon="gtk-ok" name="update_url" string="Yes" type="object"/>
255+ <button icon="gtk-cancel" special="cancel" string="No"/>
256+ </group>
257+ </form>
258+ </field>
259+ </record>
260+ <record id="wizard_url_seniat_action" model="ir.actions.act_window">
261+ <field name="name">Update URL From Seniat</field>
262+ <field name="res_model">wizard.seniat.url</field>
263+ <field name="view_type">form</field>
264+ <field name="view_mode">tree,form</field>
265+ <field name="view_id" ref="view_wizard_url_seniat"/>
266+ <field name="target">new</field>
267+ </record>
268+ <menuitem name="Update URL Seniat" id="wizard_url_seniat_action2"
269+ parent="base.menu_res_company_global" action="wizard_url_seniat_action"/>
270+ </data>
271+</openerp>
272
273=== modified file 'l10n_ve_withholding_iva/partner.py'
274--- l10n_ve_withholding_iva/partner.py 2011-10-06 17:08:59 +0000
275+++ l10n_ve_withholding_iva/partner.py 2011-10-09 19:21:23 +0000
276@@ -114,15 +114,15 @@
277 return True
278
279 if xml_data.find("404")>=0:
280- if not 'all_rif' in context:
281- self._print_error(_('No Connection !'),_("Could not connect! Check the URL "))
282- else:
283- return True
284+ self._print_error(_('No Connection !'),_("Could not connect! Check the URL "))
285+ return True
286
287 def update_rif(self, cr, uid, ids, context={}):
288+ pool = self.pool.get('seniat.url')
289+ url_obj = pool.browse(cr, uid, pool.search(cr, uid, []))[0]
290+ url1 = url_obj.name + '%s'
291+ url2 = url_obj.url_seniat + '%s'
292 for partner in self.browse(cr,uid,ids):
293- url1=partner.company_id.url_seniat1_company+'%s'
294- url2=partner.company_id.url_seniat2_company+'%s'
295 if partner.vat:
296 xml_data = self._load_url(3,url1 %partner.vat[2:])
297 if not self._eval_seniat_data(xml_data,context):