[ADD] sale_layout: Fix the rml ,fix error of ids,and float_division

bzr revid: sbh@tinyerp.com-20100714064654-lkr5mohrxowyn0od
This commit is contained in:
sbh (Open ERP) 2010-07-14 12:16:54 +05:30
parent 6def8566b4
commit e2042ccda2
14 changed files with 2283 additions and 1 deletions

View File

@ -1746,7 +1746,12 @@ class account_tax(osv.osv):
tin = self.compute_inv(cr, uid, tin, price_unit, quantity, address_id=address_id, product=product, partner=partner)
for r in tin:
totalex -= r['amount']
tex = self._compute(cr, uid, tex, totalex/quantity, quantity, address_id=address_id, product=product, partner=partner)
totlex_qty=0.0
try:
totlex_qty=totalex/quantity
except:
pass
tex = self._compute(cr, uid, tex, totlex_qty, quantity, address_id=address_id, product=product, partner=partner)
for r in tex:
totalin += r['amount']
return {

25
addons/sale_layout/__init__.py Executable file
View File

@ -0,0 +1,25 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# 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/>.
#
##############################################################################
import sale_layout
import report
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,48 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# 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/>.
#
##############################################################################
{
"name" : "Sale Order Layout Improvement",
"version" : "1.0",
"depends" : ["base", "sale"],
"author" : "Tiny",
"description": """
This module provides some features to improve the layout of the Sale Order.
It gives you the possibility to
* order all the lines of an sale order
* add titles, comment lines, sub total lines
* draw horizontal lines and put page breaks
""",
"website" : "http://www.openerp.com",
"category" : "Generic Modules/Sales & Purchases",
"init_xml" : [],
"demo_xml" : [],
"update_xml" : [
# "security/ir.model.access.csv",
"sale_layout_view.xml",
"sale_layout_report.xml",
],
"active": False,
"installable": True
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

291
addons/sale_layout/i18n/fr.po Executable file
View File

@ -0,0 +1,291 @@
# translation of fr_FR.po to Français
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * sale_layout
#
# Numerigraphe <informatique@numerigraphe.com>, 2009.
msgid ""
msgstr ""
"Project-Id-Version: fr_FR\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-11-26 08:45+0000\n"
"PO-Revision-Date: 2010-01-19 05:23+0000\n"
"Last-Translator: Numérigraphe <Unknown>\n"
"Language-Team: Français\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-05-21 03:45+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: sale_layout
#: selection:sale.order.line,layout_type:0
msgid "Sub Total"
msgstr "Sous-total"
#. module: sale_layout
#: selection:sale.order.line,layout_type:0
msgid "Title"
msgstr "Titre"
#. module: sale_layout
#: model:ir.module.module,shortdesc:sale_layout.module_meta_information
msgid "sale_layout"
msgstr "sale_layout"
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Disc. (%)"
msgstr ""
#. module: sale_layout
#: selection:sale.order.line,layout_type:0
msgid "Note"
msgstr "Remarque"
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Unit Price"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Order N°"
msgstr ""
#. module: sale_layout
#: field:sale.order,abstract_line_ids:0
msgid "Order Lines"
msgstr "Lignes de commande"
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Disc.(%)"
msgstr ""
#. module: sale_layout
#: field:sale.order.line,layout_type:0
msgid "Layout Type"
msgstr "Mise en page"
#. module: sale_layout
#: view:sale.order:0
#: view:sale.order.line:0
msgid "Seq."
msgstr "Séq."
#. module: sale_layout
#: selection:sale.order.line,layout_type:0
msgid "Product"
msgstr "Produit"
#. module: sale_layout
#: model:ir.module.module,description:sale_layout.module_meta_information
msgid ""
"\n"
" This module provides some features to improve the layout of the Sale "
"Order.\n"
"\n"
" It gives you the possibility to\n"
" * order all the lines of an sale order\n"
" * add titles, comment lines, sub total lines\n"
" * draw horizontal lines and put page breaks \n"
"\n"
" "
msgstr ""
"\n"
" Ce module ajoute des options pour améliorer la mise en page des "
"commandes de vente.\n"
"\n"
" Il vous permet :\n"
" * de réordonner toutes les lignes d'une commande\n"
" * d'ajouter des titres, des lignes de remarques, des sous-totaux\n"
" * de tracer des lignes horizontales et de faire des sauts de page "
"\n"
"\n"
" "
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Description"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Manual Description"
msgstr "Description manuelle"
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Our Salesman"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Automatic Declaration"
msgstr "Déclaration automatique"
#. module: sale_layout
#: view:sale.order:0
msgid "Invoice Lines"
msgstr "Lignes de facture"
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Quantity"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Quotation N°"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "VAT"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Make Invoice"
msgstr "Créer facture"
#. module: sale_layout
#: view:sale.order:0
msgid "Properties"
msgstr "Propriétés"
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Invoice address :"
msgstr ""
#. module: sale_layout
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "XML non valide pour l'architecture de la vue"
#. module: sale_layout
#: selection:sale.order.line,layout_type:0
msgid "Page Break"
msgstr "Saut de page"
#. module: sale_layout
#: view:sale.order:0
msgid "Notes"
msgstr "Notes"
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Date Ordered"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Shipping address :"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Taxes"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Net Total :"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Tel. :"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Total :"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Payment Terms"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "History"
msgstr "Historique"
#. module: sale_layout
#: view:sale.order:0
msgid "Sale Order Lines"
msgstr "Lignes de commande"
#. module: sale_layout
#: selection:sale.order.line,layout_type:0
msgid "Separator Line"
msgstr "Ligne de séparation"
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Your Reference"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Sales order lines"
msgstr "Lignes de commande"
#. module: sale_layout
#: view:sale.order:0
msgid "Qty"
msgstr "Qté"
#. module: sale_layout
#: view:sale.order:0
msgid "States"
msgstr "États"
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "TVA :"
msgstr ""
#. module: sale_layout
#: model:ir.actions.report.xml,name:sale_layout.sale_order_1
msgid "Order with Layout"
msgstr "Commande avec mise en page"
#. module: sale_layout
#: view:sale.order:0
msgid "Extra Info"
msgstr "Info supplémentaires"
#. module: sale_layout
#: view:sale.order:0
msgid "UoM"
msgstr "UDM"
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Fax :"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Order Line"
msgstr "Commande client"
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Price"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Taxes :"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Stock Moves"
msgstr "Mouvements de stocks"

276
addons/sale_layout/i18n/fr_BE.po Executable file
View File

@ -0,0 +1,276 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * sale_layout
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.6\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-11-26 08:45:52+0000\n"
"PO-Revision-Date: 2009-11-26 08:45:52+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: sale_layout
#: selection:sale.order.line,layout_type:0
msgid "Sub Total"
msgstr ""
#. module: sale_layout
#: selection:sale.order.line,layout_type:0
msgid "Title"
msgstr ""
#. module: sale_layout
#: model:ir.module.module,shortdesc:sale_layout.module_meta_information
msgid "sale_layout"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Disc. (%)"
msgstr ""
#. module: sale_layout
#: selection:sale.order.line,layout_type:0
msgid "Note"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Unit Price"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Order N°"
msgstr ""
#. module: sale_layout
#: field:sale.order,abstract_line_ids:0
msgid "Order Lines"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Disc.(%)"
msgstr ""
#. module: sale_layout
#: field:sale.order.line,layout_type:0
msgid "Layout Type"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
#: view:sale.order.line:0
msgid "Seq."
msgstr ""
#. module: sale_layout
#: selection:sale.order.line,layout_type:0
msgid "Product"
msgstr ""
#. module: sale_layout
#: model:ir.module.module,description:sale_layout.module_meta_information
msgid "\n"
" This module provides some features to improve the layout of the Sale Order.\n"
"\n"
" It gives you the possibility to\n"
" * order all the lines of an sale order\n"
" * add titles, comment lines, sub total lines\n"
" * draw horizontal lines and put page breaks \n"
"\n"
" "
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Description"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Manual Description"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Our Salesman"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Automatic Declaration"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Invoice Lines"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Quantity"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Quotation N°"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "VAT"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Make Invoice"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Properties"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Invoice address :"
msgstr ""
#. module: sale_layout
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr ""
#. module: sale_layout
#: selection:sale.order.line,layout_type:0
msgid "Page Break"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Notes"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Date Ordered"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Shipping address :"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Taxes"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Net Total :"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Tel. :"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Total :"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Payment Terms"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "History"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Sale Order Lines"
msgstr ""
#. module: sale_layout
#: selection:sale.order.line,layout_type:0
msgid "Separator Line"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Your Reference"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Sales order lines"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Qty"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "States"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "TVA :"
msgstr ""
#. module: sale_layout
#: model:ir.actions.report.xml,name:sale_layout.sale_order_1
msgid "Order with Layout"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Extra Info"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "UoM"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Fax :"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Order Line"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Price"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Taxes :"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Stock Moves"
msgstr ""

179
addons/sale_layout/i18n/fr_FR.po Executable file
View File

@ -0,0 +1,179 @@
# translation of fr_FR.po to Français
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * sale_layout
#
# Numerigraphe <informatique@numerigraphe.com>, 2009.
msgid ""
msgstr ""
"Project-Id-Version: fr_FR\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-03-25 10:13:19+0000\n"
"PO-Revision-Date: 2009-03-25 11:25+0100\n"
"Last-Translator: Numerigraphe <informatique@numerigraphe.com>\n"
"Language-Team: Français\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: \n"
"X-Generator: KBabel 1.11.4\n"
#. module: sale_layout
#: selection:sale.order.line,layout_type:0
msgid "Sub Total"
msgstr "Sous-total"
#. module: sale_layout
#: selection:sale.order.line,layout_type:0
msgid "Title"
msgstr "Titre"
#. module: sale_layout
#: view:sale.order:0
msgid "Sale Order Lines"
msgstr "Lignes de commande"
#. module: sale_layout
#: field:sale.order,abstract_line_ids:0
msgid "Order Lines"
msgstr "Lignes de commande"
#. module: sale_layout
#: model:ir.module.module,description:sale_layout.module_name_translation
msgid ""
"\n"
" This module provides some features to improve the layout of the Sale Order.\n"
"\n"
" It gives you the possibility to\n"
" * order all the lines of an sale order\n"
" * add titles, comment lines, sub total lines\n"
" * draw horizontal lines and put page breaks \n"
"\n"
" "
msgstr ""
"\n"
" Ce module ajoute des options pour améliorer la mise en page des commandes de vente.\n"
"\n"
" Il vous permet :\n"
" * de réordonner toutes les lignes d'une commande\n"
" * d'ajouter des titres, des lignes de remarques, des sous-totaux\n"
" * de tracer des lignes horizontales et de faire des sauts de page \n"
"\n"
" "
#. module: sale_layout
#: field:sale.order.line,layout_type:0
msgid "Layout Type"
msgstr "Mise en page"
#. module: sale_layout
#: selection:sale.order.line,layout_type:0
msgid "Product"
msgstr "Produit"
#. module: sale_layout
#: view:sale.order:0
msgid "Manual Description"
msgstr "Description manuelle"
#. module: sale_layout
#: view:sale.order:0
msgid "Automatic Declaration"
msgstr "Déclaration automatique"
#. module: sale_layout
#: view:sale.order:0
msgid "Invoice Lines"
msgstr "Lignes de facture"
#. module: sale_layout
#: view:sale.order:0
msgid "Make Invoice"
msgstr "Créer facture"
#. module: sale_layout
#: view:sale.order:0
msgid "Properties"
msgstr "Propriétés"
#. module: sale_layout
#: view:sale.order:0
msgid "UoM"
msgstr "UDM"
#. module: sale_layout
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "XML non valide pour l'architecture de la vue"
#. module: sale_layout
#: view:sale.order:0
#: view:sale.order.line:0
msgid "Seq."
msgstr "Séq."
#. module: sale_layout
#: view:sale.order:0
msgid "Notes"
msgstr "Notes"
#. module: sale_layout
#: view:sale.order:0
msgid "History"
msgstr "Historique"
#. module: sale_layout
#: selection:sale.order.line,layout_type:0
msgid "Note"
msgstr "Remarque"
#. module: sale_layout
#: selection:sale.order.line,layout_type:0
msgid "Separator Line"
msgstr "Ligne de séparation"
#. module: sale_layout
#: view:sale.order:0
msgid "Sales order lines"
msgstr "Lignes de commande"
#. module: sale_layout
#: view:sale.order:0
msgid "Qty"
msgstr "Qté"
#. module: sale_layout
#: view:sale.order:0
msgid "States"
msgstr "États"
#. module: sale_layout
#: model:ir.actions.report.xml,name:sale_layout.sale_order_1
msgid "Order with Layout"
msgstr "Commande avec mise en page"
#. module: sale_layout
#: view:sale.order:0
msgid "Extra Info"
msgstr "Info supplémentaires"
#. module: sale_layout
#: selection:sale.order.line,layout_type:0
msgid "Page Break"
msgstr "Saut de page"
#. module: sale_layout
#: view:sale.order:0
msgid "Order Line"
msgstr "Commande client"
#. module: sale_layout
#: model:ir.module.module,shortdesc:sale_layout.module_name_translation
msgid "sale_layout"
msgstr "sale_layout"
#. module: sale_layout
#: view:sale.order:0
msgid "Stock Moves"
msgstr "Mouvements de stocks"

View File

@ -0,0 +1,276 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * sale_layout
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.6\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-11-26 08:45:52+0000\n"
"PO-Revision-Date: 2009-11-26 08:45:52+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: sale_layout
#: selection:sale.order.line,layout_type:0
msgid "Sub Total"
msgstr ""
#. module: sale_layout
#: selection:sale.order.line,layout_type:0
msgid "Title"
msgstr ""
#. module: sale_layout
#: model:ir.module.module,shortdesc:sale_layout.module_meta_information
msgid "sale_layout"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Disc. (%)"
msgstr ""
#. module: sale_layout
#: selection:sale.order.line,layout_type:0
msgid "Note"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Unit Price"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Order N°"
msgstr ""
#. module: sale_layout
#: field:sale.order,abstract_line_ids:0
msgid "Order Lines"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Disc.(%)"
msgstr ""
#. module: sale_layout
#: field:sale.order.line,layout_type:0
msgid "Layout Type"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
#: view:sale.order.line:0
msgid "Seq."
msgstr ""
#. module: sale_layout
#: selection:sale.order.line,layout_type:0
msgid "Product"
msgstr ""
#. module: sale_layout
#: model:ir.module.module,description:sale_layout.module_meta_information
msgid "\n"
" This module provides some features to improve the layout of the Sale Order.\n"
"\n"
" It gives you the possibility to\n"
" * order all the lines of an sale order\n"
" * add titles, comment lines, sub total lines\n"
" * draw horizontal lines and put page breaks \n"
"\n"
" "
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Description"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Manual Description"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Our Salesman"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Automatic Declaration"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Invoice Lines"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Quantity"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Quotation N°"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "VAT"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Make Invoice"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Properties"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Invoice address :"
msgstr ""
#. module: sale_layout
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr ""
#. module: sale_layout
#: selection:sale.order.line,layout_type:0
msgid "Page Break"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Notes"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Date Ordered"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Shipping address :"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Taxes"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Net Total :"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Tel. :"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Total :"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Payment Terms"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "History"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Sale Order Lines"
msgstr ""
#. module: sale_layout
#: selection:sale.order.line,layout_type:0
msgid "Separator Line"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Your Reference"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Sales order lines"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Qty"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "States"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "TVA :"
msgstr ""
#. module: sale_layout
#: model:ir.actions.report.xml,name:sale_layout.sale_order_1
msgid "Order with Layout"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Extra Info"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "UoM"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Fax :"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Order Line"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Price"
msgstr ""
#. module: sale_layout
#: rml:sale.order.layout:0
msgid "Taxes :"
msgstr ""
#. module: sale_layout
#: view:sale.order:0
msgid "Stock Moves"
msgstr ""

View File

@ -0,0 +1,24 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# 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/>.
#
##############################################################################
import report_sale_layout
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,378 @@
<?xml version="1.0"?>
<document filename="test.pdf">
<template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="15.0" y1="42.0" width="539" height="758"/>
</pageTemplate>
</template>
<stylesheet>
<blockTableStyle id="Standard_Outline">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="AddressTable">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table1">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,0" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="2,0" stop="2,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="3,0" stop="3,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
</blockTableStyle>
<blockTableStyle id="OrderTable">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,0" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="2,0" stop="2,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="3,0" stop="3,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
</blockTableStyle>
<blockTableStyle id="HeadingTable">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/>
</blockTableStyle>
<blockTableStyle id="Order_Desc_Table">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="5,-1" stop="5,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="6,-1" stop="6,-1"/>
</blockTableStyle>
<blockTableStyle id="Total_Table">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEABOVE" colorName="#ffffff" start="0,0" stop="0,0"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/>
<lineStyle kind="LINEBEFORE" colorName="#ffffff" start="0,1" stop="0,-1"/>
<lineStyle kind="LINEBELOW" colorName="#ffffff" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#ffffff" start="0,2" stop="0,-1"/>
<lineStyle kind="LINEBELOW" colorName="#ffffff" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="1,2" stop="1,2"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="2,2" stop="2,2"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="3,2" stop="3,2"/>
</blockTableStyle>
<blockTableStyle id="Partner_Note_Table">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
<paraStyle name="P1" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P2" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P3" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P4" rightIndent="0.0" leftIndent="14.0" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P5" rightIndent="0.0" leftIndent="11.0" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P6" rightIndent="0.0" leftIndent="-2.0" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P7" rightIndent="0.0" leftIndent="11.0" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="Standard" fontName="Times-Roman"/>
<paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Heading" fontName="Helvetica" fontSize="8.0" leading="10" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Table Contents" fontName="Times-Roman"/>
<paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER"/>
<paraStyle name="Caption" fontName="Times-Roman" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Index" fontName="Times-Roman"/>
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Footer" fontName="Times-Roman"/>
<paraStyle name="Horizontal Line" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
<paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="CENTER" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_address" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_1" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_9_Bold" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Italic" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="Preformatted Text" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="0.0"/>
</stylesheet>
<images/>
<story>
<para style="terp_default_8">[[ repeatIn(objects,'o') ]]</para>
<para style="terp_default_8">[[ setLang(o.partner_id.lang) ]]</para>
<blockTable colWidths="265.0,51.0,225.0" style="AddressTable">
<tr>
<td>
<para style="terp_default_Bold_9">Shipping address :</para>
<para style="terp_default_9">[[ o.partner_id.title or '' ]][[ o.partner_id.name ]]</para>
<para style="terp_default_9">[[ o.partner_shipping_id.title or '' ]][[ o.partner_shipping_id.name ]]</para>
<para style="terp_default_9">[[ o.partner_shipping_id.street ]]</para>
<para style="terp_default_9">[[ o.partner_shipping_id.street2 or '' ]]</para>
<para style="terp_default_9">[[ o.partner_shipping_id.city or '' ]] [[ o.partner_shipping_id.zip or '' ]]</para>
<para style="terp_default_9">[[ o.partner_shipping_id.state_id and o.partner_shipping_id.state_id.name or '' ]][[ o.partner_shipping_id.country_id and o.partner_shipping_id.country_id.name or '' ]]</para>
<para style="terp_default_9">
<font color="white"> </font>
</para>
<para style="terp_default_Bold_9">Invoice address :</para>
<para style="terp_default_9">[[ o.partner_invoice_id.street ]][[ o.partner_invoice_id.street2 and (', %s' % o.partner_invoice_id.street2 or '') ]]</para>
<para style="terp_default_9">[[ o.partner_invoice_id.city or '' ]] [[ o.partner_invoice_id.zip or '' ]]</para>
<para style="terp_default_9">[[ o.partner_invoice_id.country_id and ('%s' % (o.partner_invoice_id.country_id and o.partner_invoice_id.country_id.name or '')) ]]</para>
</td>
<td>
<para style="terp_default_8">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_9">[[ o.partner_id.title or '' ]][[ o.partner_id.name ]]</para>
<para style="terp_default_9">[[ o.partner_order_id.title or '' ]][[ o.partner_order_id.name ]]</para>
<para style="terp_default_9">[[ o.partner_order_id.street ]]</para>
<para style="terp_default_9">[[ o.partner_order_id.street2 or '' ]]</para>
<para style="terp_default_9">[[ o.partner_order_id.city or '' ]] [[ o.partner_order_id.zip or '' ]]</para>
<para style="terp_default_9">[[ o.partner_order_id.state_id and o.partner_order_id.state_id.name or '' ]][[ o.partner_order_id.country_id and o.partner_order_id.country_id.name or '' ]]</para>
<para style="terp_default_9">
<font color="white"> </font>
</para>
<para style="terp_default_9">Tel. : [[ o.partner_order_id.phone or removeParentNode('para') ]]</para>
<para style="terp_default_9">Fax : [[ o.partner_order_id.fax or removeParentNode('para') ]]</para>
<para style="terp_default_9">TVA : [[ o.partner_id.vat or removeParentNode('para') ]]</para>
<para style="terp_default_9">
<font color="white"> </font>
</para>
</td>
</tr>
</blockTable>
<para style="terp_default_8">
<font color="white"> </font>
</para>
<para style="terp_header">[[ o.state&lt;&gt;'draft' and removeParentNode('para') ]] Quotation N° [[ o.name ]]</para>
<para style="terp_header">[[ o.state=='draft' and removeParentNode('para') ]] Order N° [[ o.name ]]</para>
<para style="terp_default_8">
<font color="white"> </font>
</para>
<blockTable colWidths="132.0,134.0,135.0,135.0" style="Table1">
<tr>
<td>
<para style="terp_tblheader_General_Centre">Your Reference </para>
</td>
<td>
<para style="terp_tblheader_General_Centre">Date Ordered </para>
</td>
<td>
<para style="terp_tblheader_General_Centre">Our Salesman </para>
</td>
<td>
<para style="terp_tblheader_General_Centre">Payment Terms</para>
</td>
</tr>
</blockTable>
<blockTable colWidths="132.0,134.0,135.0,135.0" style="OrderTable">
<tr>
<td>
<para style="terp_default_Centre_8">[[ o.name ]]</para>
</td>
<td>
<para style="terp_default_Centre_8">[[ o.date_order ]]</para>
</td>
<td>
<para style="terp_default_Centre_8">[[ o.user_id.name ]]</para>
</td>
<td>
<para style="terp_default_Centre_8">[[ o.payment_term.name ]]</para>
</td>
</tr>
</blockTable>
<para style="terp_default_8">
<font color="white"> </font>
</para>
<blockTable colWidths="208.0,99.0,64.0,59.0,43.0,65.0" repeatRows="1" style="HeadingTable">
<tr>
<td>
<para style="terp_tblheader_Details">Description</para>
</td>
<td>
<para style="terp_tblheader_Details_Centre">VAT</para>
</td>
<td>
<para style="terp_tblheader_Details_Centre">Quantity</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Unit Price</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Disc.(%)</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Price</para>
</td>
</tr>
</blockTable>
<section>
<para style="terp_default_1">[[ repeatIn(o.order_line,'line') ]]</para>
<blockTable colWidths="207.0,99.0,43.0,21.0,59.0,43.0,65.0" style="Order_Desc_Table">
<tr>
<td>
<para style="terp_default_9">[[ line.name ]]</para>
</td>
<td>
<para style="terp_default_Centre_9">[[ ', '.join(map(lambda x: x.name, line.tax_id)) or '0.00' ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ line.product_uos and line.product_uos_qty or line.product_uom_qty or '0.00']]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ line.product_uos and line.product_uos.name or line.product_uom.name ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ line.price_unit or '0.00' ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ line.discount and str(line.discount) or '0.00' ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ line.price_subtotal or '0.00' ]]</para>
</td>
</tr>
<tr>
<td>
<para style="P7">[[ format(line.notes or removeParentNode('tr')) ]]</para>
</td>
<td>
<para style="terp_default_Centre_9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Right_9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Right_9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Right_9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Right_9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Right_9">
<font color="white"> </font>
</para>
</td>
</tr>
</blockTable>
</section>
<blockTable colWidths="384.0,67.0,64.0,22.0" style="Total_Table">
<tr>
<td>
<para style="terp_default_9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="P6">Net Total :</para>
</td>
<td>
<para style="terp_default_Right_9">[[ o.amount_untaxed or '0.00' ]]</para>
</td>
<td>
<para style="P2">[[ o.pricelist_id.currency_id.name ]]</para>
</td>
</tr>
<tr>
<td>
<para style="terp_default_9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="P5">Taxes :</para>
</td>
<td>
<para style="terp_default_Right_9">[[ o.amount_tax or '0.00' ]]</para>
</td>
<td>
<para style="P2">[[ o.pricelist_id.currency_id.name ]]</para>
</td>
</tr>
<tr>
<td>
<para style="terp_default_9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="P4">Total :</para>
</td>
<td>
<para style="terp_default_Right_9_Bold">[[ o.amount_total or '0.00' ]] </para>
</td>
<td>
<para style="P3">[[ o.pricelist_id.currency_id.name ]]</para>
</td>
</tr>
</blockTable>
<para style="terp_default_8">
<font color="white"> </font>
</para>
<blockTable colWidths="533.0" style="Partner_Note_Table">
<tr>
<td>
<para style="terp_default_9">[[ format(o.note or '') ]]</para>
</td>
</tr>
<tr>
<td>
<para style="terp_default_9">[[ format((o.partner_id.property_payment_term and o.partner_id.property_payment_term.note) or '') ]]</para>
</td>
</tr>
</blockTable>
<para style="P1">
<font color="white"> </font>
</para>
</story>
</document>

