← Back to team overview

avanzosc team mailing list archive

[Merge] lp:~mikelarregi/avanzosc/dos_proform_invoice_report into lp:~avanzosc-security-team/avanzosc/72horas

 

mikel arregi has proposed merging lp:~mikelarregi/avanzosc/dos_proform_invoice_report into lp:~avanzosc-security-team/avanzosc/72horas.

Requested reviews:
  Avanzosc_security (avanzosc-security-team)

For more details, see:
https://code.launchpad.net/~mikelarregi/avanzosc/dos_proform_invoice_report/+merge/224310

dos_proform_invoice_report
-- 
https://code.launchpad.net/~mikelarregi/avanzosc/dos_proform_invoice_report/+merge/224310
Your team Avanzosc_security is requested to review the proposed merge of lp:~mikelarregi/avanzosc/dos_proform_invoice_report into lp:~avanzosc-security-team/avanzosc/72horas.
=== modified file 'dos_proform_invoice_report/__init__.py'
--- dos_proform_invoice_report/__init__.py	2014-06-11 10:23:47 +0000
+++ dos_proform_invoice_report/__init__.py	2014-06-24 14:49:40 +0000
@@ -1,5 +1,5 @@
 ##############################################################################
-#    
+#
 #    OpenERP, Open Source Management Solution
 #    Copyright (C) 2004-2012 DOS (<http://www.dos-sl.es>).
 #
@@ -14,11 +14,10 @@
 #    GNU Affero General Public License for more details.
 #
 #    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.     
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 ##############################################################################
 
-import report
+from . import report
 
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-

=== modified file 'dos_proform_invoice_report/__openerp__.py'
--- dos_proform_invoice_report/__openerp__.py	2014-06-11 10:23:47 +0000
+++ dos_proform_invoice_report/__openerp__.py	2014-06-24 14:49:40 +0000
@@ -19,20 +19,19 @@
 ##############################################################################
 
 {
-	"name" : "DOS Proform Invoice Report",
-	"version" : "1.0",
-	"author" : "DOS",
-	"category" : "Enterprise Specific Modules",
-	"description":"""Module to print proform invoice with custom format.
-	""",
-	"depends" : ["sale"],
-	"init_xml" : [],
-	"demo_xml" : [],
-	"update_xml" : [
-		'proform_invoice_report.xml',
-	],
-	"website": 'http://www.dos-sl.es',
-	"active": False,
-	"installable": True,
+    "name": "DOS Proform Invoice Report",
+    "version": "1.0",
+    "author": "DOS",
+    "category": "Enterprise Specific Modules",
+    "description": """Module to print proform invoice with custom format.
+    """,
+    "depends": ["sale"],
+    "init_xml": [],
+    "demo_xml": [],
+    "update_xml": [
+        'report/proform_invoice_report.xml',
+        ],
+    "website": 'http://www.dos-sl.es',
+    "installable": True,
 }
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

=== modified file 'dos_proform_invoice_report/report/__init__.py'
--- dos_proform_invoice_report/report/__init__.py	2014-06-11 10:23:47 +0000
+++ dos_proform_invoice_report/report/__init__.py	2014-06-24 14:49:40 +0000
@@ -1,5 +1,5 @@
 ##############################################################################
-#    
+#
 #    OpenERP, Open Source Management Solution
 #    Copyright (C) 2004-2012 DOS (<http://www.dos-sl.es>).
 #
@@ -14,12 +14,10 @@
 #    GNU Affero General Public License for more details.
 #
 #    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.     
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 ##############################################################################
 
-import proform_invoice
-
-import proform_customs_invoice
+from . import proform_invoice
+from . import proform_customs_invoice
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-

=== modified file 'dos_proform_invoice_report/report/proform_customs_invoice.py'
--- dos_proform_invoice_report/report/proform_customs_invoice.py	2014-06-11 10:23:47 +0000
+++ dos_proform_invoice_report/report/proform_customs_invoice.py	2014-06-24 14:49:40 +0000
@@ -22,268 +22,225 @@
 import time
 from datetime import datetime
 from dateutil.relativedelta import relativedelta
