avanzosc team mailing list archive
-
avanzosc team
-
Mailing list archive
-
Message #00503
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