Spaces:
Sleeping
Sleeping
File size: 2,037 Bytes
ef874e6 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | import prisma from './db';
interface MoveTrashParams {
instance: any;
entityType: 'produk' | 'kategori' | 'supplier' | 'member';
actorId: number;
}
export const moveToTrash = async (params: MoveTrashParams) => {
const { instance, entityType, actorId } = params;
const dataPayload: any = {
main_record: instance,
};
if (entityType === 'produk') {
// harga_tingkat
const hargaTingkat = await prisma.harga_tingkat.findMany({
where: { produk_id: instance.id },
});
dataPayload.harga_tingkat = hargaTingkat;
// stok_batch
const stokBatch = await prisma.stok_batch.findMany({
where: { produk_id: instance.id },
});
dataPayload.stok_batch = stokBatch;
// stok_log
const stokLog = await prisma.stok_log.findMany({
where: { produk_id: instance.id },
});
dataPayload.stok_log = stokLog;
// stok_opname
const stokOpname = await prisma.stok_opname.findMany({
where: { produk_id: instance.id },
});
dataPayload.stok_opname = stokOpname;
}
// Simpan payload di tabel trash
await prisma.trash.create({
data: {
entity_type: entityType,
entity_id: instance.id,
data: JSON.stringify(dataPayload),
deleted_by: actorId,
deleted_at: new Date(),
},
});
// Soft delete / Nonaktifkan record aslinya
const deletedAt = new Date();
if (entityType === 'produk') {
await prisma.produk.update({
where: { id: instance.id },
data: { deleted_at: deletedAt, is_aktif: 0 },
});
} else if (entityType === 'kategori') {
await prisma.kategori.update({
where: { id: instance.id },
data: { deleted_at: deletedAt, aktif: 0 },
});
} else if (entityType === 'supplier') {
await prisma.supplier.update({
where: { id: instance.id },
data: { deleted_at: deletedAt, aktif: 0 },
});
} else if (entityType === 'member') {
await prisma.member.update({
where: { id: instance.id },
data: { deleted_at: deletedAt, aktif: 0 },
});
}
};
|