| Atribut |
Keterangan |
| Nomor Dokumen |
AUT-FIN-PIU-003 |
| Tanggal Efektif |
24 Maret 2026 |
| Versi |
1.0 |
| Sistem / Modul |
Odoo — Modul Accounting / Receivable Follow Up |
| Kategori Tag |
#Automation #Keuangan #Piutang #OdooReceivable #PengingatLunak #CronJob |
Mengotomatiskan pencarian siswa yang memiliki invoice Uang Sekolah belum lunas dengan tanggal jatuh tempo H-3 setiap hari pukul 01.00, lalu membuat dokumen Receivable Follow Up secara otomatis satu per satu untuk setiap siswa yang terdeteksi — sehingga Staf TU Unit tidak perlu melakukan identifikasi dan pembuatan dokumen secara manual setiap harinya.
- Tipe Trigger: Scheduled / Cron Job (berjalan otomatis berdasarkan jadwal).
- Jadwal Eksekusi: Setiap hari pukul 01.00 WIB.
- Kondisi Eksekusi: Berjalan setiap hari tanpa pengecualian hari libur; sistem akan menghasilkan nol dokumen jika tidak ada siswa yang memenuhi kriteria filter.
¶ 3. Filter Kondisi (Domain / Syarat Aktif)
Odoo hanya akan membuat Receivable Follow Up untuk siswa yang memenuhi seluruh kondisi berikut:
- Siswa memiliki minimal satu invoice dengan model account.move bertipe out_invoice (Invoice Penjualan).
- Invoice tersebut memiliki payment_state bukan paid (belum lunas — mencakup not_paid dan partial).
- invoice_date_due (tanggal jatuh tempo) dari invoice tersebut sama dengan tanggal hari ini + 3 hari (H-3).
- Invoice memiliki tag atau kategori yang mengidentifikasikan sebagai tagihan Uang Sekolah (dikonfigurasi melalui product_id atau account_id yang sesuai).
- Belum ada dokumen Receivable Follow Up aktif (status bukan cancelled atau done) untuk siswa yang sama pada hari yang sama.
Sistem akan menjalankan urutan berikut secara otomatis setiap pukul 01.00:
- Query Data: Odoo menjalankan kueri pada model account.move untuk mendapatkan daftar siswa yang memenuhi seluruh kondisi filter di atas.
- Iterasi Per Siswa: Untuk setiap siswa yang ditemukan, sistem menjalankan langkah berikut secara berurutan:
- Buat Rekaman Follow Up: Sistem membuat satu rekaman baru pada model account.followup.sending.information (atau model Receivable Follow Up yang dikonfigurasi di Odoo) dengan data:
** partner_id: ID kontak siswa/orang tua wali.
** invoice_ids: Daftar ID invoice Uang Sekolah yang belum lunas milik siswa tersebut.
** followup_line_id: Level follow up sesuai konfigurasi (level H-3 pengingat lunak).
** state: Diset ke draft.
- Kirim Notifikasi ke Staf TU Unit: Sistem mengirimkan notifikasi internal Odoo (atau email) kepada Staf TU Unit yang bertanggung jawab di unit sekolah yang bersangkutan, menginformasikan bahwa ada Receivable Follow Up baru yang menunggu pemeriksaan.
- Catat Log Eksekusi: Sistem mencatat jumlah dokumen yang berhasil dibuat, jumlah siswa yang diproses, dan timestamp eksekusi ke log cron job Odoo untuk keperluan audit.
Konfigurasi Parameter Cron Job (Contoh):
Account Follow-Up: Create H-3 Follow Up
code
model._cron_create_h3_followup()
1
days
-1
2026-03-25 18:00:00
Domain Filter Kueri (Contoh Python):
from datetime import date, timedelta
target_date = date.today() + timedelta(days=3) # H-3: hari ini + 3 hari = tanggal jatuh tempo
domain = [
('move_type', '=', 'out_invoice'),
('payment_state', 'not in', ['paid', 'reversed']),
('invoice_date_due', '=', target_date),
('followup_status', '!=', 'in_need_of_action'), # belum ada follow up aktif
# Tambahkan filter tag/kategori Uang Sekolah sesuai konfigurasi instance:
('invoice_line_ids.product_id.categ_id.name', '=', 'Uang Sekolah'),
]