diff options
| author | AndriFP <113114423+andrifp@users.noreply.github.com> | 2025-09-11 09:34:25 +0700 |
|---|---|---|
| committer | AndriFP <113114423+andrifp@users.noreply.github.com> | 2025-09-11 09:34:25 +0700 |
| commit | 5ac20ba02d1791864ced47482c8b95920bfed31b (patch) | |
| tree | 94d5415842237ca76850b110656fb6f275bbe562 /indoteknik_custom/report | |
| parent | ac13214fcab7a580b7c9b80faec8cfef684c09aa (diff) | |
| parent | 142f1a37b0d73ea847345428acc4224ff6e49419 (diff) | |
(andri) fix merge
Diffstat (limited to 'indoteknik_custom/report')
| -rw-r--r-- | indoteknik_custom/report/purchase_report.xml | 162 | ||||
| -rw-r--r-- | indoteknik_custom/report/report_surat_piutang copy.xml | 149 | ||||
| -rw-r--r-- | indoteknik_custom/report/report_surat_piutang.xml | 27 |
3 files changed, 328 insertions, 10 deletions
diff --git a/indoteknik_custom/report/purchase_report.xml b/indoteknik_custom/report/purchase_report.xml new file mode 100644 index 00000000..9d7f4028 --- /dev/null +++ b/indoteknik_custom/report/purchase_report.xml @@ -0,0 +1,162 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + <data> + <!-- Report Action --> + <record id="action_report_purchaseorder_website" model="ir.actions.report"> + <field name="name">Purchase Order (Website)</field> + <field name="model">purchase.order</field> + <field name="report_type">qweb-pdf</field> + <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)) + </field> + <field name="binding_model_id" ref="purchase.model_purchase_order"/> + <field name="binding_type">report</field> + </record> + </data> + + <!-- Wrapper Template --> + <template id="report_purchaseorder_website"> + <t t-call="web.html_container"> + <t t-foreach="docs" t-as="doc"> + <t t-call="indoteknik_custom.report_purchaseorder_website_document" t-lang="doc.partner_id.lang"/> + </t> + </t> + </template> + + <!-- Document Template --> +<template id="report_purchaseorder_website_document"> + <t t-call="web.external_layout"> + <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> + + <!-- Title --> + <h2 class="text-center mb4" style="color:#d32f2f; font-weight:bold;"> + PURCHASE ORDER + </h2> + <h4 class="text-center mb32"> + 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> + + <!-- 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> + + <!-- 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> + <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"/> + </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> + <td class="text-right" style="border:1px solid #000; padding:4px;"> + <span t-field="line.price_unit"/> + </td> + <td class="text-right" style="border:1px solid #000; padding:4px;"> + <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;"> + <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;"> + <div t-raw="line.product_id.website_description"/> + </td> + </tr> + </t> + </t> + </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;"> + <p t-field="doc.notes"/> + </div> + </div> + </t> + </template> + +</odoo> diff --git a/indoteknik_custom/report/report_surat_piutang copy.xml b/indoteknik_custom/report/report_surat_piutang copy.xml new file mode 100644 index 00000000..cb5762f3 --- /dev/null +++ b/indoteknik_custom/report/report_surat_piutang copy.xml @@ -0,0 +1,149 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + <data> + + <!-- External Layout tanpa company --> + <template id="external_layout_no_company"> + <!-- HEADER --> + <div class="header"> + <img t-att-src="'https://erp.indoteknik.com/api/image/ir.attachment/datas/2498521'" + class="img img-fluid w-100"/> + </div> + + <!-- CONTENT --> + <div class="content mt-5 mb-5 ml-3 mr-3"> + <t t-raw="0"/> + </div> + + <!-- FOOTER --> + <div class="footer"> + <img t-att-src="'https://erp.indoteknik.com/api/image/ir.attachment/datas/2498529'" + style="height:60px;"/> + </div> + </template> + + <!-- Report Action --> + <record id="action_report_surat_piutang" model="ir.actions.report"> + <field name="name">Surat Peringatan Piutang</field> + <field name="model">surat.piutang</field> + <field name="report_type">qweb-pdf</field> + <field name="report_name">indoteknik_custom.report_surat_piutang_formal_custom</field> + <field name="report_file">indoteknik_custom.report_surat_piutang_formal_custom</field> + <field name="binding_model_id" ref="model_surat_piutang"/> + <field name="binding_type">report</field> + </record> + + <!-- QWeb Template Surat --> + <template id="report_surat_piutang_formal_custom"> + <t t-call="indoteknik_custom.external_layout_no_company"> + <t t-set="doc" t-value="docs[0] if docs else None"/> + + <!-- SURAT CONTENT --> + <main class="o_report_layout_standard" style="font-size:12pt; font-family: Arial, sans-serif;"> + + <!-- Header Surat --> + <div class="row mb-3"> + <div class="col-6"> + Ref. No: <t t-esc="doc.name or '-'"/> + </div> + <div class="col-6 text-right"> + Jakarta, <t t-esc="doc.send_date and doc.send_date.strftime('%d %B %Y') or '-'"/> + </div> + </div> + + <!-- Tujuan --> + <div class="mb-3"> + <strong>Kepada Yth.</strong><br/> + <t t-esc="doc.partner_id.name if doc and doc.partner_id else '-'"/><br/> + <t t-esc="doc.partner_id.street if doc and doc.partner_id else '-'"/><br/> + <t t-esc="doc.partner_id.country_id.name if doc and doc.partner_id and doc.partner_id.country_id else '-'"/> + </div> + + <!-- UP & Perihal --> + <div class="mb-4"> + U.P. : <t t-esc="doc.tujuan_nama or '-'"/><br/> + <strong>Perihal:</strong> <t t-esc="doc.perihal or '-'"/> + </div> + + <!-- Isi Surat --> + <div class="mb-3">Dengan Hormat,</div> + <div class="mb-3">Yang bertanda tangan di bawah ini menyampaikan sebagai berikut:</div> + + <div class="mb-3 text-justify"> + Namun, bersama surat ini kami ingin mengingatkan bahwa hingga tanggal surat ini dibuat, masih terdapat tagihan yang belum diselesaikan oleh pihak + <t t-esc="doc.partner_id.name if doc and doc.partner_id else '-'"/> periode bulan <t t-esc="doc.periode_invoices_terpilih or '-'"/>, berdasarkan data korespondensi dan laporan keuangan yang kami kelola, + <t t-esc="doc.partner_id.name if doc and doc.partner_id else '-'"/> (“Saudara”) masih mempunyai tagihan yang telah jatuh tempo dan belum dibayarkan sejumlah + <t t-esc="doc.grand_total_text or '-'"/> (“Tagihan”). + </div> + + <div class="mb-3">Berikut kami lampirkan Rincian Tagihan yang telah Jatuh Tempo:</div> + + <!-- Tabel Invoice --> + <table class="table table-sm table-bordered mb-4"> + <thead class="thead-light"> + <tr> + <th>Invoice Number</th> + <th>Invoice Date</th> + <th>Due Date</th> + <th class="text-center">Day to Due</th> + <th>Reference</th> + <th class="text-right">Amount Due</th> + <th>Payment Terms</th> + </tr> + </thead> + <tbody> + <t t-foreach="doc.line_ids.filtered(lambda l: l.selected)" t-as="line"> + <tr> + <td><t t-esc="line.invoice_number or '-'"/></td> + <td><t t-esc="line.invoice_date and line.invoice_date.strftime('%d-%m-%Y') or '-'"/></td> + <td><t t-esc="line.invoice_date_due and line.invoice_date_due.strftime('%d-%m-%Y') or '-'"/></td> + <td class="text-center"><t t-esc="line.new_invoice_day_to_due or '-'"/></td> + <td><t t-esc="line.ref or '-'"/></td> + <td class="text-right"><t t-esc="line.amount_residual or '-'"/></td> + <td><t t-esc="line.payment_term_id.name or '-'"/></td> + </tr> + </t> + </tbody> + <tfoot> + <tr class="font-weight-bold"> + <td colspan="6" class="text-right"> + GRAND TOTAL INVOICE YANG BELUM DIBAYAR DAN TELAH JATUH TEMPO + </td> + <td class="text-right"> + <t t-esc="doc.grand_total or '-'"/> (<t t-esc="doc.grand_total_text or '-'"/>) + </td> + </tr> + </tfoot> + </table> + + <!-- Isi Penutup --> + <div class="mb-3"> + Kami belum menerima konfirmasi pelunasan ataupun pembayaran sebagian dari total kewajiban tersebut. Kami sangat terbuka untuk berdiskusi serta mencari solusi terbaik agar kerja sama tetap berjalan baik. + </div> + + <div class="mb-3"> + Oleh karena itu, kami mohon perhatian dan itikad baik dari pihak <t t-esc="doc.partner_id.name if doc and doc.partner_id else '-'"/> untuk segera melakukan pelunasan atau memberikan informasi terkait rencana pembayaran paling lambat dalam waktu 7 (tujuh) hari kerja sejak surat ini diterima. + </div> + + <div class="mb-3"> + Jika dalam waktu yang telah ditentukan belum ada penyelesaian atau tanggapan, kami akan mempertimbangkan untuk melanjutkan proses sesuai ketentuan yang berlaku. + </div> + + <div class="mb-4"> + Demikian kami sampaikan. Atas perhatian dan kerja samanya, kami ucapkan terima kasih. + </div> + + <div class="mb-2">Hormat kami,</div> + + <!-- TTD --> + <div class="mt-5"> + <img t-att-src="'https://erp.indoteknik.com/api/image/ir.attachment/datas/2851919'" style="width:200px; height:auto;"/><br/> + <div>Nama: Akbar Prabawa<br/>Jabatan: General Manager</div> + </div> + + </main> + </t> + </template> + + </data> +</odoo> diff --git a/indoteknik_custom/report/report_surat_piutang.xml b/indoteknik_custom/report/report_surat_piutang.xml index cb5762f3..5cad81e6 100644 --- a/indoteknik_custom/report/report_surat_piutang.xml +++ b/indoteknik_custom/report/report_surat_piutang.xml @@ -1,6 +1,16 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> <data> + <!-- Report Action --> + <record id="action_report_surat_piutang" model="ir.actions.report"> + <field name="name">Surat Peringatan Piutang</field> + <field name="model">surat.piutang</field> + <field name="report_type">qweb-pdf</field> + <field name="report_name">indoteknik_custom.report_surat_piutang_formal_custom</field> + <field name="report_file">indoteknik_custom.report_surat_piutang_formal_custom</field> + <field name="binding_model_id" ref="model_surat_piutang"/> + <field name="binding_type">report</field> + </record> <!-- External Layout tanpa company --> <template id="external_layout_no_company"> @@ -22,16 +32,13 @@ </div> </template> - <!-- Report Action --> - <record id="action_report_surat_piutang" model="ir.actions.report"> - <field name="name">Surat Peringatan Piutang</field> - <field name="model">surat.piutang</field> - <field name="report_type">qweb-pdf</field> - <field name="report_name">indoteknik_custom.report_surat_piutang_formal_custom</field> - <field name="report_file">indoteknik_custom.report_surat_piutang_formal_custom</field> - <field name="binding_model_id" ref="model_surat_piutang"/> - <field name="binding_type">report</field> - </record> + <template id="report_surat_piutang_formal_custom"> + <t t-call="web.html_container"> + <t t-foreach="docs" t-as="doc"> + <t t-call="indoteknik_custom.report_purchaseorder_website_document" t-lang="doc.partner_id.lang"/> + </t> + </t> + </template> <!-- QWeb Template Surat --> <template id="report_surat_piutang_formal_custom"> |
