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.

-- 
Mailing list: https://launchpad.net/~avanzosc
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~avanzosc
More help   : https://help.launchpad.net/ListHelp

Reply via email to