<?xml version="1.0" encoding="utf-8"?>
<odoo>

    <template id="portal_my_home_menu_sale" name="Portal layout : sales menu entries" inherit_id="portal.portal_breadcrumbs" priority="20">
        <xpath expr="//ol[hasclass('o_portal_submenu')]" position="inside">
            <li t-if="page_name == 'quote' or sale_order and sale_order.state in ('sent', 'cancel')" t-attf-class="breadcrumb-item #{'active ' if not sale_order else ''}">
                <a t-if="sale_order" t-attf-href="/my/quotes?{{ keep_query() }}">Quotations</a>
                <t t-else="">Quotations</t>
            </li>
            <li t-if="page_name == 'order' or sale_order and sale_order.state not in ('sent', 'cancel')" t-attf-class="breadcrumb-item #{'active ' if not sale_order else ''}">
                <a t-if="sale_order" t-attf-href="/my/orders?{{ keep_query() }}">Sales Orders</a>
                <t t-else="">Sales Orders</t>
            </li>
            <li t-if="sale_order" class="breadcrumb-item active">
                <span t-field="sale_order.type_name"/>
                <t t-esc="sale_order.name"/>
            </li>
        </xpath>
    </template>

    <template id="portal_my_home_sale" name="Portal My Home : sales entries" inherit_id="portal.portal_my_home" priority="20">
        <xpath expr="//div[hasclass('o_portal_docs')]" position="inside">
            <t t-if="quotation_count" t-call="portal.portal_docs_entry">
                <t t-set="title">Quotations</t>
                <t t-set="url" t-value="'/my/quotes'"/>
                <t t-set="count" t-value="quotation_count"/>
            </t>
            <t t-if="order_count" t-call="portal.portal_docs_entry">
                <t t-set="title">Sales Orders</t>
                <t t-set="url" t-value="'/my/orders'"/>
                <t t-set="count" t-value="order_count"/>
            </t>
        </xpath>
    </template>

    <template id="portal_my_quotations" name="My Quotations">
        <t t-call="portal.portal_layout">
            <t t-set="breadcrumbs_searchbar" t-value="True"/>

            <t t-call="portal.portal_searchbar">
                <t t-set="title">Quotations</t>
            </t>
            <t t-if="not quotations">
                <p>There are currently no quotations for your account.</p>
            </t>
            <t t-if="quotations" t-call="portal.portal_table">
                <thead>
                    <tr class="active">
                        <th>Quotation #</th>
                        <th class="text-right">Order Date</th>
                        <th class="text-right">Valid Until</th>
                        <th class="text-center"/>
                        <th class="text-right">Total</th>
                    </tr>
                </thead>
                <t t-foreach="quotations" t-as="quotation">
                    <tr>
                        <td><a t-att-href="quotation.get_portal_url()"><t t-esc="quotation.name"/></a></td>
                        <td class="text-right"><span t-field="quotation.date_order"/></td>
                        <td class="text-right"><span t-field="quotation.validity_date"/></td>
                        <td class="text-center">
                            <span t-if="quotation.state == 'cancel'" class="badge badge-pill badge-secondary"><i class="fa fa-fw fa-remove"/> Cancelled</span>
                            <span t-if="quotation.is_expired" class="badge badge-pill badge-secondary"><i class="fa fa-fw fa-clock-o"/> Expired</span>
                        </td>
                        <td class="text-right">
                            <span t-field="quotation.amount_total"/>
                        </td>
                    </tr>
                </t>
            </t>
        </t>
    </template>

    <template id="portal_my_orders" name="My Sales Orders">
        <t t-call="portal.portal_layout">
            <t t-set="breadcrumbs_searchbar" t-value="True"/>

            <t t-call="portal.portal_searchbar">
                <t t-set="title">Sales Orders</t>
            </t>
            <t t-if="not orders">
                <p>There are currently no orders for your account.</p>
            </t>
            <t t-if="orders" t-call="portal.portal_table">
                <thead>
                    <tr class="active">
                        <th>
                            <span class='d-none d-md-inline'>Sales Order #</span>
                            <span class='d-block d-md-none'>Ref.</span>
                        </th>
                        <th class="text-right">Order Date</th>
                        <th class="text-center"/>
                        <th class="text-right">Total</th>
                    </tr>
                </thead>
                <t t-foreach="orders" t-as="order">
                    <tr>
                        <td><a t-att-href="order.get_portal_url()"><t t-esc="order.name"/></a></td>
                        <td class="text-right">
                            <span t-field="order.date_order" t-options="{'widget': 'date'}"/>&amp;nbsp;
                            <span class='d-none d-md-inline' t-field="order.date_order" t-options="{'time_only': True}"/>
                        </td>
                        <td class="text-center">
                            <span t-if="order.state == 'done'"  class="badge badge-pill badge-success">
                                <i class="fa fa-fw fa-check" role="img" aria-label="Done" title="Done"/>Done
                            </span>
                        </td>
                        <td class="text-right"><span t-field="order.amount_total"/></td>
                    </tr>
                </t>
            </t>
        </t>
    </template>

    <!-- Complete page of the sale_order -->
    <template id="sale_order_portal_template" name="Sales Order Portal Template" inherit_id="portal.portal_sidebar" primary="True">
        <xpath expr="//div[hasclass('o_portal_sidebar')]" position="inside">
            <t t-set="o_portal_fullwidth_alert" groups="sales_team.group_sale_salesman">
                <t t-call="portal.portal_back_in_edit_mode">
                    <t t-set="backend_url" t-value="'/web#return_label=Website&amp;model=%s&amp;id=%s&amp;action=%s&amp;view_type=form' % (sale_order._name, sale_order.id, sale_order.env.ref('sale.action_quotations').id)"/>
                </t>
            </t>

            <div class="row mt16 o_portal_sale_sidebar">
                <!-- Sidebar -->
                <t t-call="portal.portal_record_sidebar">
                    <t t-set="classes" t-value="'col-12 col-lg flex-lg-grow-0 d-print-none'"/>

                    <t t-set="title">
                        <h2 class="mb-0"><b t-field="sale_order.amount_total"/> </h2>
                    </t>
                    <t t-set="entries">
                        <ul class="list-group list-group-flush flex-wrap flex-row flex-lg-column">
                            <li class="list-group-item flex-grow-1">
                                <a t-if="sale_order.has_to_be_signed(True)" role="button" class="btn btn-primary btn-block mb8" data-toggle="modal" data-target="#modalaccept" href="#">
                                    <i class="fa fa-check"/> Accept &amp; Sign
                                </a>
                                <a t-elif="sale_order.has_to_be_paid(True)" role="button" class="btn btn-primary btn-block mb8" data-toggle="modal" data-target="#modalaccept" href="#">
                                    <i class="fa fa-check"/> <t t-if="not sale_order.signature">Accept &amp; Pay</t><t t-else="">Pay now</t>
                                </a>
                                <div class="o_download_pdf btn-toolbar flex-sm-nowrap">
                                    <div class="btn-group flex-grow-1 mr-1 mb-1">
                                        <a class="btn btn-secondary btn-block o_download_btn" t-att-href="sale_order.get_portal_url(report_type='pdf', download=True)" title="Download"><i class="fa fa-download"/> Download</a>
                                    </div>
                                    <div class="btn-group flex-grow-1 mb-1">
                                        <a class="btn btn-secondary btn-block o_print_btn o_portal_invoice_print" t-att-href="sale_order.get_portal_url(report_type='pdf')" id="print_invoice_report" title="Print" target="_blank"><i class="fa fa-print"/> Print</a>
                                    </div>
                                </div>
                            </li>

                            <li class="navspy list-group-item pl-0 flex-grow-1" t-ignore="true" role="complementary">
                                <ul class="nav flex-column bs-sidenav"></ul>
                            </li>

                            <t t-if="not sale_order.is_expired and sale_order.state in ['draft', 'sent']">
                                <li t-if="sale_order.remaining_validity_days &gt; 0" class="list-group-item">
                                    <small><b class="text-muted">This offer expires in</b></small>
                                    <div class="day_counter">
                                        <i class="fa fa-clock-o" aria-title="Dates" title="Dates"></i>
                                        <t t-esc="sale_order.remaining_validity_days"/>
                                        <t t-if="sale_order.remaining_validity_days &gt; 1">days</t><t t-else="">day</t>
                                    </div>
                                </li>
                                <li t-if="sale_order.amount_undiscounted &gt; sale_order.amount_untaxed" class="list-group-item flex-grow-1">
                                    <small><b class="text-muted">Your advantage</b></small>
                                    <small>
                                        <b t-field="sale_order.amount_undiscounted"
                                            t-options='{"widget": "monetary", "display_currency": sale_order.pricelist_id.currency_id}'
                                            style="text-decoration: line-through"
                                            class="d-block mt-1"/>
                                    </small>
                                    <t t-if="sale_order.amount_untaxed == sale_order.amount_total">
                                        <h4 t-field="sale_order.amount_total" class="text-success"/>
                                    </t>
                                    <t t-else="">
                                        <h4 t-field="sale_order.amount_untaxed" class="text-success mb-0"/>
                                        <small>(<span t-field="sale_order.amount_total"/> Incl. tax)</small>
                                    </t>
                                </li>
                            </t>

                            <li t-if="sale_order.user_id" class="list-group-item flex-grow-1">
                                <div class="small mb-1"><strong class="text-muted">Your Contact</strong></div>
                                <div class="row flex-nowrap">
                                    <div class="col flex-grow-0 pr-2">
                                        <img class="rounded-circle mr4 float-left o_portal_contact_img" t-if="sale_order.user_id.image" t-att-src="image_data_uri(sale_order.user_id.image)" alt="Contact"/>
                                        <img class="rounded-circle mr4 float-left o_portal_contact_img" t-if="not sale_order.user_id.image" src="/web/static/src/img/placeholder.png" alt="Contact"/>
                                    </div>
                                    <div class="col pl-0" style="min-width: 150px">
                                        <span t-field="sale_order.user_id" t-options='{"widget": "contact", "fields": ["name", "phone"], "no_marker": True}'/>
                                        <a href="#discussion" class="small"><i class="fa fa-comment"></i> Send message</a>
                                    </div>
                                </div>
                            </li>
                        </ul>
                    </t>
                </t>

                <!-- Page content -->
                <div id="quote_content" class="col-12 col-lg justify-content-end">

                    <!-- modal relative to the actions sign and pay -->
                    <div role="dialog" class="modal fade" id="modalaccept">
                        <div class="modal-dialog" t-if="sale_order.has_to_be_signed(True)">
                            <form id="accept" method="POST" t-att-data-order-id="sale_order.id" t-att-data-token="sale_order.access_token" class="js_accept_json modal-content js_website_submit_form">
                                <input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>
                                <header class="modal-header">
                                    <h4 class="modal-title">Validate Order</h4>
                                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">&amp;times;</button>
                                </header>
                                <main class="modal-body" id="sign-dialog">
                                    <p>
                                        <span>By signing this proposal, I agree to the following terms:</span>
                                        <ul>
                                            <li><span>Accepted on the behalf of:</span> <b t-field="sale_order.partner_id.commercial_partner_id"/></li>
                                            <li><span>For an amount of:</span> <b data-id="total_amount" t-field="sale_order.amount_total"/></li>
                                            <li t-if="sale_order.payment_term_id"><span>With payment terms:</span> <b t-field="sale_order.payment_term_id"/></li>
                                        </ul>
                                    </p>
                                    <t t-call="portal.portal_signature">
                                        <t t-set="object" t-value="sale_order"/>
                                        <t t-set="partner_name" t-value="sale_order.partner_id.name"/>
                                        <t t-set="callUrl" t-value="sale_order.get_portal_url(suffix='/accept')"/>
                                        <t t-set="accessToken" t-value="sale_order.access_token"/>
                                    </t>
                                </main>
                            </form>
                        </div>

                        <div class="modal-dialog modal-content" t-if="not sale_order.has_to_be_signed(True) and sale_order.has_to_be_paid(True)">
                            <header class="modal-header">
                                <h4 class="modal-title">Validate Order</h4>
                                <button type="button" class="close" data-dismiss="modal" aria-label="Close">&amp;times;</button>
                            </header>
                            <main class="modal-body" id="sign-dialog">
                                <p>
                                    <span>By paying this proposal, I agree to the following terms:</span>
                                    <ul>
                                        <li><span>Accepted on the behalf of:</span> <b t-field="sale_order.partner_id.commercial_partner_id"/></li>
                                        <li><span>For an amount of:</span> <b data-id="total_amount" t-field="sale_order.amount_total"/></li>
                                        <li t-if="sale_order.payment_term_id"><span>With payment terms:</span> <b t-field="sale_order.payment_term_id"/></li>
                                    </ul>
                                </p>
                                <div t-if="pms or acquirers" id="payment_method" class="text-left">
                                    <h3 class="mb24">Pay with</h3>
                                    <t t-call="payment.payment_tokens_list">
                                        <t t-set="mode" t-value="'payment'"/>
                                        <t t-set="submit_txt">Pay &amp; Confirm</t>
                                        <t t-set="icon_class" t-value="'fa-lock'"/>
                                        <t t-set="form_action" t-value="sale_order.get_portal_url(suffix='/transaction/token')"/>
                                        <t t-set="prepare_tx_url" t-value="sale_order.get_portal_url(suffix='/transaction/')"/>
                                        <t t-set="access_token" t-value="sale_order.access_token"/>
                                    </t>
                                </div>
                            </main>
                        </div>
                    </div>

                    <!-- modal relative to the action reject -->
                    <div role="dialog" class="modal fade" id="modaldecline">
                        <div class="modal-dialog">
                            <form id="decline" method="POST" t-attf-action="/my/orders/#{sale_order.id}/decline?access_token=#{sale_order.access_token}" class="modal-content">
                                <input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>
                                <header class="modal-header">
                                    <h4 class="modal-title">Reject This Quotation</h4>
                                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">&amp;times;</button>
                                </header>
                                <main class="modal-body">
                                    <p>
                                        Tell us why you are refusing this quotation, this will help us improve our services.
                                    </p>
                                    <textarea rows="4" name="decline_message" required="" placeholder="Your feedback..." class="form-control" />
                                </main>
                                <footer class="modal-footer">
                                    <button type="submit" t-att-id="sale_order.id" class="btn btn-danger"><i class="fa fa-times"></i> Reject</button>
                                    <button type="button" class="btn btn-primary" data-dismiss="modal">Cancel</button>
                                </footer>
                            </form>
                        </div>
                    </div>

                    <!-- status messages -->
                    <div t-if="message == 'sign_ok'" class="alert alert-success alert-dismissable d-print-none" role="status">
                        <button type="button" class="close" data-dismiss="alert" aria-label="Close">&amp;times;</button>
                        <strong>Thank You!</strong><br/>
                        <t t-if="message == 'sign_ok' and sale_order.state in ['sale', 'done']">Your order has been confirmed.</t>
                        <t t-elif="message == 'sign_ok' and sale_order.has_to_be_paid()">Your order has been signed but still needs to be paid to be confirmed.</t>
                        <t t-else="">Your order has been signed.</t>
                    </div>

                    <div t-if="message == 'cant_reject' and sale_order.has_to_be_signed()" class="alert alert-danger alert-dismissable d-print-none" role="alert">
                        <button type="button" class="close" data-dismiss="alert" aria-label="Close">&amp;times;</button>
                        Your order is not in a state to be rejected.
                    </div>

                    <t t-if="sale_order.transaction_ids">
                        <t t-call="payment.payment_confirmation_status">
                            <t t-set="payment_tx_id" t-value="sale_order.get_portal_last_transaction()"/>
                        </t>
                    </t>

                    <div t-if="sale_order.state == 'cancel'" class="alert alert-danger alert-dismissable d-print-none" role="alert">
                        <button type="button" class="close" data-dismiss="alert" aria-label="close">&amp;times;</button>
                        <strong>This quotation has been canceled.</strong> <a role="button" href="#discussion"><i class="fa fa-comment"/> Contact us to get a new quotation.</a>
                    </div>

                    <div t-if="sale_order.state == 'draft'" class="alert alert-warning alert-dismissable d-print-none" role="status">
                        <button type="button" class="close" data-dismiss="alert" aria-label="close">&amp;times;</button>
                        <strong>This is a draft quotation.</strong> <a role="button" href="#discussion"><i class="fa fa-comment"/> Contact us to get the final version.</a>
                    </div>

                    <div t-if="sale_order.is_expired" class="alert alert-warning alert-dismissable d-print-none" role="alert">
                        <button type="button" class="close" data-dismiss="alert" aria-label="close">&amp;times;</button>
                        <strong>This offer expired!</strong> <a role="button" href="#discussion"><i class="fa fa-comment"/> Contact us to get a new quotation.</a>
                    </div>

                    <!-- main content -->
                    <div t-attf-class="card #{'pb-5' if report_type == 'html' else ''}">
                        <div t-call="sale.sale_order_portal_content"/>
                    </div>

                    <!-- bottom actions -->
                    <div t-if="sale_order.has_to_be_signed(True) or sale_order.has_to_be_paid(True)" class="row justify-content-center text-center d-print-none pt-1 pb-4">

                        <t t-if="sale_order.has_to_be_signed(True)">
                            <div class="col-sm-auto mt8">
                                <a role="button" class="btn btn-primary" data-toggle="modal" data-target="#modalaccept" href="#"><i class="fa fa-check"/> Accept &amp; Sign</a>
                            </div>
                            <div class="col-sm-auto mt8">
                                <a role="button" class="btn btn-secondary" href="#discussion"><i class="fa fa-comment"/> Feedback</a>
                            </div>
                            <div class="col-sm-auto mt8">
                                <a role="button" class="btn btn-danger" data-toggle="modal" data-target="#modaldecline" href="#"> <i class="fa fa-times"/> Reject</a>
                            </div>
                        </t>
                        <div t-elif="sale_order.has_to_be_paid(True)" class="col-sm-auto mt8">
                            <a role="button" class="btn btn-primary" data-toggle="modal" data-target="#modalaccept" href="#">
                                <i class="fa fa-check"/> <t t-if="not sale_order.signature">Accept &amp; Pay</t><t t-else="">Pay now</t>
                            </a>
                        </div>
                    </div>

                    <!-- chatter -->
                    <div id="sale_order_communication" class="mt-4">
                        <h2>Communication</h2>
                        <t t-call="portal.message_thread">
                            <t t-set="object" t-value="sale_order"/>
                        </t>
                    </div>
                </div><!-- // #quote_content -->
            </div>
        </xpath>
    </template>

    <!--
    Sales Order content : intro, informations, order lines, remarks, descriptions ....
    This template should contains all the printable element of the SO. This is the
    template rendered in PDF with the report engine.
    -->
    <template id="sale_order_portal_content" name="Sales Order Portal Content">
        <!-- Intro -->
        <div id="introduction" t-attf-class="pb-2 pt-3 #{'card-header bg-white' if report_type == 'html' else ''}">
            <h2 class="my-0">
                <span t-field="sale_order.type_name"></span>
                <em t-esc="sale_order.name"/>
            </h2>
        </div>

        <div t-attf-class="#{'card-body' if report_type == 'html' else ''}">
            <!-- Informations -->
            <div id="informations">
                <div t-if="sale_order.transaction_ids and not invoices and sale_order.state in ('sent', 'sale') and portal_confirmation == 'pay' and not success and not error" t-att-data-order-id="sale_order.id">
                    <t t-if="sale_order.transaction_ids">
                        <t t-call="payment.payment_confirmation_status">
                            <t t-set="payment_tx_id" t-value="sale_order.get_portal_last_transaction()"/>
                        </t>
                    </t>
                </div>
                <div class="mb-3">
                    <strong>Date:</strong> <span t-field="sale_order.create_date" t-options='{"widget": "date"}'/>
                </div>
                <div class="mb-3" t-if="sale_order.validity_date">
                    <strong>Expiration Date:</strong> <span t-field="sale_order.validity_date" t-options='{"widget": "date"}'/>
                </div>
                <div class="row">
                    <div class="col-lg-6">
                        <strong class="d-block mb-1">Invoicing Address</strong>
                        <address t-field="sale_order.partner_invoice_id" t-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": True}'/>
                    </div>
                    <div id="shipping_address" class="col-lg-6" groups="sale.group_delivery_invoice_address">
                        <strong class="d-block mb-1">Shipping Address</strong>
                        <address t-field="sale_order.partner_shipping_id" t-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": True}'/>
                    </div>
                </div>

                <t t-set="invoices" t-value="[i for i in sale_order.invoice_ids if i.state not in ['draft', 'cancel']]"/>
                <div t-if="invoices" class="row">
                    <div class="col">
                        <strong class="d-block mb-1">Invoices</strong>
                        <ul class="list-group mb-4">
                            <t t-foreach="invoices" t-as="i">
                                <t t-set="report_url" t-value="i.get_portal_url(report_type='pdf', download=True)"/>
                                <a class="list-group-item list-group-item-action d-flex flex-wrap align-items-center justify-content-between py-2 px-3" t-att-href="report_url">
                                    <div>
                                        <i class="fa fa-download mr-1" role="img" aria-label="Download" title="Download"/>
                                        <span t-esc="i.number" class="mr-lg-3"/>
                                        <div class="small d-lg-inline-block">Date: <span class="text-muted" t-field="i.date_invoice"/></div>
                                    </div>
                                    <span t-if="i.state == 'paid'" class="small text-success orders_label_text_align"><i class="fa fa-fw fa-check"/> <b>Paid</b></span>
                                    <span t-else="" class="small text-info orders_label_text_align"><i class="fa fa-fw fa-clock-o"/> <b>Waiting Payment</b></span>
                                </a>
                            </t>
                        </ul>
                    </div>
                </div>
            </div>

            <section id="details" style="page-break-inside: auto;" class="mt32">
                <h3 id="details">Details</h3>

                <t t-set="display_discount" t-value="True in [line.discount > 0 for line in sale_order.order_line]"/>

                <table class="table table-sm" id="sales_order_table">
                    <thead class="bg-100">
                        <tr>
                            <t t-set="colspan" t-value="6"/>
                            <th class="text-left">Products</th>
                            <th class="text-right">Quantity</th>
                            <th t-attf-class="text-right {{ 'd-none d-sm-table-cell' if report_type == 'html' else '' }}">Unit Price</th>
                            <th t-if="display_discount" t-attf-class="text-right {{ 'd-none d-sm-table-cell' if report_type == 'html' else '' }}">
                                <span>Discount</span>
                                <t t-set="colspan" t-value="colspan+1"/>
                            </th>
                            <th t-attf-class="text-right {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}">Taxes</th>
                            <th class="text-right" >
                                <span groups="account.group_show_line_subtotals_tax_excluded">Amount</span>
                                <span groups="account.group_show_line_subtotals_tax_included">Total Price</span>
                            </th>
                        </tr>
                    </thead>
                    <tbody class="sale_tbody">

                        <t t-set="current_subtotal" t-value="0"/>

                        <t t-foreach="sale_order.order_line" t-as="line">

                            <t t-set="current_subtotal" t-value="current_subtotal + line.price_subtotal" groups="account.group_show_line_subtotals_tax_excluded"/>
                            <t t-set="current_subtotal" t-value="current_subtotal + line.price_total" groups="account.group_show_line_subtotals_tax_included"/>

                            <tr t-att-class="'bg-200 font-weight-bold' if line.display_type == 'line_section' else 'font-italic' if line.display_type == 'line_note' else ''">
                                <t t-if="not line.display_type">
                                    <td id="product_name"><span t-field="line.name"/></td>
                                    <td class="text-right">
                                        <div id="quote_qty">
                                            <span t-field="line.product_uom_qty"/>
                                            <span t-field="line.product_uom" groups="uom.group_uom"/>
                                        </div>
                                    </td>
                                    <td t-attf-class="text-right {{ 'd-none d-sm-table-cell' if report_type == 'html' else '' }}">
                                        <div
                                            t-field="line.price_unit"
                                            t-options='{"widget": "monetary", "display_currency": sale_order.pricelist_id.currency_id}'
                                            t-att-style="line.discount and 'text-decoration: line-through' or None"
                                            t-att-class="(line.discount and 'text-danger' or '') + ' text-right'"
                                        />
                                        <div t-if="line.discount">
                                            <t t-esc="(1-line.discount / 100.0) * line.price_unit" t-options='{"widget": "monetary", "display_currency": sale_order.pricelist_id.currency_id}'/>
                                        </div>
                                    </td>
                                    <td t-if="display_discount" t-attf-class="text-right {{ 'd-none d-sm-table-cell' if report_type == 'html' else '' }}">
                                        <strong t-if="line.discount" class="text-info">
                                            <t t-esc="((line.discount % 1) and '%s' or '%d') % line.discount"/>% discount
                                        </strong>
                                    </td>
                                    <td t-attf-class="text-right {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}">
                                        <span t-esc="', '.join(map(lambda x: (x.description or x.name), line.tax_id))"/>
                                    </td>
                                    <td class="text-right">
                                        <span t-field="line.price_subtotal" groups="account.group_show_line_subtotals_tax_excluded"/>
                                        <span t-field="line.price_total" groups="account.group_show_line_subtotals_tax_included"/>
                                    </td>
                                </t>
                                <t t-if="line.display_type == 'line_section'">
                                    <td t-att-colspan="colspan">
                                        <span t-field="line.name"/>
                                    </td>
                                    <t t-set="current_section" t-value="line"/>
                                    <t t-set="current_subtotal" t-value="0"/>
                                </t>
                                <t t-if="line.display_type == 'line_note'">
                                    <td t-att-colspan="colspan">
                                        <span t-field="line.name"/>
                                    </td>
                                </t>
                            </tr>

                            <t t-if="current_section and (line_last or sale_order.order_line[line_index+1].display_type == 'line_section')">
                                <tr class="is-subtotal text-right">
                                    <td t-att-colspan="colspan">
                                        <strong class="mr16">Subtotal</strong>
                                        <span
                                            t-esc="current_subtotal"
                                            t-options='{"widget": "monetary", "display_currency": sale_order.pricelist_id.currency_id}'
                                        />
                                    </td>
                                </tr>
                            </t>
                        </t>
                    </tbody>
                </table>

                <div id="total" class="row" name="total" style="page-break-inside: avoid;">
                    <div t-attf-class="#{'col-4' if report_type != 'html' else 'col-sm-7 col-md-5'} ml-auto">
                        <table class="table table-sm">
                            <tr class="border-black" style="border-bottom:1px solid #dddddd;">
                                <td><strong>Subtotal</strong></td>
                                <td class="text-right">
                                    <span
                                        data-id="total_amount"
                                        t-field="sale_order.amount_untaxed"
                                        t-options='{"widget": "monetary","display_currency": sale_order.pricelist_id.currency_id}'
                                    />
                                </td>
                            </tr>
                            <t t-foreach="sale_order.amount_by_group" t-as="amount_by_group">
                                <tr style="border-bottom:1px solid #dddddd;">
                                    <t t-if="amount_by_group[3] == 1 and sale_order.amount_untaxed == amount_by_group[2]">
                                        <td>
                                            <span t-esc="amount_by_group[0]"/>
                                            <span>&amp;nbsp;<span>on</span>&amp;nbsp;<t t-esc="amount_by_group[2]" t-options='{"widget": "monetary", "display_currency": sale_order.pricelist_id.currency_id}'/></span>
                                        </td>
                                        <td class="text-right">
                                            <span t-esc="amount_by_group[1]"
                                                t-options='{"widget": "monetary", "display_currency": sale_order.pricelist_id.currency_id}'/>
                                        </td>
                                    </t>
                                    <t t-else ="">
                                        <td>
                                            <span t-esc="amount_by_group[0]"/>
                                        </td>
                                        <td class="text-right">
                                            <span t-esc="amount_by_group[1]"
                                                t-options='{"widget": "monetary", "display_currency": sale_order.pricelist_id.currency_id}'/>
                                        </td>
                                    </t>
                                </tr>
                            </t>
                            <tr class="border-black">
                                <td><strong>Total</strong></td>
                                <td class="text-right">
                                    <span data-id="total_amount" t-field="sale_order.amount_total" t-options='{"widget": "monetary", "display_currency": sale_order.pricelist_id.currency_id}'/>
                                </td>
                            </tr>
                        </table>
                    </div>
                </div>
            </section>

            <section t-if="sale_order.signature" id="signature" name="Signature">
                <div class="row mt-4" name="signature">
                    <div t-attf-class="#{'col-3' if report_type != 'html' else 'col-sm-7 col-md-4'} ml-auto text-center">
                        <h5>Signature</h5>
                        <img t-att-src="image_data_uri(sale_order.signature)" style="max-height: 6rem; max-width: 100%;"/>
                        <p t-field="sale_order.signed_by"/>
                    </div>
                </div>
            </section>

            <section id="terms" class="mt-5" t-if="sale_order.note">
                <h3 class="">Terms &amp; Conditions</h3>
                <hr class="mt-0 mb-1"/>
                <em t-field="sale_order.note"/>
            </section>
        </div>
    </template>

</odoo>
