mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-20 05:21:57 +00:00
2.4 KiB
2.4 KiB
Farm Depreciation Manual Inputs Import
Command ini dipakai untuk bulk import data ke tabel farm_depreciation_manual_inputs dari file Excel (.xlsx).
Command
go run ./cmd/import-farm-depreciation-manual-inputs --file <path.xlsx> [--sheet <name>] [--apply]
Flags
--file(required): path file.xlsx.--sheet(optional): nama sheet. Jika tidak diisi, command pakai sheet pertama.--apply(optional): defaultfalse(dry-run). Jikatrue, command menulis ke database.
Mode
-
Dry-run (default):
- parsing dan validasi semua baris.
- validasi
project_flock_idterhadap farm aktif kategoriLAYING. - menampilkan
PLAN+ daftar error. - tidak menulis data.
-
Apply (
--apply):- semua validasi tetap dijalankan dulu.
- jika ada 1 error, proses dihentikan.
- jika valid, upsert dijalankan dalam 1 transaksi (fail-fast).
- setelah upsert, snapshot di
farm_depreciation_snapshotsdihapus mulaicutover_dateuntukproject_flock_idterkait.
Format Excel
Template tersedia di:
docs/templates/farm_depreciation_manual_inputs.xlsx
Header wajib ada di baris 1 (case-insensitive, trim-spaces):
project_flock_id(required, integer > 0)total_cost(required, numeric >= 0)cutover_date(required, formatYYYY-MM-DD)note(optional, max 1000 karakter)
Catatan:
- Dalam 1 file tidak boleh ada duplikat
project_flock_id. project_flock_idharus mengarah keproject_flocksyangdeleted_at IS NULLdancategory = LAYING.
Contoh
Dry-run:
env DB_HOST=127.0.0.1 DB_PORT=5432 DB_NAME=lti DB_USER=postgres DB_PASSWORD=postgres \
go run ./cmd/import-farm-depreciation-manual-inputs \
--file docs/templates/farm_depreciation_manual_inputs.xlsx
Apply:
env DB_HOST=127.0.0.1 DB_PORT=5432 DB_NAME=lti DB_USER=postgres DB_PASSWORD=postgres \
go run ./cmd/import-farm-depreciation-manual-inputs \
--file /path/to/farm_depreciation_manual_inputs.xlsx \
--sheet manual_inputs \
--apply
Error Umum
required header is missing: header wajib tidak ditemukan.must be a positive integer:project_flock_idbukan integer valid.must be greater than or equal to 0:total_costnegatif.must follow format YYYY-MM-DD:cutover_datetidak sesuai format.duplicate value ...:project_flock_idduplikat dalam file yang sama.must reference an active LAYING project_flock: farm tidak valid untuk import ini.