avanzosc team mailing list archive
-
avanzosc team
-
Mailing list archive
-
Message #00502
[Merge] lp:~mikelarregi/avanzosc/dos_proform_invoice_report into lp:~avanzosc-security-team/avanzosc/72horas
mikel arregi has proposed merging lp:~mikelarregi/avanzosc/dos_proform_invoice_report into lp:~avanzosc-security-team/avanzosc/72horas.
Requested reviews:
Avanzosc_security (avanzosc-security-team)
For more details, see:
https://code.launchpad.net/~mikelarregi/avanzosc/dos_proform_invoice_report/+merge/224310
dos_proform_invoice_report
--
https://code.launchpad.net/~mikelarregi/avanzosc/dos_proform_invoice_report/+merge/224310
Your team Avanzosc_security is requested to review the proposed merge of lp:~mikelarregi/avanzosc/dos_proform_invoice_report into lp:~avanzosc-security-team/avanzosc/72horas.
=== modified file 'dos_proform_invoice_report/__init__.py'
--- dos_proform_invoice_report/__init__.py 2014-06-11 10:23:47 +0000
+++ dos_proform_invoice_report/__init__.py 2014-06-24 14:49:40 +0000
@@ -1,5 +1,5 @@
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2012 DOS (<http://www.dos-sl.es>).
#
@@ -14,11 +14,10 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
-import report
+from . import report
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
=== modified file 'dos_proform_invoice_report/__openerp__.py'
--- dos_proform_invoice_report/__openerp__.py 2014-06-11 10:23:47 +0000
+++ dos_proform_invoice_report/__openerp__.py 2014-06-24 14:49:40 +0000
@@ -19,20 +19,19 @@
##############################################################################
{
- "name" : "DOS Proform Invoice Report",
- "version" : "1.0",
- "author" : "DOS",
- "category" : "Enterprise Specific Modules",
- "description":"""Module to print proform invoice with custom format.
- """,
- "depends" : ["sale"],
- "init_xml" : [],
- "demo_xml" : [],
- "update_xml" : [
- 'proform_invoice_report.xml',
- ],
- "website": 'http://www.dos-sl.es',
- "active": False,
- "installable": True,
+ "name": "DOS Proform Invoice Report",
+ "version": "1.0",
+ "author": "DOS",
+ "category": "Enterprise Specific Modules",
+ "description": """Module to print proform invoice with custom format.
+ """,
+ "depends": ["sale"],
+ "init_xml": [],
+ "demo_xml": [],
+ "update_xml": [
+ 'report/proform_invoice_report.xml',
+ ],
+ "website": 'http://www.dos-sl.es',
+ "installable": True,
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== modified file 'dos_proform_invoice_report/report/__init__.py'
--- dos_proform_invoice_report/report/__init__.py 2014-06-11 10:23:47 +0000
+++ dos_proform_invoice_report/report/__init__.py 2014-06-24 14:49:40 +0000
@@ -1,5 +1,5 @@
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2012 DOS (<http://www.dos-sl.es>).
#
@@ -14,12 +14,10 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
-import proform_invoice
-
-import proform_customs_invoice
+from . import proform_invoice
+from . import proform_customs_invoice
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
=== modified file 'dos_proform_invoice_report/report/proform_customs_invoice.py'
--- dos_proform_invoice_report/report/proform_customs_invoice.py 2014-06-11 10:23:47 +0000
+++ dos_proform_invoice_report/report/proform_customs_invoice.py 2014-06-24 14:49:40 +0000
@@ -22,268 +22,225 @@
import time
from datetime import datetime
from dateutil.relativedelta import relativedelta
-from report import report_sxw
-from osv import osv
-from tools.bank import format_acc_number
-from tools.translate import _
-import pooler
-
-class proform_customs_invoice_custom(report_sxw.rml_parse):
- def __init__(self, cr, uid, name, context):
- super(proform_customs_invoice_custom, self).__init__(cr, uid, name, context=context)
- self.localcontext.update({
- 'time': time,
- 'get_left_text': self.get_left_text,
- 'get_footer_text': self.get_footer_text,
- 'get_date_order': self.get_date_order,
- 'get_company_address': self.get_company_address,
- 'get_elevator_address': self.get_elevator_address,
- 'get_payment_type': self.get_payment_type,
- 'get_payment_term': self.get_payment_term,
- 'get_account_number': self.get_account_number,
- 'get_tax_name': self.get_tax_name,
- 'get_order_lines': self.get_order_lines,
- 'get_shipping_address':self.get_shipping_address,
- })
- self.context = context
- user = self.pool.get('res.users').browse(cr, uid, uid)
- self.company = user.company_id
-
-
- def get_date_order (self, order):
- date_order = ""
-
- if str(order.date_order) != '':
- date_order = datetime.strptime(order.date_order, '%Y-%m-%d')
- date_order = date_order.strftime('%d/%m/%Y')
-
- return date_order
-
- def get_left_text(self, order):
-
- text = ""
-
- company = order.company_id or self.company or None
-
- if company and company.partner_id:
-
- partner = company.partner_id
-
- # Nombre empresa
- text += partner.name or ""
- # CIF
- text += partner.vat and (" - " + partner.vat) or ""
- # Tomo
- text += partner.es_tomo and (" - " + _("RM Tomo") + " " + partner.es_tomo) or ""
- # Libro
- text += partner.es_libro and (" " + _("Libro") + " " + partner.es_libro) or ""
- # Folio
- text += partner.es_folio and (" " + _("Folio") + " " + partner.es_folio) or ""
- # Hoja
- text += partner.es_hoja and (" " + _("Hoja") + " " + partner.es_hoja) or ""
- # Inscripcion
- text += partner.es_registro_mercantil and (" " + _("Inscripción") + " " + partner.es_registro_mercantil) or ""
- # Final
- text += "."
-
- return text
-
- def get_footer_text(self, order):
-
- text = ""
-
- company = order.company_id or self.company or None
-
- if company and company.partner_id:
-
- partner = company.partner_id
- addr_ids = self.pool.get('res.partner').address_get(self.cr, self.uid, [partner.id], ['default'])
- addr_id = addr_ids['default']
- addr = self.pool.get('res.partner.address').browse(self.cr, self.uid, addr_id)
-
- # Nombre empresa
- text += partner and partner.name or ""
- # Calle empresa
- text += addr and addr.street and (" - " + addr.street + ".") or ""
- # Codigo Postal empresa
- text += addr and addr.zip and (" - " + addr.zip) or ""
- # Ciudad
- text += addr and addr.city and (" " + addr.city) or ""
- # Telefono
- text += addr and addr.phone and (" - " + _("Tel.") + " " + addr.phone) or ""
- # Fax
- text += addr and addr.fax and (" - " + _("Fax.") + " " + addr.fax) or ""
- # Email
- text += addr and addr.email and (" - " + _("E-Mail") + " " + addr.email) or ""
-
- return text
-
- def get_company_address (self, order):
-
- res = []
-
- company = order.company_id or self.company or None
-
- if company and company.partner_id:
-
- partner = company.partner_id
- addr_ids = self.pool.get('res.partner').address_get(self.cr, self.uid, [partner.id], ['default'])
- addr_id = addr_ids['default']
- addr = self.pool.get('res.partner.address').browse(self.cr, self.uid, addr_id)
-
- res.append(partner and partner.name or "")
- res.append((addr and addr.street) or '')
- res.append((addr and addr.zip or '') + " - " + (addr and addr.city or ''))
- res.append((addr and addr.state_id and addr.state_id.name or '') + " (" + (addr and addr.country_id and addr.country_id.name or '') + ")")
- res.append(partner and partner.vat or '')
-
- else:
-
- res.append(" ")
- res.append(" ")
- res.append(" ")
- res.append(" ")
- res.append(" ")
-
- """
- res.append("Nayar Systems S.L.")
- res.append("Calle Taxida 10")
- res.append("12003 Castellón")
- res.append("España")
- res.append("B-12757795")
- """
-
- return res
-
- def get_elevator_address (self, order):
-
- res = []
-
- if order.elevator_partner_id:
-
- partner = order.elevator_partner_id
- addr_ids = self.pool.get('res.partner').address_get(self.cr, self.uid, [partner.id], ['default'])
- addr_id = addr_ids['default']
- addr = self.pool.get('res.partner.address').browse(self.cr, self.uid, addr_id)
-
- res.append(partner and partner.name or "")
- res.append((addr and addr.street) or '')
- res.append((addr and addr.zip or '') + " - " + (addr and addr.city or ''))
- res.append((addr and addr.state_id and addr.state_id.name or '') + " (" + (addr and addr.country_id and addr.country_id.name or '') + ")")
- res.append(partner and partner.vat or '')
-
- elif order.partner_id:
-
- partner = order.partner_id
- addr = order.address_order_id
-
- res.append(partner and partner.name or "")
- res.append((addr and addr.street) or '')
- res.append((addr and addr.zip or '') + " - " + (addr and addr.city or ''))
- res.append((addr and addr.state_id and addr.state_id.name or '') + " (" + (addr and addr.country_id and addr.country_id.name or '') + ")")
- res.append(partner and partner.vat or '')
-
- else:
-
- res.append(" ")
- res.append(" ")
- res.append(" ")
- res.append(" ")
- res.append(" ")
-
- return res
-
- def get_shipping_address (self, order):
- res = []
- if order.partner_shipping_id:
- addr = order.partner_shipping_id
- res.append((addr.partner_id.name) or "Error en al recuperar el nombre")
- res.append((addr.street) or 'ERROR')
- res.append((addr.zip or '') + " - " + (addr.city or ''))
- res.append((addr.state_id.name or '') + " (" + (addr.country_id.name or '') + ")")
- res.append(addr.partner_id and addr.partner_id.vat or '')
- else:
- res.append("Sin direccion de envio")
- res.append(" ")
- res.append(" ")
- res.append(" ")
- res.append(" ")
- return res
-
-
- def get_payment_type(self, order):
-
- return order.payment_type and order.payment_type.name.upper() or ''
-
-
- def get_payment_term(self, order):
-
- maturity_date = datetime.strptime(order.date_order, '%Y-%m-%d')
- str_date = maturity_date.strftime('%d/%m/%Y')
-
- #Obtenemos fecha vencimiento
- if order.payment_term:
- for line in order.payment_term.line_ids:
- if line.value in ('balance',):
- maturity_date = datetime.strptime(order.date_order, '%Y-%m-%d') + relativedelta(days=+line.days)
- str_date = maturity_date.strftime('%d/%m/%Y')
-
- return str_date
-
-
- def get_account_number(self, order):
-
- bank_text = ""
-
- if order.payment_type and order.payment_type.name.upper() == "TRANSFERENCIA EN CCC":
-
- company = order.company_id or self.company or None
-
- if company and company.partner_id:
- partner_id = company.partner_id.id
-
- pool = pooler.get_pool(self.cr.dbname)
- bank_obj = pool.get('res.partner.bank')
- bank_ids = bank_obj.search(self.cr, self.uid, [ ('partner_id','=', partner_id), ('default_bank','=', 'true')], limit=1)
-
- for bank in bank_obj.browse(self.cr, self.uid, bank_ids):
- bank_text = format_acc_number(bank.iban or bank.acc_number or "")
- else:
- if order.partner_bank:
- bank_text = format_acc_number(order.partner_bank.iban or order.partner_bank.acc_number or "", masked=True)
-
- return bank_text
-
-
- def get_tax_name(self, order):
-
- tax = ""
- for line in order.order_line:
- if line.tax_id:
- tax = line.tax_id[0].name
- break
-
- return tax
-
-
- def get_order_lines (self, order):
-
- product_obj = self.pool.get('product.product')
-
- res = []
-
- for l in order.order_line:
- line = {}
-
- line["concept"] = l.product_id and l.product_id.name or " "
- line["uds"] = int(l.product_uos_qty or 0)
- line["price"] = l.price_unit or 0
- line["dto"] = l.discount or 0
- line["import"] = l.price_subtotal or 0
-
- res.append(line)
-
- return res
-
-report_sxw.report_sxw('report.proform.customs.invoice.custom','sale.order','addons/dos_proform_invoice_report/report/proform_customs_invoice.rml',parser=proform_customs_invoice_custom)
+from openerp.report import report_sxw
+from openerp.osv import orm
+from openerp.tools.bank import format_acc_number
+from openerp.tools.translate import _
+
+
+class ProformCustomsInvoiceCustom(report_sxw.rml_parse):
+
+ def __init__(self, cr, uid, name, context):
+ super(ProformCustomsInvoiceCustom, self).__init__(cr, uid, name,
+ context=context)
+ self.localcontext.update({
+ 'time': time,
+ 'get_left_text': self.get_left_text,
+ 'get_footer_text': self.get_footer_text,
+ 'get_date_order': self.get_date_order,
+ 'get_company_address': self.get_company_address,
+ 'get_elevator_address': self.get_elevator_address,
+ 'get_payment_type': self.get_payment_type,
+ 'get_payment_term': self.get_payment_term,
+ 'get_account_number': self.get_account_number,
+ 'get_tax_name': self.get_tax_name,
+ 'get_order_lines': self.get_order_lines,
+ 'get_shipping_address': self.get_shipping_address,
+ })
+ self.context = context
+ user = self.pool['res.users'].browse(cr, uid, uid)
+ self.company = user.company_id
+
+ def get_date_order(self, order):
+ date_order = ""
+ if str(order.date_order) != '':
+ date_order = datetime.strptime(order.date_order, '%Y-%m-%d')
+ date_order = date_order.strftime('%d/%m/%Y')
+ return date_order
+
+ def get_left_text(self, order):
+ text = ""
+ company = order.company_id or self.company or None
+ if company and company.partner_id:
+ partner = company.partner_id
+ # Nombre empresa
+ text += partner.name or ""
+ # CIF
+ text += partner.vat and (" - " + partner.vat) or ""
+ # Tomo
+ text += partner.es_tomo and (" - " + _("RM Tomo") + " " +
+ partner.es_tomo) or ""
+ # Libro
+ text += partner.es_libro and (" " + _("Libro") + " " +
+ partner.es_libro) or ""
+ # Folio
+ text += partner.es_folio and (" " + _("Folio") + " " +
+ partner.es_folio) or ""
+ # Hoja
+ text += partner.es_hoja and (" " + _("Hoja") + " " +
+ partner.es_hoja) or ""
+ # Inscripcion
+ reg_merc = partner.es_registro_mercantil
+ text += partner.es_registro_mercantil and (" %s %s" %
+ (_("Inscripción"),
+ reg_merc)) or ""
+ # Final
+ text += "."
+ return text
+
+ def get_footer_text(self, order):
+ text = ""
+ company = order.company_id or self.company or None
+ if company and company.partner_id:
+ partner = company.partner_id
+ # Nombre empresa
+ text += partner and partner.name or ""
+ # Calle empresa
+ text += partner.street and (" - " + partner.street + ".") or ""
+ # Codigo Postal empresa
+ text += partner.zip and (" - " + partner.zip) or ""
+ # Ciudad
+ text += partner.city and (" " + partner.city) or ""
+ # Telefono
+ text += partner.phone and (" - " + _("Tel.") + " " +
+ partner.phone) or ""
+ # Fax
+ text += partner.fax and (" - " + _("Fax.") + " " +
+ partner.fax) or ""
+ # Email
+ text += partner.email and (" - " + _("E-Mail") + " " +
+ partner.email) or ""
+ return text
+
+ def get_company_address(self, order):
+ res = []
+ company = order.company_id or self.company or None
+ if company and company.partner_id:
+ partner = company.partner_id
+ res.append(partner and partner.name or "")
+ res.append((partner.street) or '')
+ res.append((partner.zip or '') + " - " +
+ (partner.city or ''))
+ res.append((partner.state_id and partner.state_id.name or '') +
+ " (" + (partner.country_id and
+ partner.country_id.name or '') + ")")
+ res.append(partner and partner.vat or '')
+ else:
+ for i in range(5):
+ res.append(" ")
+ """
+ res.append("Nayar Systems S.L.")
+ res.append("Calle Taxida 10")
+ res.append("12003 Castellón")
+ res.append("España")
+ res.append("B-12757795")
+ """
+ return res
+
+ def get_elevator_address(self, order):
+ res = []
+ if order.elevator_partner_id:
+ partner = order.elevator_partner_id
+ res.append(partner and partner.name or "")
+ res.append((partner.street) or '')
+ res.append((partner.zip or '') + " - " +
+ (partner.city or ''))
+ res.append((partner.state_id and partner.state_id.name or '') +
+ " (" + (partner.country_id and
+ partner.country_id.name or '') + ")")
+ res.append(partner and partner.vat or '')
+ elif order.partner_id:
+ partner = order.partner_id
+ res.append(partner and partner.name or "")
+ res.append((partner.street) or '')
+ res.append((partner.zip or '') + " - " + (partner.city or ''))
+ res.append((partner.state_id and partner.state_id.name or '') +
+ " (" + (partner.country_id and
+ partner.country_id.name or '') + ")")
+ res.append(partner and partner.vat or '')
+ else:
+ for i in range(5):
+ res.append(" ")
+ return res
+
+ def get_shipping_address(self, order):
+ res = []
+ if order.partner_shipping_id:
+ addr = order.partner_shipping_id
+ res.append((addr.partner_id.name) or
+ "Error en al recuperar el nombre")
+ res.append((addr.street) or 'ERROR')
+ res.append((addr.zip or '') + " - " + (addr.city or ''))
+ res.append((addr.state_id.name or '') + " (" +
+ (addr.country_id.name or '') + ")")
+ res.append(addr.partner_id and addr.partner_id.vat or '')
+ else:
+ res.append("Sin direccion de envio")
+ for i in range(5):
+ res.append(" ")
+ return res
+
+ def get_payment_type(self, order):
+ return order.payment_type and order.payment_type.name.upper() or ''
+
+ def get_payment_term(self, order):
+ maturity_date = datetime.strptime(order.date_order, '%Y-%m-%d')
+ str_date = maturity_date.strftime('%d/%m/%Y')
+ # Obtenemos fecha vencimiento
+ if order.payment_term:
+ for line in order.payment_term.line_ids:
+ if line.value in ('balance',):
+ maturity_date = (datetime.strptime(order.date_order,
+ '%Y-%m-%d') +
+ relativedelta(days=+line.days))
+ str_date = maturity_date.strftime('%d/%m/%Y')
+ return str_date
+
+ def get_account_number(self, order):
+ bank_text = ""
+ if (order.payment_type and
+ order.payment_type.name.upper() == "TRANSFERENCIA EN CCC"):
+ company = order.company_id or self.company or None
+ if company and company.partner_id:
+ partner_id = company.partner_id.id
+ bank_obj = self.pool['res.partner.bank']
+ bank_ids = bank_obj.search(self.cr, self.uid,
+ [('partner_id', '=', partner_id),
+ ('default_bank', '=', 'true')],
+ limit=1)
+ for bank in bank_obj.browse(self.cr, self.uid, bank_ids):
+ bank_text = format_acc_number(bank.iban or bank.acc_number
+ or "")
+ else:
+ if order.partner_bank:
+ bank_text = format_acc_number(order.partner_bank.iban or
+ order.partner_bank.acc_number
+ or "", masked=True)
+ return bank_text
+
+ def get_tax_name(self, order):
+ tax = ""
+ for line in order.order_line:
+ if line.tax_id:
+ tax = line.tax_id[0].name
+ break
+ return tax
+
+ def get_order_lines(self, order):
+ product_obj = self.pool.get('product.product')
+ res = []
+ for l in order.order_line:
+ line = {}
+ line["concept"] = l.product_id and l.product_id.name or " "
+ line["uds"] = int(l.product_uos_qty or 0)
+ line["price"] = l.price_unit or 0
+ line["dto"] = l.discount or 0
+ line["import"] = l.price_subtotal or 0
+ res.append(line)
+ return res
+
+report_sxw.report_sxw('report.proform.customs.invoice.custom', 'sale.order',
+ 'addons/dos_proform_invoice_report/report/'
+ 'proform_customs_invoice.rml',
+ parser=ProformCustomsInvoiceCustom)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== modified file 'dos_proform_invoice_report/report/proform_invoice.py'
--- dos_proform_invoice_report/report/proform_invoice.py 2014-06-11 10:23:47 +0000
+++ dos_proform_invoice_report/report/proform_invoice.py 2014-06-24 14:49:40 +0000
@@ -22,250 +22,206 @@
import time
from datetime import datetime
from dateutil.relativedelta import relativedelta
-from report import report_sxw
-from osv import osv
-from tools.bank import format_acc_number
-from tools.translate import _
-import pooler
-
-class proform_invoice_custom(report_sxw.rml_parse):
- def __init__(self, cr, uid, name, context):
- super(proform_invoice_custom, self).__init__(cr, uid, name, context=context)
- self.localcontext.update({
- 'time': time,
- 'get_left_text': self.get_left_text,
- 'get_footer_text': self.get_footer_text,
- 'get_date_order': self.get_date_order,
- 'get_company_address': self.get_company_address,
- 'get_elevator_address': self.get_elevator_address,
- 'get_payment_type': self.get_payment_type,
- 'get_payment_term': self.get_payment_term,
- 'get_account_number': self.get_account_number,
- 'get_tax_name': self.get_tax_name,
- 'get_order_lines': self.get_order_lines,
- })
- self.context = context
- user = self.pool.get('res.users').browse(cr, uid, uid)
- self.company = user.company_id
-
-
- def get_date_order (self, order):
- date_order = ""
-
- if str(order.date_order) != '':
- date_order = datetime.strptime(order.date_order, '%Y-%m-%d')
- date_order = date_order.strftime('%d/%m/%Y')
-
- return date_order
-
- def get_left_text(self, order):
-
- text = ""
-
- company = order.company_id or self.company or None
-
- if company and company.partner_id:
-
- partner = company.partner_id
-
- # Nombre empresa
- text += partner.name or ""
- # CIF
- text += partner.vat and (" - " + partner.vat) or ""
- # Tomo
- text += partner.es_tomo and (" - " + _("RM Tomo") + " " + partner.es_tomo) or ""
- # Libro
- text += partner.es_libro and (" " + _("Libro") + " " + partner.es_libro) or ""
- # Folio
- text += partner.es_folio and (" " + _("Folio") + " " + partner.es_folio) or ""
- # Hoja
- text += partner.es_hoja and (" " + _("Hoja") + " " + partner.es_hoja) or ""
- # Inscripcion
- text += partner.es_registro_mercantil and (" " + _("Inscripción") + " " + partner.es_registro_mercantil) or ""
- # Final
- text += "."
-
- return text
-
- def get_footer_text(self, order):
-
- text = ""
-
- company = order.company_id or self.company or None
-
- if company and company.partner_id:
-
- partner = company.partner_id
- addr_ids = self.pool.get('res.partner').address_get(self.cr, self.uid, [partner.id], ['default'])
- addr_id = addr_ids['default']
- addr = self.pool.get('res.partner.address').browse(self.cr, self.uid, addr_id)
-
- # Nombre empresa
- text += partner and partner.name or ""
- # Calle empresa
- text += addr and addr.street and (" - " + addr.street + ".") or ""
- # Codigo Postal empresa
- text += addr and addr.zip and (" - " + addr.zip) or ""
- # Ciudad
- text += addr and addr.city and (" " + addr.city) or ""
- # Telefono
- text += addr and addr.phone and (" - " + _("Tel.") + " " + addr.phone) or ""
- # Fax
- text += addr and addr.fax and (" - " + _("Fax.") + " " + addr.fax) or ""
- # Email
- text += addr and addr.email and (" - " + _("E-Mail") + " " + addr.email) or ""
-
- return text
-
- def get_company_address (self, order):
-
- res = []
-
- company = order.company_id or self.company or None
-
- if company and company.partner_id:
-
- partner = company.partner_id
- addr_ids = self.pool.get('res.partner').address_get(self.cr, self.uid, [partner.id], ['default'])
- addr_id = addr_ids['default']
- addr = self.pool.get('res.partner.address').browse(self.cr, self.uid, addr_id)
-
- res.append(partner and partner.name or "")
- res.append((addr and addr.street) or '')
- res.append((addr and addr.zip or '') + " - " + (addr and addr.city or ''))
- res.append((addr and addr.state_id and addr.state_id.name or '') + " (" + (addr and addr.country_id and addr.country_id.name or '') + ")")
- res.append(partner and partner.vat or '')
-
- else:
-
- res.append(" ")
- res.append(" ")
- res.append(" ")
- res.append(" ")
- res.append(" ")
-
- """
- res.append("Nayar Systems S.L.")
- res.append("Calle Taxida 10")
- res.append("12003 Castellón")
- res.append("España")
- res.append("B-12757795")
- """
-
- return res
-
- def get_elevator_address (self, order):
-
- res = []
-
- if order.elevator_partner_id:
-
- partner = order.elevator_partner_id
- addr_ids = self.pool.get('res.partner').address_get(self.cr, self.uid, [partner.id], ['default'])
- addr_id = addr_ids['default']
- addr = self.pool.get('res.partner.address').browse(self.cr, self.uid, addr_id)
-
- res.append(partner and partner.name or "")
- res.append((addr and addr.street) or '')
- res.append((addr and addr.zip or '') + " - " + (addr and addr.city or ''))
- res.append((addr and addr.state_id and addr.state_id.name or '') + " (" + (addr and addr.country_id and addr.country_id.name or '') + ")")
- res.append(partner and partner.vat or '')
-
- elif order.partner_id:
-
- partner = order.partner_id
- addr = order.address_order_id
-
- res.append(partner and partner.name or "")
- res.append((addr and addr.street) or '')
- res.append((addr and addr.zip or '') + " - " + (addr and addr.city or ''))
- res.append((addr and addr.state_id and addr.state_id.name or '') + " (" + (addr and addr.country_id and addr.country_id.name or '') + ")")
- res.append(partner and partner.vat or '')
-
- else:
-
- res.append(" ")
- res.append(" ")
- res.append(" ")
- res.append(" ")
- res.append(" ")
-
- return res
-
-
- def get_payment_type(self, order):
-
- return order.payment_type and order.payment_type.name.upper() or ''
-
-
- def get_payment_term(self, order):
-
- maturity_date = datetime.strptime(order.date_order, '%Y-%m-%d')
- str_date = maturity_date.strftime('%d/%m/%Y')
-
- #Obtenemos fecha vencimiento
- if order.payment_term:
- for line in order.payment_term.line_ids:
- if line.value in ('balance',):
- maturity_date = datetime.strptime(order.date_order, '%Y-%m-%d') + relativedelta(days=+line.days)
- str_date = maturity_date.strftime('%d/%m/%Y')
-
- return str_date
-
-
- def get_account_number(self, order):
-
- bank_text = ""
-
- if order.payment_type and order.payment_type.name.upper() == "TRANSFERENCIA EN CCC":
-
- company = order.company_id or self.company or None
-
- if company and company.partner_id:
- partner_id = company.partner_id.id
-
- pool = pooler.get_pool(self.cr.dbname)
- bank_obj = pool.get('res.partner.bank')
- bank_ids = bank_obj.search(self.cr, self.uid, [ ('partner_id','=', partner_id), ('default_bank','=', 'true')], limit=1)
-
- for bank in bank_obj.browse(self.cr, self.uid, bank_ids):
- bank_text = format_acc_number(bank.iban or bank.acc_number or "")
- else:
- if order.partner_bank:
- bank_text = format_acc_number(order.partner_bank.iban or order.partner_bank.acc_number or "", masked=True)
-
- return bank_text
-
-
- def get_tax_name(self, order):
-
- tax = ""
- for line in order.order_line:
- if line.tax_id:
- tax = line.tax_id[0].name
- break
-
- return tax
-
-
- def get_order_lines (self, order):
-
- product_obj = self.pool.get('product.product')
-
- res = []
-
- for l in order.order_line:
- line = {}
-
- line["concept"] = l.product_id and l.product_id.name or " "
- line["uds"] = int(l.product_uos_qty or 0)
- line["price"] = l.price_unit or 0
- line["dto"] = l.discount or 0
- line["import"] = l.price_subtotal or 0
-
- res.append(line)
-
- return res
-
-report_sxw.report_sxw('report.proform.invoice.custom','sale.order','addons/dos_proform_invoice_report/report/proform_invoice.rml',parser=proform_invoice_custom)
+from openerp.report import report_sxw
+from openerp.osv import orm
+from openerp.tools.bank import format_acc_number
+from openerp.tools.translate import _
+
+
+class ProformInvoiceCustom(report_sxw.rml_parse):
+ def __init__(self, cr, uid, name, context):
+ super(ProformInvoiceCustom, self).__init__(cr, uid, name,
+ context=context)
+ self.localcontext.update({
+ 'time': time,
+ 'get_left_text': self.get_left_text,
+ 'get_footer_text': self.get_footer_text,
+ 'get_date_order': self.get_date_order,
+ 'get_company_address': self.get_company_address,
+ 'get_elevator_address': self.get_elevator_address,
+ 'get_payment_type': self.get_payment_type,
+ 'get_payment_term': self.get_payment_term,
+ 'get_account_number': self.get_account_number,
+ 'get_tax_name': self.get_tax_name,
+ 'get_order_lines': self.get_order_lines,
+ })
+ self.context = context
+ user = self.pool.get('res.users').browse(cr, uid, uid)
+ self.company = user.company_id
+
+ def get_date_order(self, order):
+ date_order = ""
+ if str(order.date_order) != '':
+ date_order = datetime.strptime(order.date_order, '%Y-%m-%d')
+ date_order = date_order.strftime('%d/%m/%Y')
+ return date_order
+
+ def get_left_text(self, order):
+ text = ""
+ company = order.company_id or self.company or None
+ if company and company.partner_id:
+ partner = company.partner_id
+ # Nombre empresa
+ text += partner.name or ""
+ # CIF
+ text += partner.vat and (" - " + partner.vat) or ""
+ # Tomo
+ text += partner.es_tomo and (" - " + _("RM Tomo") + " " +
+ partner.es_tomo) or ""
+ # Libro
+ text += partner.es_libro and (" " + _("Libro") + " " +
+ partner.es_libro) or ""
+ # Folio
+ text += partner.es_folio and (" " + _("Folio") + " " +
+ partner.es_folio) or ""
+ # Hoja
+ text += partner.es_hoja and (" " + _("Hoja") + " " +
+ partner.es_hoja) or ""
+ # Inscripcion
+ text += (partner.es_registro_mercantil and
+ (" " + _("Inscripción") + " " +
+ partner.es_registro_mercantil) or "")
+ # Final
+ text += "."
+
+ return text
+
+ def get_footer_text(self, order):
+ text = ""
+ company = order.company_id or self.company or None
+ if company and company.partner_id:
+ partner = company.partner_id
+ # Nombre empresa
+ text += partner and partner.name or ""
+ # Calle empresa
+ text += partner.street and (" - " + partner.street + ".") or ""
+ # Codigo Postal empresa
+ text += partner.zip and (" - " + partner.zip) or ""
+ # Ciudad
+ text += partner.city and (" " + partner.city) or ""
+ # Telefono
+ text += partner.phone and (" - " + _("Tel.") + " " +
+ partner.phone) or ""
+ # Fax
+ text += partner.fax and (" - " + _("Fax.") + " " +
+ partner.fax) or ""
+ # Email
+ text += partner.email and (" - " + _("E-Mail") + " " +
+ partner.email) or ""
+ return text
+
+ def get_company_address(self, order):
+ res = []
+ company = order.company_id or self.company or None
+ if company and company.partner_id:
+ partner = company.partner_id
+ res.append(partner and partner.name or "")
+ res.append((partner.street) or '')
+ res.append((partner.zip or '') + " - " +
+ (partner.city or ''))
+ res.append((partner.state_id and partner.state_id.name or '') +
+ " (" + (partner.country_id and
+ partner.country_id.name or '') + ")")
+ res.append(partner and partner.vat or '')
+ else:
+ for i in range(5):
+ res.append(" ")
+ """
+ res.append("Nayar Systems S.L.")
+ res.append("Calle Taxida 10")
+ res.append("12003 Castellón")
+ res.append("España")
+ res.append("B-12757795")
+ """
+ return res
+
+ def get_elevator_address(self, order):
+ res = []
+ if order.elevator_partner_id:
+ partner = order.elevator_partner_id
+ res.append(partner and partner.name or "")
+ res.append((partner.street) or '')
+ res.append((partner.zip or '') + " - " +
+ (partner.city or ''))
+ res.append((partner.state_id and partner.state_id.name or '') +
+ " (" + (partner.country_id and
+ partner.country_id.name or '') + ")")
+ res.append(partner and partner.vat or '')
+ elif order.partner_id:
+ partner = order.partner_id
+ res.append(partner and partner.name or "")
+ res.append((partner.street) or '')
+ res.append((partner.zip or '') + " - " + (partner.city or ''))
+ res.append((partner.state_id and partner.state_id.name or '') +
+ " (" + (partner.country_id and
+ partner.country_id.name or '') + ")")
+ res.append(partner and partner.vat or '')
+ else:
+ for i in range(5):
+ res.append(" ")
+ return res
+
+ def get_payment_type(self, order):
+ return order.payment_type and order.payment_type.name.upper() or ''
+
+ def get_payment_term(self, order):
+ maturity_date = datetime.strptime(order.date_order, '%Y-%m-%d')
+ str_date = maturity_date.strftime('%d/%m/%Y')
+ # Obtenemos fecha vencimiento
+ if order.payment_term:
+ for line in order.payment_term.line_ids:
+ if line.value in ('balance',):
+ maturity_date = (datetime.strptime(order.date_order,
+ '%Y-%m-%d') +
+ relativedelta(days=+line.days))
+ str_date = maturity_date.strftime('%d/%m/%Y')
+ return str_date
+
+ def get_account_number(self, order):
+ bank_text = ""
+ if (order.payment_type and
+ order.payment_type.name.upper() == "TRANSFERENCIA EN CCC"):
+ company = order.company_id or self.company or None
+ if company and company.partner_id:
+ partner_id = company.partner_id.id
+ pool = pooler.get_pool(self.cr.dbname)
+ bank_obj = pool.get('res.partner.bank')
+ bank_ids = bank_obj.search(self.cr, self.uid,
+ [('partner_id', '=', partner_id),
+ ('default_bank', '=', 'true')],
+ limit=1)
+ for bank in bank_obj.browse(self.cr, self.uid, bank_ids):
+ bank_text = format_acc_number(bank.iban or bank.acc_number
+ or "")
+ else:
+ if order.partner_bank:
+ bank_text = format_acc_number(order.partner_bank.iban or
+ order.partner_bank.acc_number or
+ "", masked=True)
+ return bank_text
+
+ def get_tax_name(self, order):
+ tax = ""
+ for line in order.order_line:
+ if line.tax_id:
+ tax = line.tax_id[0].name
+ break
+ return tax
+
+ def get_order_lines(self, order):
+ product_obj = self.pool.get('product.product')
+ res = []
+ for l in order.order_line:
+ line = {}
+ line["concept"] = l.product_id and l.product_id.name or " "
+ line["uds"] = int(l.product_uos_qty or 0)
+ line["price"] = l.price_unit or 0
+ line["dto"] = l.discount or 0
+ line["import"] = l.price_subtotal or 0
+ res.append(line)
+ return res
+
+report_sxw.report_sxw('report.proform.invoice.custom', 'sale.order',
+ 'addons/dos_proform_invoice_report/report/'
+ 'proform_invoice.rml', parser=ProformInvoiceCustom)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== renamed file 'dos_proform_invoice_report/proform_invoice_report.xml' => 'dos_proform_invoice_report/report/proform_invoice_report.xml'
Follow ups