-- V12 untuk database yang SUDAH BERJALAN.
-- Mengubah sistem stok masuk (Persediaan) menjadi FIFO (First In First Out):
-- setiap batch stok masuk sekarang punya "sisa" sendiri (qty_remaining) dan
-- TIDAK PERNAH ditimpa oleh batch berikutnya. Saat ada penjualan, stok
-- diambil dari batch paling lama dulu, jadi harga modal (HPP) yang tercatat
-- per transaksi selalu sesuai batch yang benar-benar terjual.
--
-- Jalankan file ini SEKALI lewat phpMyAdmin > tab SQL (pilih database toko
-- Anda dulu), atau: mysql -u root -p nama_database < database/migration_v12.sql
-- Tidak perlu dijalankan kalau baru install dari nol (schema.sql terbaru
-- sudah menyertakan ini).

-- 1) Tambah kolom penanda sisa batch.
ALTER TABLE inventory_receipts
  ADD COLUMN qty_remaining INT NOT NULL DEFAULT 0 AFTER qty;

-- 2) Catatan persediaan yang SUDAH ADA sebelum migrasi ini dianggap sudah
--    "terserap" ke angka stok saat ini (qty_remaining=0) -- riwayatnya tetap
--    tersimpan apa adanya untuk laporan lama, hanya tidak lagi dipakai untuk
--    antrean FIFO ke depan.
UPDATE inventory_receipts SET qty_remaining = 0;

-- 3) Buat SATU batch "saldo awal" per varian yang saat ini masih ada stoknya,
--    sebesar stok yang tercatat sekarang, dengan harga modal = harga modal
--    yang tersimpan di varian saat ini (perkiraan terbaik yang bisa dipakai,
--    karena harga modal per-batch yang lama sudah pernah tertimpa sebelum
--    migrasi ini). Batch ini otomatis jadi yang PALING LAMA (tanggalnya
--    sengaja dibuat mundur) supaya terjual duluan sebelum batch-batch baru.
INSERT INTO inventory_receipts (variant_id, qty, qty_remaining, cost_price, input_date, note)
SELECT id, stock, stock, cost_price, DATE_SUB(CURDATE(), INTERVAL 1 DAY), 'Saldo awal migrasi ke sistem FIFO'
FROM product_variants
WHERE stock > 0;