-from report import report_sxw
-from osv import osv
-from tools.bank import format_acc_number
-from tools.translate import _
-import pooler
-
-class proform_customs_invoice_custom(report_sxw.rml_parse):
-	def __init__(self, cr, uid, name, context):
-		super(proform_customs_invoice_custom, self).__init__(cr, uid, name, context=context)
-		self.localcontext.update({
-			'time': time,
-			'get_left_text': self.get_left_text,
-			'get_footer_text': self.get_footer_text,
-			'get_date_order': self.get_date_order,
-			'get_company_address': self.get_company_address,
-			'get_elevator_address': self.get_elevator_address,
-			'get_payment_type': self.get_payment_type,
-			'get_payment_term': self.get_payment_term,
-			'get_account_number': self.get_account_number,
-			'get_tax_name': self.get_tax_name,
-			'get_order_lines': self.get_order_lines,
-			'get_shipping_address':self.get_shipping_address,
-		})
-		self.context = context
-		user = self.pool.get('res.users').browse(cr, uid, uid)
-		self.company = user.company_id
-		
-		
-	def get_date_order (self, order):
-		date_order = ""
-		
-		if str(order.date_order) != '':
-			date_order = datetime.strptime(order.date_order, '%Y-%m-%d')
-			date_order = date_order.strftime('%d/%m/%Y')
-			
-		return date_order
-		 
-	def get_left_text(self, order):
-		
-		text = ""
-		
-		company = order.company_id or self.company or None
-		
-		if company and company.partner_id:
-			
-			partner = company.partner_id
-
-			# Nombre empresa
-			text += partner.name or ""
-			# CIF
-			text += partner.vat and (" - " + partner.vat) or ""
-			# Tomo
-			text += partner.es_tomo and (" - " + _("RM Tomo") + " " + partner.es_tomo) or ""
-			# Libro
-			text += partner.es_libro and (" " + _("Libro") + " " + partner.es_libro) or ""
-			# Folio
-			text += partner.es_folio and (" " + _("Folio") + " " + partner.es_folio) or ""	
-			# Hoja
-			text += partner.es_hoja and (" " + _("Hoja") + " " + partner.es_hoja) or ""	
-			# Inscripcion
-			text += partner.es_registro_mercantil and (" " + _("Inscripción") + " " + partner.es_registro_mercantil) or ""	
-			# Final
-			text += "."		
-
-		return text
-	
-	def get_footer_text(self, order):
-		
-		text = ""
-		
-		company = order.company_id or self.company or None
-		
-		if company and company.partner_id:
-			
-			partner = company.partner_id
-			addr_ids = self.pool.get('res.partner').address_get(self.cr, self.uid, [partner.id], ['default'])
-			addr_id = addr_ids['default']
-			addr = self.pool.get('res.partner.address').browse(self.cr, self.uid, addr_id)
-			
-			# Nombre empresa
-			text += partner and partner.name or ""
-			# Calle empresa
-			text += addr and addr.street and (" - " + addr.street + ".") or ""
-			# Codigo Postal empresa
-			text += addr and addr.zip and (" - " + addr.zip) or ""
-			# Ciudad
-			text += addr and addr.city and (" " + addr.city) or ""
-			# Telefono
-			text += addr and addr.phone and (" - " + _("Tel.") + " " + addr.phone) or ""
-			# Fax
-			text += addr and addr.fax and (" - " + _("Fax.") + " " + addr.fax) or ""
-			# Email
-			text += addr and addr.email and (" - " + _("E-Mail") + " " + addr.email) or ""
-			
-		return text
-	
-	def get_company_address (self, order):
-		
-		res = []
-		
-		company = order.company_id or self.company or None
-		
-		if company and company.partner_id:
-			
-			partner = company.partner_id
-			addr_ids = self.pool.get('res.partner').address_get(self.cr, self.uid, [partner.id], ['default'])
-			addr_id = addr_ids['default']
-			addr = self.pool.get('res.partner.address').browse(self.cr, self.uid, addr_id)
-			
-			res.append(partner and partner.name or "")
-			res.append((addr and addr.street) or '')
-			res.append((addr and addr.zip or '') + " - " + (addr and addr.city or ''))
-			res.append((addr and addr.state_id and addr.state_id.name or '') + " (" + (addr and addr.country_id and addr.country_id.name or '') + ")")
-			res.append(partner and partner.vat or '')
-			
-		else:
-			
-			res.append(" ")
-			res.append(" ")
-			res.append(" ")
-			res.append(" ")
-			res.append(" ")
-			
-			"""
-			res.append("Nayar Systems S.L.")
-			res.append("Calle Taxida 10")
-			res.append("12003 Castellón")
-			res.append("España")
-			res.append("B-12757795") 
-			"""
-			
-		return res
-	
-	def get_elevator_address (self, order):
-		
-		res = []
-		
-		if order.elevator_partner_id:
-			
-			partner = order.elevator_partner_id
-			addr_ids = self.pool.get('res.partner').address_get(self.cr, self.uid, [partner.id], ['default'])
-			addr_id = addr_ids['default']
-			addr = self.pool.get('res.partner.address').browse(self.cr, self.uid, addr_id)
-			
-			res.append(partner and partner.name or "")
-			res.append((addr and addr.street) or '')
-			res.append((addr and addr.zip or '') + " - " + (addr and addr.city or ''))
-			res.append((addr and addr.state_id and addr.state_id.name or '') + " (" + (addr and addr.country_id and addr.country_id.name or '') + ")")
-			res.append(partner and partner.vat or '')
-		
-		elif order.partner_id:
-			
-			partner = order.partner_id
-			addr = order.address_order_id
-			
-			res.append(partner and partner.name or "")
-			res.append((addr and addr.street) or '')
-			res.append((addr and addr.zip or '') + " - " + (addr and addr.city or ''))
-			res.append((addr and addr.state_id and addr.state_id.name or '') + " (" + (addr and addr.country_id and addr.country_id.name or '') + ")")
-			res.append(partner and partner.vat or '')
-					 
-		else:
-			
-			res.append(" ")
-			res.append(" ")
-			res.append(" ")
-			res.append(" ")
-			res.append(" ")
-		
-		return res
-
-	def get_shipping_address (self, order):
-		res = []
-		if order.partner_shipping_id:
-			addr = order.partner_shipping_id
-			res.append((addr.partner_id.name) or "Error en al recuperar el nombre")
-			res.append((addr.street) or 'ERROR')
-			res.append((addr.zip or '') + " - " + (addr.city or ''))
-			res.append((addr.state_id.name or '') + " (" + (addr.country_id.name or '') + ")")
-			res.append(addr.partner_id and addr.partner_id.vat or '')
-		else:
-			res.append("Sin direccion de envio")
-			res.append(" ")
-			res.append(" ")
-			res.append(" ")
-			res.append(" ")
-		return res
-		
-		
-	def get_payment_type(self, order):
-
-		return order.payment_type and order.payment_type.name.upper() or ''
-	
-		
-	def get_payment_term(self, order):
-		
-		maturity_date = datetime.strptime(order.date_order, '%Y-%m-%d')
-		str_date = maturity_date.strftime('%d/%m/%Y')
-		
-		#Obtenemos fecha vencimiento
-		if order.payment_term:
-			for line in order.payment_term.line_ids:
-				if line.value in ('balance',):
-					maturity_date = datetime.strptime(order.date_order, '%Y-%m-%d') + relativedelta(days=+line.days)
-					str_date = maturity_date.strftime('%d/%m/%Y')
-					
-		return str_date
-		
-			
-	def get_account_number(self, order):
-	
-		bank_text = ""
-		
-		if order.payment_type and order.payment_type.name.upper() == "TRANSFERENCIA EN CCC":
-		
-			company = order.company_id or self.company or None
-			
-			if company and company.partner_id:
-				partner_id = company.partner_id.id
-				
-				pool = pooler.get_pool(self.cr.dbname)
-				bank_obj = pool.get('res.partner.bank')
-				bank_ids = bank_obj.search(self.cr, self.uid, [ ('partner_id','=', partner_id), ('default_bank','=', 'true')], limit=1)
-				
-				for bank in bank_obj.browse(self.cr, self.uid, bank_ids):
-					bank_text = format_acc_number(bank.iban or bank.acc_number or "")
-		else:
-			if order.partner_bank:
-				bank_text = format_acc_number(order.partner_bank.iban or order.partner_bank.acc_number or "", masked=True)
-			
-		return bank_text
-	
-	
-	def get_tax_name(self, order):
-		
-		tax = ""
-		for line in order.order_line:			
-			if line.tax_id:
-				tax = line.tax_id[0].name
-				break
-				
-		return tax
-			
-						
-	def get_order_lines (self, order):
-		
-		product_obj = self.pool.get('product.product')
-		
-		res = []
-		
-		for l in order.order_line:
-			line = {}
-			
-			line["concept"] = l.product_id and l.product_id.name or " "
-			line["uds"] = int(l.product_uos_qty or 0)
-			line["price"] = l.price_unit or 0
-			line["dto"] = l.discount or 0
-			line["import"] = l.price_subtotal or 0
-		
-			res.append(line)
-			
-		return res
-		
-report_sxw.report_sxw('report.proform.customs.invoice.custom','sale.order','addons/dos_proform_invoice_report/report/proform_customs_invoice.rml',parser=proform_customs_invoice_custom)
+from openerp.report import report_sxw
+from openerp.osv import orm
+from openerp.tools.bank import format_acc_number
+from openerp.tools.translate import _
+
+
+class ProformCustomsInvoiceCustom(report_sxw.rml_parse):
+
+    def __init__(self, cr, uid, name, context):
+        super(ProformCustomsInvoiceCustom, self).__init__(cr, uid, name,
+                                                          context=context)
+        self.localcontext.update({
+            'time': time,
+            'get_left_text': self.get_left_text,
+            'get_footer_text': self.get_footer_text,
+            'get_date_order': self.get_date_order,
+            'get_company_address': self.get_company_address,
+            'get_elevator_address': self.get_elevator_address,
+            'get_payment_type': self.get_payment_type,
+            'get_payment_term': self.get_payment_term,
+            'get_account_number': self.get_account_number,
+            'get_tax_name': self.get_tax_name,
+            'get_order_lines': self.get_order_lines,
+            'get_shipping_address': self.get_shipping_address,
+        })
+        self.context = context
+        user = self.pool['res.users'].browse(cr, uid, uid)
+        self.company = user.company_id
+
+    def get_date_order(self, order):
+        date_order = ""
+        if str(order.date_order) != '':
+            date_order = datetime.strptime(order.date_order, '%Y-%m-%d')
+            date_order = date_order.strftime('%d/%m/%Y')
+        return date_order
+
+    def get_left_text(self, order):
+        text = ""
+        company = order.company_id or self.company or None
+        if company and company.partner_id:
+            partner = company.partner_id
+            # Nombre empresa
+            text += partner.name or ""
+            # CIF
+            text += partner.vat and (" - " + partner.vat) or ""
+            # Tomo
+            text += partner.es_tomo and (" - " + _("RM Tomo") + " " +
+                                         partner.es_tomo) or ""
+            # Libro
+            text += partner.es_libro and (" " + _("Libro") + " " +
+                                          partner.es_libro) or ""
+            # Folio
+            text += partner.es_folio and (" " + _("Folio") + " " +
+                                          partner.es_folio) or ""
+            # Hoja
+            text += partner.es_hoja and (" " + _("Hoja") + " " +
+                                         partner.es_hoja) or ""
+            # Inscripcion
+            reg_merc = partner.es_registro_mercantil
+            text += partner.es_registro_mercantil and (" %s %s" %
+                                                       (_("Inscripción"),
+                                                        reg_merc)) or ""
+            # Final
+            text += "."
+        return text
+
+    def get_footer_text(self, order):
+        text = ""
+        company = order.company_id or self.company or None
+        if company and company.partner_id:
+            partner = company.partner_id
+            # Nombre empresa
+            text += partner and partner.name or ""
+            # Calle empresa
+            text += partner.street and (" - " + partner.street + ".") or ""
+            # Codigo Postal empresa
+            text += partner.zip and (" - " + partner.zip) or ""
+            # Ciudad
+            text += partner.city and (" " + partner.city) or ""
+            # Telefono
+            text += partner.phone and (" - " + _("Tel.") + " " +
+                                       partner.phone) or ""
+            # Fax
+            text += partner.fax and (" - " + _("Fax.") + " " +
+                                     partner.fax) or ""
+            # Email
+            text += partner.email and (" - " + _("E-Mail") + " " +
+                                       partner.email) or ""
+        return text
+
+    def get_company_address(self, order):
+        res = []
+        company = order.company_id or self.company or None
+        if company and company.partner_id:
+            partner = company.partner_id
+            res.append(partner and partner.name or "")
+            res.append((partner.street) or '')
+            res.append((partner.zip or '') + " - " +
+                       (partner.city or ''))
+            res.append((partner.state_id and partner.state_id.name or '') +
+                       " (" + (partner.country_id and
+                               partner.country_id.name or '') + ")")
+            res.append(partner and partner.vat or '')
+        else:
+            for i in range(5):
+                res.append(" ")
+            """
+            res.append("Nayar Systems S.L.")
+            res.append("Calle Taxida 10")
+            res.append("12003 Castellón")
+            res.append("España")
+            res.append("B-12757795")
+            """
+        return res
+
+    def get_elevator_address(self, order):
+        res = []
+        if order.elevator_partner_id:
+            partner = order.elevator_partner_id
+            res.append(partner and partner.name or "")
+            res.append((partner.street) or '')
+            res.append((partner.zip or '') + " - " +
+                       (partner.city or ''))
+            res.append((partner.state_id and partner.state_id.name or '') +
+                       " (" + (partner.country_id and
+                               partner.country_id.name or '') + ")")
+            res.append(partner and partner.vat or '')
+        elif order.partner_id:
+            partner = order.partner_id
+            res.append(partner and partner.name or "")
+            res.append((partner.street) or '')
+            res.append((partner.zip or '') + " - " + (partner.city or ''))
+            res.append((partner.state_id and partner.state_id.name or '') +
+                       " (" + (partner.country_id and
+                               partner.country_id.name or '') + ")")
+            res.append(partner and partner.vat or '')
+        else:
+            for i in range(5):
+                res.append(" ")
+        return res
+
+    def get_shipping_address(self, order):
+        res = []
+        if order.partner_shipping_id:
+            addr = order.partner_shipping_id
+            res.append((addr.partner_id.name) or
+                       "Error en al recuperar el nombre")
+            res.append((addr.street) or 'ERROR')
+            res.append((addr.zip or '') + " - " + (addr.city or ''))
+            res.append((addr.state_id.name or '') + " (" +
+                       (addr.country_id.name or '') + ")")
+            res.append(addr.partner_id and addr.partner_id.vat or '')
+        else:
+            res.append("Sin direccion de envio")
+            for i in range(5):
+                res.append(" ")
+        return res
+
+    def get_payment_type(self, order):
+        return order.payment_type and order.payment_type.name.upper() or ''
+
+    def get_payment_term(self, order):
+        maturity_date = datetime.strptime(order.date_order, '%Y-%m-%d')
+        str_date = maturity_date.strftime('%d/%m/%Y')
+        # Obtenemos fecha vencimiento
+        if order.payment_term:
+            for line in order.payment_term.line_ids:
+                if line.value in ('balance',):
+                    maturity_date = (datetime.strptime(order.date_order,
+                                                       '%Y-%m-%d') +
+                                     relativedelta(days=+line.days))
+                    str_date = maturity_date.strftime('%d/%m/%Y')
+        return str_date
+
+    def get_account_number(self, order):
+        bank_text = ""
+        if (order.payment_type and
+                order.payment_type.name.upper() == "TRANSFERENCIA EN CCC"):
+            company = order.company_id or self.company or None
+            if company and company.partner_id:
+                partner_id = company.partner_id.id
+                bank_obj = self.pool['res.partner.bank']
+                bank_ids = bank_obj.search(self.cr, self.uid,
+                                           [('partner_id', '=', partner_id),
+                                            ('default_bank', '=', 'true')],
+                                           limit=1)
+                for bank in bank_obj.browse(self.cr, self.uid, bank_ids):
+                    bank_text = format_acc_number(bank.iban or bank.acc_number
+                                                  or "")
+        else:
+            if order.partner_bank:
+                bank_text = format_acc_number(order.partner_bank.iban or
+                                              order.partner_bank.acc_number
+                                              or "", masked=True)
+        return bank_text
+
+    def get_tax_name(self, order):
+        tax = ""
+        for line in order.order_line:
+            if line.tax_id:
+                tax = line.tax_id[0].name
+                break
+        return tax
+
+    def get_order_lines(self, order):
+        product_obj = self.pool.get('product.product')
+        res = []
+        for l in order.order_line:
+            line = {}
+            line["concept"] = l.product_id and l.product_id.name or " "
+            line["uds"] = int(l.product_uos_qty or 0)
+            line["price"] = l.price_unit or 0
+            line["dto"] = l.discount or 0
+            line["import"] = l.price_subtotal or 0
+            res.append(line)
+        return res
+
+report_sxw.report_sxw('report.proform.customs.invoice.custom', 'sale.order',
+                      'addons/dos_proform_invoice_report/report/'
+                      'proform_customs_invoice.rml',
+                      parser=ProformCustomsInvoiceCustom)
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