View File

@ -0,0 +1,140 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# 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/>.
#
##############################################################################
import time
import pooler
from report import report_sxw
rml_parents = {
'tr':1,
'li':1,
'story': 0,
'section': 0
}
class sale_order_1(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
super(sale_order_1, self).__init__(cr, uid, name, context)
self.localcontext.update({
'time': time,
'sale_order_lines': self.sale_order_lines,
# 'repeat_In':self.repeat_In,
})
self.context = context
#
def sale_order_lines(self,sale_order):
result =[]
sub_total={}
info=[]
order_lines=[]
res={}
list_in_seq=[]
ids = self.pool.get('sale.order.line').search(self.cr, self.uid, [('order_id', '=', sale_order.id)])
for id in range(0,len(ids)):
order = self.pool.get('sale.order.line').browse(self.cr, self.uid,ids[id], self.context.copy())
order_lines.append(order)
i=1
j=0
sum_flag={}
sum_flag[j]=-1
for entry in order_lines:
res={}
if entry.layout_type=='article':
res['tax_id']=', '.join(map(lambda x: x.name, entry.tax_id)) or ''
res['name']=entry.name
res['product_uom_qty']="%.2f"%(entry.product_uos and entry.product_uos_qty or entry.product_uom_qty or 0.00)
res['product_uom']=entry.product_uos and entry.product_uos.name or entry.product_uom.name
res['price_unit']="%.2f"%(entry.price_unit or 0.00)
res['discount']="%.2f"%(entry.discount and entry.discount or 0.00)
res['price_subtotal']="%.2f"%(entry.price_subtotal and entry.price_subtotal or 0.00)
sub_total[i]= entry.price_subtotal and entry.price_subtotal or 0.00
i=i+1
res['note']=entry.notes
res['currency']=sale_order.pricelist_id.currency_id.name
res['layout_type']=entry.layout_type
else:
res['product_uom_qty']=''
res['price_unit']=''
res['discount']=''
res['tax_id']=''
res['layout_type']=entry.layout_type
res['note']=entry.notes
res['product_uom']=''
if entry.layout_type=='subtotal':
res['name']=entry.name
sum=0
sum_id=0
if sum_flag[j]==-1:
temp=1
else:
temp=sum_flag[j]
for sum_id in range(temp,len(sub_total)+1):
sum+=sub_total[sum_id]
sum_flag[j+1]= sum_id +1
j=j+1
res['price_subtotal']="%.2f"%(sum)
res['currency']=sale_order.pricelist_id.currency_id.name
res['quantity']=''
res['price_unit']=''
res['discount']=''
res['tax_id']=''
res['product_uom']=''
elif entry.layout_type=='title':
res['name']=entry.name
res['price_subtotal']=''
res['currency']=''
elif entry.layout_type=='text':
res['name']=entry.name
res['price_subtotal']=''
res['currency']=''
elif entry.layout_type=='line':
res['product_uom_qty']='__________'
res['price_unit']='______________'
res['discount']='___________'
res['tax_id']='_________________'
res['product_uom']='_____'
res['name']='_______________________________________'
res['price_subtotal']='_________'
res['currency']='_______'
elif entry.layout_type=='break':
res['layout_type']=entry.layout_type
res['name']=entry.name
res['price_subtotal']=''
res['currency']=''
else:
res['name']=entry.name
res['price_subtotal']=''
res['currency']=sale_order.pricelist_id.currency_id.name
result.append(res)
return result
report_sxw.report_sxw('report.sale.order.layout', 'sale.order', 'addons/sale_layout/report/report_sale_layout.rml', parser=sale_order_1)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,351 @@
<?xml version="1.0"?>
<document filename="test.pdf">
<template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="34.0" y1="28.0" width="527" height="786"/>
</pageTemplate>
</template>
<stylesheet>
<blockTableStyle id="Standard_Outline">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tableau2">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table5">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,0" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="2,0" stop="2,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="3,0" stop="3,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
</blockTableStyle>
<blockTableStyle id="Table6">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,0" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="2,0" stop="2,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="3,0" stop="3,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
</blockTableStyle>
<blockTableStyle id="Table7">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/>
</blockTableStyle>
<blockTableStyle id="Table1">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table2">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table3">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table4">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/>
</blockTableStyle>
<blockTableStyle id="Table8">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEABOVE" colorName="#ffffff" start="0,0" stop="0,0"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/>
<lineStyle kind="LINEBEFORE" colorName="#ffffff" start="0,1" stop="0,-1"/>
<lineStyle kind="LINEBELOW" colorName="#ffffff" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#ffffff" start="0,2" stop="0,-1"/>
<lineStyle kind="LINEBELOW" colorName="#ffffff" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="1,2" stop="1,2"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="2,2" stop="2,2"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="3,2" stop="3,2"/>
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
<paraStyle name="P1" rightIndent="0.0" leftIndent="14.0" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P2" rightIndent="0.0" leftIndent="-2.0" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P3" rightIndent="0.0" leftIndent="11.0" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P4" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P5" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P6" fontName="Helvetica" fontSize="5.0" leading="7" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P7" fontName="Helvetica"/>
<paraStyle name="P8" fontName="Helvetica" fontSize="9.0" leading="13" alignment="LEFT"/>
<paraStyle name="P9" fontName="Helvetica-Bold" fontSize="20.0" leading="25" alignment="LEFT"/>
<paraStyle name="P10" fontName="Helvetica-BoldOblique" fontSize="20.0" leading="25" alignment="LEFT"/>
<paraStyle name="P11" fontName="Helvetica" fontSize="11.0" leading="14"/>
<paraStyle name="P12" fontName="Helvetica" fontSize="11.0" leading="14"/>
<paraStyle name="P13" fontName="Helvetica" fontSize="11.0" leading="14" alignment="LEFT"/>
<paraStyle name="P14" fontName="Helvetica-BoldOblique" fontSize="6.0" leading="8" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P15" fontName="Helvetica-BoldOblique" fontSize="14.0" leading="17" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P16" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P17" fontName="Helvetica" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P18" fontName="Helvetica-BoldOblique" fontSize="11.0" leading="14" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P19" fontName="Helvetica-BoldOblique" fontSize="11.0" leading="14" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P20" fontName="Helvetica" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P21" fontName="Helvetica" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P22" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P23" fontName="Helvetica" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P24" fontName="Helvetica-Bold" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P25" fontName="Helvetica-Bold" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P26" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P27" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P28" rightIndent="0.0" leftIndent="-2.0" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P29" rightIndent="0.0" leftIndent="11.0" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P30" rightIndent="0.0" leftIndent="14.0" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P31" fontName="Helvetica-Bold" fontSize="9.0" leading="13" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="P32" fontName="Helvetica-Bold" fontSize="5.0" leading="7" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P33" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P34" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="Standard" fontName="Helvetica"/>
<paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Table Contents" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Table Heading" fontName="Helvetica" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Caption" fontName="Helvetica" fontSize="10.0" leading="13" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Index" fontName="Helvetica"/>
<paraStyle name="Heading" fontName="Helvetica" fontSize="8.0" leading="10" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_1" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Italic" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_9_Bold" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
</stylesheet>
<images/>
<story>
<para style="terp_default_8">[[repeatIn(objects,'o')]]</para>
<para style="P14">[[ setLang(o.partner_id.lang) ]]</para>
<para style="P8">
<font color="white"> </font>
</para>
<blockTable colWidths="254.0,62.0,211.0" style="Tableau2">
<tr>
<td>
<para style="terp_default_Bold_9">Shipping address :</para>
<para style="terp_default_9">[[ o.partner_id.title or '' ]] [[ o.partner_id.name ]]</para>
<para style="terp_default_9">[[ o.partner_shipping_id.title or '' ]] [[ o.partner_shipping_id.name ]]</para>
<para style="terp_default_9">[[ o.partner_shipping_id.street ]]</para>
<para style="terp_default_9">[[ o.partner_shipping_id.street2 or '' ]]</para>
<para style="terp_default_9">[[ o.partner_shipping_id.city or '' ]] [[ o.partner_shipping_id.zip or '' ]]</para>
<para style="terp_default_9">[[ o.partner_shipping_id.state_id and o.partner_shipping_id.state_id.name or '' ]] [[ o.partner_shipping_id.country_id and o.partner_shipping_id.country_id.name or '' ]]</para>
<para style="terp_default_9">
<font color="white"> </font>
</para>
<para style="terp_default_Bold_9">Invoice address :</para>
<para style="terp_default_9">[[ o.partner_invoice_id.street ]] [[ o.partner_invoice_id.street2 and (', %s' % o.partner_invoice_id.street2 or '') ]]</para>
<para style="P27">[[ o.partner_invoice_id.zip or '' ]] [[ o.partner_invoice_id.city or '' ]] [[ o.partner_invoice_id.country_id and (', %s' % (o.partner_invoice_id.country_id and o.partner_invoice_id.country_id.name or '')) ]]</para>
</td>
<td>
<para style="P17">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_9">[[ o.partner_id.title or '' ]] [[ o.partner_id.name ]]</para>
<para style="terp_default_9">[[ o.partner_order_id.title or '' ]] [[ o.partner_order_id.name ]]</para>
<para style="terp_default_9">[[ o.partner_order_id.street ]]</para>
<para style="terp_default_9">[[ o.partner_order_id.street2 or '' ]]</para>
<para style="terp_default_9">[[ o.partner_order_id.zip or '' ]] [[ o.partner_order_id.city or '' ]]</para>
<para style="terp_default_9">[[ o.partner_order_id.state_id and o.partner_order_id.state_id.name or '' ]] [[ o.partner_order_id.country_id and o.partner_order_id.country_id.name or '' ]]</para>
<para style="terp_default_9">
<font color="white"> </font>
</para>
<para style="terp_default_9">Tel. : [[ o.partner_order_id.phone or removeParentNode('para') ]]</para>
<para style="terp_default_9">Fax : [[ o.partner_order_id.fax or removeParentNode('para') ]]</para>
<para style="terp_default_9">TVA : [[ o.partner_id.vat or removeParentNode('para') ]]</para>
<para style="P26">
<font color="white"> </font>
</para>
</td>
</tr>
</blockTable>
<para style="P8">
<font color="white"> </font>
</para>
<para style="terp_header">[[ o.state&lt;&gt;'draft' and removeParentNode('para') ]] Quotation N° [[ o.name ]]</para>
<para style="terp_header">[[ o.state=='draft' and removeParentNode('para') ]] Order N° [[ o.name ]]</para>
<para style="P15">
<font color="white"> </font>
</para>
<blockTable colWidths="132.0,134.0,135.0,135.0" style="Table5">
<tr>
<td>
<para style="terp_tblheader_General_Centre">Your Reference </para>
</td>
<td>
<para style="terp_tblheader_General_Centre">Date Ordered </para>
</td>
<td>
<para style="terp_tblheader_General_Centre">Our Salesman </para>
</td>
<td>
<para style="terp_tblheader_General_Centre">Payment Terms</para>
</td>
</tr>
</blockTable>
<blockTable colWidths="132.0,134.0,135.0,135.0" style="Table6">
<tr>
<td>
<para style="terp_default_Centre_8">[[ o.name ]]</para>
</td>
<td>
<para style="terp_default_Centre_8">[[ o.date_order ]]</para>
</td>
<td>
<para style="terp_default_Centre_8">[[ o.user_id.name ]]</para>
</td>
<td>
<para style="terp_default_Centre_8">[[ o.payment_term.name ]]</para>
</td>
</tr>
</blockTable>
<para style="P7">
<font color="white"> </font>
</para>
<blockTable colWidths="216.0,62.0,62.0,62.0,51.0,74.0" style="Table7">
<tr>
<td>
<para style="terp_tblheader_Details">Description</para>
</td>
<td>
<para style="terp_tblheader_Details_Centre">VAT</para>
</td>
<td>
<para style="terp_tblheader_Details_Centre">Quantity</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Unit Price</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Disc.(%)</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Price</para>
</td>
</tr>
</blockTable>
<section>
<para style="P32">[[ repeatIn(sale_order_lines(o),'a') ]]</para>
<blockTable colWidths="0.0,216.0,66,46,24,66,55,54" style="Table1">
<tr>
<td>
<para style="P8">[[ a['layout_type']=='text' and removeParentNode('blockTable')]]</para>
</td>
<td>
<para style="Table Contents"><font>[[ (a['layout_type']=='title' or a['layout_type']=='subtotal') and ( setTag('para','para',{'fontName':'Helvetica-bold'})) or removeParentNode('font') ]]</font>[[ a['name'] ]]</para>
</td>
<td>
<para style="Table Contents"><font>[[ a['layout_type']=='subtotal' and ( setTag('para','para',{'fontName':'Helvetica-Bold'})) or removeParentNode('font') ]]</font><font>[[ a['tax_id'] ]]</font></para>
</td>
<td>
<para style="Table Contents"><font>[[ a['layout_type']=='subtotal' and ( setTag('para','para',{'fontName':'Helvetica-Bold'})) or removeParentNode('font') ]]</font><font>[[ a['product_uom_qty'] ]]</font></para>
</td>
<td>
<para style="Table Contents"><font>[[ a['layout_type']=='subtotal' and ( setTag('para','para',{'fontName':'Helvetica-Bold'})) or removeParentNode('font') ]]</font><font>[[ a['product_uom'] ]]</font></para>
</td>
<td>
<para style="Table Contents"><font>[[ a['layout_type']=='subtotal' and ( setTag('para','para',{'fontName':'Helvetica-Bold'})) or removeParentNode('font') ]] </font><font>[[ a['price_unit'] ]]</font></para>
</td>
<td>
<para style="Table Contents"><font>[[ a['layout_type']=='subtotal' and ( setTag('para','para',{'fontName':'Helvetica-Bold'})) or removeParentNode('font') ]]</font><font>[[ a['discount'] ]]</font></para>
</td>
<td>
<para style="Table Contents"><font>[[ a['layout_type']=='subtotal' and ( setTag('para','para',{'fontName':'Helvetica-Bold'})) or removeParentNode('font') ]]</font><font>[[ a['price_subtotal'] ]]</font></para>
</td>
</tr>
</blockTable>
<blockTable colWidths="453.0,74.0" style="Table2">
<tr>
<td>
<para style="P7">[[ a['layout_type']=='text' and a['name'] or removeParentNode('blockTable') ]]</para>
</td>
<td>
<para style="P7"></para>
</td>
</tr>
</blockTable>
<blockTable colWidths="66.0,461.0" style="Table3">
<tr>
<td>
<para style="P7"><font>[[ a['note'] and a['note']=='' and removeParentNode('blockTable') ]]</font><font>[[ repeatIn(( a['note'] and a['note'].splitlines()) or [], 'note') ]]</font></para>
</td>
<td>
<para style="P7">[[ note or removeParentNode('blockTable') ]]</para>
</td>
</tr>
</blockTable>
<pageBreak>[[ a['layout_type']!='break' and removeParentNode('pageBreak')]]</pageBreak>
<blockTable colWidths="216.0,62.0,62.0,62.0,51.0,74.0" style="Table4">
<tr>
<td>
<para style="P31">Description [[ a['layout_type']!='break' and removeParentNode('blockTable')]]</para>
</td>
<td>
<para style="P31">Taxes</para>
</td>
<td>
<para style="P31">Quantity</para>
</td>
<td>
<para style="P31">Unit Price</para>
</td>
<td>
<para style="P31">Disc. (%)</para>
</td>
<td>
<para style="P31">Price</para>
</td>
</tr>
</blockTable>
</section>
</story>
</document>

160
addons/sale_layout/sale_layout.py Executable file
View File

@ -0,0 +1,160 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# $Id$
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from osv import fields,osv
from tools import config
import decimal_precision as dp
from tools.translate import _
class sale_order_line(osv.osv):
def _amount_line(self, cr, uid, ids, field_name, arg, context=None):
tax_obj = self.pool.get('account.tax')
cur_obj = self.pool.get('res.currency')
res = {}
context = context or {}
for line in self.browse(cr, uid, ids, context=context):
if line.layout_type=='article':
return super(sale_order_line, self)._amount_line(cr, uid, ids, field_name, arg, context)
return res
def invoice_line_create(self, cr, uid, ids, context={}):
new_ids = []
list_seq = []
for line in self.browse(cr, uid, ids, context):
if line.layout_type == 'article':
new_ids.append(line.id)
list_seq.append(line.sequence)
invoice_line_ids = super(sale_order_line, self).invoice_line_create(cr, uid, new_ids, context)
pool_inv_line = self.pool.get('account.invoice.line')
seq = 0
for obj_inv_line in pool_inv_line.browse(cr, uid, invoice_line_ids, context=context):
pool_inv_line.write(cr, uid, [obj_inv_line.id], {'sequence': list_seq[seq]}, context=context)
seq += 1
return invoice_line_ids
def onchange_sale_order_line_view(self, cr, uid, id, type, context={}, *args):
temp ={}
temp['value']= {}
if (not type):
return {}
if type != 'article':
temp = {'value': {
'product_id': False,
'uos_id': False,
'account_id': False,
'price_unit': 0.0,
'price_subtotal': 0.0,
'quantity': 0,
'discount': 0.0,
'invoice_line_tax_id': False,
'account_analytic_id': False,
'product_uom_qty':0.0,
},
}
if type == 'line':
temp['value']['name'] = ' '
if type == 'break':
temp['value']['name'] = ' '
if type == 'subtotal':
temp['value']['name'] = 'Sub Total'
return temp
return {}
def create(self, cr, user, vals, context=None):
if vals.has_key('layout_type'):
if vals['layout_type'] == 'line':
vals['name'] = ' '
if vals['layout_type'] == 'break':
vals['name'] = ' '
if vals['layout_type'] != 'article':
vals['product_uom_qty']= 0
return super(sale_order_line, self).create(cr, user, vals, context)
def write(self, cr, user, ids, vals, context=None):
if vals.has_key('layout_type'):
if vals['layout_type'] == 'line':
vals['name'] = ' '
if vals['layout_type'] == 'break':
vals['name'] = ' '
return super(sale_order_line, self).write(cr, user, ids, vals, context)
def copy(self, cr, uid, id, default=None, context=None):
if default is None:
default = {}
default['layout_type'] = self.browse(cr, uid, id).layout_type
return super(sale_order_line, self).copy(cr, uid, id, default, context)
_name = "sale.order.line"
_order = "order_id, sequence asc"
_description = "Sale Order line"
_inherit = "sale.order.line"
_columns = {
'layout_type': fields.selection([
('article','Product'),
('title','Title'),
('text','Note'),
('subtotal','Sub Total'),
('line','Separator Line'),
('break','Page Break'),]
,'Layout Type', select=True, required=True),
'sequence': fields.integer('Sequence Number'),
'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Sale Price'), readonly=True, states={'draft':[('readonly',False)]}),
'product_uom_qty': fields.float('Quantity (UoM)', digits=(16,2)),
'product_uom': fields.many2one('product.uom', 'Product UoM'),
}
_defaults = {
'layout_type': lambda *a: 'article',
}
sale_order_line()
class one2many_mod2(fields.one2many):
def get(self, cr, obj, ids, name, user=None, offset=0, context=None, values=None):
if not context:
context = {}
if not values:
values = {}
res = {}
for id in ids:
res[id] = []
ids2 = obj.pool.get(self._obj).search(cr, user, [(self._fields_id,'in',ids),('layout_type','=','article')], limit=self._limit)
for r in obj.pool.get(self._obj)._read_flat(cr, user, ids2, [self._fields_id], context=context, load='_classic_write'):
res[r[self._fields_id]].append( r['id'] )
return res
class sale_order(osv.osv):
def copy(self, cr, uid, id, default=None, context=None):
if default is None:
default = {}
default['order_line'] = False
return super(sale_order, self).copy(cr, uid, id, default, context)
_inherit = "sale.order"
_columns = {
'abstract_line_ids': fields.one2many('sale.order.line', 'order_id', 'Order Lines',readonly=True, states={'draft':[('readonly',False)]}),
'order_line': one2many_mod2('sale.order.line', 'order_id', 'Order Lines',readonly=True, states={'draft':[('readonly',False)]}),
}
sale_order()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,12 @@
<?xml version="1.0"?>
<openerp>
<data>
<report id="sale_order_1"
string="Order with Layout"
model="sale.order"
name="sale.order.layout"
rml="sale_layout/report/report_sale_layout.rml"
auto="False"/>
</data>
</openerp>

View File

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record model="ir.ui.view" id="view_order_line_form2_inherit_1">
<field name="name">sale.order.line.form2.inherit_1</field>
<field name="model">sale.order.line</field>
<field name="inherit_id" ref="sale.view_order_line_form2"/>
<field name="type">form</field>
<field name="arch" type="xml">
<xpath expr="/form/notebook/page/field[@name='name']" position="before">
<field name="layout_type" select="1" on_change="onchange_sale_order_line_view(layout_type)" />
<field name="sequence"/>
</xpath>
</field>
</record>
<record model="ir.ui.view" id="view_order_line_tree_inherit_1">
<field name="name">sale.order.line.tree.inherit_1</field>
<field name="model">sale.order.line</field>
<field name="inherit_id" ref="sale.view_order_line_tree"/>
<field name="type">tree</field>
<field name="arch" type="xml">
<xpath expr="/tree/field[@name='name']" position="before">
<field name="sequence" string="Seq."/>
<field name="layout_type"/>
</xpath>
</field>
</record>
<record model="ir.ui.view" id="view_order_form_inherit_1">
<field name="name">sale.order.form.inherit_1</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="type">form</field>
<field name="arch" type="xml">
<xpath expr="/form/notebook/page/field[@name='order_line']" position="replace">
<field name="abstract_line_ids" colspan="4" nolabel="1" widget="one2many_list">
<form string="Sale Order Lines">
<notebook>
<page string="Order Line">
<separator colspan="4" string="Automatic Declaration"/>
<field colspan="4"
context="partner_id=parent.partner_id,quantity=product_uom_qty,pricelist=parent.pricelist_id,shop=parent.shop_id,uom=product_uom"
name="product_id"
attrs="{'readonly':[('layout_type','!=','article')]}"
on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, 'lang' in context and context['lang'], True, parent.date_order, product_packaging, parent.fiscal_position)"
select="1"/>
<field
context="partner_id=parent.partner_id,quantity=product_uom_qty,pricelist=parent.pricelist_id,shop=parent.shop_id,uom=product_uom"
name="product_uom_qty"
attrs="{'readonly':[('layout_type','!=','article')]}"
on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, 'lang' in context and context['lang'], False, parent.date_order, product_packaging, parent.fiscal_position)"
select="1"/>
<field name="product_uom"
required="0"
attrs="{'readonly':[('layout_type','!=','article')], 'required':[('layout_type','not in',['title','text','subtotal','line','break'])]}"
on_change="product_uom_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, 'lang' in context and context['lang'], False, parent.date_order)"/>
<field
name="product_packaging"
attrs="{'readonly':[('layout_type','!=','article')]}"
context="partner_id=parent.partner_id,quantity=product_uom_qty,pricelist=parent.pricelist_id,shop=parent.shop_id,uom=product_uom"
on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, 'lang' in context and context['lang'], False, parent.date_order, product_packaging, parent.fiscal_position)"
domain="[('product_id','=',product_id)]"
groups="base.group_extended"/>
<separator colspan="4" string="Manual Description" />
<field name="layout_type" on_change="onchange_sale_order_line_view(layout_type)"/>
<field name="sequence" string="Seq."/>
<field colspan="4" name="name" select="2" attrs="{'readonly':[('layout_type','in',('line','break'))] }"/>
<field name="price_unit" select="2" attrs="{'readonly':[('layout_type','!=','article')],'required':[('layout_type','not in',['title','text','subtotal','line','break'])]}"/>
<field name="discount" attrs="{'readonly':[('layout_type','!=','article')]}"/>
<field name="type" attrs="{'readonly':[('layout_type','!=','article')]}"/>
<field name="delay" select="2" attrs="{'readonly':[('layout_type','!=','article')]}"/>
<field colspan="4" name="tax_id" domain="[('parent_id','=',False)]" attrs="{'readonly':[('layout_type','!=','article')]}"/>
<separator colspan="4" string="States"/>
<field name="state" select="2"/>
<group col="3" colspan="2">
<field name="invoiced" select="2"/>
<button colspan="1" name="%(sale.action_view_sale_order_line_make_invoice)d" states="confirmed" string="Make Invoice" type="action"/>
</group>
</page>
<page groups="base.group_extended" string="Extra Info">
<field groups="product.group_uos" name="product_uos_qty" on_change="uos_change(product_uos, product_uos_qty, product_id)"/>
<field groups="product.group_uos" name="product_uos"/>
<field name="address_allotment_id" select="2"/>
<separator colspan="4" string="Properties"/>
<field colspan="4" name="property_ids" nolabel="1"/>
</page>
<page string="Notes">
<field colspan="4" name="notes" nolabel="1"/>
</page>
<page string="History" groups="base.group_extended">
<separator colspan="4" string="Invoice Lines"/>
<field colspan="4" name="invoice_lines" nolabel="1"/>
<separator colspan="4" string="Stock Moves"/>
<field colspan="4" name="move_ids" nolabel="1" widget="many2many"/>
</page>
</notebook>
</form>
<tree string="Sales order lines">
<field colspan="4" name="name"/>
<field name="product_uom_qty" string="Qty"/>
<field name="product_uom" string="UoM"/>
<field name="discount"/>
<field name="price_unit"/>
<!-- field name="price_net"/-->
<field name="price_subtotal"/>
<field name="sequence"/>
</tree>
</field>
</xpath>
</field>
</record>
</data>
</openerp>