From 82b93583d09139977ade689d3df429ce3b3d3852 Mon Sep 17 00:00:00 2001 From: Hanan Askarim Date: Tue, 14 Jul 2026 16:20:35 +0700 Subject: [PATCH] add keterangan untuk http pi instalment --- .../scheduler/PurchaseInvoiceInstallment.http | 117 +++++++++++++++--- .../scheduler/PurchaseInvoiceInstallment.php | 4 +- 2 files changed, 104 insertions(+), 17 deletions(-) diff --git a/application/controllers/mockup/scheduler/PurchaseInvoiceInstallment.http b/application/controllers/mockup/scheduler/PurchaseInvoiceInstallment.http index e791797..8b732df 100644 --- a/application/controllers/mockup/scheduler/PurchaseInvoiceInstallment.http +++ b/application/controllers/mockup/scheduler/PurchaseInvoiceInstallment.http @@ -1,6 +1,78 @@ -@host = https://accone.aplikasi.web.id/one-api/ -### Generate PI cicilan langsung +# ============================================================ +# FILE : PurchaseInvoiceInstallment.http +# MODUL : Scheduler — Generate Purchase Invoice Cicilan Aset +# ============================================================ +# +# DESKRIPSI +# --------- +# File ini berisi kumpulan HTTP request untuk menguji endpoint +# scheduler yang secara otomatis membuat Purchase Invoice (PI) +# cicilan bulanan berdasarkan kontrak aset aktif. +# +# CARA PAKAI +# ---------- +# 1. Gunakan ekstensi "REST Client" di VS Code (humao.rest-client) +# atau tool sejenis (IntelliJ HTTP Client, Postman, dll). +# 2. Ganti nilai @host sesuai environment (local / staging / prod). +# 3. Klik "Send Request" di atas tiap blok ### untuk menjalankan +# request tersebut secara individual. +# 4. Jalankan request secara BERURUTAN sesuai urutan yang disarankan +# (lihat keterangan tiap endpoint di bawah). +# +# ALUR PENGGUNAAN YANG DISARANKAN +# -------------------------------- +# [1] ListEligibleContracts → Lihat kontrak mana saja yang akan diproses +# [2] GenerateMonthlyInvoices → Jalankan proses generate PI cicilan sekaligus +# [3] InsertSupplierInvoice → (Opsional) Insert manual 1 PI jika diperlukan +# +# CATATAN +# ------- +# - startDate & endDate menentukan periode bulan yang diproses. +# Biasanya diisi dengan tanggal awal dan akhir bulan berjalan. +# - Scheduler ini AMAN dijalankan ulang (idempotent). Kontrak yang +# sudah punya PI di bulan yang sama akan dilewati otomatis. +# - userID pada InsertSupplierInvoice akan diabaikan; sistem +# mengambil userID dari PurchaseOrderAssetContractCreatedUserID. +# ============================================================ + +@host = https://accone.aplikasi.web.id/one-api + +# ============================================================ +# [1] LIST KONTRAK ELIGIBLE +# ============================================================ +# Gunakan endpoint ini SEBELUM generate untuk melihat preview +# kontrak mana saja yang akan dibuatkan PI pada periode ini. +# +# Response berisi daftar kontrak beserta detail cicilan, +# status GRNI, dan apakah PI bulan ini sudah ada atau belum. +# ============================================================ + +### [1] List kontrak cicilan eligible yang belum diproses bulan ini +POST {{host}}/mockup/scheduler/PurchaseInvoiceInstallment/ListEligibleContracts +Content-Type: application/json + +{ + "startDate": "2026-07-01", + "endDate": "2026-07-31" +} + +# ============================================================ +# [2] GENERATE PI CICILAN BULANAN (MAIN ENDPOINT) +# ============================================================ +# Endpoint utama scheduler. Satu request ini akan: +# 1. Mengambil semua kontrak aset aktif yang eligible. +# 2. Mengecek duplikasi — melewati kontrak yang sudah ada PI-nya. +# 3. Membuat nomor PI via fn_penomoran() berdasarkan user +# pembuat kontrak (PurchaseOrderAssetContractCreatedUserID). +# 4. Insert supplier_invoice + supplier_invoice_detail. +# +# Response berisi: +# - berhasil : daftar PI yang berhasil dibuat (dengan nomorPI, supplierInvoiceID, dll) +# - dilewati : daftar kontrak yang dilewati beserta alasannya +# ============================================================ + +### [2] Generate PI cicilan untuk semua kontrak pada periode ini POST {{host}}/mockup/scheduler/PurchaseInvoiceInstallment/GenerateMonthlyInvoices Content-Type: application/json @@ -9,27 +81,42 @@ Content-Type: application/json "endDate": "2026-07-31" } -### List kontrak eligible yang belum diproses -POST https://accone.aplikasi.web.id/one-api/mockup/scheduler/PurchaseInvoiceInstallment/ListEligibleContracts -Content-Type: application/json +# ============================================================ +# [3] INSERT MANUAL SATU PI (INTERNAL / DEBUG) +# ============================================================ +# Endpoint ini dipanggil INTERNAL oleh GenerateMonthlyInvoices +# via cURL. Gunakan hanya untuk debugging atau insert manual +# satu PI tertentu tanpa menjalankan proses batch. +# +# FIELD WAJIB: +# - nomorPI : Nomor PI (format dari fn_penomoran) +# - tanggalPI : Tanggal invoice (YYYY-MM-DD) +# - tanggalJatuhTempo : Tanggal jatuh tempo (YYYY-MM-DD) +# - jumlahCicilan : Nominal cicilan (angka, dalam Rupiah) +# - catatan : Catatan singkat pada header invoice +# - deskripsi : Deskripsi baris detail invoice +# - userID : ID user pembuat (ambil dari kontrak) +# - purchaseOrderAssetContractID : ID kontrak aset +# - purchaseOrderID : ID Purchase Order +# - receiveOrderPoID : ID Receive Order PO (GRNI) +# - supplierID : ID Supplier +# - purchaseOrderSummaryID : ID summary item PO +# - purchaseOrderSummaryItemID : ID item (barang/aset) +# - purchaseOrderSummaryItemUnitID: ID satuan item +# ============================================================ -{ - "startDate": "2026-07-01", - "endDate": "2026-07-31" -} - -### Insert supplier_invoice lewat controller terpisah +### [3] Insert satu supplier_invoice cicilan secara manual (debug) POST {{host}}/mockup/scheduler/PurchaseInvoiceInstallmentInsert/InsertSupplierInvoice Content-Type: application/json { - "nomorPI": "PI-INS-20260712120000-000123-00456-00000", + "nomorPI": "PI-2026-07-0001", "tanggalPI": "2026-07-31", "tanggalJatuhTempo": "2026-08-14", "jumlahCicilan": 15000000, - "catatan": "PI Cicilan Otomatis", - "deskripsi": "Cicilan Kontrak Aset", - "userID": 0, + "catatan": "PI Cicilan Otomatis — Kontrak Aset ID 123 periode 2026-07", + "deskripsi": "Cicilan Kontrak Aset — Kendaraan Operasional periode 2026-07", + "userID": 1, "purchaseOrderAssetContractID": 123, "purchaseOrderID": 456, "receiveOrderPoID": 789, diff --git a/application/controllers/mockup/scheduler/PurchaseInvoiceInstallment.php b/application/controllers/mockup/scheduler/PurchaseInvoiceInstallment.php index 3cb93d6..2131efb 100644 --- a/application/controllers/mockup/scheduler/PurchaseInvoiceInstallment.php +++ b/application/controllers/mockup/scheduler/PurchaseInvoiceInstallment.php @@ -7,8 +7,8 @@ * secara otomatis setiap bulan berdasarkan kontrak yang aktif. * * Endpoint utama: - * POST /tools/PurchaseInvoiceInstallment/GenerateMonthlyInvoices - * POST /tools/PurchaseInvoiceInstallment/CurlGenerateMonthlyInvoices + * POST /scheduler/PurchaseInvoiceInstallment/GenerateMonthlyInvoices + * POST /scheduler/PurchaseInvoiceInstallment/CurlGenerateMonthlyInvoices */ class PurchaseInvoiceInstallment extends MY_Controller {