=== modified file 'dos_proform_invoice_report/report/proform_invoice.py'
--- dos_proform_invoice_report/report/proform_invoice.py	2014-06-11 10:23:47 +0000
+++ dos_proform_invoice_report/report/proform_invoice.py	2014-06-24 14:49:40 +0000
@@ -22,250 +22,206 @@
 import time
 from datetime import datetime
 from dateutil.relativedelta import relativedelta
-from report import report_sxw
-from osv import osv
-from tools.bank import format_acc_number
-from tools.translate import _
-import pooler
-
-class proform_invoice_custom(report_sxw.rml_parse):
-	def __init__(self, cr, uid, name, context):
-		super(proform_invoice_custom, self).__init__(cr, uid, name, context=context)
-		self.localcontext.update({
-			'time': time,
-			'get_left_text': self.get_left_text,
-			'get_footer_text': self.get_footer_text,
-			'get_date_order': self.get_date_order,
-			'get_company_address': self.get_company_address,
-			'get_elevator_address': self.get_elevator_address,
-			'get_payment_type': self.get_payment_type,
-			'get_payment_term': self.get_payment_term,
-			'get_account_number': self.get_account_number,
-			'get_tax_name': self.get_tax_name,
-			'get_order_lines': self.get_order_lines,
-		})
-		self.context = context
-		user = self.pool.get('res.users').browse(cr, uid, uid)
-		self.company = user.company_id
-		
-		
-	def get_date_order (self, order):
-		date_order = ""
-		
-		if str(order.date_order) != '':
-			date_order = datetime.strptime(order.date_order, '%Y-%m-%d')
-			date_order = date_order.strftime('%d/%m/%Y')
-			
-		return date_order
-		 
-	def get_left_text(self, order):
-		
-		text = ""
-		
-		company = order.company_id or self.company or None
-		
-		if company and company.partner_id:
-			
-			partner = company.partner_id
-
-			# Nombre empresa
-			text += partner.name or ""
-			# CIF
-			text += partner.vat and (" - " + partner.vat) or ""
-			# Tomo
-			text += partner.es_tomo and (" - " + _("RM Tomo") + " " + partner.es_tomo) or ""
-			# Libro
-			text += partner.es_libro and (" " + _("Libro") + " " + partner.es_libro) or ""
-			# Folio
-			text += partner.es_folio and (" " + _("Folio") + " " + partner.es_folio) or ""	
-			# Hoja
-			text += partner.es_hoja and (" " + _("Hoja") + " " + partner.es_hoja) or ""	
-			# Inscripcion
-			text += partner.es_registro_mercantil and (" " + _("Inscripción") + " " + partner.es_registro_mercantil) or ""	
-			# Final
-			text += "."		
-
-		return text
-	
-	def get_footer_text(self, order):
-		
-		text = ""
-		
-		company = order.company_id or self.company or None
-		
-		if company and company.partner_id:
-			
-			partner = company.partner_id
-			addr_ids = self.pool.get('res.partner').address_get(self.cr, self.uid, [partner.id], ['default'])
-			addr_id = addr_ids['default']
-			addr = self.pool.get('res.partner.address').browse(self.cr, self.uid, addr_id)
-			
-			# Nombre empresa
-			text += partner and partner.name or ""
-			# Calle empresa
-			text += addr and addr.street and (" - " + addr.street + ".") or ""
-			# Codigo Postal empresa
-			text += addr and addr.zip and (" - " + addr.zip) or ""
-			# Ciudad
-			text += addr and addr.city and (" " + addr.city) or ""
-			# Telefono
-			text += addr and addr.phone and (" - " + _("Tel.") + " " + addr.phone) or ""
-			# Fax
-			text += addr and addr.fax and (" - " + _("Fax.") + " " + addr.fax) or ""
-			# Email
-			text += addr and addr.email and (" - " + _("E-Mail") + " " + addr.email) or ""
-			
-		return text
-	
-	def get_company_address (self, order):
-		
-		res = []
-		
-		company = order.company_id or self.company or None
-		
-		if company and company.partner_id:
-			
-			partner = company.partner_id
-			addr_ids = self.pool.get('res.partner').address_get(self.cr, self.uid, [partner.id], ['default'])
-			addr_id = addr_ids['default']
-			addr = self.pool.get('res.partner.address').browse(self.cr, self.uid, addr_id)
-			
-			res.append(partner and partner.name or "")
-			res.append((addr and addr.street) or '')
-			res.append((addr and addr.zip or '') + " - " + (addr and addr.city or ''))
-			res.append((addr and addr.state_id and addr.state_id.name or '') + " (" + (addr and addr.country_id and addr.country_id.name or '') + ")")
-			res.append(partner and partner.vat or '')
-			
-		else:
-			
-			res.append(" ")
-			res.append(" ")
-			res.append(" ")
-			res.append(" ")
-			res.append(" ")
-			
-			"""
-			res.append("Nayar Systems S.L.")
-			res.append("Calle Taxida 10")
-			res.append("12003 Castellón")
-			res.append("España")
-			res.append("B-12757795") 
-			"""
-			
-		return res
-	
-	def get_elevator_address (self, order):
-		
-		res = []
-		
-		if order.elevator_partner_id:
-			
-			partner = order.elevator_partner_id
-			addr_ids = self.pool.get('res.partner').address_get(self.cr, self.uid, [partner.id], ['default'])
-			addr_id = addr_ids['default']
-			addr = self.pool.get('res.partner.address').browse(self.cr, self.uid, addr_id)
-			
-			res.append(partner and partner.name or "")
-			res.append((addr and addr.street) or '')
-			res.append((addr and addr.zip or '') + " - " + (addr and addr.city or ''))
-			res.append((addr and addr.state_id and addr.state_id.name or '') + " (" + (addr and addr.country_id and addr.country_id.name or '') + ")")
-			res.append(partner and partner.vat or '')
-		
-		elif order.partner_id:
-			
-			partner = order.partner_id
-			addr = order.address_order_id
-			
-			res.append(partner and partner.name or "")
-			res.append((addr and addr.street) or '')
-			res.append((addr and addr.zip or '') + " - " + (addr and addr.city or ''))
-			res.append((addr and addr.state_id and addr.state_id.name or '') + " (" + (addr and addr.country_id and addr.country_id.name or '') + ")")
-			res.append(partner and partner.vat or '')
-					 
-		else:
-			
-			res.append(" ")
-			res.append(" ")
-			res.append(" ")
-			res.append(" ")
-			res.append(" ")
-		
-		return res
-		
-		
-	def get_payment_type(self, order):
-
-		return order.payment_type and order.payment_type.name.upper() or ''
-	
-		
-	def get_payment_term(self, order):
-		
-		maturity_date = datetime.strptime(order.date_order, '%Y-%m-%d')
-		str_date = maturity_date.strftime('%d/%m/%Y')
-		
-		#Obtenemos fecha vencimiento
-		if order.payment_term:
-			for line in order.payment_term.line_ids:
-				if line.value in ('balance',):
-					maturity_date = datetime.strptime(order.date_order, '%Y-%m-%d') + relativedelta(days=+line.days)
-					str_date = maturity_date.strftime('%d/%m/%Y')
-					
-		return str_date
-		
-			
-	def get_account_number(self, order):
-	
-		bank_text = ""
-		
-		if order.payment_type and order.payment_type.name.upper() == "TRANSFERENCIA EN CCC":
-		
-			company = order.company_id or self.company or None
-			
-			if company and company.partner_id:
-				partner_id = company.partner_id.id
-				
-				pool = pooler.get_pool(self.cr.dbname)
-				bank_obj = pool.get('res.partner.bank')
-				bank_ids = bank_obj.search(self.cr, self.uid, [ ('partner_id','=', partner_id), ('default_bank','=', 'true')], limit=1)
-				
-				for bank in bank_obj.browse(self.cr, self.uid, bank_ids):
-					bank_text = format_acc_number(bank.iban or bank.acc_number or "")
-		else:
-			if order.partner_bank:
-				bank_text = format_acc_number(order.partner_bank.iban or order.partner_bank.acc_number or "", masked=True)
-			
-		return bank_text
-	
-	
-	def get_tax_name(self, order):
-		
-		tax = ""
-		for line in order.order_line:			
-			if line.tax_id:
-				tax = line.tax_id[0].name
-				break
-				
-		return tax
-			
-						
-	def get_order_lines (self, order):
-		
-		product_obj = self.pool.get('product.product')
-		
-		res = []
-		
-		for l in order.order_line:
-			line = {}
-			
-			line["concept"] = l.product_id and l.product_id.name or " "
-			line["uds"] = int(l.product_uos_qty or 0)
-			line["price"] = l.price_unit or 0
-			line["dto"] = l.discount or 0
-			line["import"] = l.price_subtotal or 0
-		
-			res.append(line)
-			
-		return res
-		
-report_sxw.report_sxw('report.proform.invoice.custom','sale.order','addons/dos_proform_invoice_report/report/proform_invoice.rml',parser=proform_invoice_custom)
+from openerp.report import report_sxw
+from openerp.osv import orm
+from openerp.tools.bank import format_acc_number
+from openerp.tools.translate import _
+
+
+class ProformInvoiceCustom(report_sxw.rml_parse):
+    def __init__(self, cr, uid, name, context):
+        super(ProformInvoiceCustom, self).__init__(cr, uid, name,
+                                                   context=context)
+        self.localcontext.update({
+            'time': time,
+            'get_left_text': self.get_left_text,
+            'get_footer_text': self.get_footer_text,
+            'get_date_order': self.get_date_order,
+            'get_company_address': self.get_company_address,
+            'get_elevator_address': self.get_elevator_address,
+            'get_payment_type': self.get_payment_type,
+            'get_payment_term': self.get_payment_term,
+            'get_account_number': self.get_account_number,
+            'get_tax_name': self.get_tax_name,
+            'get_order_lines': self.get_order_lines,
+        })
+        self.context = context
+        user = self.pool.get('res.users').browse(cr, uid, uid)
+        self.company = user.company_id
+
+    def get_date_order(self, order):
+        date_order = ""
+        if str(order.date_order) != '':
+            date_order = datetime.strptime(order.date_order, '%Y-%m-%d')
+            date_order = date_order.strftime('%d/%m/%Y')
+        return date_order
+
+    def get_left_text(self, order):
+        text = ""
+        company = order.company_id or self.company or None
+        if company and company.partner_id:
+            partner = company.partner_id
+            # Nombre empresa
+            text += partner.name or ""
+            # CIF
+            text += partner.vat and (" - " + partner.vat) or ""
+            # Tomo
+            text += partner.es_tomo and (" - " + _("RM Tomo") + " " +
+                                         partner.es_tomo) or ""
+            # Libro
+            text += partner.es_libro and (" " + _("Libro") + " " +
+                                          partner.es_libro) or ""
+            # Folio
+            text += partner.es_folio and (" " + _("Folio") + " " +
+                                          partner.es_folio) or ""
+            # Hoja
+            text += partner.es_hoja and (" " + _("Hoja") + " " +
+                                         partner.es_hoja) or ""
+            # Inscripcion
+            text += (partner.es_registro_mercantil and
+                     (" " + _("Inscripción") + " " +
+                      partner.es_registro_mercantil) or "")
+            # Final
+            text += "."
+
+        return text
+
+    def get_footer_text(self, order):
+        text = ""
+        company = order.company_id or self.company or None
+        if company and company.partner_id:
+            partner = company.partner_id
+            # Nombre empresa
+            text += partner and partner.name or ""
+            # Calle empresa
+            text += partner.street and (" - " + partner.street + ".") or ""
+            # Codigo Postal empresa
+            text += partner.zip and (" - " + partner.zip) or ""
+            # Ciudad
+            text += partner.city and (" " + partner.city) or ""
+            # Telefono
+            text += partner.phone and (" - " + _("Tel.") + " " +
+                                       partner.phone) or ""
+            # Fax
+            text += partner.fax and (" - " + _("Fax.") + " " +
+                                     partner.fax) or ""
+            # Email
+            text += partner.email and (" - " + _("E-Mail") + " " +
+                                       partner.email) or ""
+        return text
+
+    def get_company_address(self, order):
+        res = []
+        company = order.company_id or self.company or None
+        if company and company.partner_id:
+            partner = company.partner_id
+            res.append(partner and partner.name or "")
+            res.append((partner.street) or '')
+            res.append((partner.zip or '') + " - " +
+                       (partner.city or ''))
+            res.append((partner.state_id and partner.state_id.name or '') +
+                       " (" + (partner.country_id and
+                               partner.country_id.name or '') + ")")
+            res.append(partner and partner.vat or '')
+        else:
+            for i in range(5):
+                res.append(" ")
+            """
+            res.append("Nayar Systems S.L.")
+            res.append("Calle Taxida 10")
+            res.append("12003 Castellón")
+            res.append("España")
+            res.append("B-12757795")
+            """
+        return res
+
+    def get_elevator_address(self, order):
+        res = []
+        if order.elevator_partner_id:
+            partner = order.elevator_partner_id
+            res.append(partner and partner.name or "")
+            res.append((partner.street) or '')
+            res.append((partner.zip or '') + " - " +
+                       (partner.city or ''))
+            res.append((partner.state_id and partner.state_id.name or '') +
+                       " (" + (partner.country_id and
+                               partner.country_id.name or '') + ")")
+            res.append(partner and partner.vat or '')
+        elif order.partner_id:
+            partner = order.partner_id
+            res.append(partner and partner.name or "")
+            res.append((partner.street) or '')
+            res.append((partner.zip or '') + " - " + (partner.city or ''))
+            res.append((partner.state_id and partner.state_id.name or '') +
+                       " (" + (partner.country_id and
+                               partner.country_id.name or '') + ")")
+            res.append(partner and partner.vat or '')
+        else:
+            for i in range(5):
+                res.append(" ")
+        return res
+
+    def get_payment_type(self, order):
+        return order.payment_type and order.payment_type.name.upper() or ''
+
+    def get_payment_term(self, order):
+        maturity_date = datetime.strptime(order.date_order, '%Y-%m-%d')
+        str_date = maturity_date.strftime('%d/%m/%Y')
+        # Obtenemos fecha vencimiento
+        if order.payment_term:
+            for line in order.payment_term.line_ids:
+                if line.value in ('balance',):
+                    maturity_date = (datetime.strptime(order.date_order,
+                                                       '%Y-%m-%d') +
+                                     relativedelta(days=+line.days))
+                    str_date = maturity_date.strftime('%d/%m/%Y')
+        return str_date
+
+    def get_account_number(self, order):
+        bank_text = ""
+        if (order.payment_type and
+                order.payment_type.name.upper() == "TRANSFERENCIA EN CCC"):
+            company = order.company_id or self.company or None
+            if company and company.partner_id:
+                partner_id = company.partner_id.id
+                pool = pooler.get_pool(self.cr.dbname)
+                bank_obj = pool.get('res.partner.bank')
+                bank_ids = bank_obj.search(self.cr, self.uid,
+                                           [('partner_id', '=', partner_id),
+                                            ('default_bank', '=', 'true')],
+                                           limit=1)
+                for bank in bank_obj.browse(self.cr, self.uid, bank_ids):
+                    bank_text = format_acc_number(bank.iban or bank.acc_number
+                                                  or "")
+        else:
+            if order.partner_bank:
+                bank_text = format_acc_number(order.partner_bank.iban or
+                                              order.partner_bank.acc_number or
+                                              "", masked=True)
+        return bank_text
+
+    def get_tax_name(self, order):
+        tax = ""
+        for line in order.order_line:
+            if line.tax_id:
+                tax = line.tax_id[0].name
+                break
+        return tax
+
+    def get_order_lines(self, order):
+        product_obj = self.pool.get('product.product')
+        res = []
+        for l in order.order_line:
+            line = {}
+            line["concept"] = l.product_id and l.product_id.name or " "
+            line["uds"] = int(l.product_uos_qty or 0)
+            line["price"] = l.price_unit or 0
+            line["dto"] = l.discount or 0
+            line["import"] = l.price_subtotal or 0
+            res.append(line)
+        return res
+
+report_sxw.report_sxw('report.proform.invoice.custom', 'sale.order',
+                      'addons/dos_proform_invoice_report/report/'
+                      'proform_invoice.rml', parser=ProformInvoiceCustom)
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

=== renamed file 'dos_proform_invoice_report/proform_invoice_report.xml' => 'dos_proform_invoice_report/report/proform_invoice_report.xml'

Follow ups