# 📊 PT. INDOSAN - ERP Web - Analisis Dashboard Metrik Penjualan

Dokumen ini menjelaskan metrik pemantauan penjualan pada dashboard, khususnya mengenai kartu **Sales Order** dan **Last Outstanding (Versi Packinglist)**, serta logika di balik perhitungan nilai yang muncul.

---

## 1. Kartu Metrik Utama

Pada dashboard penjualan, terdapat dua kartu indikator utama yang memantau performa order dan pengiriman:

### 1.1 Kartu Sales Order (Oranye)
*   **Fungsi:** Menampilkan nilai pesanan penjualan (Sales Order) yang masuk.
*   **Metrik yang Ditampilkan:**
    *   **MTD New:** Total nilai Sales Order baru yang dibuat pada bulan berjalan.
    *   **YTD:** Total nilai Sales Order kumulatif dari awal tahun hingga tanggal berjalan.
    *   **Kode Rekening/Data:** Berasosiasi dengan data `order_mtd` dan `order_ytd` (pada controller `Graph.php`).

### 1.2 Kartu Last Outstanding (Biru)
*   **Fungsi:** Menampilkan sisa pesanan yang belum terkirim berdasarkan dokumen realisasi pengiriman (versi Packing List).
*   **Metrik yang Ditampilkan:**
    *   **MTD New:** Perubahan bersih (delta) outstanding pada bulan berjalan.
    *   **YTD:** Saldo akhir sisa pesanan yang belum dikirim secara kumulatif.
    *   **Kode Rekening/Data:** Berasosiasi dengan data `outstanding` / `outstanding_mtd` dan `outstanding_ytd` (pada controller `Graph.php` dan library `DataOutstanding.php`).

---

## 2. Analisis Perhitungan "MTD New" Outstanding Negatif

### 2.1 Logika Fisik (Bisnis) vs Logika Sistem (Codebase)

*   **Definisi Bisnis Ideal:**
    Secara konsep murni, outstanding baru untuk bulan berjalan seharusnya hanya menghitung pesanan bulan berjalan yang belum terkirim:
    $$\text{MTD New Outstanding (Ideal)} = \text{Order Baru Bulan Ini} - \text{Pengiriman Khusus untuk Order Baru Bulan Ini}$$
    *Di bawah definisi ini, outstanding baru bulan berjalan tidak mungkin bernilai negatif (minimal 0).*

*   **Formula Sistem Saat Ini (Penyederhanaan):**
    Di dalam controller [Graph.php](file:///z:/san_28jun/application/modules/dashboard/controllers/Graph.php) dan library [DataOutstanding.php](file:///z:/san_28jun/application/libraries/laporan/DataOutstanding.php), perhitungan disederhanakan dengan mengurangkan total pengiriman bulan berjalan langsung terhadap total order bulan berjalan:
    $$\text{MTD New Outstanding (Sistem)} = \text{Total SO Baru Bulan Ini} - \text{Total Seluruh Packing List Bulan Ini}$$

### 2.2 Penyebab Nilai Negatif pada MTD New
Karena formula sistem menggunakan **Total Seluruh Pengiriman Bulan Ini** (yang mencakup pengiriman barang untuk pesanan/backlog bulan-bulan sebelumnya), maka nilai pengurang bisa menjadi jauh lebih besar dibanding nilai SO baru yang masuk di bulan tersebut. 

Ketika laju pengiriman backlog lama lebih tinggi daripada laju masuknya pesanan baru, hasil selisihnya menjadi **negatif**. Hal ini menunjukkan bahwa antrean outstanding kumulatif berhasil dikurangi/disusutkan pada bulan tersebut.

---

## 3. Referensi Codebase

*   **Controller Utama:** [Graph.php](file:///z:/san_28jun/application/modules/dashboard/controllers/Graph.php)
*   **Library Pengolah Data:** [DataOutstanding.php](file:///z:/san_28jun/application/libraries/laporan/DataOutstanding.php)
