summaryrefslogtreecommitdiff
path: root/indoteknik_custom/report
diff options
context:
space:
mode:
authorAndriFP <113114423+andrifp@users.noreply.github.com>2025-09-11 09:34:25 +0700
committerAndriFP <113114423+andrifp@users.noreply.github.com>2025-09-11 09:34:25 +0700
commit5ac20ba02d1791864ced47482c8b95920bfed31b (patch)
tree94d5415842237ca76850b110656fb6f275bbe562 /indoteknik_custom/report
parentac13214fcab7a580b7c9b80faec8cfef684c09aa (diff)
parent142f1a37b0d73ea847345428acc4224ff6e49419 (diff)
(andri) fix merge
Diffstat (limited to 'indoteknik_custom/report')
-rw-r--r--indoteknik_custom/report/purchase_report.xml162
-rw-r--r--indoteknik_custom/report/report_surat_piutang copy.xml149
-rw-r--r--indoteknik_custom/report/report_surat_piutang.xml27
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">