Skip to Content
Menu
This question has been flagged
3684 Zobrazenia

Good morning / afternoon / night, i am using Openerp 7.0 and i am trying to add a calculated sum of discounts to the sale objects, so i can get printed in the .rml reports, i have already added the field to the sql view but i dont find where to add the code to have it on o object in the rml report, here is my sale_order.py and my sale_order.rml, thanks in advance

from openerp import toolsfrom openerp.osv import fields, osv
class sale_report(osv.osv):
    _name = "sale.report"    _description = "Sales Orders Statistics"    _auto = False    _rec_name = 'date'    _columns = {        'date': fields.date('Date Order', readonly=True),        'date_confirm': fields.date('Date Confirm', readonly=True),        'year': fields.char('Year', size=4, readonly=True),        'month': fields.selection([('01', 'January'), ('02', 'February'), ('03', 'March'), ('04', 'April'),            ('05', 'May'), ('06', 'June'), ('07', 'July'), ('08', 'August'), ('09', 'September'),            ('10', 'October'), ('11', 'November'), ('12', 'December')], 'Month', readonly=True),        'day': fields.char('Day', size=128, readonly=True),        'product_id': fields.many2one('product.product', 'Product', readonly=True),        'product_uom': fields.many2one('product.uom', 'Unit of Measure', readonly=True),        'product_uom_qty': fields.float('# of Qty', readonly=True),        'total_discount':fields.float('Total Discount', readonly=True),
        'partner_id': fields.many2one('res.partner', 'Partner', readonly=True),        'shop_id': fields.many2one('sale.shop', 'Shop', readonly=True),        'company_id': fields.many2one('res.company', 'Company', readonly=True),        'user_id': fields.many2one('res.users', 'Salesperson', readonly=True),        'price_total': fields.float('Total Price', readonly=True),        'delay': fields.float('Commitment Delay', digits=(16,2), readonly=True),        'categ_id': fields.many2one('product.category','Category of Product', readonly=True),        'nbr': fields.integer('# of Lines', readonly=True),        'state': fields.selection([            ('draft', 'Quotation'),            ('sent', 'Quotation Sent'),            ('waiting_date', 'Waiting Schedule'),            ('manual', 'Manual In Progress'),            ('progress', 'In Progress'),            ('invoice_except', 'Invoice Exception'),            ('done', 'Done'),            ('cancel', 'Cancelled')            ], 'Order Status', readonly=True),        'pricelist_id': fields.many2one('product.pricelist', 'Pricelist', readonly=True),        'analytic_account_id': fields.many2one('account.analytic.account', 'Analytic Account', readonly=True),    }    _order = 'date desc'
    def init(self, cr):
        tools.drop_view_if_exists(cr, 'sale_report')        cr.execute("""            create or replace view sale_report as (                select                    min(l.id) as id,                    l.product_id as product_id,                    t.uom_id as product_uom,                    sum(l.product_uom_qty / u.factor * u2.factor) as product_uom_qty,                    sum(l.product_uom_qty * l.price_unit * (100.0-l.discount) / 100.0) as price_total,                    sum((product_uom_qty * price_unit) * (discount / 100)) as total_discount,                    p.default_code as product_code,                    count(*) as nbr,                    s.date_order as date,                    s.date_confirm as date_confirm,                    to_char(s.date_order, 'YYYY') as year,                    to_char(s.date_order, 'MM') as month,                    to_char(s.date_order, 'YYYY-MM-DD') as day,                    s.partner_id as partner_id,                    s.user_id as user_id,                    s.shop_id as shop_id,                    s.company_id as company_id,                    extract(epoch from avg(date_trunc('day',s.date_confirm)-date_trunc('day',s.create_date)))/(24*60*60)::decimal(16,2) as delay,                    s.state,                    t.categ_id as categ_id,                    s.pricelist_id as pricelist_id,                    s.project_id as analytic_account_id                from                    sale_order_line l                      join sale_order s on (l.order_id=s.id)                         left join product_product p on (l.product_id=p.id)                            left join product_template t on (p.product_tmpl_id=t.id)                    left join product_uom u on (u.id=l.product_uom)                    left join product_uom u2 on (u2.id=t.uom_id)                group by                    l.product_id,                    p.default_code,                    l.order_id,                    t.uom_id,                    t.categ_id,                    s.date_order,                    s.date_confirm,                    s.partner_id,                    s.user_id,                    s.shop_id,                    s.company_id,                    s.state,                    s.pricelist_id,                    s.project_id            )        """)sale_report()
