Merge lp:~vauxoo/openerp-mexico-localization/l10n_mx_company_multi_address_dev_luis into lp:openerp-mexico-localization/6.1

Proposed by Luis Torres - http://www.vauxoo.com
Status: Needs review
Proposed branch: lp:~vauxoo/openerp-mexico-localization/l10n_mx_company_multi_address_dev_luis
Merge into: lp:openerp-mexico-localization/6.1
Diff against target: 2107 lines (+1012/-391) (has conflicts)
22 files modified
l10n_mx_company_multi_address/__init__.py (+31/-0)
l10n_mx_company_multi_address/__openerp__.py (+54/-0)
l10n_mx_company_multi_address/account_journal.py (+80/-0)
l10n_mx_company_multi_address/account_journal_view.xml (+21/-0)
l10n_mx_company_multi_address/invoice.py (+154/-0)
l10n_mx_company_multi_address/invoice_view_address.xml (+27/-0)
l10n_mx_company_multi_address/res_company.py (+60/-0)
l10n_mx_company_multi_address/res_company_view.xml (+18/-0)
l10n_mx_facturae/__openerp__.py (+1/-1)
l10n_mx_facturae/invoice.py (+25/-18)
l10n_mx_facturae/report/invoice_facturae_pdf.py (+2/-2)
l10n_mx_facturae/report/invoice_facturae_pdf.rml (+154/-154)
l10n_mx_facturae_22/invoice.py (+5/-5)
l10n_mx_facturae_cbb/report/invoice_facturae_pdf.py (+2/-2)
l10n_mx_facturae_cbb/report/invoice_facturae_pdf.rml (+180/-8)
l10n_mx_facturae_cer/invoice.py (+1/-1)
l10n_mx_facturae_cer/res_company.py (+7/-11)
l10n_mx_facturae_pac_sf/invoice.py (+3/-3)
l10n_mx_facturae_pac_sf/report/invoice_facturae_pac_sf_pdf.py (+2/-2)
l10n_mx_facturae_pac_sf/report/invoice_facturae_pac_sf_pdf.rml (+183/-183)
l10n_mx_facturae_seq/__openerp__.py (+1/-0)
l10n_mx_facturae_seq/invoice.py (+1/-1)
Text conflict in l10n_mx_facturae_cbb/report/invoice_facturae_pdf.rml
Contents conflict in l10n_mx_facturae_cbb/report/invoice_facturae_pdf.sxw
To merge this branch: bzr merge lp:~vauxoo/openerp-mexico-localization/l10n_mx_company_multi_address_dev_luis
Reviewer Review Type Date Requested Status
Moisés López - http://www.vauxoo.com Pending
Rodolfo Lopez Pending
Isaac López Zúñiga Pending
Review via email: mp+143589@code.launchpad.net

Description of the change

Se agrego el modulo l10n_mx_company_multi_address y se adaptaron los mudulos de facturae para que funcionen con este

To post a comment you must log in.

Unmerged revisions

229. By Luis Torres - http://www.vauxoo.com

[IMP][l10n_mx_facturae_cer]Validate that certificate is from company_emitter

228. By Luis Torres - http://www.vauxoo.com

[IMP][l10n_mx_facturae_pac_sf]Add in search from pacs validations for that the pacs belog that company to invoice and is active

227. By Luis Torres - http://www.vauxoo.com

[FIX][l10n_mx_facturae_22]Change reference where take datasfor xml, in LugarExpedicion

226. By Luis Torres - http://www.vauxoo.com

[IMP][l10n_mx_company_multi_address]Commented function
[IMP][l10n_mx_facturae_22]Add dependens and change reference where take data company
[IMP][l10n_mx_facturae]Add validation that have address for invoice

225. By Luis Torres - http://www.vauxoo.com

[IMP][l10n_mx_facturae]Change reference where take data for xml

224. By Luis Torres - http://www.vauxoo.com

[FIX][l10n_mx_facturae]Change reference where take datas for xml

223. By Luis Torres - http://www.vauxoo.com

[FIX][l10n_mx_facturae_pac_sf]Delete line that not is used

222. By Luis Torres - http://www.vauxoo.com

[IMP]Change dependens in modules

221. By Luis Torres - http://www.vauxoo.com

[IMP][l10n_mx_facturae]Change reference to company_id by company_emitted_id for xml by facturae

220. By Luis Torres - http://www.vauxoo.com

