STINV V2.10.241 — FULL PERIODIC PRODUKSI (CANDIDATE / VALIDASI WAJIB)
===================================================================
VERSI / CHANGELOG: TIDAK DIUBAH.
SASARAN: database produksi `stinv` dari backup tanggal 31 Oktober 2026.
Titik awal: 1 September 2026. Snapshot awal berasal dari mutasi <=31 Agustus 2026.

LINGKUP KODE:
1. PVE adalah sumber resmi HPP dan Valuasi; tidak mengikuti value_out Moving pada penjualan.
2. Core approval stok: faktur pembelian, Surat Jalan, proses ulang SJ dan retur pembelian/penjualan
   menjalankan rebuild Periodic OPEN atomik di transaksi approval. Kegagalan rebuild ROLLBACK approval.
3. Tool produksi Preview -> Backup SQL+PVE -> arsip privat/checksum -> Apply -> Verifikasi.
4. Maintenance lock memblokir request aplikasi lain saat preview dan apply.
5. Periode FINAL atau Tutup Buku tertutup DIBLOKIR. Semua dokumen & mutasi bisnis tetap ada.

BATASAN PENTING (JANGAN DIANGGAP KONVERSI TOTAL SELURUH MODUL):
- Kolom nilai HPP Moving `product_stocks.avg_cost` dan `stock_movements.value_out`
  MASIH dihitung sebagai shadow untuk kompatibilitas koreksi/stok-minus; tidak menjadi dasar PVE.
- Tool koreksi approved khusus, import histori, stok minus, dan modul eksternal yang
  mengubah mutasi secara langsung BELUM seluruhnya dipasang hook auto-rebuild.
  Bila ada perubahan, laporan harus menolak stale PVE; gunakan Rebuild Periodic manual.
- Perubahan jumlah stock_movements setelah Oktober 2026 MEMBLOKIR tool cutover khusus ini.
- Tidak ada pengujian end-to-end pada MariaDB PRODUKSI di lingkungan pembuatan paket.
  Jangan lakukan Apply sebelum pengujian backup/restore dan Preview pada database kloning.
- Penyimpanan file export pajak XLSX TERPISAH dari SQL; arsipkan folder pajak sendiri.
- Jika schema produksi beda dari backup, source mungkin memerlukan patch tambahan.
- Dari waktu tanggal 1 Nov 2026, lakukan maintenance saat tidak ada request PHP aktif.

LANGKAH PEMASANGAN:
1. Simpan aplikasi/database produksi dalam backup EXTERNAL dan pulihkan hasilnya pada
   database uji. Bandingkan checksum + arsip Faktur Pajak secara terpisah.
2. Upload patch yang sudah diuji dengan folder root setara `stinv241026/`.
   Backup file includes/business.php, includes/restore_maintenance.php,
   modules/periodic/engine.php sebelum menimpa.
3. Buka aplikasi produksi sebagai Administrator, gunakan
   /tool_full_periodic_rebuild_produksi.php -> PREVIEW.
4. Jika PREVIEW sukses dan perbandingan nilai September–Oktober disetujui,
   lakukan APPLY dengan password, nama database `stinv`, frasa konfirmasi.
5. Salin arsip dari storage/private/periodic_production_archive ke media luar server.
6. Verifikasi 2 bulan HPP, kartu stok, laba rugi, hutang/piutang, pajak dan status closing.
7. Setelah lulus, baru izinkan user melakukan transaksi, uji approval purchase/sale/retur.
8. Batasi tool produksi berdasarkan ACL/server setelah selesai (hapus PHP cutover),
   dan simpan evidence audit di luar webroot.

ROLLBACK:
- Sebelum apply: Preview melakukan ROLLBACK otomatis.
- Saat apply error: transaksi rollback otomatis (arsip backup dapat tetap ada).
- Setelah apply: gunakan Backup & Restore resmi menggunakan backup pra-Apply;
  restore SQL+PVE pada database uji dahulu. Jangan menghapus transaksi baru tanpa
  mempertimbangkan perubahan setelah titik backup.
- Rollback SOURCE: pulihkan ketiga file backup asli, tanpa mengubah VERSION.txt.
