diff options
Diffstat (limited to 'indoteknik_custom/report/purchase_report.xml')
| -rw-r--r-- | indoteknik_custom/report/purchase_report.xml | 216 |
1 files changed, 116 insertions, 100 deletions
diff --git a/indoteknik_custom/report/purchase_report.xml b/indoteknik_custom/report/purchase_report.xml index 9d7f4028..9ff7e718 100644 --- a/indoteknik_custom/report/purchase_report.xml +++ b/indoteknik_custom/report/purchase_report.xml @@ -9,7 +9,7 @@ <field name="report_name">indoteknik_custom.report_purchaseorder_website</field> <field name="report_file">indoteknik_custom.report_purchaseorder_website</field> <field name="print_report_name"> - ('PO - %s - %s' % (object.partner_id.name, object.name)) + ('%s - %s' % (object.name, object.partner_id.name)) </field> <field name="binding_model_id" ref="purchase.model_purchase_order"/> <field name="binding_type">report</field> @@ -25,96 +25,114 @@ </t> </template> - <!-- Document Template --> -<template id="report_purchaseorder_website_document"> - <t t-call="web.external_layout"> + <template id="report_purchaseorder_website_document"> + <t t-call="web.html_container"> <t t-set="doc" t-value="doc.with_context(lang=doc.partner_id.lang)" /> - <div class="page"> - <!-- Header Image --> - <div class="mb16"> - <img src="https://erp.indoteknik.com/api/image/ir.attachment/datas/2498521" - style="width:100%; max-height:100px; object-fit:contain;"/> - </div> + <!-- HEADER --> + <div class="header"> + <img src="https://erp.indoteknik.com/api/image/ir.attachment/datas/2498521" + style="width:100%; display:block;"/> + </div> + + <!-- PAGE CONTENT --> + <div class="article" style="margin: 0 1.5cm 0 1.5cm; font-family:Arial, sans-serif; font-size:14px; color:#333;"> - <!-- Title --> - <h2 class="text-center mb4" style="color:#d32f2f; font-weight:bold;"> + <!-- TITLE --> + <h2 style="text-align:center; margin:8px 0 0 0; color:#d32f2f; font-weight:800; letter-spacing:1px;"> PURCHASE ORDER </h2> - <h4 class="text-center mb32"> + <h4 style="text-align:center; margin:4px 0 20px 0; font-weight:normal; color:#555;"> No. <span t-field="doc.name"/> </h4> - <!-- Top Info sejajar --> - <div class="row mb16" style="font-size:12px;"> - <div class="col-4"> - <strong>Term Of Payment:</strong> - <span t-field="doc.payment_term_id.name"/> - </div> - <div class="col-4"> - <strong>Order Date:</strong> - <span t-field="doc.date_order" t-options='{"widget": "date"}'/> - </div> - <div class="col-4"> - <strong>Responsible:</strong> - <span t-field="doc.user_id"/> - </div> - </div> + <!-- TOP INFO --> + <table style="width:100%; margin-bottom:20px; border-radius:8px; box-shadow:0 1px 4px rgba(0,0,0,0.1); overflow:hidden; border:1px solid #ddd;"> + <tr style="background:#fafafa;"> + <td style="padding:10px 12px;"><strong>Term Of Payment:</strong> <span t-field="doc.payment_term_id.name"/></td> + <td style="padding:10px 12px;"><strong>Order Date:</strong> <span t-field="doc.date_order" t-options='{"widget": "date"}'/></td> + <td style="padding:10px 12px;"><strong>Responsible:</strong> <span t-field="doc.user_id"/></td> + </tr> + </table> - <!-- Vendor & Shipping Info sejajar --> - <div class="row mb32" style="font-size:12px;"> - <div class="col-6" style="border:1px solid #ccc; padding:8px;"> - <strong>Alamat Pengiriman:</strong><br/> - PT Indoteknik (Bandengan 1 Depan)<br/> - Jl. Bandengan Utara Komp A 8 B<br/> - RT. Penjaringan, Kec. Penjaringan, Jakarta (BELAKANG INDOMARET)<br/> - JK 14440<br/> - Indonesia - </div> - <div class="col-6" style="border:1px solid #ccc; padding:8px;"> - <strong>Nama Vendor:</strong><br/> - <div t-field="doc.partner_id" - t-options='{"widget": "contact", "fields": ["address", "name", "phone"], - "no_marker": True, "phone_icons": True}'/> - </div> - </div> + <!-- VENDOR & DELIVERY --> + <table style="width:100%; margin-bottom:24px; border-spacing:16px 0;"> + <tr> + <td style="width:50%; border:1px solid #ccc; border-radius:8px; padding:10px; background:#fcfcfc; vertical-align:top;"> + <strong style="color:#d32f2f;">Alamat Pengiriman</strong><br/> + PT. Indoteknik Dotcom Gemilang<br/> + Jl. Bandengan Utara Komp A 8 B + RT. Penjaringan, Kec. Penjaringan, Jakarta + (BELAKANG INDOMARET)<br/> + Daerah Khusus Ibukota Jakarta 14440 + </td> + <td style="width:50%; border:1px solid #ccc; border-radius:8px; padding:10px; background:#fcfcfc; vertical-align:top;"> + <strong style="color:#d32f2f;">Nama Vendor</strong><br/> + <span t-field="doc.partner_id.name"/><br/> + <span t-field="doc.partner_id.street"/><br/> + <span t-field="doc.partner_id.city"/> - <span t-field="doc.partner_id.zip"/> + </td> + </tr> + </table> - <!-- Order Lines --> - <table class="table table-sm o_main_table" style="font-size:11px; border:1px solid #000; border-collapse: collapse; width:100%;"> - <thead style="display: table-row-group; background:#f5f5f5;"> - <tr> - <th style="border:1px solid #000; padding:4px;">Description</th> - <th class="text-right" style="border:1px solid #000; padding:4px;">Quantity</th> - <th class="text-right" style="border:1px solid #000; padding:4px;">Unit Price</th> - <th class="text-right" style="border:1px solid #000; padding:4px;">Taxes</th> - <th class="text-right" style="border:1px solid #000; padding:4px;">Subtotal</th> - </tr> - </thead> + <!-- ORDER LINES --> + <table style="border-collapse:collapse; width:100%; margin-top:16px; font-size:14px;"> <tbody> - <t t-foreach="doc.order_line" t-as="line"> - <!-- Main row --> - <tr> - <td style="border:1px solid #000; padding:4px;"> - <span t-field="line.name"/> + <!-- HEADER --> + <tr style="background:#e53935; color:white;"> + <th style="border:1px solid #ccc; padding:8px; text-align:left;">No. & Description</th> + <th style="border:1px solid #ccc; padding:8px; text-align:left;">Image</th> + <th style="border:1px solid #ccc; padding:8px; text-align:center;">Quantity</th> + <th style="border:1px solid #ccc; padding:8px; text-align:center;">Unit Price</th> + <th style="border:1px solid #ccc; padding:8px; text-align:center;">Taxes</th> + <th style="border:1px solid #ccc; padding:8px; text-align:center;">Subtotal</th> + </tr> + + <!-- ISI ORDER LINE --> + <t t-foreach="doc.order_line" t-as="line" t-index="line_index"> + <tr t-attf-style="background-color: #{ '#fafafa' if line_index % 2 == 0 else 'white' };"> + + <!-- NO & DESCRIPTION + IMAGE --> + <td style="border:1px solid #ccc; padding: 6px; display:flex; align-items:center; gap:10px;"> + <!-- TEKS --> + <div style="display:flex; flex-direction:column; flex:1;"> + <span style="font-weight:bold; margin-bottom:2px;"> + <t t-esc="line_index + 1"/>. <t t-esc="line.name"/> + </span> + </div> </td> - <td class="text-right" style="border:1px solid #000; padding:4px;"> - <span t-field="line.product_qty"/> - <span t-field="line.product_uom"/> + + <td style="border:1px solid #ccc; padding:6px; text-align:center;"> + <t t-if="line.image_small"> + <img t-att-src="image_data_uri(line.image_small)" + style="width:100px; height:100px; object-fit:contain; border:1px solid #ddd; border-radius:6px; background:#fff;"/> + </t> + </td> + <!-- QTY --> + <td style="border:1px solid #ccc; padding:6px; text-align:center;"> + <span t-field="line.product_qty"/> <span t-field="line.product_uom"/> </td> - <td class="text-right" style="border:1px solid #000; padding:4px;"> + + <!-- UNIT PRICE --> + <td style="border:1px solid #ccc; padding:6px; text-align:center;"> <span t-field="line.price_unit"/> </td> - <td class="text-right" style="border:1px solid #000; padding:4px;"> + + <!-- TAXES --> + <td style="border:1px solid #ccc; padding:6px; text-align:center;"> <span t-esc="', '.join(map(lambda x: (x.description or x.name), line.taxes_id))"/> </td> - <td class="text-right" style="border:1px solid #000; padding:4px;"> + + <!-- SUBTOTAL --> + <td style="border:1px solid #ccc; padding:6px; text-align:right; font-weight:bold;"> <span t-field="line.price_subtotal"/> </td> </tr> - <!-- Website Description row --> - <t t-if="line.product_id.website_description"> - <tr> - <td colspan="5" style="border:1px solid #000; padding:6px; font-size:10px; color:#555;"> + + <!-- WEBSITE DESCRIPTION --> + <t t-if="line.show_description"> + <tr t-attf-style="background-color: #{ '#fef5f5' if line_index % 2 == 0 else '#fffafa' }; "> + <td colspan="6" style="padding: 10px 14px; font-size:10px; line-height:1.3; font-style:italic; color:#555; border-left:1px solid #ccc; border-right:1px solid #ccc; border-bottom:1px solid #ccc;"> <div t-raw="line.product_id.website_description"/> </td> </tr> @@ -123,40 +141,38 @@ </tbody> </table> - <!-- Totals --> - <div class="clearfix"> - <div class="row"> - <div class="col-4 ml-auto"> - <table class="table table-sm" style="border:1px solid #000; border-collapse: collapse; width:100%;"> - <tr> - <td style="border:1px solid #000; padding:4px;"><strong>Subtotal</strong></td> - <td class="text-right" style="border:1px solid #000; padding:4px;"> - <span t-field="doc.amount_untaxed"/> - </td> - </tr> - <tr> - <td style="border:1px solid #000; padding:4px;">Taxes</td> - <td class="text-right" style="border:1px solid #000; padding:4px;"> - <span t-field="doc.amount_tax"/> - </td> - </tr> - <tr class="o_total"> - <td style="border:1px solid #000; padding:4px;"><strong>Total</strong></td> - <td class="text-right" style="border:1px solid #000; padding:4px;"> - <span t-field="doc.amount_total"/> - </td> - </tr> - </table> - </div> - </div> - </div> - <!-- Notes --> - <div class="mt32" style="font-size:11px;"> + <!-- TOTALS --> + <table style="margin-top:24px; margin-left:auto; width:40%; font-size:14px; border:1px solid #ddd; border-radius:6px; box-shadow:0 1px 3px rgba(0,0,0,0.08);"> + <tr style="background:#fafafa;"> + <td style="padding:8px;"><strong>Subtotal</strong></td> + <td style="text-align:right; padding:8px;"><span t-field="doc.amount_untaxed"/></td> + </tr> + <tr> + <td style="padding:8px;">Taxes</td> + <td style="text-align:right; padding:8px;"><span t-field="doc.amount_tax"/></td> + </tr> + <tr style="background:#fbe9e7; font-weight:bold; color:#d32f2f;"> + <td style="padding:8px;">Total</td> + <td style="text-align:right; padding:8px;"><span t-field="doc.amount_total"/></td> + </tr> + </table> + + <!-- NOTES --> + <div style="margin-top:24px; padding:12px; border-top:1px solid #ddd; font-style:italic; color:#555;"> <p t-field="doc.notes"/> </div> </div> + + <!-- STATIC FOOTER --> + <div class="footer"> + <img src="https://erp.indoteknik.com/api/image/ir.attachment/datas/2859765" + style="width:100%; display:block;"/> + </div> + </t> </template> + + </odoo> |