[IMP][l10n_mx_facturae_cbb]Change reference in function, field company_id by company_emitted_id

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added directory 'l10n_mx_company_multi_address'
2=== added file 'l10n_mx_company_multi_address/__init__.py'
3--- l10n_mx_company_multi_address/__init__.py 1970-01-01 00:00:00 +0000
4+++ l10n_mx_company_multi_address/__init__.py 2013-01-16 20:14:21 +0000
5@@ -0,0 +1,31 @@
6+
7+# -*- encoding: utf-8 -*-
8+###########################################################################
9+# Module Writen to OpenERP, Open Source Management Solution
10+#
11+# Copyright (c) 2012 Vauxoo - http://www.vauxoo.com/
12+# All Rights Reserved.
13+# info Vauxoo (info@vauxoo.com)
14+############################################################################
15+# Coded by: moylop260 (moylop260@vauxoo.com)
16+# Launchpad Project Manager for Publication: Nhomar Hernandez - nhomar@vauxoo.com
17+############################################################################
18+#
19+# This program is free software: you can redistribute it and/or modify
20+# it under the terms of the GNU Affero General Public License as
21+# published by the Free Software Foundation, either version 3 of the
22+# License, or (at your option) any later version.
23+#
24+# This program is distributed in the hope that it will be useful,
25+# but WITHOUT ANY WARRANTY; without even the implied warranty of
26+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27+# GNU Affero General Public License for more details.
28+#
29+# You should have received a copy of the GNU Affero General Public License
30+# along with this program. If not, see <http://www.gnu.org/licenses/>.
31+#
32+##############################################################################
33+
34+import res_company
35+import invoice
36+import account_journal
37
38=== added file 'l10n_mx_company_multi_address/__openerp__.py'
39--- l10n_mx_company_multi_address/__openerp__.py 1970-01-01 00:00:00 +0000
40+++ l10n_mx_company_multi_address/__openerp__.py 2013-01-16 20:14:21 +0000
41@@ -0,0 +1,54 @@
42+# -*- encoding: utf-8 -*-
43+###########################################################################
44+# Module Writen to OpenERP, Open Source Management Solution
45+#
46+# Copyright (c) 2012 Vauxoo - http://www.vauxoo.com/
47+# All Rights Reserved.
48+# info Vauxoo (info@vauxoo.com)
49+############################################################################
50+# Coded by: moylop260 (moylop260@vauxoo.com)
51+# Launchpad Project Manager for Publication: Nhomar Hernandez - nhomar@vauxoo.com
52+############################################################################
53+#
54+# This program is free software: you can redistribute it and/or modify
55+# it under the terms of the GNU Affero General Public License as
56+# published by the Free Software Foundation, either version 3 of the
57+# License, or (at your option) any later version.
58+#
59+# This program is distributed in the hope that it will be useful,
60+# but WITHOUT ANY WARRANTY; without even the implied warranty of
61+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
62+# GNU Affero General Public License for more details.
63+#
64+# You should have received a copy of the GNU Affero General Public License
65+# along with this program. If not, see <http://www.gnu.org/licenses/>.
66+#
67+##############################################################################
68+
69+{
70+ "name" : "Multiaddress para una misma compañia",
71+ "version" : "1.0",
72+ "author" : "Vauxoo",
73+ "category" : "Localization/Mexico",
74+ "description" : """This module allows the management of multiaddress for "factura electronica" whitout multicompany scheme
75+ """,
76+ "website" : "http://www.vauxoo.com/",
77+ "license" : "AGPL-3",
78+ "depends" : ["account",#"l10n_mx_facturae_22",
79+ ],
80+ "init_xml" : [],
81+ "demo_xml" : [],
82+ "update_xml" : [
83+ #'security/ir.model.access.csv',
84+ "invoice_view_address.xml",
85+
86+ #"ir_sequence_view.xml",
87+ #"res_company_view6.xml",
88+ #"invoice_view.xml",
89+ "res_company_view.xml",
90+ "account_journal_view.xml",
91+ #"partner_address_view.xml",
92+ ],
93+ "installable" : True,
94+ "active" : False,
95+}
96
97=== added file 'l10n_mx_company_multi_address/account_journal.py'
98--- l10n_mx_company_multi_address/account_journal.py 1970-01-01 00:00:00 +0000
99+++ l10n_mx_company_multi_address/account_journal.py 2013-01-16 20:14:21 +0000
100@@ -0,0 +1,80 @@
101+# -*- encoding: utf-8 -*-
102+###########################################################################
103+# Module Writen to OpenERP, Open Source Management Solution
104+#
105+# Copyright (c) 2012 Vauxoo - http://www.vauxoo.com/
106+# All Rights Reserved.
107+# info Vauxoo (info@vauxoo.com)
108+############################################################################
109+# Coded by: Isaac Lopez (isaac@vauxoo.com)
110+# Moises Lopez (moylop260@vauxoo.com)
111+############################################################################
112+#
113+# This program is free software: you can redistribute it and/or modify
114+# it under the terms of the GNU Affero General Public License as
115+# published by the Free Software Foundation, either version 3 of the
116+# License, or (at your option) any later version.
117+#
118+# This program is distributed in the hope that it will be useful,
119+# but WITHOUT ANY WARRANTY; without even the implied warranty of
120+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
121+# GNU Affero General Public License for more details.
122+#
123+# You should have received a copy of the GNU Affero General Public License
124+# along with this program. If not, see <http://www.gnu.org/licenses/>.
125+#
126+##############################################################################
127+from osv import fields
128+from osv import osv
129+
130+class account_journal(osv.osv):
131+ _inherit='account.journal'
132+
133+ _columns = {
134+ 'address_invoice_company_id': fields.many2one('res.partner.address', 'Invoice Company Address', domain="[('type', '=', 'invoice')]"),
135+ 'company2_id': fields.many2one("res.company", 'Company Emitter', help="Si este campo es llenado, en la factura electonica se tomaran los datos de esta compañia."),
136+ }
137+account_journal()
138+
139+
140+
141+
142+
143+
144+
145+
146+
147+
148+
149+
150+
151+
152+
153+
154+
155+
156+
157+
158+
159+
160+
161+
162+
163+
164+
165+
166+
167+
168+
169+
170+
171+
172+
173+
174+
175+
176+
177+
178+
179+
180+
181
182=== added file 'l10n_mx_company_multi_address/account_journal_view.xml'
183--- l10n_mx_company_multi_address/account_journal_view.xml 1970-01-01 00:00:00 +0000
184+++ l10n_mx_company_multi_address/account_journal_view.xml 2013-01-16 20:14:21 +0000
185@@ -0,0 +1,21 @@
186+<?xml version="1.0"?>
187+<openerp>
188+ <data>
189+
190+ <record model="ir.ui.view" id="view_account_journal_view_form_inh_multisuc">
191+ <field name="name">view.account.journal.view.form.inh.multisuc</field>
192+ <field name="model">account.journal</field>
193+ <field name="inherit_id" ref="account.view_account_journal_form"/>
194+ <field name="type">form</field>
195+ <field name="arch" type="xml">
196+ <field name="group_invoice_lines" position="after">
197+ <field name="address_invoice_company_id"/>
198+ </field>
199+ <xpath expr="/form/notebook/page[@string='General Information']/group/field[@name='company_id']" position="after">
200+ <field name="company2_id"/>
201+ </xpath>
202+ </field>
203+ </record>
204+
205+ </data>
206+</openerp>
207
208=== added file 'l10n_mx_company_multi_address/invoice.py'
209--- l10n_mx_company_multi_address/invoice.py 1970-01-01 00:00:00 +0000
210+++ l10n_mx_company_multi_address/invoice.py 2013-01-16 20:14:21 +0000
211@@ -0,0 +1,154 @@
212+# -*- encoding: utf-8 -*-
213+###########################################################################
214+# Module Writen to OpenERP, Open Source Management Solution
215+#
216+# Copyright (c) 2012 Vauxoo - http://www.vauxoo.com/
217+# All Rights Reserved.
218+# info Vauxoo (info@vauxoo.com)
219+############################################################################
220+# Coded by: Fernando Irene Garcia (fernando@vauxoo.com)
221+############################################################################
222+#
223+# This program is free software: you can redistribute it and/or modify
224+# it under the terms of the GNU Affero General Public License as
225+# published by the Free Software Foundation, either version 3 of the
226+# License, or (at your option) any later version.
227+#
228+# This program is distributed in the hope that it will be useful,
229+# but WITHOUT ANY WARRANTY; without even the implied warranty of
230+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
231+# GNU Affero General Public License for more details.
232+#
233+# You should have received a copy of the GNU Affero General Public License
234+# along with this program. If not, see <http://www.gnu.org/licenses/>.
235+#
236+##############################################################################
237+from osv import fields
238+from osv import osv
239+
240+class account_invoice(osv.osv):
241+ _inherit='account.invoice'
242+
243+ def _get_address_issued_invoice(self, cr, uid, ids, name, args, context=None):
244+ res = {}
245+ journal_obj = self.pool.get('account.journal')
246+ for id_ in ids:
247+ data = self.browse(cr, uid, id_, context=context)
248+ journal_id = data.journal_id.id
249+ data_journal = journal_obj.browse(cr, uid, journal_id, context=context)
250+ a = data_journal.address_invoice_company_id and data_journal.address_invoice_company_id.id or False
251+ b = data_journal.company2_id and data_journal.company2_id.address_invoice_parent_company_id and data_journal.company2_id.address_invoice_parent_company_id.id or False
252+ c = data.company_id and data.company_id.address_invoice_parent_company_id and data.company_id.address_invoice_parent_company_id.id or False
253+ address_invoice = a or b or c or False
254+ res[data.id] = address_invoice
255+ return res
256+
257+ def _get_company_emitter_invoice(self, cr, uid, ids, name, args, context=None):
258+ res = {}
259+ journal_obj = self.pool.get('account.journal')
260+ for id_ in ids:
261+ data = self.browse(cr, uid, id_, context=context)
262+ journal_id = data.journal_id.id
263+ data_journal = journal_obj.browse(cr, uid, journal_id, context=context)
264+ company_invoice = data_journal.company2_id and data_journal.company2_id.id or data.company_id and data.company_id.id or False
265+ res[data.id] = company_invoice
266+ return res
267+
268+ _columns = {
269+ #~ 'company2_id': fields.many2one("res.company", 'Company Emitter', readonly=True, states={'draft':[('readonly',False)]}, help="Si este campo es llenado, en la factura electonica se tomaran los datos de esta compañia."),
270+ #~ 'address_invoice_company_id': fields.many2one('res.partner.address', 'Invoice Company Address', readonly=True, states={'draft':[('readonly',False)]}, domain="[('type', '=', 'invoice'), ('company_id', '=', company_id)]"),
271+ 'address_issued_id' : fields.function(_get_address_issued_invoice, type="many2one", relation='res.partner.address', string='Address Issued Invoice'),
272+ 'company_emitter_id' : fields.function(_get_company_emitter_invoice, type="many2one", relation='res.company', string='Company Emitter Invoice')
273+ }
274+
275+ def ____________________________get_facturae_invoice_dict_data(self, cr, uid, ids, context={}):
276+ invoice_data_parents = super(account_invoice,self)._get_facturae_invoice_dict_data(cr,uid,ids,context)
277+ invoice = self.browse(cr, uid, ids)[0]
278+ invoice_data_parents[0]['Comprobante']['Emisor'] = {'rfc': (invoice.company_id.partner_id._columns.has_key('vat_split') and invoice.company_id.partner_id.vat_split or invoice.company_id.partner_id.vat or '').replace('-', ' ').replace(' ',''),'nombre': invoice.company_id.address_invoice_parent_company_id.name or '' }
279+ invoice_data_parents[0]['Comprobante']['Emisor']['DomicilioFiscal'] = {'calle': invoice.company_id.address_invoice_parent_company_id.street and invoice.company_id.address_invoice_parent_company_id.street.replace('\n\r', ' ').replace('\r\n', ' ').replace('\n', ' ').replace('\r', ' ') or '',
280+ 'noExterior': invoice.company_id.address_invoice_parent_company_id.street3 and invoice.company_id.address_invoice_parent_company_id.street3.replace('\n\r', ' ').replace('\r\n', ' ').replace('\n', ' ').replace('\r', ' ') or 'N/A',
281+ 'noInterior': invoice.company_id.address_invoice_parent_company_id.street4 and invoice.company_id.address_invoice_parent_company_id.street4.replace('\n\r', ' ').replace('\r\n', ' ').replace('\n', ' ').replace('\r', ' ') or 'N/A',
282+ 'colonia': invoice.company_id.address_invoice_parent_company_id.street2 and invoice.company_id.address_invoice_parent_company_id.street2.replace('\n\r', ' ').replace('\r\n', ' ').replace('\n', ' ').replace('\r', ' ') or 'N/A',
283+ 'localidad': invoice.company_id.address_invoice_parent_company_id.city2 and invoice.company_id.address_invoice_parent_company_id.city2.replace('\n\r', ' ').replace('\r\n', ' ').replace('\n', ' ').replace('\r', ' ') or 'N/A',
284+ 'municipio': invoice.company_id.address_invoice_parent_company_id.city and invoice.company_id.address_invoice_parent_company_id.city.replace('\n\r', ' ').replace('\r\n', ' ').replace('\n', ' ').replace('\r', ' ') or '',
285+ 'estado': invoice.company_id.address_invoice_parent_company_id.state_id and invoice.company_id.address_invoice_parent_company_id.state_id.name and invoice.company_id.address_invoice_parent_company_id.state_id.name.replace('\n\r', ' ').replace('\r\n', ' ').replace('\n', ' ').replace('\r', ' ') or '',
286+ 'pais': invoice.company_id.address_invoice_parent_company_id.country_id and invoice.company_id.address_invoice_parent_company_id.country_id.name and invoice.company_id.address_invoice_parent_company_id.country_id.name.replace('\n\r', ' ').replace('\r\n', ' ').replace('\n', ' ').replace('\r', ' ')or '',
287+ 'codigoPostal': invoice.company_id.address_invoice_parent_company_id.zip and invoice.company_id.address_invoice_parent_company_id.zip.replace('\n\r', ' ').replace('\r\n', ' ').replace('\n', ' ').replace('\r', ' ') or '',
288+ }
289+
290+ invoice_data_parents[0]['Comprobante']['Emisor']['ExpedidoEn'] = {'calle': invoice.address_invoice_company_id.street and invoice.address_invoice_company_id.street.replace('\n\r', ' ').replace('\r\n', ' ').replace('\n', ' ').replace('\r', ' ') or '',
291+ 'noExterior': invoice.address_invoice_company_id.street3 and invoice.address_invoice_company_id.street3.replace('\n\r', ' ').replace('\r\n', ' ').replace('\n', ' ').replace('\r', ' ') or 'N/A',
292+ 'noInterior': invoice.address_invoice_company_id.street4 and invoice.address_invoice_company_id.street4.replace('\n\r', ' ').replace('\r\n', ' ').replace('\n', ' ').replace('\r', ' ') or 'N/A',
293+ 'colonia': invoice.address_invoice_company_id.street2 and invoice.address_invoice_company_id.street2.replace('\n\r', ' ').replace('\r\n', ' ').replace('\n', ' ').replace('\r', ' ') or 'N/A',
294+ 'localidad': invoice.address_invoice_company_id.city2 and invoice.address_invoice_company_id.city2.replace('\n\r', ' ').replace('\r\n', ' ').replace('\n', ' ').replace('\r', ' ') or 'N/A',
295+ 'municipio': invoice.address_invoice_company_id.city and invoice.address_invoice_company_id.city.replace('\n\r', ' ').replace('\r\n', ' ').replace('\n', ' ').replace('\r', ' ') or '',
296+ 'estado': invoice.address_invoice_company_id.state_id and invoice.address_invoice_company_id.state_id.name and invoice.address_invoice_company_id.state_id.name.replace('\n\r', ' ').replace('\r\n', ' ').replace('\n', ' ').replace('\r', ' ') or '',
297+ 'pais': invoice.address_invoice_company_id.country_id and invoice.address_invoice_company_id.country_id.name and invoice.address_invoice_company_id.country_id.name.replace('\n\r', ' ').replace('\r\n', ' ').replace('\n', ' ').replace('\r', ' ')or '',
298+ 'codigoPostal': invoice.address_invoice_company_id.zip and invoice.address_invoice_company_id.zip.replace('\n\r', ' ').replace('\r\n', ' ').replace('\n', ' ').replace('\r', ' ') or '',
299+ }
300+ invoice_data_parents[0]['Comprobante']['Emisor']['RegimenFiscal'] = {'Regimen':invoice.company_id.partner_id.regimen_fiscal_id.name or ''}
301+
302+ city = invoice.address_invoice_company_id.city and invoice.address_invoice_company_id.city.replace('\n\r', ' ').replace('\r\n', ' ').replace('\n', ' ').replace('\r', ' ') or False
303+ state = invoice.address_invoice_company_id.state_id and invoice.address_invoice_company_id.state_id.name and invoice.address_invoice_company_id.state_id.name.replace('\n\r', ' ').replace('\r\n', ' ').replace('\n', ' ').replace('\r', ' ') or False
304+ country = invoice.address_invoice_company_id.country_id and invoice.address_invoice_company_id.country_id.name and invoice.address_invoice_company_id.country_id.name.replace('\n\r', ' ').replace('\r\n', ' ').replace('\n', ' ').replace('\r', ' ') or False
305+ if city and state and country:
306+ address = city +', '+ state +', '+ country
307+ else:
308+ raise osv.except_osv(('Domicilio Incompleto!'),('Verifique que el domicilio de la compañia emisora del comprobante fiscal este completo (Ciudad - Estado - Pais)'))
309+
310+ invoice_data_parents[0]['Comprobante']['LugarExpedicion'] = address
311+ return invoice_data_parents
312+
313+ def onchange_journal_id(self, cr, uid, ids, journal_id=False):
314+ result = super(account_invoice,self).onchange_journal_id(cr,uid,ids,journal_id)
315+ address_id = self.pool.get('account.journal').browse(cr, uid, journal_id) or False
316+ if address_id and address_id.address_invoice_company_id:
317+ result['value'].update({'address_invoice_company_id': address_id.address_invoice_company_id.id})
318+ if address_id and address_id.company2_id:
319+ result['value'].update({'company2_id': address_id.company2_id.id})
320+ return result
321+
322+account_invoice()
323+
324+
325+
326+
327+
328+
329+
330+
331+
332+
333+
334+
335+
336+
337+
338+
339+
340+
341+
342+
343+
344+
345+
346+
347+
348+
349+
350+
351+
352+
353+
354+
355+
356+
357+
358+
359+
360+
361+
362+
363+
364+
365+
366
367=== added file 'l10n_mx_company_multi_address/invoice_view_address.xml'
368--- l10n_mx_company_multi_address/invoice_view_address.xml 1970-01-01 00:00:00 +0000
369+++ l10n_mx_company_multi_address/invoice_view_address.xml 2013-01-16 20:14:21 +0000
370@@ -0,0 +1,27 @@
371+<?xml version="1.0"?>
372+<openerp>
373+ <data>
374+
375+ <record model="ir.ui.view" id="account_invoice_form_inh_l10n_mx_facturae_multisuc">
376+ <field name="name">account.invoice.form.inh_l10n_mx_facturae_multisuc</field>
377+ <field name="model">account.invoice</field>
378+ <field name="inherit_id" ref="account.invoice_form"/>
379+ <field name="type">form</field>
380+ <field name="arch" type="xml">
381+ <xpath expr="/form/notebook/page[@string='Other Info']/field[@name='company_id']" position="after">
382+<!--
383+ <field name="company2_id"/>
384+ <field name="address_invoice_company_id"/>
385+-->
386+ <field name="address_issued_id"/>
387+ <field name="company_emitter_id"/>
388+ </xpath>
389+
390+ <field name="journal_id" position="replace">
391+ <field name="journal_id" groups="base.group_user" on_change="onchange_journal_id(journal_id)" widget="selection"/>
392+ </field>
393+ </field>
394+ </record>
395+
396+ </data>
397+</openerp>
398
399=== added file 'l10n_mx_company_multi_address/res_company.py'
400--- l10n_mx_company_multi_address/res_company.py 1970-01-01 00:00:00 +0000
401+++ l10n_mx_company_multi_address/res_company.py 2013-01-16 20:14:21 +0000
402@@ -0,0 +1,60 @@
403+# -*- encoding: utf-8 -*-
404+###########################################################################
405+# Module Writen to OpenERP, Open Source Management Solution
406+#
407+# Copyright (c) 2012 Vauxoo - http://www.vauxoo.com/
408+# All Rights Reserved.
409+# info Vauxoo (info@vauxoo.com)
410+############################################################################
411+# Coded by: moylop260 (moylop260@vauxoo.com)
412+# Coded by: isaac (isaac@vauxoo.com)
413+############################################################################
414+#
415+# This program is free software: you can redistribute it and/or modify
416+# it under the terms of the GNU Affero General Public License as
417+# published by the Free Software Foundation, either version 3 of the
418+# License, or (at your option) any later version.
419+#
420+# This program is distributed in the hope that it will be useful,
421+# but WITHOUT ANY WARRANTY; without even the implied warranty of
422+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
423+# GNU Affero General Public License for more details.
424+#
425+# You should have received a copy of the GNU Affero General Public License
426+# along with this program. If not, see <http://www.gnu.org/licenses/>.
427+#
428+##############################################################################
429+
430+from osv import osv
431+from osv import fields
432+from tools.translate import _
433+import os
434+import time
435+
436+class res_company(osv.osv):
437+ _inherit = 'res.company'
438+
439+ def get_address_invoice_parent_company_id(self, cr, uid, ids, field, arg, context=None):
440+ if context is None:
441+ context = {}
442+ res = {}
443+ partner_obj = self.pool.get('res.partner')
444+ companies = self.browse(cr, uid, ids, context=context)
445+ for company_id in companies:
446+ partner_parent = company_id and company_id.parent_id and company_id.parent_id.partner_id or False
447+ if partner_parent:
448+ address_id = partner_obj.address_get(cr, uid, [partner_parent.id], ['invoice'])['invoice']
449+ #Validar, si tiene hijos utilizar no utilizar la main, mejor utilizar la normal company_id.partner_id.id
450+ elif company_id.company_address_main_id:
451+ address_id = company_id.company_address_main_id.id
452+ else:
453+ address_id = partner_obj.address_get(cr, uid, [company_id.partner_id.id], ['invoice'])['invoice']
454+ res[company_id.id] = address_id
455+ return res
456+
457+ _columns = {
458+ 'address_invoice_parent_company_id': fields.many2one("res.partner.address", 'Invoice Company Address Parent', help="En este campo se debe colocar la dirección de la compañia matriz, independientemente si se maneja un esquema Multi-company o Multi-Address.", domain="[('type', '=', 'invoice')]"),
459+ }
460+res_company()
461+
462+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
463
464=== added file 'l10n_mx_company_multi_address/res_company_view.xml'
465--- l10n_mx_company_multi_address/res_company_view.xml 1970-01-01 00:00:00 +0000
466+++ l10n_mx_company_multi_address/res_company_view.xml 2013-01-16 20:14:21 +0000
467@@ -0,0 +1,18 @@
468+<?xml version="1.0" encoding="utf-8"?>
469+<openerp>
470+ <data>
471+
472+ <record model="ir.ui.view" id="view_res_company_form_inh_facturae_form1">
473+ <field name="name">view.res.company.form.inh.facturae_form1</field>
474+ <field name="inherit_id" ref="base.view_company_form"/>
475+ <field name="model">res.company</field>
476+ <field name="type">form</field>
477+ <field name="arch" type="xml">
478+ <field name="parent_id" position="after">
479+ <field name="address_invoice_parent_company_id"/>
480+ </field>
481+ </field>
482+ </record>
483+
484+ </data>
485+</openerp>
486
487=== modified file 'l10n_mx_facturae/__openerp__.py'
488--- l10n_mx_facturae/__openerp__.py 2012-08-27 23:55:07 +0000
489+++ l10n_mx_facturae/__openerp__.py 2013-01-16 20:14:21 +0000
490@@ -43,7 +43,7 @@
491 "website" : "http://www.vauxoo.com/",
492 "license" : "AGPL-3",
493 "depends" : ["account", "base_vat", "document",
494- "l10n_mx_facturae_lib", "l10n_mx_partner_address",
495+ "l10n_mx_facturae_lib", #"l10n_mx_partner_address",
496 "l10n_mx_facturae_cer",
497 "l10n_mx_invoice_datetime",
498 "l10n_mx_invoice_tax_ref",
499
500=== modified file 'l10n_mx_facturae/invoice.py'
501--- l10n_mx_facturae/invoice.py 2013-01-04 22:49:04 +0000
502+++ l10n_mx_facturae/invoice.py 2013-01-16 20:14:21 +0000
503@@ -218,7 +218,7 @@
504 if sequence_id:
505 sequence = sequence_obj.browse(cr, uid, [sequence_id], context)[0]
506 fname = ""
507- fname += (invoice.company_id.partner_id and (invoice.company_id.partner_id._columns.has_key('vat_split') and invoice.company_id.partner_id.vat_split or invoice.company_id.partner_id.vat) or '')
508+ fname += (invoice.company_emitter_id.partner_id and (invoice.company_emitter_id.partner_id._columns.has_key('vat_split') and invoice.company_emitter_id.partner_id.vat_split or invoice.company_emitter_id.partner_id.vat) or '')
509 fname += '_'
510 number_work = invoice.number or invoice.internal_number
511 try:
512@@ -343,7 +343,7 @@
513 invoice = self.browse(cr, uid, id, context=context)
514 #certificate_id = invoice.company_id.certificate_id
515 context.update( {'date_work': invoice.date_invoice_tz} )
516- certificate_id = self.pool.get('res.company')._get_current_certificate(cr, uid, [invoice.company_id.id], context=context)[invoice.company_id.id]
517+ certificate_id = self.pool.get('res.company')._get_current_certificate(cr, uid, [invoice.company_emitter_id.id], context=context)[invoice.company_emitter_id.id]
518 certificate_id = certificate_id and self.pool.get('res.company.facturae.certificate').browse(cr, uid, [certificate_id], context=context)[0] or False
519
520 if certificate_id:
521@@ -799,27 +799,34 @@
522 #Termina seccion: Comprobante
523 #Inicia seccion: Emisor
524 partner_obj = self.pool.get('res.partner')
525- partner = invoice.company_id and invoice.company_id.partner_id and invoice.company_id.partner_id or False
526- partner_parent = (invoice.company_id and invoice.company_id.parent_id and invoice.company_id.parent_id.partner_id) or (invoice.company_id.partner_id and invoice.company_id.partner_id) or False
527-
528- address_invoice_id = partner_obj.address_get(cr, uid, [partner.id], ['invoice'])['invoice']
529- address_invoice_parent_id = partner_obj.address_get(cr, uid, [partner_parent.id], ['invoice'])['invoice']
530-
531- if not address_invoice_id:
532- raise osv.except_osv('Warning !', 'No se tiene definido los datos de facturacion del partner [%s].\n%s !'%(partner.name, msg2))
533-
534- address_invoice = self.pool.get('res.partner.address').browse(cr, uid, address_invoice_id, context)
535- address_invoice_parent = self.pool.get('res.partner.address').browse(cr, uid, address_invoice_parent_id, context)
536-
537- if not partner.vat:
538- raise osv.except_osv('Warning !', 'No se tiene definido el RFC del partner [%s].\n%s !'%(partner.name, msg2))
539+ #~ partner = invoice.address_issued_id and invoice.address_issued_id.partner_id or False
540+ address_invoice = invoice.address_issued_id or False
541+ address_invoice_parent = invoice.company_emitter_id and invoice.company_emitter_id.address_invoice_parent_company_id or False
542+
543+ if not address_invoice:
544+ raise osv.except_osv('Warning !', 'No se tiene definida la direccion emisora !')
545+
546+ if not address_invoice_parent:
547+ raise osv.except_osv('Warning !', 'No se ha definido una compañia !')
548+
549+ #~ address_invoice_id = partner_obj.address_get(cr, uid, [partner.id], ['invoice'])['invoice']
550+ #~ address_invoice_parent_id = partner_obj.address_get(cr, uid, [partner_parent.id], ['invoice'])['invoice']
551+
552+ #~ if not address_invoice_id:
553+ #~ raise osv.except_osv('Warning !', 'No se tiene definido los datos de facturacion del partner [%s].\n%s !'%(partner.name, msg2))
554+
555+ #~ address_invoice = self.pool.get('res.partner.address').browse(cr, uid, address_invoice_id, context)
556+ #~ address_invoice_parent = self.pool.get('res.partner.address').browse(cr, uid, address_invoice_parent_id, context)
557+
558+ #~ if not partner.vat:
559+ #~ raise osv.except_osv('Warning !', 'No se tiene definido el RFC del partner [%s].\n%s !'%(partner.name, msg2))
560
561 invoice_data = invoice_data_parent['Comprobante']
562 invoice_data['Emisor'] = {}
563 invoice_data['Emisor'].update({
564
565- 'rfc': ((partner_parent._columns.has_key('vat_split') and partner_parent.vat_split or partner_parent.vat) or '').replace('-', ' ').replace(' ',''),
566- 'nombre': address_invoice_parent.name or partner_parent.name or '',
567+ 'rfc': ((address_invoice_parent.partner_id._columns.has_key('vat_split') and address_invoice_parent.partner_id.vat_split or address_invoice_parent.partner_id.vat) or '').replace('-', ' ').replace(' ',''),
568+ 'nombre': address_invoice_parent.name or address_invoice_parent.partner_id.name or '',
569 #Obtener domicilio dinamicamente
570 #virtual_invoice.append( (invoice.company_id and invoice.company_id.partner_id and invoice.company_id.partner_id.vat or '').replac
571
572
573=== modified file 'l10n_mx_facturae/report/invoice_facturae_pdf.py'
574--- l10n_mx_facturae/report/invoice_facturae_pdf.py 2012-08-28 23:32:57 +0000
575+++ l10n_mx_facturae/report/invoice_facturae_pdf.py 2013-01-16 20:14:21 +0000
576@@ -172,14 +172,14 @@
577 partner_obj = pool.get('res.partner')
578 address_obj = pool.get('res.partner.address')
579 invoice = invoice_obj.browse(self.cr, self.uid, invoice_id)
580- partner_id = invoice.company_id.parent_id and invoice.company_id.parent_id.partner_id.id or invoice.company_id.partner_id.id
581+ partner_id = invoice.company_emitted_id.parent_id and invoice.company_emitted_id.parent_id.partner_id.id or invoice.company_emitted_id.partner_id.id
582 self.invoice = invoice
583 #print "partner_id",partner_id
584 #invoice = partner_obj.browse(cr, uid, invoice_id)
585 address_id = partner_obj.address_get(self.cr, self.uid, [partner_id], ['invoice'])['invoice']
586 self.company_address_invoice = address_obj.browse(self.cr, self.uid, address_id)
587
588- subpartner_id = invoice.company_id.partner_id.id
589+ subpartner_id = invoice.company_emitted_id.partner_id.id
590 if partner_id == subpartner_id:
591 self.subcompany_address_invoice = self.company_address_invoice
592 else:
593
594=== modified file 'l10n_mx_facturae/report/invoice_facturae_pdf.rml'
595--- l10n_mx_facturae/report/invoice_facturae_pdf.rml 2012-09-08 04:35:43 +0000
596+++ l10n_mx_facturae/report/invoice_facturae_pdf.rml 2013-01-16 20:14:21 +0000
597@@ -28,16 +28,6 @@
598 <blockAlignment value="LEFT"/>
599 <blockValign value="TOP"/>
600 </blockTableStyle>
601- <blockTableStyle id="Tabla4">
602- <blockAlignment value="LEFT"/>
603- <blockValign value="TOP"/>
604- <lineStyle kind="LINEBEFORE" colorName="#000000" start="0,0" stop="0,-1"/>
605- <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
606- <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
607- <lineStyle kind="LINEAFTER" colorName="#000000" start="1,0" stop="1,-1"/>
608- <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
609- <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
610- </blockTableStyle>
611 <blockTableStyle id="Table1">
612 <blockAlignment value="LEFT"/>
613 <blockValign value="TOP"/>
614@@ -52,6 +42,16 @@
615 <lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
616 <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
617 </blockTableStyle>
618+ <blockTableStyle id="Tabla4">
619+ <blockAlignment value="LEFT"/>
620+ <blockValign value="TOP"/>
621+ <lineStyle kind="LINEBEFORE" colorName="#000000" start="0,0" stop="0,-1"/>
622+ <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
623+ <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
624+ <lineStyle kind="LINEAFTER" colorName="#000000" start="1,0" stop="1,-1"/>
625+ <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
626+ <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
627+ </blockTableStyle>
628 <initialize>
629 <paraStyle name="all" alignment="justify"/>
630 </initialize>
631@@ -59,31 +59,29 @@
632 <paraStyle name="P2" fontName="Helvetica" fontSize="8.0" leading="10"/>
633 <paraStyle name="P3" fontName="Helvetica" fontSize="8.0" leading="10"/>
634 <paraStyle name="P4" fontName="Helvetica" fontSize="10.0" leading="13"/>
635- <paraStyle name="P5" fontName="Helvetica" textColor="#280099"/>
636- <paraStyle name="P6" fontName="Helvetica" alignment="RIGHT" textColor="#280099"/>
637- <paraStyle name="P7" fontName="Helvetica" textColor="#ff3333"/>
638- <paraStyle name="P8" fontName="Helvetica" fontSize="12.0" leading="15" textColor="#800000"/>
639- <paraStyle name="P9" fontName="Helvetica" fontSize="2.0" leading="3" textColor="#800000"/>
640- <paraStyle name="P10" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
641- <paraStyle name="P11" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
642- <paraStyle name="P12" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="6.0" leading="8" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
643- <paraStyle name="P10_enc" fontName="Helvetica-Bold" fontSize="6.0" leading="8" alignment="CENTER"/>
644- <paraStyle name="P11_txt" fontName="Helvetica" fontSize="6.0" leading="8" alignment="CENTER"/>
645- <paraStyle name="P13" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
646- <paraStyle name="P14" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
647- <paraStyle name="P15" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="6.0" leading="8" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
648- <paraStyle name="P16" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
649- <paraStyle name="P17" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
650- <paraStyle name="P18" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="18.0" leading="22" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
651- <paraStyle name="P19" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
652- <paraStyle name="P20" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
653- <paraStyle name="P21" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
654- <paraStyle name="P22" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#000000"/>
655- <paraStyle name="P23" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
656- <paraStyle name="P24" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" spaceBefore="0.0" spaceAfter="0.0"/>
657- <paraStyle name="P25" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
658- <paraStyle name="P26" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
659- <paraStyle name="P27" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
660+ <paraStyle name="P5" fontName="Helvetica" fontSize="6.0" leading="8" alignment="CENTER"/>
661+ <paraStyle name="P6" fontName="Helvetica-Bold" fontSize="6.0" leading="8" alignment="CENTER"/>
662+ <paraStyle name="P7" fontName="Helvetica" textColor="#280099"/>
663+ <paraStyle name="P8" fontName="Helvetica" alignment="RIGHT" textColor="#280099"/>
664+ <paraStyle name="P9" fontName="Helvetica" textColor="#ff3333"/>
665+ <paraStyle name="P10" fontName="Helvetica" fontSize="12.0" leading="15" textColor="#800000"/>
666+ <paraStyle name="P11" fontName="Helvetica" fontSize="2.0" leading="3" textColor="#800000"/>
667+ <paraStyle name="P12" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
668+ <paraStyle name="P13" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
669+ <paraStyle name="P14" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="6.0" leading="8" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
670+ <paraStyle name="P15" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
671+ <paraStyle name="P16" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
672+ <paraStyle name="P17" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
673+ <paraStyle name="P18" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="6.0" leading="8" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
674+ <paraStyle name="P19" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
675+ <paraStyle name="P20" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
676+ <paraStyle name="P21" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
677+ <paraStyle name="P22" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
678+ <paraStyle name="P23" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
679+ <paraStyle name="P24" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="18.0" leading="22" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
680+ <paraStyle name="P25" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#000000"/>
681+ <paraStyle name="P26" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
682+ <paraStyle name="P27" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" spaceBefore="0.0" spaceAfter="0.0"/>
683 <paraStyle name="Standard" fontName="Helvetica"/>
684 <paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
685 <paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
686@@ -100,60 +98,59 @@
687 </stylesheet>
688 <story>
689 <section>
690- <para style="P15">[[ repeatIn(objects,'o') ]] <font face="Helvetica" size="9.0">[[ set_global_data(o) ]]</font></para>
691- <para style="P18">[[ o.company_id.parent_id and o.company_id.parent_id.partner_id.name or o.company_id.partner_id.name ]]</para>
692+ <para style="P18">[[ repeatIn(objects,'o') ]] <font face="Helvetica" size="9.0">[[ set_global_data(o) ]]</font></para>
693+ <para style="P24">[[ o.company_emitter_id.address_invoice_parent_company_id.name or '' ]]</para>
694 <blockTable colWidths="125.0,207.0,166.0" style="Tabla1">
695 <tr>
696 <td>
697- <para style="P23">[[ o.company_id.logo and setTag('para','image',{'width':'120.0','height':'80.0'}) ]] [[ o.company_id.logo ]]</para>
698- </td>
699- <td>
700- <para style="P17">[[ company_address()['name'] or o.company_id.partner_id.name ]]</para>
701- <para style="P20">
702- <font color="white"> </font>
703- </para>
704- <para style="P17">Calle: [[ company_address()['street'] or '' ]] Nro. Ext: [[ company_address()['street3'] or '' ]] Int: [[ company_address()['street4'] or '' ]]</para>
705- <para style="P20">
706- <font color="white"> </font>
707- </para>
708- <para style="P17">Colonia: [[ company_address()['street2'] or '' ]]</para>
709- <para style="P20">
710- <font color="white"> </font>
711- </para>
712- <para style="P17">Ciudad: [[ company_address()['city'] or '' ]] Estado: [[ company_address()['state_id'] and company_address()['state_id']['name'] or '' ]]</para>
713- <para style="P21">
714- <font color="white"> </font>
715- </para>
716- <para style="P17">Localidad: [[ company_address()['city2'] or '' ]]</para>
717- <para style="P20">
718- <font color="white"> </font>
719- </para>
720- <para style="P17">CP: [[ company_address()['zip'] or '' ]]</para>
721- <para style="P20">
722- <font color="white"> </font>
723- </para>
724- <para style="P17">RFC: [[ o.company_id.partner_id._columns.has_key('vat_split') and o.company_id.partner_id.vat_split or o.company_id.partner_id.vat ]]</para>
725- <para style="P20">
726- <font color="white"> </font>
727- </para>
728- <para style="P19">Teléfono(s): </para>
729- <para style="P19">[[ company_address()['phone'] or removeParentNode('para') ]]</para>
730- <para style="P19">[[ company_address()['fax'] or removeParentNode('para') ]]</para>
731- <para style="P19">[[ company_address()['mobile'] or removeParentNode('para') ]]</para>
732- </td>
733- <td>
734- <para style="P7">
735+ <para style="P26">[[ o.company_emitter_id.logo and setTag('para','image',{'width':'120.0','height':'80.0'}) ]] [[ o.company_emitter_id.logo ]]</para>
736+ </td>
737+ <td>
738+ <para style="P22">
739+ <font color="white"> </font>
740+ </para>
741+ <para style="P20">Calle: [[ o.company_emitter_id.address_invoice_parent_company_id.street or '' ]] Nro. Ext: [[ o.company_emitter_id.address_invoice_parent_company_id.street3 or '' ]] Int: [[ o.company_emitter_id.address_invoice_parent_company_id.street4 or '' ]]</para>
742+ <para style="P22">
743+ <font color="white"> </font>
744+ </para>
745+ <para style="P20">Colonia: [[ o.company_emitter_id.address_invoice_parent_company_id.street2 or '' ]]</para>
746+ <para style="P22">
747+ <font color="white"> </font>
748+ </para>
749+ <para style="P20">Ciudad: [[ o.company_emitter_id.address_invoice_parent_company_id.city or '' ]] Estado: [[ o.company_emitter_id.address_invoice_parent_company_id.state_id and o.company_emitter_id.address_invoice_parent_company_id.state_id.name or '' ]]</para>
750+ <para style="P23">
751+ <font color="white"> </font>
752+ </para>
753+ <para style="P20">Localidad: [[ o.company_emitter_id.address_invoice_parent_company_id.city2 or '' ]]</para>
754+ <para style="P22">
755+ <font color="white"> </font>
756+ </para>
757+ <para style="P20">CP: [[ o.company_emitter_id.address_invoice_parent_company_id.zip or '' ]]</para>
758+ <para style="P22">
759+ <font color="white"> </font>
760+ </para>
761+ <para style="P20">RFC: [[ o.company_emitter_id.partner_id._columns.has_key('vat_split') and o.company_emitter_id.partner_id.vat_split or o.company_emitter_id.partner_id.vat ]]</para>
762+ <para style="P22">
763+ <font color="white"> </font>
764+ </para>
765+ <para style="P21">Teléfono(s): </para>
766+ <para style="P21">[[ o.company_emitter_id.address_invoice_parent_company_id.phone or removeParentNode('para') ]]</para>
767+ <para style="P21">[[ o.company_emitter_id.address_invoice_parent_company_id.fax or removeParentNode('para') ]]</para>
768+ <para style="P21">[[ o.company_emitter_id.address_invoice_parent_company_id.mobile or removeParentNode('para') ]]</para>
769+ </td>
770+ <td>
771+ <para style="P9">
772 <font face="Helvetica" size="18.0">Folio: [[ ( o.type in ['out_invoice', 'out_refund'] ) and ( o.state in ['open', 'paid', 'cancel'] ) and o.number or 'SIN FOLIO O ESTATUS NO VALIDO' ]]</font>
773 </para>
774- <para style="P9">
775- <font color="white"> </font>
776- </para>
777- <para style="P8">[[ o.state == 'cancel' and 'FACTURA CANCELADA' ]]</para>
778- <para style="P9">
779- <font color="white"> </font>
780- </para>
781- <para style="Table Contents">[[ company_address()['city'] or '' ]], [[ company_address()['state_id'] and company_address()['state_id']['name'] or '' ]] a</para>
782- <para style="P24">[[ o.date_invoice_tz or '' ]]</para>
783+ <para style="P11">
784+ <font color="white"> </font>
785+ </para>
786+ <para style="P10">[[ o.state == 'cancel' and 'FACTURA CANCELADA' ]]</para>
787+ <para style="P11">
788+ <font color="white"> </font>
789+ </para>
790+ <para style="Table Contents">[[ o. address_issued_id and o.address_issued_id.city or '' ]], [[ o.address_issued_id.state_id and o.address_issued_id.state_id.name or '' ]] a</para>
791+ <para style="P27">[[ o.date_invoice_tz or '' ]]</para>
792 <para style="Table Contents">Serie: [[ get_approval() and get_approval().serie or '' ]]</para>
793 <para style="Table Contents">Aprobación: [[ get_approval() and get_approval().approval_number or '' ]]</para>
794 <para style="Table Contents">Año Aprobación:[[ get_approval() and get_approval().approval_year or '' ]]</para>
795@@ -163,7 +160,7 @@
796 <blockTable colWidths="249.0,258.0" style="Tabla2">
797 <tr>
798 <td>
799- <para style="P5">Receptor</para>
800+ <para style="P7">Receptor</para>
801 <para style="Table Contents"><font face="Helvetica">Nombre: </font>[[ o.partner_id.name ]]</para>
802 <para style="terp_default_8"><font face="Helvetica">Dirección:</font> [[ o.address_invoice_id.street ]] No. Ext: [[ o.address_invoice_id.street3 ]] Int: [[ o.address_invoice_id.street4 ]]</para>
803 <para style="terp_default_8"><font face="Helvetica">Colonia:</font> [[ o.address_invoice_id.street2 or '' ]]</para>
804@@ -171,47 +168,47 @@
805 <para style="terp_default_8"><font face="Helvetica">Localidad: </font>[[ o.address_invoice_id.city2 or '' ]]</para>
806 <para style="terp_default_8"><font face="Helvetica">C.P.:</font> [[ o.address_invoice_id.zip or '' ]] </para>
807 <para style="terp_default_8"><font face="Helvetica">R. F. C. :</font> [[ o.partner_id._columns.has_key('vat_split') and o.partner_id.vat_split or o.partner_id.vat ]]</para>
808- <para style="P22">Teléfono(s): </para>
809- <para style="P16">[[ o.address_invoice_id.phone or removeParentNode('para') ]]</para>
810- <para style="P16">[[ o.address_invoice_id.fax or removeParentNode('para') ]]</para>
811- <para style="P16">[[ o.address_invoice_id.mobile or removeParentNode('para') ]]</para>
812+ <para style="P25">Teléfono(s): </para>
813+ <para style="P19">[[ o.address_invoice_id.phone or removeParentNode('para') ]]</para>
814+ <para style="P19">[[ o.address_invoice_id.fax or removeParentNode('para') ]]</para>
815+ <para style="P19">[[ o.address_invoice_id.mobile or removeParentNode('para') ]]</para>
816 </td>
817 <td>
818 <para style="Table Contents">Condición de pago: [[ format(o.payment_term and (o.payment_term.note or o.payment_term.name) or removeParentNode('para') ) ]]</para>
819 <para style="P3">Origen: [[ o.origin or removeParentNode('para') ]]</para>
820 <para style="P3">Expedido en:</para>
821- <para style="P3">[[ subcompany_address()['name'] or o.company_id.partner_id.name ]]</para>
822- <para style="P3">Calle: [[ subcompany_address()['street'] or '' ]] Nro. Ext: [[ subcompany_address()['street3'] or '' ]] Int: [[ subcompany_address()['street4'] or '' ]]</para>
823- <para style="P3">Colonia: [[ subcompany_address()['street2'] or '' ]]</para>
824- <para style="P3">Ciudad: [[ subcompany_address()['city'] or '' ]] </para>
825- <para style="P3">Estado: [[ subcompany_address()['state_id'] and subcompany_address()['state_id']['name'] or '' ]]</para>
826- <para style="P3">Localidad: [[ subcompany_address()['city2'] or '' ]]</para>
827- <para style="P3">CP: [[ subcompany_address()['zip'] or '' ]] </para>
828+ <para style="P3">[[ o.address_issued_id and o.address_issued_id.name or '' ]]</para>
829+ <para style="P3">Calle: [[ o.address_issued_id.street or '' ]] Nro. Ext: [[ o.address_issued_id.street3 or '' ]] Int: [[ o.address_issued_id.street4 or '' ]]</para>
830+ <para style="P3">Colonia: [[ o.address_issued_id.street2 or '' ]]</para>
831+ <para style="P3">Ciudad: [[ o.address_issued_id.city or '' ]] </para>
832+ <para style="P3">Estado: [[ o.address_issued_id.state_id and o.address_issued_id.state_id.name or '' ]]</para>
833+ <para style="P3">Localidad: [[ o.address_issued_id.city2 or '' ]]</para>
834+ <para style="P3">CP: [[ o.address_issued_id.zip or '' ]]</para>
835 </td>
836 </tr>
837 </blockTable>
838 <blockTable colWidths="55.0,43.0,158.0,55.0,63.0,54.0,81.0" style="Tabla3">
839 <tr>
840 <td>
841- <para style="P5">Cant.</para>
842- </td>
843- <td>
844- <para style="P5">Unidad</para>
845- </td>
846- <td>
847- <para style="P5">Descripción</para>
848- </td>
849- <td>
850- <para style="P5">Clave</para>
851- </td>
852- <td>
853- <para style="P6">P.Unitario</para>
854- </td>
855- <td>
856- <para style="P6">Dto. %</para>
857- </td>
858- <td>
859- <para style="P6">Importe</para>
860+ <para style="P7">Cant.</para>
861+ </td>
862+ <td>
863+ <para style="P7">Unidad</para>
864+ </td>
865+ <td>
866+ <para style="P7">Descripción</para>
867+ </td>
868+ <td>
869+ <para style="P7">Clave</para>
870+ </td>
871+ <td>
872+ <para style="P8">P.Unitario</para>
873+ </td>
874+ <td>
875+ <para style="P8">Dto. %</para>
876+ </td>
877+ <td>
878+ <para style="P8">Importe</para>
879 </td>
880 </tr>
881 <tr>
882@@ -245,7 +242,7 @@
883 <blockTable colWidths="414.0,93.0" style="Tabla7">
884 <tr>
885 <td>
886- <para style="P6">Suma $</para>
887+ <para style="P8">Suma $</para>
888 </td>
889 <td>
890 <para style="P1">[[formatLang( ( exists_key('global_discount_percent') and o.global_discount_amount or 0.0 ) + (o.amount_untaxed or 0.0), digits=get_digits(dp='Account') )]]</para>
891@@ -253,7 +250,7 @@
892 </tr>
893 <tr>
894 <td>
895- <para style="P6">Descuento: [[ exists_key('global_discount_percent') and o.global_discount_percent or removeParentNode('tr')]] %</para>
896+ <para style="P8">Descuento: [[ exists_key('global_discount_percent') and o.global_discount_percent or removeParentNode('tr')]] %</para>
897 </td>
898 <td>
899 <para style="P1">[[o.global_discount_amount and formatLang( o.global_discount_amount) or '']]</para>
900@@ -261,7 +258,7 @@
901 </tr>
902 <tr>
903 <td>
904- <para style="P6">Sub Total $</para>
905+ <para style="P8">Sub Total $</para>
906 </td>
907 <td>
908 <para style="P1">[[ formatLang(o.amount_untaxed) ]]</para>
909@@ -269,9 +266,9 @@
910 </tr>
911 <tr>
912 <td>
913- <para style="P6">
914+ <para style="P8">
915 <font face="Helvetica" size="6.0">[[ repeatIn( get_taxes(), 'tax' ) ]]</font>
916- <font face="Helvetica">[[ tax['name2'] ]] ([[ round( float( tax['tax_percent'] ) ) or '0.0' ]]%) $</font>
917+ <font face="Helvetica">[[ tax['name2'] ]] ([[ round( float( tax['tax_percent'] ) ) ]]%) $</font>
918 </para>
919 </td>
920 <td>
921@@ -280,7 +277,7 @@
922 </tr>
923 <tr>
924 <td>
925- <para style="P6">
926+ <para style="P8">
927 <font face="Helvetica" size="6.0">[[ repeatIn( get_taxes_ret(), 'tax_ret' ) ]]</font>
928 <font face="Helvetica">[[ tax_ret['name2'] ]] Ret ([[ round( float( tax_ret['tax_percent'] ),2 )*-1 ]]%) $</font>
929 </para>
930@@ -291,7 +288,7 @@
931 </tr>
932 <tr>
933 <td>
934- <para style="P6">Total $</para>
935+ <para style="P8">Total $</para>
936 </td>
937 <td>
938 <para style="P1">[[ formatLang(o.amount_total) ]]</para>
939@@ -299,8 +296,8 @@
940 </tr>
941 <tr>
942 <td>
943- <para style="P13">IMPORTE CON LETRA:</para>
944- <para style="P11">[[ o.amount_to_text ]]</para>
945+ <para style="P15">IMPORTE CON LETRA:</para>
946+ <para style="P13">[[ o.amount_to_text ]]</para>
947 </td>
948 <td>
949 <para style="P1">
950@@ -309,53 +306,56 @@
951 </td>
952 </tr>
953 </blockTable>
954- <para style="P10">PAGO EN UNA SOLA EXHIBICIÓN</para>
955- <para style="P10">
956- <font color="white"> </font>
957- </para>
958- <para style="P10">“Este documento es una representacion impresa de un CFD” </para>
959- <para style="P10">CFD, Comprobante Fiscal Digital</para>
960- <para style="P10">
961- <font color="white"> </font>
962- </para>
963- <blockTable colWidths="157.0,175.0,166.0" style="Table1">
964+ <para style="P12">PAGO EN UNA SOLA EXHIBICIÓN</para>
965+ <para style="P12">
966+ <font color="white"> </font>
967+ </para>
968+ <para style="P12">“Este documento es una representacion impresa de un CFD” </para>
969+ <para style="P12">CFD, Comprobante Fiscal Digital</para>
970+ <para style="P12">
971+ <font color="white"> </font>
972+ </para>
973+ <blockTable colWidths="166.0,166.0,166.0" style="Table1">
974 <tr>
975 <td>
976- <para style="P10_enc">Régimen Fiscal </para>
977- <para style="P11_txt">[[o.company_id.partner_id.regimen_fiscal_id and o.company_id.partner_id.regimen_fiscal_id.name or 'No identificado']]</para>
978- </td>
979- <td>
980- <para style="P10_enc">Método de Pago: </para>
981- <para style="P11_txt">[[o.pay_method_id.name or 'No identificado']]</para>
982- </td>
983- <td>
984- <para style="P10_enc">Últimos 4 dígitos de la cuenta bancaria:</para>
985- <para style="P11_txt">[[o.acc_payment.last_acc_number or 'No identificado']]</para>
986+ <para style="P6">Régimen Fiscal:</para>
987+ <para style="P5">[[o.company_emitter_id.partner_id.regimen_fiscal_id and o.company_emitter_id.partner_id.regimen_fiscal_id.name or 'No identificado']]</para>
988+ </td>
989+ <td>
990+ <para style="P6">Método de Pago:</para>
991+ <para style="P5">[[o.pay_method_id.name or 'No identificado']]</para>
992+ </td>
993+ <td>
994+ <para style="P6">Últimos 4 dígitos de la cuenta bancaria:</para>
995+ <para style="P5">[[o.acc_payment.last_acc_number or 'No identificado']]</para>
996 </td>
997 </tr>
998 </blockTable>
999+ <para style="P17">
1000+ <font color="white"> </font>
1001+ </para>
1002 <blockTable colWidths="101.0,397.0" style="Tabla4">
1003 <tr>
1004 <td>
1005- <para style="P2">[[ o.company_id.cif_file and setTag('para','image',{'width':'98.0','height':'161.0'}) ]] [[ o.company_id.cif_file ]]</para>
1006+ <para style="P2">[[ o.company_emitter_id.cif_file and setTag('para','image',{'width':'98.0','height':'161.0'}) ]] [[ o.company_emitter_id.cif_file ]]</para>
1007 </td>
1008 <td>
1009- <para style="P10">Serie del Certificado :</para>
1010- <para style="P10">[[ o.no_certificado or '' ]]</para>
1011- <para style="P10">
1012+ <para style="P12">Serie del Certificado :</para>
1013+ <para style="P12">[[ o.no_certificado or '' ]]</para>
1014+ <para style="P12">
1015 <font color="white"> </font>
1016 </para>
1017- <para style="P10">Sello digital :</para>
1018- <para style="P12">[[ split_string( o.sello ) ]]</para>
1019+ <para style="P12">Sello digital :</para>
1020+ <para style="P14">[[ split_string( o.sello ) ]]</para>
1021 </td>
1022 </tr>
1023 </blockTable>
1024- <para style="P10">Cadena original :</para>
1025- <para style="P11">[[ split_string( o.cadena_original ) ]]</para>
1026- <para style="P14">
1027+ <para style="P12">Cadena original :</para>
1028+ <para style="P13">[[ split_string( o.cadena_original ) ]]</para>
1029+ <para style="P16">
1030 <font color="white"> </font>
1031 </para>
1032- <para style="P14">Vendedor: [[o.user_id.name]]</para>
1033+ <para style="P16">Vendedor: [[o.user_id.name]]</para>
1034 <para style="terp_default_9">[[ format(o.comment or '') ]]</para>
1035 </section>
1036 <para style="Standard">
1037
1038=== modified file 'l10n_mx_facturae/report/invoice_facturae_pdf.sxw'
1039Binary files l10n_mx_facturae/report/invoice_facturae_pdf.sxw 2012-09-08 04:35:43 +0000 and l10n_mx_facturae/report/invoice_facturae_pdf.sxw 2013-01-16 20:14:21 +0000 differ
1040=== modified file 'l10n_mx_facturae_22/invoice.py'
1041--- l10n_mx_facturae_22/invoice.py 2012-09-11 19:12:04 +0000
1042+++ l10n_mx_facturae_22/invoice.py 2013-01-16 20:14:21 +0000
1043@@ -54,15 +54,15 @@
1044 return invoice_data_parents
1045 else:
1046 invoice = self.browse(cr, uid, ids, context={'date':date_invoice})[0]
1047- city = invoice_data_parents and invoice_data_parents[0].get('Comprobante',{}).get('Emisor', {}).get('DomicilioFiscal',{}).get('municipio', {}) or False
1048- state = invoice_data_parents and invoice_data_parents[0].get('Comprobante',{}).get('Emisor', {}).get('DomicilioFiscal',{}).get('estado', {}) or False
1049- country = invoice_data_parents and invoice_data_parents[0].get('Comprobante',{}).get('Emisor', {}).get('DomicilioFiscal',{}).get('pais', {}) or False
1050+ city = invoice_data_parents and invoice_data_parents[0].get('Comprobante',{}).get('Emisor', {}).get('ExpedidoEn',{}).get('municipio', {}) or False
1051+ state = invoice_data_parents and invoice_data_parents[0].get('Comprobante',{}).get('Emisor', {}).get('ExpedidoEn',{}).get('estado', {}) or False
1052+ country = invoice_data_parents and invoice_data_parents[0].get('Comprobante',{}).get('Emisor', {}).get('ExpedidoEn',{}).get('pais', {}) or False
1053 if city and state and country:
1054 address = city +' '+ state +', '+ country
1055 else:
1056 raise osv.except_osv(('Domicilio Incompleto!'),('Verifique que el domicilio de la compañia emisora del comprobante fiscal este completo (Ciudad - Estado - Pais)'))
1057
1058- if not invoice.company_id.partner_id.regimen_fiscal_id.name:
1059+ if not invoice.company_emitter_id.partner_id.regimen_fiscal_id.name:
1060 raise osv.except_osv(('Regimen Fiscal Faltante!'),('El Regimen Fiscal de la compañia emisora del comprobante fiscal es un dato requerido'))
1061
1062 invoice_data_parents[0]['Comprobante']['xsi:schemaLocation'] = 'http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv22.xsd'
1063@@ -71,7 +71,7 @@
1064 invoice_data_parents[0]['Comprobante']['Moneda'] = invoice.currency_id.name or ''
1065 invoice_data_parents[0]['Comprobante']['NumCtaPago'] = invoice.acc_payment.last_acc_number or 'No identificado'
1066 invoice_data_parents[0]['Comprobante']['metodoDePago'] = invoice.pay_method_id.name or 'No identificado'
1067- invoice_data_parents[0]['Comprobante']['Emisor']['RegimenFiscal'] = {'Regimen':invoice.company_id.partner_id.regimen_fiscal_id.name or ''}
1068+ invoice_data_parents[0]['Comprobante']['Emisor']['RegimenFiscal'] = {'Regimen':invoice.company_emitter_id.partner_id.regimen_fiscal_id.name or ''}
1069 invoice_data_parents[0]['Comprobante']['LugarExpedicion'] = address
1070
1071 return invoice_data_parents
1072
1073=== modified file 'l10n_mx_facturae_cbb/report/invoice_facturae_pdf.py'
1074--- l10n_mx_facturae_cbb/report/invoice_facturae_pdf.py 2012-11-16 22:07:35 +0000
1075+++ l10n_mx_facturae_cbb/report/invoice_facturae_pdf.py 2013-01-16 20:14:21 +0000
1076@@ -178,14 +178,14 @@
1077 partner_obj = pool.get('res.partner')
1078 address_obj = pool.get('res.partner.address')
1079 invoice = invoice_obj.browse(self.cr, self.uid, invoice_id)
1080- partner_id = invoice.company_id.parent_id and invoice.company_id.parent_id.partner_id.id or invoice.company_id.partner_id.id
1081+ partner_id = invoice.company_emitted_id.parent_id and invoice.company_emitted_id.parent_id.partner_id.id or invoice.company_emitted_id.partner_id.id
1082 self.invoice = invoice
1083 #print "partner_id",partner_id
1084 #invoice = partner_obj.browse(cr, uid, invoice_id)
1085 address_id = partner_obj.address_get(self.cr, self.uid, [partner_id], ['invoice'])['invoice']
1086 self.company_address_invoice = address_obj.browse(self.cr, self.uid, address_id)
1087
1088- subpartner_id = invoice.company_id.partner_id.id
1089+ subpartner_id = invoice.company_emitted_id.partner_id.id
1090 if partner_id == subpartner_id:
1091 self.subcompany_address_invoice = self.company_address_invoice
1092 else:
1093
1094=== modified file 'l10n_mx_facturae_cbb/report/invoice_facturae_pdf.rml'
1095--- l10n_mx_facturae_cbb/report/invoice_facturae_pdf.rml 2012-11-16 23:59:38 +0000
1096+++ l10n_mx_facturae_cbb/report/invoice_facturae_pdf.rml 2013-01-16 20:14:21 +0000
1097@@ -60,6 +60,7 @@
1098 <paraStyle name="P1" fontName="Helvetica" alignment="RIGHT"/>
1099 <paraStyle name="P2" fontName="Helvetica" fontSize="8.0" leading="10"/>
1100 <paraStyle name="P3" fontName="Helvetica" fontSize="8.0" leading="10"/>
1101+<<<<<<< TREE
1102 <paraStyle name="P4" fontName="Helvetica" fontSize="10.0" leading="13"/>
1103 <paraStyle name="P5" fontName="Helvetica-Bold" fontSize="6.0" leading="8" alignment="CENTER"/>
1104 <paraStyle name="P6" fontName="Helvetica" fontSize="6.0" leading="8" alignment="CENTER"/>
1105@@ -74,7 +75,24 @@
1106 <paraStyle name="P15" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
1107 <paraStyle name="P16" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="6.0" leading="8" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1108 <paraStyle name="P17" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1109+=======
1110+ <paraStyle name="P4" fontName="Helvetica" fontSize="10.0" leading="13"/>
1111+ <paraStyle name="P5" fontName="Helvetica" textColor="#280099"/>
1112+ <paraStyle name="P6" fontName="Helvetica" alignment="RIGHT" textColor="#280099"/>
1113+ <paraStyle name="P7" fontName="Helvetica" textColor="#ff3333"/>
1114+ <paraStyle name="P8" fontName="Helvetica" fontSize="12.0" leading="15" textColor="#800000"/>
1115+ <paraStyle name="P9" fontName="Helvetica" fontSize="2.0" leading="3" textColor="#800000"/>
1116+ <paraStyle name="P10" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1117+ <paraStyle name="P11" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1118+ <paraStyle name="P12" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
1119+ <paraStyle name="P13" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
1120+ <paraStyle name="P14" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="6.0" leading="8" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1121+ <paraStyle name="P15" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1122+ <paraStyle name="P16" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
1123+ <paraStyle name="P17" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="18.0" leading="22" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
1124+>>>>>>> MERGE-SOURCE
1125 <paraStyle name="P18" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
1126+<<<<<<< TREE
1127 <paraStyle name="P19" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="18.0" leading="22" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
1128 <paraStyle name="P20" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
1129 <paraStyle name="P21" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
1130@@ -85,6 +103,12 @@
1131 <paraStyle name="P26" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" textColor="#280099"/>
1132 <paraStyle name="P27" fontName="Helvetica" fontSize="8.0" leading="10"/>
1133 <paraStyle name="P28" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT"/>
1134+=======
1135+ <paraStyle name="P19" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
1136+ <paraStyle name="P20" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
1137+ <paraStyle name="P21" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#000000"/>
1138+ <paraStyle name="P22" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
1139+>>>>>>> MERGE-SOURCE
1140 <paraStyle name="Standard" fontName="Helvetica"/>
1141 <paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
1142 <paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
1143@@ -101,11 +125,17 @@
1144 </stylesheet>
1145 <story>
1146 <section>
1147+<<<<<<< TREE
1148 <para style="P16">[[ repeatIn(objects,'o') ]] <font face="Helvetica" size="9.0">[[ set_global_data(o) ]]</font></para>
1149 <para style="P19">[[ o.company_id.parent_id and o.company_id.parent_id.partner_id.name or o.company_id.partner_id.name ]]</para>
1150+=======
1151+ <para style="P14">[[ repeatIn(objects,'o') ]] <font face="Helvetica" size="9.0">[[ set_global_data(o) ]]</font></para>
1152+ <para style="P17">[[ o.company_emitter_id.address_invoice_parent_company_id.name or '' ]]</para>
1153+>>>>>>> MERGE-SOURCE
1154 <blockTable colWidths="125.0,207.0,166.0" style="Tabla1">
1155 <tr>
1156 <td>
1157+<<<<<<< TREE
1158 <para style="P24">[[ o.company_id.logo and setTag('para','image',{'width':'120.0','height':'80.0'}) ]] [[ o.company_id.logo ]]</para>
1159 </td>
1160 <td>
1161@@ -144,8 +174,48 @@
1162 </td>
1163 <td>
1164 <para style="P9">
1165+=======
1166+ <para style="P22">[[ o.company_emitter_id.logo and setTag('para','image',{'width':'120.0','height':'80.0'}) ]] [[ o.company_emitter_id.logo ]]</para>
1167+ </td>
1168+ <td>
1169+ <para style="P19">
1170+ <font color="white"> </font>
1171+ </para>
1172+ <para style="P16">Calle: [[ o.company_emitter_id.address_invoice_parent_company_id.street or '' ]] Nro. Ext: [[ o.company_emitter_id.address_invoice_parent_company_id.street3 or '' ]] Int: [[ o.company_emitter_id.address_invoice_parent_company_id.street4 or '' ]]</para>
1173+ <para style="P19">
1174+ <font color="white"> </font>
1175+ </para>
1176+ <para style="P16">Colonia: [[ o.company_emitter_id.address_invoice_parent_company_id.street2 or '' ]]</para>
1177+ <para style="P19">
1178+ <font color="white"> </font>
1179+ </para>
1180+ <para style="P16">Ciudad: [[ o.company_emitter_id.address_invoice_parent_company_id.city or '' ]] Estado: [[ o.company_emitter_id.address_invoice_parent_company_id.state_id and o.company_emitter_id.address_invoice_parent_company_id.state_id.name or '' ]]</para>
1181+ <para style="P20">
1182+ <font color="white"> </font>
1183+ </para>
1184+ <para style="P16">Localidad: [[ o.company_emitter_id.address_invoice_parent_company_id.city2 or '' ]]</para>
1185+ <para style="P19">
1186+ <font color="white"> </font>
1187+ </para>
1188+ <para style="P16">CP: [[ o.company_emitter_id.address_invoice_parent_company_id.zip or '' ]]</para>
1189+ <para style="P19">
1190+ <font color="white"> </font>
1191+ </para>
1192+ <para style="P16">RFC: [[ o.company_emitter_id.partner_id._columns.has_key('vat_split') and o.company_emitter_id.partner_id.vat_split or o.company_emitter_id.partner_id.vat ]]</para>
1193+ <para style="P19">
1194+ <font color="white"> </font>
1195+ </para>
1196+ <para style="P18">Teléfono(s): </para>
1197+ <para style="P18">[[ o.company_emitter_id.address_invoice_parent_company_id.phone or removeParentNode('para') ]]</para>
1198+ <para style="P18">[[ o.company_emitter_id.address_invoice_parent_company_id.fax or removeParentNode('para') ]]</para>
1199+ <para style="P18">[[ o.company_emitter_id.address_invoice_parent_company_id.mobile or removeParentNode('para') ]]</para>
1200+ </td>
1201+ <td>
1202+ <para style="P7">
1203+>>>>>>> MERGE-SOURCE
1204 <font face="Helvetica" size="18.0">Folio: [[ get_approval() and get_approval().serie or '' ]] [[ ( o.type in ['out_invoice', 'out_refund'] ) and ( o.state in ['open', 'paid', 'cancel'] ) and o.number or 'SIN FOLIO O ESTATUS NO VALIDO' ]]</font>
1205 </para>
1206+<<<<<<< TREE
1207 <para style="P11">
1208 <font color="white"> </font>
1209 </para>
1210@@ -154,6 +224,16 @@
1211 <font color="white"> </font>
1212 </para>
1213 <para style="Table Contents">[[ company_address()['city'] or '' ]], [[ company_address()['state_id'] and company_address()['state_id']['name'] or '' ]] a</para>
1214+=======
1215+ <para style="P9">
1216+ <font color="white"> </font>
1217+ </para>
1218+ <para style="P8">[[ o.state == 'cancel' and 'FACTURA CANCELADA' ]]</para>
1219+ <para style="P9">
1220+ <font color="white"> </font>
1221+ </para>
1222+ <para style="Table Contents">[[ o.address_issued_id and o.address_issued_id.city or '' ]], [[ o.address_issued_id.state_id and o.address_issued_id.state_id.name or '' ]] a</para>
1223+>>>>>>> MERGE-SOURCE
1224 <para style="Table Contents">[[ o.date_invoice_tz or '' ]]</para>
1225 </td>
1226 </tr>
1227@@ -161,7 +241,11 @@
1228 <blockTable colWidths="249.0,249.0" style="Tabla2">
1229 <tr>
1230 <td>
1231+<<<<<<< TREE
1232 <para style="P7">Receptor</para>
1233+=======
1234+ <para style="P5">Receptor</para>
1235+>>>>>>> MERGE-SOURCE
1236 <para style="Table Contents"><font face="Helvetica">Nombre: </font>[[ o.partner_id.name ]]</para>
1237 <para style="terp_default_8"><font face="Helvetica">Dirección:</font> [[ o.address_invoice_id.street ]] No. Ext: [[ o.address_invoice_id.street3 ]] Int: [[ o.address_invoice_id.street4 ]]</para>
1238 <para style="terp_default_8"><font face="Helvetica">Colonia:</font> [[ o.address_invoice_id.street2 or '' ]]</para>
1239@@ -169,28 +253,36 @@
1240 <para style="terp_default_8"><font face="Helvetica">Localidad: </font>[[ o.address_invoice_id.city2 or '' ]]</para>
1241 <para style="terp_default_8"><font face="Helvetica">C.P.:</font> [[ o.address_invoice_id.zip or '' ]] </para>
1242 <para style="terp_default_8"><font face="Helvetica">R. F. C. :</font> [[ o.partner_id._columns.has_key('vat_split') and o.partner_id.vat_split or o.partner_id.vat ]]</para>
1243+<<<<<<< TREE
1244 <para style="P23">Teléfono(s): </para>
1245 <para style="P17">[[ o.address_invoice_id.phone or removeParentNode('para') ]]</para>
1246 <para style="P17">[[ o.address_invoice_id.fax or removeParentNode('para') ]]</para>
1247 <para style="P17">[[ o.address_invoice_id.mobile or removeParentNode('para') ]]</para>
1248+=======
1249+ <para style="P21">Teléfono(s): </para>
1250+ <para style="P15">[[ o.address_invoice_id.phone or removeParentNode('para') ]]</para>
1251+ <para style="P15">[[ o.address_invoice_id.fax or removeParentNode('para') ]]</para>
1252+ <para style="P15">[[ o.address_invoice_id.mobile or removeParentNode('para') ]]</para>
1253+>>>>>>> MERGE-SOURCE
1254 </td>
1255 <td>
1256 <para style="Table Contents">Condición de pago: [[ format(o.payment_term and (o.payment_term.note or o.payment_term.name) or removeParentNode('para') ) ]]</para>
1257 <para style="P3">Origen: [[ o.origin or removeParentNode('para') ]]</para>
1258 <para style="P3">Expedido en:</para>
1259- <para style="P3">[[ subcompany_address()['name'] or o.company_id.partner_id.name ]]</para>
1260- <para style="P3">Calle: [[ subcompany_address()['street'] or '' ]] Nro. Ext: [[ subcompany_address()['street3'] or '' ]] Int: [[ subcompany_address()['street4'] or '' ]]</para>
1261- <para style="P3">Colonia: [[ subcompany_address()['street2'] or '' ]]</para>
1262- <para style="P3">Ciudad: [[ subcompany_address()['city'] or '' ]] </para>
1263- <para style="P3">Estado: [[ subcompany_address()['state_id'] and subcompany_address()['state_id']['name'] or '' ]]</para>
1264- <para style="P3">Localidad: [[ subcompany_address()['city2'] or '' ]]</para>
1265- <para style="P3">CP: [[ subcompany_address()['zip'] or '' ]] </para>
1266+ <para style="P3">[[ o.address_issued_id and o.address_issued_id.name or '' ]]</para>
1267+ <para style="P3">Calle: [[ o.address_issued_id.street or '' ]] Nro. Ext: [[ o.address_issued_id.street3 or '' ]] Int: [[ o.address_issued_id.street4 or '' ]]</para>
1268+ <para style="P3">Colonia: [[ o.address_issued_id.street2 or '' ]]</para>
1269+ <para style="P3">Ciudad: [[ o.address_issued_id.city or '' ]] </para>
1270+ <para style="P3">Localidad: [[ o.address_issued_id.city2 or '' ]]</para>
1271+ <para style="P3">Estado: [[ o.address_issued_id.state_id and o.address_issued_id.state_id.name or '' ]]</para>
1272+ <para style="P3">CP: [[ o.address_issued_id.zip or '' ]] </para>
1273 </td>
1274 </tr>
1275 </blockTable>
1276 <blockTable colWidths="47.0,88.0,160.0,54.0,65.0,85.0" style="Tabla3">
1277 <tr>
1278 <td>
1279+<<<<<<< TREE
1280 <para style="P25">Cantidad</para>
1281 </td>
1282 <td>
1283@@ -207,10 +299,29 @@
1284 </td>
1285 <td>
1286 <para style="P26">Importe</para>
1287+=======
1288+ <para style="P5">Cantidad</para>
1289+ </td>
1290+ <td>
1291+ <para style="P5">Unidad</para>
1292+ </td>
1293+ <td>
1294+ <para style="P5">Descripción</para>
1295+ </td>
1296+ <td>
1297+ <para style="P5">Clave</para>
1298+ </td>
1299+ <td>
1300+ <para style="P6">P.Unitario</para>
1301+ </td>
1302+ <td>
1303+ <para style="P6">Importe</para>
1304+>>>>>>> MERGE-SOURCE
1305 </td>
1306 </tr>
1307 <tr>
1308 <td>
1309+<<<<<<< TREE
1310 <para style="Table Contents">
1311 <font face="Helvetica" size="8.0">[[ repeatIn(o.invoice_line,'l') ]] [[ formatLang(l.quantity) ]]</font>
1312 </para>
1313@@ -221,11 +332,22 @@
1314 <td>
1315 <para style="P2">[[ l.name ]]</para>
1316 <para style="P4">
1317+=======
1318+ <para style="Table Contents"><font face="Helvetica" size="8.0">[[ repeatIn(o.invoice_line,'l') ]] </font>[[ formatLang(l.quantity) ]]</para>
1319+ </td>
1320+ <td>
1321+ <para style="Table Contents">[[ (l.uos_id and l.uos_id.name) or '' ]]</para>
1322+ </td>
1323+ <td>
1324+ <para style="Table Contents">[[ l.name ]]</para>
1325+ <para style="P4">
1326+>>>>>>> MERGE-SOURCE
1327 <font face="Helvetica" size="7.0">Notas:</font>
1328 <font face="Helvetica" size="7.0">[[l.note or removeParentNode('para')]]</font>
1329 </para>
1330 </td>
1331 <td>
1332+<<<<<<< TREE
1333 <para style="P2">[[ l.product_id and l.product_id.default_code ]]</para>
1334 </td>
1335 <td>
1336@@ -233,13 +355,26 @@
1337 </td>
1338 <td>
1339 <para style="P28">[[ exists_key('global_discount_percent') and (formatLang(l.quantity * l.price_unit)) or formatLang(l.price_subtotal) ]]</para>
1340+=======
1341+ <para style="Table Contents">[[ l.product_id and l.product_id.default_code ]]</para>
1342+ </td>
1343+ <td>
1344+ <para style="P1">[[ formatLang(l.price_unit) ]]</para>
1345+ </td>
1346+ <td>
1347+ <para style="P1">[[ exists_key('global_discount_percent') and (formatLang(l.quantity * l.price_unit)) or formatLang(l.price_subtotal) ]]</para>
1348+>>>>>>> MERGE-SOURCE
1349 </td>
1350 </tr>
1351 </blockTable>
1352 <blockTable colWidths="427.0,71.0" style="Tabla7">
1353 <tr>
1354 <td>
1355+<<<<<<< TREE
1356 <para style="P8">Suma $</para>
1357+=======
1358+ <para style="P6">Suma $</para>
1359+>>>>>>> MERGE-SOURCE
1360 </td>
1361 <td>
1362 <para style="P1">[[formatLang( ( exists_key('global_discount_percent') and o.global_discount_amount or 0.0 ) + (o.amount_untaxed or 0.0) )]]</para>
1363@@ -247,7 +382,11 @@
1364 </tr>
1365 <tr>
1366 <td>
1367+<<<<<<< TREE
1368 <para style="P8">Descuento: [[ exists_key('global_discount_percent') and o.global_discount_percent or removeParentNode('tr')]] %</para>
1369+=======
1370+ <para style="P6">Descuento: [[ exists_key('global_discount_percent') and o.global_discount_percent or removeParentNode('tr')]] %</para>
1371+>>>>>>> MERGE-SOURCE
1372 </td>
1373 <td>
1374 <para style="P1">[[o.global_discount_amount and formatLang( o.global_discount_amount) or '']]</para>
1375@@ -255,7 +394,11 @@
1376 </tr>
1377 <tr>
1378 <td>
1379+<<<<<<< TREE
1380 <para style="P8">Sub Total $</para>
1381+=======
1382+ <para style="P6">Sub Total $</para>
1383+>>>>>>> MERGE-SOURCE
1384 </td>
1385 <td>
1386 <para style="P1">[[ formatLang(o.amount_untaxed) ]]</para>
1387@@ -263,7 +406,11 @@
1388 </tr>
1389 <tr>
1390 <td>
1391+<<<<<<< TREE
1392 <para style="P8">
1393+=======
1394+ <para style="P6">
1395+>>>>>>> MERGE-SOURCE
1396 <font face="Helvetica" size="6.0">[[ repeatIn( get_taxes(), 'tax' ) ]]</font>
1397 <font face="Helvetica">[[ tax['name2'] ]] ([[ round( float( tax['tax_percent'] ) ) ]]%) $</font>
1398 </para>
1399@@ -274,7 +421,11 @@
1400 </tr>
1401 <tr>
1402 <td>
1403+<<<<<<< TREE
1404 <para style="P8">
1405+=======
1406+ <para style="P6">
1407+>>>>>>> MERGE-SOURCE
1408 <font face="Helvetica" size="6.0">[[ repeatIn( get_taxes_ret(), 'tax_ret' ) ]]</font>
1409 <font face="Helvetica">[[ tax_ret['name2'] ]] Ret ([[ round( float( tax_ret['tax_percent'] ),2 )*-1 ]]%) $</font>
1410 </para>
1411@@ -285,7 +436,11 @@
1412 </tr>
1413 <tr>
1414 <td>
1415+<<<<<<< TREE
1416 <para style="P8">Total $</para>
1417+=======
1418+ <para style="P6">Total $</para>
1419+>>>>>>> MERGE-SOURCE
1420 </td>
1421 <td>
1422 <para style="P1">[[ formatLang(o.amount_total) ]]</para>
1423@@ -293,8 +448,13 @@
1424 </tr>
1425 <tr>
1426 <td>
1427+<<<<<<< TREE
1428 <para style="P14">IMPORTE CON LETRA:</para>
1429 <para style="P13">[[ o.amount_to_text ]]</para>
1430+=======
1431+ <para style="P12">IMPORTE CON LETRA:</para>
1432+ <para style="P11">[[ o.amount_to_text ]]</para>
1433+>>>>>>> MERGE-SOURCE
1434 </td>
1435 <td>
1436 <para style="P1">
1437@@ -303,6 +463,7 @@
1438 </td>
1439 </tr>
1440 </blockTable>
1441+<<<<<<< TREE
1442 <para style="P12">
1443 <font color="white"> </font>
1444 </para>
1445@@ -326,6 +487,12 @@
1446 </tr>
1447 </blockTable>
1448 <para style="P12">
1449+=======
1450+ <para style="P10">
1451+ <font color="white"> </font>
1452+ </para>
1453+ <para style="P10">
1454+>>>>>>> MERGE-SOURCE
1455 <font color="white"> </font>
1456 </para>
1457 <blockTable colWidths="106.0,257.0,135.0" style="Tabla4">
1458@@ -353,14 +520,19 @@
1459 <para style="P2">Este comprobante tendrá una vigencia de dos años contados a partir de la fecha de aprobación de la asignación de folios, la cual es: [[ get_approval() and time.strftime('%d-%m-%Y',time.strptime(get_approval().date_start,'%Y-%m-%d')) or '' ]]</para>
1460 </td>
1461 <td>
1462- <para style="P2">[[ o.company_id.cif_file and setTag('para','image',{'width':'98.0','height':'161.0'}) ]] [[ o.company_id.cif_file ]]</para>
1463+ <para style="P2">[[ o.company_emitter_id.cif_file and setTag('para','image',{'width':'98.0','height':'161.0'}) ]] [[ o.company_emitter_id.cif_file ]]</para>
1464 </td>
1465 </tr>
1466 </blockTable>
1467+<<<<<<< TREE
1468 <para style="terp_default_9">
1469 <font color="white"> </font>
1470 </para>
1471 <para style="P15">Vendedor: [[o.user_id.name]]</para>
1472+=======
1473+ <para style="terp_default_9"/>
1474+ <para style="P13">Vendedor: [[o.user_id.name]]</para>
1475+>>>>>>> MERGE-SOURCE
1476 <para style="terp_default_9">[[ format(o.comment or '') ]]</para>
1477 </section>
1478 </story>
1479
1480=== renamed file 'l10n_mx_facturae_cbb/report/invoice_facturae_pdf.sxw' => 'l10n_mx_facturae_cbb/report/invoice_facturae_pdf.sxw.OTHER'
1481Binary files l10n_mx_facturae_cbb/report/invoice_facturae_pdf.sxw 2012-11-16 23:59:38 +0000 and l10n_mx_facturae_cbb/report/invoice_facturae_pdf.sxw.OTHER 2013-01-16 20:14:21 +0000 differ
1482=== modified file 'l10n_mx_facturae_cer/invoice.py'
1483--- l10n_mx_facturae_cer/invoice.py 2012-02-24 00:42:55 +0000
1484+++ l10n_mx_facturae_cer/invoice.py 2013-01-16 20:14:21 +0000
1485@@ -41,7 +41,7 @@
1486 for invoice in self.browse(cr, uid, ids, context=context):
1487 context.update( {'date_work': invoice.date_invoice} )
1488 certificate_id = False
1489- certificate_id = company_obj._get_current_certificate(cr, uid, [invoice.company_id.id], context=context)[invoice.company_id.id]
1490+ certificate_id = company_obj._get_current_certificate(cr, uid, [invoice.company_emitter_id.id], context=context)[invoice.company_emitter_id.id]
1491 certificate_id = certificate_id and certificate_obj.browse(cr, uid, [certificate_id], context=context)[0] or False
1492 res[invoice.id] = certificate_id and certificate_id.id or False
1493 return res
1494
1495=== modified file 'l10n_mx_facturae_cer/res_company.py'
1496--- l10n_mx_facturae_cer/res_company.py 2013-01-10 18:50:19 +0000
1497+++ l10n_mx_facturae_cer/res_company.py 2013-01-16 20:14:21 +0000
1498@@ -221,17 +221,13 @@
1499 return res
1500 for company in self.browse(cr, uid, ids, context=context):
1501 current_company = company
1502- while True:
1503- certificate_ids = certificate_obj.search(cr, uid, [
1504- ('company_id', '=', company.id),
1505- ('date_start', '<=', date),
1506- ('date_end', '>=', date),
1507- ('active', '=', True),
1508- ], limit=1)
1509- certificate_id = certificate_ids and certificate_ids[0] or False
1510- company = company.parent_id
1511- if certificate_id or not company:
1512- break
1513+ certificate_ids = certificate_obj.search(cr, uid, [
1514+ ('company_id', '=', company.id),
1515+ ('date_start', '<=', date),
1516+ ('date_end', '>=', date),
1517+ ('active', '=', True),
1518+ ], limit=1)
1519+ certificate_id = certificate_ids and certificate_ids[0] or False
1520 res[current_company.id] = certificate_id
1521 return res
1522
1523
1524=== modified file 'l10n_mx_facturae_pac_sf/invoice.py'
1525--- l10n_mx_facturae_pac_sf/invoice.py 2012-11-28 23:32:38 +0000
1526+++ l10n_mx_facturae_pac_sf/invoice.py 2013-01-16 20:14:21 +0000
1527@@ -163,7 +163,7 @@
1528 msg = ''
1529
1530 cfd_data_adenda = cfd_data.replace('</Comprobante>', moneda)
1531- pac_params_ids = pac_params_obj.search(cr,uid,[('method_type','=','pac_sf_firmar')], limit=1, context=context)
1532+ pac_params_ids = pac_params_obj.search(cr,uid,[('method_type','=','pac_sf_firmar'), ('company_id', '=', invoice.company_emitter_id.id), ('active', '=', True)], limit=1, context=context)
1533
1534 if pac_params_ids:
1535 pac_params = pac_params_obj.browse(cr, uid, pac_params_ids, context)[0]
1536@@ -196,7 +196,7 @@
1537 wsdl_client.soapproxy.config.dumpSOAPIn = 0
1538 wsdl_client.soapproxy.config.debug = 0
1539 wsdl_client.soapproxy.config.dict_encoding='UTF-8'
1540- resultado = wsdl_client.timbrar(*params)
1541+ resultado = wsdl_client.timbrar(*params)
1542 msg += resultado['resultados'] and resultado['resultados']['mensaje'] or ''
1543 status = resultado['resultados'] and resultado['resultados']['status'] or ''
1544 if status == '200' or status == '307':
1545@@ -251,7 +251,7 @@
1546
1547 invoice_brw = self.browse(cr, uid, context_id, context)
1548 company_brw = company_obj.browse(cr, uid, [invoice_brw.company_id.id], context)[0]
1549- pac_params_srch = pac_params_obj.search(cr,uid,[('method_type','=','pac_sf_cancelar')],context=context)
1550+ pac_params_srch = pac_params_obj.search(cr,uid,[('method_type','=','pac_sf_cancelar'), ('company_id', '=', invoice_brw.company_emitter_id.id), ('active', '=', True)], context=context)
1551
1552 if pac_params_srch:
1553 pac_params_brw = pac_params_obj.browse(cr, uid, pac_params_srch, context)[0]
1554
1555=== modified file 'l10n_mx_facturae_pac_sf/report/invoice_facturae_pac_sf_pdf.py'
1556--- l10n_mx_facturae_pac_sf/report/invoice_facturae_pac_sf_pdf.py 2012-09-08 03:46:54 +0000
1557+++ l10n_mx_facturae_pac_sf/report/invoice_facturae_pac_sf_pdf.py 2013-01-16 20:14:21 +0000
1558@@ -169,14 +169,14 @@
1559 partner_obj = pool.get('res.partner')
1560 address_obj = pool.get('res.partner.address')
1561 invoice = invoice_obj.browse(self.cr, self.uid, invoice_id)
1562- partner_id = invoice.company_id.parent_id and invoice.company_id.parent_id.partner_id.id or invoice.company_id.partner_id.id
1563+ partner_id = invoice.company_emitted_id.parent_id and invoice.company_emitted_id.parent_id.partner_id.id or invoice.company_emitted_id.partner_id.id
1564 self.invoice = invoice
1565 #print "partner_id",partner_id
1566 #invoice = partner_obj.browse(cr, uid, invoice_id)
1567 address_id = partner_obj.address_get(self.cr, self.uid, [partner_id], ['invoice'])['invoice']
1568 self.company_address_invoice = address_obj.browse(self.cr, self.uid, address_id)
1569
1570- subpartner_id = invoice.company_id.partner_id.id
1571+ subpartner_id = invoice.company_emitted_id.partner_id.id
1572 if partner_id == subpartner_id:
1573 self.subcompany_address_invoice = self.company_address_invoice
1574 else:
1575
1576=== modified file 'l10n_mx_facturae_pac_sf/report/invoice_facturae_pac_sf_pdf.rml'
1577--- l10n_mx_facturae_pac_sf/report/invoice_facturae_pac_sf_pdf.rml 2012-09-08 04:35:43 +0000
1578+++ l10n_mx_facturae_pac_sf/report/invoice_facturae_pac_sf_pdf.rml 2013-01-16 20:14:21 +0000
1579@@ -24,20 +24,6 @@
1580 <blockAlignment value="LEFT"/>
1581 <blockValign value="TOP"/>
1582 </blockTableStyle>
1583- <blockTableStyle id="Table1">
1584- <blockAlignment value="LEFT"/>
1585- <blockValign value="TOP"/>
1586- <lineStyle kind="LINEBEFORE" colorName="#000000" start="0,0" stop="0,-1"/>
1587- <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
1588- <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
1589- <lineStyle kind="LINEBEFORE" colorName="#000000" start="1,0" stop="1,-1"/>
1590- <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
1591- <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
1592- <lineStyle kind="LINEBEFORE" colorName="#000000" start="2,0" stop="2,-1"/>
1593- <lineStyle kind="LINEAFTER" colorName="#000000" start="2,0" stop="2,-1"/>
1594- <lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
1595- <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
1596- </blockTableStyle>
1597 <blockTableStyle id="Tabla7">
1598 <blockAlignment value="LEFT"/>
1599 <blockValign value="TOP"/>
1600@@ -68,6 +54,20 @@
1601 <lineStyle kind="LINEAFTER" colorName="#000000" start="3,1" stop="3,-1"/>
1602 <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
1603 </blockTableStyle>
1604+ <blockTableStyle id="Table1">
1605+ <blockAlignment value="LEFT"/>
1606+ <blockValign value="TOP"/>
1607+ <lineStyle kind="LINEBEFORE" colorName="#000000" start="0,0" stop="0,-1"/>
1608+ <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
1609+ <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
1610+ <lineStyle kind="LINEBEFORE" colorName="#000000" start="1,0" stop="1,-1"/>
1611+ <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
1612+ <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
1613+ <lineStyle kind="LINEBEFORE" colorName="#000000" start="2,0" stop="2,-1"/>
1614+ <lineStyle kind="LINEAFTER" colorName="#000000" start="2,0" stop="2,-1"/>
1615+ <lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
1616+ <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
1617+ </blockTableStyle>
1618 <blockTableStyle id="Tabla4">
1619 <blockAlignment value="LEFT"/>
1620 <blockValign value="TOP"/>
1621@@ -81,32 +81,30 @@
1622 <paraStyle name="P4" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT"/>
1623 <paraStyle name="P5" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER"/>
1624 <paraStyle name="P6" fontName="Helvetica" fontSize="7.0" leading="9"/>
1625- <paraStyle name="P7" fontName="Helvetica" textColor="#280099"/>
1626- <paraStyle name="P8" fontName="Helvetica" alignment="RIGHT" textColor="#280099"/>
1627- <paraStyle name="P9" fontName="Helvetica" textColor="#ff3333"/>
1628- <paraStyle name="P10" fontName="Helvetica" fontSize="12.0" leading="15" textColor="#800000"/>
1629- <paraStyle name="P10_enc" fontName="Helvetica-Bold" fontSize="6.0" leading="8" alignment="CENTER"/>
1630- <paraStyle name="P11_txt" fontName="Helvetica" fontSize="6.0" leading="8" alignment="CENTER"/>
1631- <paraStyle name="P11" fontName="Helvetica" fontSize="2.0" leading="3" textColor="#800000"/>
1632- <paraStyle name="P12" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1633- <paraStyle name="P13" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1634- <paraStyle name="P14" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="6.0" leading="8" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1635- <paraStyle name="P15" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
1636- <paraStyle name="P16" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1637- <paraStyle name="P17" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="6.0" leading="8" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1638- <paraStyle name="P18" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="6.0" leading="8" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1639- <paraStyle name="P19" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1640- <paraStyle name="P20" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
1641- <paraStyle name="P21" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="18.0" leading="22" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
1642- <paraStyle name="P22" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
1643- <paraStyle name="P23" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
1644- <paraStyle name="P24" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
1645- <paraStyle name="P25" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#000000"/>
1646- <paraStyle name="P26" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
1647- <paraStyle name="P27" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER"/>
1648- <paraStyle name="P28" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="6.0" leading="8" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1649- <paraStyle name="P29" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="6.0" leading="8" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1650- <paraStyle name="P30" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1651+ <paraStyle name="P7" fontName="Helvetica" fontSize="6.0" leading="8" alignment="CENTER"/>
1652+ <paraStyle name="P8" fontName="Helvetica-Bold" fontSize="6.0" leading="8" alignment="CENTER"/>
1653+ <paraStyle name="P9" fontName="Helvetica" textColor="#280099"/>
1654+ <paraStyle name="P10" fontName="Helvetica" alignment="RIGHT" textColor="#280099"/>
1655+ <paraStyle name="P11" fontName="Helvetica" textColor="#ff3333"/>
1656+ <paraStyle name="P12" fontName="Helvetica" fontSize="12.0" leading="15" textColor="#800000"/>
1657+ <paraStyle name="P13" fontName="Helvetica" fontSize="2.0" leading="3" textColor="#800000"/>
1658+ <paraStyle name="P14" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1659+ <paraStyle name="P15" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1660+ <paraStyle name="P16" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="6.0" leading="8" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1661+ <paraStyle name="P17" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
1662+ <paraStyle name="P18" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1663+ <paraStyle name="P19" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="6.0" leading="8" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1664+ <paraStyle name="P20" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="6.0" leading="8" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1665+ <paraStyle name="P21" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1666+ <paraStyle name="P22" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="6.0" leading="8" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1667+ <paraStyle name="P23" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
1668+ <paraStyle name="P24" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
1669+ <paraStyle name="P25" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
1670+ <paraStyle name="P26" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
1671+ <paraStyle name="P27" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
1672+ <paraStyle name="P28" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="18.0" leading="22" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0" textColor="#280099"/>
1673+ <paraStyle name="P29" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#000000"/>
1674+ <paraStyle name="P30" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
1675 <paraStyle name="Standard" fontName="Helvetica"/>
1676 <paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
1677 <paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
1678@@ -123,59 +121,58 @@
1679 </stylesheet>
1680 <story>
1681 <section>
1682- <para style="P18">[[ repeatIn(objects,'o') ]] <font face="Helvetica" size="9.0">[[ set_global_data(o) ]]</font></para>
1683- <para style="P21">[[ o.company_id.parent_id and o.company_id.parent_id.partner_id.name or o.company_id.partner_id.name ]]</para>
1684+ <para style="P22">[[ repeatIn(objects,'o') ]] <font face="Helvetica" size="9.0">[[ set_global_data(o) ]]</font></para>
1685+ <para style="P28">[[ o.company_emitter_id.address_invoice_parent_company_id.name or '' ]]</para>
1686 <blockTable colWidths="125.0,207.0,166.0" style="Tabla1">
1687 <tr>
1688 <td>
1689- <para style="P26">[[ o.company_id.logo and setTag('para','image',{'width':'120.0','height':'80.0'}) ]] [[ o.company_id.logo ]]</para>
1690- </td>
1691- <td>
1692- <para style="P20">[[ company_address()['name'] or o.company_id.partner_id.name ]]</para>
1693- <para style="P23">
1694- <font color="white"> </font>
1695- </para>
1696- <para style="P20">Calle: [[ company_address()['street'] or '' ]] Nro. Ext: [[ company_address()['street3'] or '' ]] Int: [[ company_address()['street4'] or '' ]]</para>
1697- <para style="P23">
1698- <font color="white"> </font>
1699- </para>
1700- <para style="P20">Colonia: [[ company_address()['street2'] or '' ]]</para>
1701- <para style="P23">
1702- <font color="white"> </font>
1703- </para>
1704- <para style="P20">Ciudad: [[ company_address()['city'] or '' ]], Estado: [[ company_address()['state_id'] and company_address()['state_id']['name'] or '' ]] </para>
1705- <para style="P24">
1706- <font color="white"> </font>
1707- </para>
1708- <para style="P20">Localidad: [[ company_address()['city2'] or '' ]]</para>
1709- <para style="P23">
1710- <font color="white"> </font>
1711- </para>
1712- <para style="P20">CP: [[ company_address()['zip'] or '' ]]</para>
1713- <para style="P23">
1714- <font color="white"> </font>
1715- </para>
1716- <para style="P20">RFC: [[ o.company_id.partner_id._columns.has_key('vat_split') and o.company_id.partner_id.vat_split or o.company_id.partner_id.vat ]]</para>
1717- <para style="P23">
1718- <font color="white"> </font>
1719- </para>
1720- <para style="P22">Teléfono(s): </para>
1721- <para style="P22">[[ company_address()['phone'] or removeParentNode('para') ]]</para>
1722- <para style="P22">[[ company_address()['fax'] or removeParentNode('para') ]]</para>
1723- <para style="P22">[[ company_address()['mobile'] or removeParentNode('para') ]]</para>
1724- </td>
1725- <td>
1726- <para style="P9">
1727+ <para style="P30">[[ o.company_emitter_id.logo and setTag('para','image',{'width':'120.0','height':'80.0'}) ]] [[ o.company_emitter_id.logo ]]</para>
1728+ </td>
1729+ <td>
1730+ <para style="P26">
1731+ <font color="white"> </font>
1732+ </para>
1733+ <para style="P24">Calle: [[ o.company_emitter_id.address_invoice_parent_company_id.street or '' ]] Nro. Ext: [[ o.company_emitter_id.address_invoice_parent_company_id.street3 or '' ]] Int: [[ o.company_emitter_id.address_invoice_parent_company_id.street4 or '' ]]</para>
1734+ <para style="P26">
1735+ <font color="white"> </font>
1736+ </para>
1737+ <para style="P24">Colonia: [[ o.company_emitter_id.address_invoice_parent_company_id.street2 or '' ]]</para>
1738+ <para style="P26">
1739+ <font color="white"> </font>
1740+ </para>
1741+ <para style="P24">Ciudad: [[ o.company_emitter_id.address_invoice_parent_company_id.city or '' ]] Estado: [[ o.company_emitter_id.address_invoice_parent_company_id.state_id and o.company_emitter_id.address_invoice_parent_company_id.state_id.name or '' ]] </para>
1742+ <para style="P27">
1743+ <font color="white"> </font>
1744+ </para>
1745+ <para style="P24">Localidad: [[ o.company_emitter_id.address_invoice_parent_company_id.city2 or '' ]]</para>
1746+ <para style="P26">
1747+ <font color="white"> </font>
1748+ </para>
1749+ <para style="P24">CP: [[ o.company_emitter_id.address_invoice_parent_company_id.zip or '' ]]</para>
1750+ <para style="P26">
1751+ <font color="white"> </font>
1752+ </para>
1753+ <para style="P24">RFC: [[ o.company_emitter_id.partner_id._columns.has_key('vat_split') and o.company_emitter_id.partner_id.vat_split or o.company_emitter_id.partner_id.vat ]]</para>
1754+ <para style="P26">
1755+ <font color="white"> </font>
1756+ </para>
1757+ <para style="P25">Teléfono(s): </para>
1758+ <para style="P25">[[ o.company_emitter_id.address_invoice_parent_company_id.phone or removeParentNode('para') ]]</para>
1759+ <para style="P25">[[ o.company_emitter_id.address_invoice_parent_company_id.fax or removeParentNode('para') ]]</para>
1760+ <para style="P25">[[ o.company_emitter_id.address_invoice_parent_company_id.mobile or removeParentNode('para') ]]</para>
1761+ </td>
1762+ <td>
1763+ <para style="P11">
1764 <font face="Helvetica" size="18.0">Folio: [[ ( o.type in ['out_invoice', 'out_refund'] ) and ( o.state in ['open', 'paid', 'cancel'] ) and o.number or 'SIN FOLIO O ESTATUS NO VALIDO' ]]</font>
1765 </para>
1766- <para style="P11">
1767- <font color="white"> </font>
1768- </para>
1769- <para style="P10">[[ o.state == 'cancel' and 'FACTURA CANCELADA' ]]</para>
1770- <para style="P11">
1771- <font color="white"> </font>
1772- </para>
1773- <para style="Table Contents">[[ company_address()['city'] or '' ]], [[ company_address()['state_id'] and company_address()['state_id']['name'] or '' ]] a</para>
1774+ <para style="P13">
1775+ <font color="white"> </font>
1776+ </para>
1777+ <para style="P12">[[ o.state == 'cancel' and 'FACTURA CANCELADA' ]]</para>
1778+ <para style="P13">
1779+ <font color="white"> </font>
1780+ </para>
1781+ <para style="Table Contents">[[ o. address_issued_id and o.address_issued_id.city or '' ]], [[ o.address_issued_id.state_id and o.address_issued_id.state_id.name or '' ]] a</para>
1782 <para style="Table Contents">[[ o.date_invoice_tz or '' ]]</para>
1783 <para style="Table Contents">Serie: [[ get_approval() and get_approval().serie or '' ]]</para>
1784 <para style="Table Contents">Aprobación: [[ get_approval() and get_approval().approval_number or '' ]]</para>
1785@@ -186,7 +183,7 @@
1786 <blockTable colWidths="249.0,249.0" style="Tabla2">
1787 <tr>
1788 <td>
1789- <para style="P7">Receptor</para>
1790+ <para style="P9">Receptor</para>
1791 <para style="Table Contents"><font face="Helvetica">Nombre: </font>[[ o.partner_id.name ]]</para>
1792 <para style="terp_default_8"><font face="Helvetica">Dirección:</font> [[ o.address_invoice_id.street ]] Nro. Ext: [[ o.address_invoice_id.street3 ]] Int: [[ o.address_invoice_id.street4 ]]</para>
1793 <para style="terp_default_8"><font face="Helvetica">Colonia:</font> [[ o.address_invoice_id.street2 or '' ]]</para>
1794@@ -194,47 +191,47 @@
1795 <para style="terp_default_8"><font face="Helvetica">Localidad: </font>[[ o.address_invoice_id.city2 or '' ]]</para>
1796 <para style="terp_default_8"><font face="Helvetica">C.P.:</font> [[ o.address_invoice_id.zip or '' ]] </para>
1797 <para style="terp_default_8"><font face="Helvetica">R. F. C. :</font> [[ o.partner_id._columns.has_key('vat_split') and o.partner_id.vat_split or o.partner_id.vat ]]</para>
1798- <para style="P25">Teléfono(s): </para>
1799- <para style="P19">[[ o.address_invoice_id.phone or removeParentNode('para') ]]</para>
1800- <para style="P19">[[ o.address_invoice_id.fax or removeParentNode('para') ]]</para>
1801- <para style="P19">[[ o.address_invoice_id.mobile or removeParentNode('para') ]]</para>
1802+ <para style="P29">Teléfono(s): </para>
1803+ <para style="P23">[[ o.address_invoice_id.phone or removeParentNode('para') ]]</para>
1804+ <para style="P23">[[ o.address_invoice_id.fax or removeParentNode('para') ]]</para>
1805+ <para style="P23">[[ o.address_invoice_id.mobile or removeParentNode('para') ]]</para>
1806 </td>
1807 <td>
1808 <para style="Table Contents">Condición de pago: [[ format(o.payment_term and (o.payment_term.note or o.payment_term.name) or removeParentNode('para') ) ]]</para>
1809 <para style="P3">Origen: [[ o.origin or removeParentNode('para') ]]</para>
1810 <para style="P3">Expedido en:</para>
1811- <para style="P3">[[ subcompany_address()['name'] or o.company_id.partner_id.name ]]</para>
1812- <para style="P3">Calle: [[ subcompany_address()['street'] or '' ]] Nro. Ext: [[ subcompany_address()['street3'] or '' ]] Int: [[ subcompany_address()['street4'] or '' ]]</para>
1813- <para style="P3">Colonia: [[ subcompany_address()['street2'] or '' ]]</para>
1814- <para style="P3">Ciudad: [[ subcompany_address()['city'] or '' ]]</para>
1815- <para style="P3">Localidad: [[ subcompany_address()['city2'] or '' ]]</para>
1816- <para style="P3">Estado: [[ subcompany_address()['state_id'] and subcompany_address()['state_id']['name'] or '' ]]</para>
1817- <para style="P3">CP: [[ subcompany_address()['zip'] or '' ]] </para>
1818+ <para style="P3">[[ o. address_issued_id and o.address_issued_id.name or '' ]]</para>
1819+ <para style="P3">Calle: [[ o.address_issued_id.street or '' ]] Nro. Ext: [[ o.address_issued_id.street3 or '' ]] Int: [[ o.address_issued_id.street4 or '' ]]</para>
1820+ <para style="P3">Colonia: [[ o.address_issued_id.street2 or '' ]]</para>
1821+ <para style="P3">Ciudad: [[ o.address_issued_id.city or '' ]]</para>
1822+ <para style="P3">Localidad: [[ o.address_issued_id.city2 or '' ]]</para>
1823+ <para style="P3">Estado: [[ o.address_issued_id.state_id and o.address_issued_id.state_id.name or '' ]]</para>
1824+ <para style="P3">CP: [[ o.address_issued_id.zip or '' ]] </para>
1825 </td>
1826 </tr>
1827 </blockTable>
1828 <blockTable colWidths="50.0,39.0,168.0,53.0,57.0,49.0,89.0" style="Tabla3">
1829 <tr>
1830 <td>
1831- <para style="P7">Cantidad</para>
1832- </td>
1833- <td>
1834- <para style="P7">Unidad</para>
1835- </td>
1836- <td>
1837- <para style="P7">Descripción</para>
1838- </td>
1839- <td>
1840- <para style="P7">Clave</para>
1841- </td>
1842- <td>
1843- <para style="P8">P.Unitario</para>
1844- </td>
1845- <td>
1846- <para style="P8">Dto %</para>
1847- </td>
1848- <td>
1849- <para style="P8">Importe</para>
1850+ <para style="P9">Cantidad</para>
1851+ </td>
1852+ <td>
1853+ <para style="P9">Unidad</para>
1854+ </td>
1855+ <td>
1856+ <para style="P9">Descripción</para>
1857+ </td>
1858+ <td>
1859+ <para style="P9">Clave</para>
1860+ </td>
1861+ <td>
1862+ <para style="P10">P.Unitario</para>
1863+ </td>
1864+ <td>
1865+ <para style="P10">Dto %</para>
1866+ </td>
1867+ <td>
1868+ <para style="P10">Importe</para>
1869 </td>
1870 </tr>
1871 <tr>
1872@@ -265,7 +262,7 @@
1873 <blockTable colWidths="414.0,91.0" style="Tabla7">
1874 <tr>
1875 <td>
1876- <para style="P8">Suma $</para>
1877+ <para style="P10">Suma $</para>
1878 </td>
1879 <td>
1880 <para style="P1">[[formatLang( ( exists_key('global_discount_percent') and o.global_discount_amount or 0.0 ) + (o.amount_untaxed or 0.0), digits=get_digits(dp='Account') )]]</para>
1881@@ -273,7 +270,7 @@
1882 </tr>
1883 <tr>
1884 <td>
1885- <para style="P8">Descuento: [[ exists_key('global_discount_percent') and o.global_discount_percent or removeParentNode('tr')]] %</para>
1886+ <para style="P10">Descuento: [[ exists_key('global_discount_percent') and o.global_discount_percent or removeParentNode('tr')]] %</para>
1887 </td>
1888 <td>
1889 <para style="P1">[[o.global_discount_amount and formatLang( o.global_discount_amount) or '']]</para>
1890@@ -281,7 +278,7 @@
1891 </tr>
1892 <tr>
1893 <td>
1894- <para style="P8">Sub Total $</para>
1895+ <para style="P10">Sub Total $</para>
1896 </td>
1897 <td>
1898 <para style="P1">[[ formatLang(o.amount_untaxed) ]]</para>
1899@@ -289,7 +286,7 @@
1900 </tr>
1901 <tr>
1902 <td>
1903- <para style="P8">
1904+ <para style="P10">
1905 <font face="Helvetica" size="6.0">[[ repeatIn( get_taxes(), 'tax' ) ]]</font>
1906 <font face="Helvetica">[[ tax['name2'] ]] ([[ round( float( tax['tax_percent'] ) ) or '0.0' ]]%) $</font>
1907 </para>
1908@@ -300,7 +297,7 @@
1909 </tr>
1910 <tr>
1911 <td>
1912- <para style="P8">
1913+ <para style="P10">
1914 <font face="Helvetica" size="6.0">[[ repeatIn( get_taxes_ret(), 'tax_ret' ) ]]</font>
1915 <font face="Helvetica">[[ tax_ret['name2'] ]] Ret ([[ round( float( tax_ret['tax_percent'] ),2 )*-1 ]]%) $</font>
1916 </para>
1917@@ -311,7 +308,7 @@
1918 </tr>
1919 <tr>
1920 <td>
1921- <para style="P8">Total $</para>
1922+ <para style="P10">Total $</para>
1923 </td>
1924 <td>
1925 <para style="P1">[[ formatLang(o.amount_total) ]]</para>
1926@@ -319,8 +316,8 @@
1927 </tr>
1928 <tr>
1929 <td>
1930- <para style="P15">IMPORTE CON LETRA:</para>
1931- <para style="P13">[[ o.amount_to_text ]]</para>
1932+ <para style="P17">IMPORTE CON LETRA:</para>
1933+ <para style="P15">[[ o.amount_to_text ]]</para>
1934 </td>
1935 <td>
1936 <para style="P1">
1937@@ -329,75 +326,78 @@
1938 </td>
1939 </tr>
1940 </blockTable>
1941- <para style="P12">PAGO EN UNA SOLA EXHIBICIÓN</para>
1942- <para style="P12">
1943+ <para style="P14">PAGO EN UNA SOLA EXHIBICIÓN</para>
1944+ <para style="P14">
1945 <font color="white"> </font>
1946 </para>
1947- <para style="P12">“Este documento es una representacion impresa de un CFDI” </para>
1948- <para style="P12">CFDI, Comprobante Fiscal Digital por Internet</para>
1949+ <para style="P14">“Este documento es una representacion impresa de un CFDI” </para>
1950+ <para style="P14">CFDI, Comprobante Fiscal Digital por Internet</para>
1951 <para style="terp_default_9">
1952 <font color="white"> </font>
1953 </para>
1954 <blockTable colWidths="133.0,94.0,102.0,170.0" style="Tabla5">
1955 <tr>
1956 <td>
1957- <para style="P12">Certificado del emisor</para>
1958- </td>
1959- <td>
1960- <para style="P16">Certificado del SAT</para>
1961- </td>
1962- <td>
1963- <para style="P16">Fecha de Timbrado</para>
1964- </td>
1965- <td>
1966- <para style="P16">Folio Fiscal</para>
1967- </td>
1968- </tr>
1969- <tr>
1970- <td>
1971- <para style="P17">[[ o.no_certificado or '' ]]</para>
1972- </td>
1973- <td>
1974- <para style="P17">[[ o.cfdi_no_certificado or '' ]]</para>
1975- </td>
1976- <td>
1977- <para style="P17">[[ o.cfdi_fecha_timbrado or '' ]]</para>
1978- </td>
1979- <td>
1980- <para style="P17">[[ o.cfdi_folio_fiscal or '' ]]</para>
1981- </td>
1982- </tr>
1983- </blockTable>
1984- <blockTable colWidths="155.0,174.0,170.0" style="Table1">
1985- <tr>
1986- <td>
1987- <para style="P10_enc">Régimen Fiscal:</para>
1988- <para style="P11_txt">[[o.company_id.partner_id.regimen_fiscal_id and o.company_id.partner_id.regimen_fiscal_id.name or 'No identificado']]</para>
1989- </td>
1990- <td>
1991- <para style="P10_enc">Método de Pago: </para>
1992- <para style="P11_txt">[[o.pay_method_id.name or 'No identificado']]</para>
1993- </td>
1994- <td>
1995- <para style="P10_enc">Últimos 4 dígitos de la cuenta bancaria:</para>
1996- <para style="P11_txt">[[o.acc_payment.last_acc_number or 'No identificado']]</para>
1997- </td>
1998- </tr>
1999- </blockTable>
2000+ <para style="P14">Certificado del emisor</para>
2001+ </td>
2002+ <td>
2003+ <para style="P18">Certificado del SAT</para>
2004+ </td>
2005+ <td>
2006+ <para style="P18">Fecha de Timbrado</para>
2007+ </td>
2008+ <td>
2009+ <para style="P18">Folio Fiscal</para>
2010+ </td>
2011+ </tr>
2012+ <tr>
2013+ <td>
2014+ <para style="P19">[[ o.no_certificado or '' ]]</para>
2015+ </td>
2016+ <td>
2017+ <para style="P19">[[ o.cfdi_no_certificado or '' ]]</para>
2018+ </td>
2019+ <td>
2020+ <para style="P19">[[ o.cfdi_fecha_timbrado or '' ]]</para>
2021+ </td>
2022+ <td>
2023+ <para style="P19">[[ o.cfdi_folio_fiscal or '' ]]</para>
2024+ </td>
2025+ </tr>
2026+ </blockTable>
2027+ <blockTable colWidths="159.0,170.0,170.0" style="Table1">
2028+ <tr>
2029+ <td>
2030+ <para style="P8">Régimen Fiscal:</para>
2031+ <para style="P7">[[o.company_emitter_id.partner_id.regimen_fiscal_id and o.company_emitter_id.partner_id.regimen_fiscal_id.name or 'No identificado']]</para>
2032+ </td>
2033+ <td>
2034+ <para style="P8">Método de Pago:</para>
2035+ <para style="P7">[[o.pay_method_id.name or 'No identificado']]</para>
2036+ </td>
2037+ <td>
2038+ <para style="P8">Últimos 4 dígitos de la cuenta bancaria:</para>
2039+ <para style="P7">[[o.acc_payment.last_acc_number or 'No identificado']]</para>
2040+ </td>
2041+ </tr>
2042+ </blockTable>
2043+ <para style="P21">
2044+ <font color="white"> </font>
2045+ </para>
2046 <blockTable colWidths="100.0,282.0,117.0" style="Tabla4">
2047 <tr>
2048 <td>
2049- <para style="P2">[[ o.company_id.cif_file and setTag('para','image',{'width':'98.0','height':'161.0'}) ]] [[ o.company_id.cif_file ]]</para>
2050+ <para style="P2">[[ o.company_emitter_id.cif_file and setTag('para','image',{'width':'98.0','height':'161.0'}) ]] [[ o.company_emitter_id.cif_file ]]</para>
2051 </td>
2052 <td>
2053- <para style="P12">Sello Digital Emisor:</para>
2054- <para style="P14">[[ split_string( o.sello or '') ]]</para>
2055- <para style="P14">
2056+ <para style="P14">Sello Digital Emisor:</para>
2057+ <para style="P16">[[ split_string( o.sello or '') ]]</para>
2058+ <para style="P16">
2059 <font color="white"> </font>
2060 </para>
2061- <para style="P12">Sello Digital SAT:</para>
2062- <para style="P14">[[ split_string( o.cfdi_sello or '') ]]</para>
2063- <para style="P14">
2064+ <para style="P14">Sello Digital SAT:</para>
2065+ <para style="P16">[[ split_string( o.cfdi_sello or '') ]]</para>
2066+ <para style="P16">
2067 <font color="white"> </font>
2068 </para>
2069 </td>
2070@@ -406,8 +406,8 @@
2071 </td>
2072 </tr>
2073 </blockTable>
2074- <para style="P12">Cadena Original del complemento de certificación digital del SAT:</para>
2075- <para style="P29">[[ split_string( o.cfdi_cadena_original or '' ) ]]</para>
2076+ <para style="P14">Cadena Original del complemento de certificación digital del SAT:</para>
2077+ <para style="P20">[[ split_string( o.cfdi_cadena_original or '' ) ]]</para>
2078 <para style="P5">
2079 <font color="white"> </font>
2080 </para>
2081
2082=== modified file 'l10n_mx_facturae_pac_sf/report/invoice_facturae_pac_sf_pdf.sxw'
2083Binary files l10n_mx_facturae_pac_sf/report/invoice_facturae_pac_sf_pdf.sxw 2012-09-08 04:35:43 +0000 and l10n_mx_facturae_pac_sf/report/invoice_facturae_pac_sf_pdf.sxw 2013-01-16 20:14:21 +0000 differ
2084=== modified file 'l10n_mx_facturae_seq/__openerp__.py'
2085--- l10n_mx_facturae_seq/__openerp__.py 2012-08-30 21:55:10 +0000
2086+++ l10n_mx_facturae_seq/__openerp__.py 2013-01-16 20:14:21 +0000
2087@@ -36,6 +36,7 @@
2088 "license" : "AGPL-3",
2089 "depends" : [
2090 "account",
2091+ "l10n_mx_company_multi_address",
2092 ],
2093 "init_xml" : [],
2094 "demo_xml" : [],
2095
2096=== modified file 'l10n_mx_facturae_seq/invoice.py'
2097--- l10n_mx_facturae_seq/invoice.py 2012-02-24 00:42:55 +0000
2098+++ l10n_mx_facturae_seq/invoice.py 2013-01-16 20:14:21 +0000
2099@@ -39,7 +39,7 @@
2100 res = {}
2101 for invoice in self.browse(cr, uid, ids):
2102 sequence_id = False
2103- company = invoice.company_id
2104+ company = invoice.company_emitter_id
2105 while True:
2106 if invoice.type == 'out_invoice':
2107 if company._columns.has_key('invoice_out_sequence_id'):