← Back to team overview

avanzosc team mailing list archive

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

 

Review: Needs Fixing code review

Una pequeña cosa y ya está listo el módulo.

Un saludo.

Diff comments:

> === 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:55:14 +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:55:14 +0000
> @@ -19,20 +19,17 @@
>  ##############################################################################
>  
>  {
> -	"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"],

Hay que añadir la dependencia a l10n_es_partner_mercantil, ya que se utiliza luego campos de ese módulo.

> +    "data": [
> +        '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:55:14 +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:55:14 +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:55:14 +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'


-- 
https://code.launchpad.net/~mikelarregi/avanzosc/dos_proform_invoice_report/+merge/224310
Your team Avanzosc_security is subscribed to branch lp:~avanzosc-security-team/avanzosc/72horas.


References