Skip to content

Instantly share code, notes, and snippets.

@mohamad-supangat
Last active September 30, 2023 01:51
Show Gist options
  • Save mohamad-supangat/d9c4bfae4b417f1d907c6aa4aec7a7b3 to your computer and use it in GitHub Desktop.
Save mohamad-supangat/d9c4bfae4b417f1d907c6aa4aec7a7b3 to your computer and use it in GitHub Desktop.
Print Kuitansi Pembayaran

id: account.report_payment_receipt_document

<?xml version="1.0"?>
<t t-name="account.report_payment_receipt_document">
        <t t-call="web.external_layout">
            <t t-set="o" t-value="o.with_context(lang=lang)"/>

            <div class="page" style="font-size: 12px;">
              <div class="row justify-content-end" t-if="o.partner_type">
                  <h6 t-if="o.partner_type == 'customer'" class="border border-dark rounded p-2"><strong>Kuitansi Pembayaran</strong></h6>
                  <h6 t-if="o.partner_type == 'supplier'" class="border border-dark rounded p-2"><strong>Kuitansi Pembelian</strong></h6>
              </div>
                <!-- <h3><strong>Payment Receipt: <span t-field="o.name"/></strong></h3> -->
                <div class="mb-4 mt-3">
                    <div class="row" style="margin-top: -13px;">
                      <div class="col-5" style="font-size: 11px;">
                        <div class="border border-dark rounded p-2" t-if="o.partner_type">
                            <t t-if="o.partner_type == 'customer'">
                                Received From <strong>Customer</strong> :
                            </t>
                            <t t-if="o.partner_type == 'supplier'">
                                Received From <strong>Vendor</strong> :
                            </t><span t-field="o.partner_id" t-options="{&quot;widget&quot;: &quot;contact&quot;, &quot;fields&quot;: [&quot;address&quot;, &quot;name&quot;],&quot;no_marker&quot;: True}"/>
                        </div>
                      </div>
                      <div class="col-7" style="font-size: 11px;">
                        <div class="row">
                          <div class="col-4">
                              <div class="col-auto" t-if="o.date">
                                <span>Payment Date:</span>
                                <p t-field="o.date"/>
                              </div>
                              <div class="col-auto">
                                <span>Bank :</span>
                                <p t-field="o.partner_bank_id"/>
                              </div>
                          </div>
                          <div class="col-4">
                              <div class="col-auto">
                                <span>Form No :</span>
                                <p t-field="o.ref"/>
                              </div>
                              <div class="col-auto">
                                <span>Amount :</span>
                                <p t-field="o.amount" t-options="{'widget':'monetary', 'display_currency': o.currency_id}"/>
                              </div>
                          </div>
                          <div class="col-4">
                              <div class="col-auto">
                                <span>Currency :</span>
                                <p t-field="o.currency_id"/>
                              </div>
                          </div>
                        </div>
                      </div>
                    </div>
                </div>
                <table class="table table-sm border border-dark rounded p-2" style="margin-top: -15px;">
                    <thead>
                        <tr class="border-black">
                            <th><span>Invoice No</span></th>
                            <th><span>Invoice Date</span></th>
                            <th class="text-right"><span>Amount</span></th>
                        </tr>
                    </thead>
                    <tbody>
                        <t t-foreach="o.move_id._get_reconciled_invoices_partials()" t-as="rec">
                            <!-- MOVE -->
                            <t t-set="inv" t-value="rec[2].move_id"/>
                            <t t-if="inv.move_type != 'entry'">
                                <tr class="border-black">
                                    <td><span t-field="inv.invoice_origin"/></td>
                                    <td><span t-field="inv.invoice_date"/></td>
                                    <td class="text-right"><span t-field="inv.amount_total"/></td>
                                </tr>
                                <!-- PAYMENTS/REVERSALS -->
                                <tr t-foreach="inv._get_reconciled_invoices_partials()" t-as="par" class="border-black">
                                    <t t-set="amount" t-value="par[1]"/>
                                    <t t-set="payment" t-value="par[2].move_id"/>
                                    <td><span t-field="payment.name"/></td>
                                    <td><span t-field="payment.date"/></td>
                                    <td class="text-right">-<span t-esc="amount" t-options="{'widget': 'monetary', 'display_currency': o.currency_id}"/></td>
                                </tr>
                            </t>
                        </t>
                    </tbody>
                </table>
              <div class="row" style="margin-top: -8px;">
              <!-- KONTEN KIRI -->
                <div class="col-7">
                  <div class="row">
                    <div class="col-12">
                      <div class="border border-dark" style="padding: 5px 5px; border-radius: 4px; font-size: 12px;">
                        <p id="amount_to_text">
                          <strong t-if="o.partner_id.lang == 'id_ID'">Terbilang :</strong>
                          <strong t-if="o.partner_id.lang == 'en_US'">Says :</strong>
                          <t t-esc="o.text_amount" t-esc-options="{&quot;widget&quot;: &quot;num2words&quot;,&quot;case&quot;:&quot;capital&quot;}"/>
                        </p>
                      </div>
                    </div>
                  </div><br/>
                  <div class="row" style="margin-top: -10px;">
                    <div class="col-6 text-center">
                      <p style="font-weight: bold;">Paid By</p><br/><br/><br/><br/><br/>
                      <hr witdh="100%" color="black"/>
                      <p style="margin-top: -10px" t-field="o.partner_id"/>
                    </div>
                    <div class="col-6 text-center">
                      <p style="font-weight: bold;">Received By</p><br/><br/><br/><br/><br/>
                      <hr witdh="100%" color="black"/>
                      <p style="margin-top: -10px" t-esc="user.name"/>
                    </div>
                  </div>
                </div>

                <!-- KONTEN KANAN -->
                <div class="col-5 pull-right">
                  <table class="table table-sm border border-dark rounded p-2">
                    <tr t-if="inv.move_type != 'entry'" class="border-black">
                      <td>
                        <span>Total Owing</span>
                      </td>
                      <td>
                        <span>:</span>
                      </td>
                      <td class="text-right">
                        <span t-field="o.currency_id.symbol"/>
                      </td>
                      <td class="text-right">
                        <span t-esc="'{:,.2f}'.format(inv.amount_residual)"/>
                      </td>
                    </tr>
                    <tr class="border-black">
                      <td>
                        <strong><span>Total Payment</span></strong>
                      </td>
                      <td>
                        <strong>:</strong>
                      </td>
                      <td class="text-right">
                        <strong t-field="o.currency_id.symbol"/>
                      </td>
                      <td class="text-right">
                        <strong t-esc="'{:,.2f}'.format(o.amount_total)"/>
                      </td>
                    </tr>
                    <tr t-if="inv.move_type != 'entry'" class="border-black">
                      <td>
                        <span>Overpay</span>
                      </td>
                      <td>
                        <span>:</span>
                      </td>
                      <td class="text-right">
                        <span t-field="o.currency_id.symbol"/>
                      </td>
                      <td class="text-right">
                        <span t-esc="'{:,.2f}'.format(o.amount - amount)"/>
                      </td>
                    </tr>
                  </table>
                </div>

              </div>
            </div>
        </t>
    </t>