<?xml version="1.0"?><document filename="Sales Order.pdf">    <template title="Sales Order" author="OpenERP S.A.(sales@openerp.com)" 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="Table1">            <blockAlignment value="LEFT"/>            <blockValign value="TOP"/>        </blockTableStyle>        <blockTableStyle id="Table2">            <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="Table3">            <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="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="Table5">            <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="T1">            <blockAlignment value="LEFT"/>            <blockValign value="TOP"/>        </blockTableStyle>        <blockTableStyle id="Table6">            <blockAlignment value="LEFT"/>            <blockValign value="TOP"/>            <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>            <lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>            <lineStyle kind="LINEBELOW" colorName="#ffffff" start="0,-1" 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"/>        </blockTableStyle>        <blockTableStyle id="Table7">            <blockAlignment value="LEFT"/>            <blockValign value="TOP"/>        </blockTableStyle>        <initialize>            <paraStyle name="all" alignment="justify"/>        </initialize>        <paraStyle name="terp_header" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0"                   spaceAfter="6.0"/>        <paraStyle name="terp_default_8" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0"                   spaceAfter="0.0"/>        <paraStyle name="terp_default_Bold_9" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0"                   spaceAfter="0.0"/>        <paraStyle name="terp_default_9" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0"                   spaceAfter="0.0"/>        <paraStyle name="terp_tblheader_General_Centre" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0"                   spaceAfter="6.0"/>        <paraStyle name="terp_default_Centre_8" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0"                   spaceAfter="0.0"/>        <paraStyle name="terp_tblheader_Details" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0"                   spaceAfter="6.0"/>        <paraStyle name="terp_tblheader_Details_Centre" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0"                   spaceAfter="6.0"/>        <paraStyle name="terp_tblheader_Details_Right" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0"                   spaceAfter="6.0"/>        <paraStyle name="terp_default_Centre_9" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0"                   spaceAfter="0.0"/>        <paraStyle name="terp_default_Right_9" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0"                   spaceAfter="0.0"/>        <paraStyle name="terp_default_1" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0"                   spaceAfter="0.0"/>        <paraStyle name="terp_default_Right_9_Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0"                   spaceAfter="0.0"/>        <images/>    </stylesheet>    <story>        <para style="terp_default_8">[[repeatIn(objects,'o')]]</para>        <para style="terp_default_8">[[ setLang(o.partner_id.lang) ]]</para>        <para style="terp_default_8">            <font color="white"></font>        </para>        <para style="terp_default_8">            <font color="white"></font>        </para>        <blockTable colWidths="265.0,51.0,225.0" style="Table1">            <tr>                <td>                    <para style="terp_default_Bold_9">                        <b>Shipping address :</b>                    </para>                    <para style="terp_default_9">[[ (o.partner_shipping_id and o.partner_id.title and                        o.partner_shipping_id.title.name) or '' ]] [[ (o.partner_shipping_id and                        o.partner_shipping_id.name) or '' ]]                    </para>                    <para style="terp_default_9">[[ o.partner_shipping_id and display_address(o.partner_shipping_id)                        ]]                    </para>                    <para style="terp_default_9">                        <font color="white"></font>                    </para>                    <para style="terp_default_Bold_9">                        <b>Invoice address :</b>                    </para>                    <para style="terp_default_9">[[ (o.partner_invoice_id and o.partner_invoice_id.title and                        o.partner_invoice_id.title.name) or '' ]] [[ (o.partner_invoice_id and                        o.partner_invoice_id.name) or '' ]]                    </para>                    <para style="terp_default_9">[[ o.partner_invoice_id and display_address(o.partner_invoice_id) ]]                    </para>                </td>                <td>                    <para style="terp_default_8">                        <font color="white"></font>                    </para>                </td>                <td>                    <para style="terp_default_9">[[ (o.partner_id and o.partner_id.title and o.partner_id.title.name) or                        '' ]] [[ (o.partner_id and o.partner_id.name) or '' ]]                    </para>                    <para style="terp_default_9">[[ o.partner_id and display_address(o.partner_id) ]]</para>                    <para style="terp_default_9">                        <font color="white"></font>                    </para>                    <para style="terp_default_9">Tel. : [[ (o.partner_id.phone) or removeParentNode('para') ]]</para>                    <para style="terp_default_9">Fax : [[ (o.partner_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">            <b>[[ o.state not in ['draft','sent'] and removeParentNode('para') ]] Quotation N° [[ o.name ]]</b>        </para>        <para style="terp_header">            <b>[[ o.state in ['draft','sent'] and removeParentNode('para') ]] Order N° [[ o.name ]]</b>        </para>        <para style="terp_default_8">            <font color="white"></font>        </para>        <blockTable colWidths="132.0,134.0,135.0,135.0" style="Table2">            <tr>                <td>                    <para style="terp_tblheader_General_Centre">                        <b>Your Reference</b>                    </para>                </td>                <td>                    <para style="terp_tblheader_General_Centre">                        <b>[[ o.state in ['draft','sent'] and removeParentNode('para') ]] Date Ordered</b>                    </para>                    <para style="terp_tblheader_General_Centre">                        <b>[[ o.state not in ['draft','sent'] and removeParentNode('para') ]] Quotation Date</b>                    </para>                </td>                <td>                    <para style="terp_tblheader_General_Centre">                        <b>Salesperson</b>                    </para>                </td>                <td>                    <para style="terp_tblheader_General_Centre">                        <b>Payment Term</b>                    </para>                </td>            </tr>        </blockTable>        <blockTable colWidths="132.0,134.0,135.0,135.0" style="Table3">            <tr>                <td>                    <para style="terp_default_Centre_8">[[ o.client_order_ref ]]</para>                </td>                <td>                    <para style="terp_default_Centre_8">[[ formatLang(o.date_order,date = True) ]]</para>                </td>                <td>                    <para style="terp_default_Centre_8">[[ (o.user_id and o.user_id.name) or '' ]]</para>                </td>                <td>                    <para style="terp_default_Centre_8">[[ (o.payment_term and o.payment_term.name) or '' ]]</para>                </td>            </tr>        </blockTable>        <para style="terp_default_8">            <font color="white"></font>        </para>        <pto>            <pto_header>                <blockTable colWidths="181.0,70.0,80.0,70.0,85.0" repeatRows="1" style="Table4">                    <tr>                        <td>                            <para style="terp_tblheader_Details">                                <b>Description</b>                            </para>                        </td>                        <td>                            <para style="terp_tblheader_Details_Centre">                                <b>VAT</b>                            </para>                        </td>                        <td>                            <para style="terp_tblheader_Details_Right">                                <b>Quantity</b>                            </para>                        </td>                        <td>                            <para style="terp_tblheader_Details_Right">                                <b>Unit Price</b>                            </para>                        </td>
                        <td>                            <para style="terp_tblheader_Details_Right">                                <b>Price</b>                            </para>                        </td>                    </tr>                </blockTable>            </pto_header>            <blockTable colWidths="90.0,151.0,70.0,70.0,70.0,90.0" repeatRows="1" style="Table4">                <tr>                    <td>                        <para style="terp_tblheader_Details">                            <b>Codigo</b>                        </para>
                    </td>                    <td>                        <para style="terp_tblheader_Details">                            <b>Description</b>                        </para>
                    </td>                    <td>                        <para style="terp_tblheader_Details_Right">                            <b>Quantity</b>                        </para>                    </td>                    <td>                        <para style="terp_tblheader_Details_Right">                            <b>Unidad</b>                        </para>                    </td>                    <td>                        <para style="terp_tblheader_Details_Right">                            <b>Unit Price</b>                        </para>                    </td>
                    <td>                        <para style="terp_tblheader_Details_Right">                            <b>Price</b>                        </para>                    </td>                </tr>            </blockTable>            <section>                <para style="terp_default_1">[[repeatIn(o.order_line,'line')]]</para>                <blockTable colWidths="90.0,157.0,70.0,70.0,70.0,90.0" style="Table5">                    <tr>
                        <td>                            <para style="terp_defaultt_9">[[ line.product_id.default_code ]]</para>                        </td>                        <td>                            <para style="terp_default_9">[[ format(line.name) ]]</para>                        </td>                        <td>                            <para style="terp_default_Right_9">[[ formatLang(line.product_uos_qty) ]]</para>                        </td>                        <td>                            <para style="terp_default_Right_9">[[ line.product_uom.name ]]</para>                        </td>                        <td>                            <para style="terp_default_Right_9">[[ formatLang(line.price_unit ,                                digits=get_digits(dp='Product Price'))]]                            </para>                        </td>
                        <td>                            <para style="terp_default_Right_9">[[ formatLang((line.price_unit * line.product_uos_qty),                                digits=get_digits(dp='Account'), currency_obj=o.pricelist_id.currency_id) ]]                            </para>                        </td>                    </tr>                </blockTable>            </section>        </pto>
        <blockValign value="TOP"/>
        <blockTable colWidths="377.0,70.0,93.0" style="Table6">            <tr>                <td>                    <para style="terp_default_9">                        <font color="white"></font>                    </para>                </td>                <td>                    <para style="terp_default_9">Subtotal :</para>                </td>                <td>                    <para style="terp_default_Right_9">[[ formatLang(o.amount_untaxed, dp='Account',                        currency_obj=o.pricelist_id.currency_id) ]]                    </para>                </td>            </tr>        </blockTable>
        <blockTable colWidths="377.0,70.0,93.0" style="T1">               <section>            <tr>                <td>                    <para style="terp_default_9">                        <font color="white"></font>                    </para>                </td>                <td>                    <para style="terp_default_9">Descuento :
                    </para>                </td>                <td>                    <para style="terp_default_Right_9">[[                        formatLang(((line.price_unit * line.product_uos_qty) *                        (line.discount / 100)), dp='Account',                        currency_obj=o.pricelist_id.currency_id)]]                    </para>                </td>            </tr></section>


            <tr>                <td>                    <para style="terp_default_9">                        <font color="white"></font>                        [[ (formatLang(((line.price_unit * line.product_uos_qty) *                        (line.discount / 100)), dp='Account',                        currency_obj=o.pricelist_id.currency_id) == "$ 0.00" and removeParentNode(section) ) ]]                    </para>                </td>                <td>                    <para style="terp_default_9">IVA(16%) :</para>                </td>                <td>                    <para style="terp_default_Right_9">[[ formatLang(o.amount_tax, dp='Account',                        currency_obj=o.pricelist_id.currency_id) ]]                    </para>                </td>            </tr>
        </blockTable>

        <blockTable colWidths="377.0,70.0,93.0" style="Table6">            <tr>                <td>                    <para style="terp_default_9">                        <font color="white"></font>                    </para>                </td>                <td>                    <para style="terp_default_9">Total :</para>                </td>                <td>                    <para style="terp_default_Right_9">[[ formatLang(o.amount_total, dp='Account',                        currency_obj=o.pricelist_id.currency_id) ]]                    </para>                </td>            </tr>        </blockTable>

        <para style="terp_default_8">            <font color="white"></font>        </para>        <para style="terp_default_9">[[ format(o.note or '') ]]</para>        <blockTable colWidths="533.0" style="Table7">            <tr>                <td>                    <para style="terp_default_9">[[ format(o.payment_term and o.payment_term.note or                        (o.partner_id.property_payment_term and o.partner_id.property_payment_term.note or '')) ]]                    </para>                </td>            </tr>        </blockTable>        <para style="terp_default_8">            <font color="white"></font>        </para>    </story></document>
Avatar
Zrušiť

Please format your code section properly. Otherwise difficult to check

Related Posts Replies Zobrazenia Aktivita
2
máj 22
32622
0
mar 19
3212
0
jan 19
4118
4
feb 24
11359
0
jan 18
3304