add keterangan untuk http pi instalment

This commit is contained in:
Hanan Askarim
2026-07-14 16:20:35 +07:00
parent b29eb58db6
commit 82b93583d0
2 changed files with 104 additions and 17 deletions

View File

@@ -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 POST {{host}}/mockup/scheduler/PurchaseInvoiceInstallment/GenerateMonthlyInvoices
Content-Type: application/json Content-Type: application/json
@@ -9,27 +81,42 @@ Content-Type: application/json
"endDate": "2026-07-31" "endDate": "2026-07-31"
} }
### List kontrak eligible yang belum diproses # ============================================================
POST https://accone.aplikasi.web.id/one-api/mockup/scheduler/PurchaseInvoiceInstallment/ListEligibleContracts # [3] INSERT MANUAL SATU PI (INTERNAL / DEBUG)
Content-Type: application/json # ============================================================
# 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
# ============================================================
{ ### [3] Insert satu supplier_invoice cicilan secara manual (debug)
"startDate": "2026-07-01",
"endDate": "2026-07-31"
}
### Insert supplier_invoice lewat controller terpisah
POST {{host}}/mockup/scheduler/PurchaseInvoiceInstallmentInsert/InsertSupplierInvoice POST {{host}}/mockup/scheduler/PurchaseInvoiceInstallmentInsert/InsertSupplierInvoice
Content-Type: application/json Content-Type: application/json
{ {
"nomorPI": "PI-INS-20260712120000-000123-00456-00000", "nomorPI": "PI-2026-07-0001",
"tanggalPI": "2026-07-31", "tanggalPI": "2026-07-31",
"tanggalJatuhTempo": "2026-08-14", "tanggalJatuhTempo": "2026-08-14",
"jumlahCicilan": 15000000, "jumlahCicilan": 15000000,
"catatan": "PI Cicilan Otomatis", "catatan": "PI Cicilan Otomatis — Kontrak Aset ID 123 periode 2026-07",
"deskripsi": "Cicilan Kontrak Aset", "deskripsi": "Cicilan Kontrak Aset — Kendaraan Operasional periode 2026-07",
"userID": 0, "userID": 1,
"purchaseOrderAssetContractID": 123, "purchaseOrderAssetContractID": 123,
"purchaseOrderID": 456, "purchaseOrderID": 456,
"receiveOrderPoID": 789, "receiveOrderPoID": 789,

View File

@@ -7,8 +7,8 @@
* secara otomatis setiap bulan berdasarkan kontrak yang aktif. * secara otomatis setiap bulan berdasarkan kontrak yang aktif.
* *
* Endpoint utama: * Endpoint utama:
* POST /tools/PurchaseInvoiceInstallment/GenerateMonthlyInvoices * POST /scheduler/PurchaseInvoiceInstallment/GenerateMonthlyInvoices
* POST /tools/PurchaseInvoiceInstallment/CurlGenerateMonthlyInvoices * POST /scheduler/PurchaseInvoiceInstallment/CurlGenerateMonthlyInvoices
*/ */
class PurchaseInvoiceInstallment extends MY_Controller class PurchaseInvoiceInstallment extends MY_Controller
{ {