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

