Merge pull request 'Fix create admin & progress bar persentase' (#14) from nico/18-nov-25 into staging

Reviewed-on: http://wibugit.wibudev.com/wibu/desa-darmasaba/pulls/14
This commit is contained in:
2025-11-18 17:24:52 +08:00
4 changed files with 18 additions and 18 deletions

View File

@@ -53,7 +53,7 @@ function normalizeItem(item: Partial<z.infer<typeof ApbdesItemSchema>>): z.infer
selisih,
persentase,
level: item.level || 1,
tipe: item.tipe || "pendapatan",
tipe: item.tipe, // biarkan null jika memang null
};
}

View File

@@ -115,21 +115,21 @@ function EditAPBDes() {
if (!kode || !uraian) {
return toast.warn('Kode dan uraian wajib diisi');
}
const finalTipe = level === 1 ? 'pendapatan' : tipe; // Berikan default
const selisih = realisasi - anggaran;
const persentase = anggaran > 0 ? (realisasi / anggaran) * 100 : 0;
const finalTipe = level === 1 ? null : tipe;
const selisih = realisasi - anggaran;
const persentase = anggaran > 0 ? (realisasi / anggaran) * 100 : 0;
apbdesState.edit.addItem({
kode,
uraian,
anggaran,
realisasi,
selisih,
persentase,
level,
tipe: finalTipe, // ✅ Tidak akan undefined
});
apbdesState.edit.addItem({
kode,
uraian,
anggaran,
realisasi,
selisih,
persentase,
level,
tipe: finalTipe, // ✅ Tidak akan undefined
});
setNewItem({

View File

@@ -123,8 +123,7 @@ function CreateAPBDes() {
return toast.warn("Kode dan uraian wajib diisi");
}
const finalTipe = level === 1 ? 'pendapatan' : tipe; // Berikan default
const finalTipe = level === 1 ? null : tipe;
const selisih = realisasi - anggaran;
const persentase = anggaran > 0 ? (realisasi / anggaran) * 100 : 0;
@@ -363,8 +362,9 @@ function CreateAPBDes() {
{ value: 'pendapatan', label: 'Pendapatan' },
{ value: 'belanja', label: 'Belanja' },
]}
value={newItem.tipe}
value={newItem.level === 1 ? null : newItem.tipe}
onChange={(val) => setNewItem({ ...newItem, tipe: val as any })}
disabled={newItem.level === 1}
/>
</Group>
<TextInput

View File

@@ -66,8 +66,8 @@ export default async function apbdesCreate(context: Context) {
selisih: item.selisih,
persentase: item.persentase,
level: item.level,
tipe: item.tipe, // ✅ sertakan, biar null
apbdesId: apbdes.id,
// Note: tipe field is not included as it doesn't exist in the model
};
return prisma.aPBDesItem.create({