@mohamad-supangat
Copy link
Author

Menampilkan Total Owing dan Overpay pada print

yang di harapkan:

  • tetep muncul keterangan total owing dan overpay

kode sumber:

<!-- KONTEN KANAN -->
<div class="col-5 pull-right">
    <table class="table table-sm border border-dark rounded p-2">
    <tr t-if="inv.move_type != 'entry'" class="border-black">
        <td>
        <span>Total Owing</span>
        </td>
        <td>
        <span>:</span>
        </td>
        <td class="text-right">
        <span t-field="o.currency_id.symbol"/>
        </td>
        <td class="text-right">
        <span t-esc="'{:,.2f}'.format(inv.amount_residual)"/>
        </td>
    </tr>
    <tr class="border-black">
        <td>
        <strong><span>Total Payment</span></strong>
        </td>
        <td>
        <strong>:</strong>
        </td>
        <td class="text-right">
        <strong t-field="o.currency_id.symbol"/>
        </td>
        <td class="text-right">
        <strong t-esc="'{:,.2f}'.format(o.amount_total)"/>
        </td>
    </tr>
    <tr t-if="inv.move_type != 'entry'" class="border-black">
        <td>
        <span>Overpay</span>
        </td>
        <td>
        <span>:</span>
        </td>
        <td class="text-right">
        <span t-field="o.currency_id.symbol"/>
        </td>
        <td class="text-right">
        <span t-esc="'{:,.2f}'.format(o.amount - amount)"/>
        </td>
    </tr>
    </table>
</div>

Penyelesaian:

Total owing:

  1. ada logika t-if ketika variable inv.move_type != 'entry' pelajari dari mana variable inv dan kenapa ini di lakukan logika ?
  2. bagaimana jika di hapus ?
    1. menimbulkan error karena variable inv tidak tersedia ??, pelajari nomor 1 sebelumnya dari mana variable inv ? dan baris berapa yang menimbulkan error
    2. penyelesaian bisa di lakukan dengan menambah logika ketika pemanggilan <span t-esc="'{:,.2f}'.format(inv.amount_residual)"/> tambahkan logika jika inv tidak di temukan maka tampilkan - / 0 jika inv ditemukan tampilkan kode sesuai dengan program.

Total Overpay:

  1. kondisi sama dengan owing dimana ada t-if coba hapus saja agar selalu muncul
  2. pelajari error dan lakukan penyesuaian dimana variabe amount di lakukan t-set
  3. tambahkan kode seperti penyelesaian total owing dimana jika tidak terdapat variable amount maka tampilkan - / 0 jika terdapat maka tampilkan sesuai program

@mohamad-supangat
Copy link
Author

variable inv di dapatkan pada baris kode
image

@mohamad-supangat
Copy link
Author

variable amount di dapatkan pada baris kode:
image

@mohamad-supangat
Copy link
Author

tanya bard
image

@mohamad-supangat
Copy link
Author

tanya chatgpt
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment