feat(FE-64): update MovementTable structure for improved data clarity and consistency

This commit is contained in:
rstubryan
2025-10-15 12:08:52 +07:00
parent df73ee1fdf
commit 06dc869b84
@@ -31,23 +31,23 @@ const dummyMovements: Movement[] = [
{
...baseMetadata,
id: 1,
alasan_transfer: 'Restock',
tanggal_transfer: '2024-06-01',
warehouse_asal: {
transfer_reason: 'Restock',
transfer_date: '2024-06-01',
source_warehouse: {
...baseMetadata,
id: 1,
name: 'Warehouse A',
type: 'AREA',
area: { id: 1, name: 'Area 1' },
},
warehouse_tujuan: {
destination_warehouse: {
...baseMetadata,
id: 2,
name: 'Warehouse B',
type: 'AREA',
area: { id: 2, name: 'Area 2' },
},
product: [
products: [
{
product: {
...baseMetadata,
@@ -73,13 +73,16 @@ const dummyMovements: Movement[] = [
suppliers: [],
flags: [],
},
qty_product: 10,
product_qty: 10,
},
],
ekspedisi: [
deliveries: [
{
product_id: 1,
qty: 10,
delivery_cost: 50000,
delivery_cost_per_item: 5000,
document: 'doc1.pdf',
driver_name: 'Andi',
vehicle_plate: 'B 1234 CD',
supplier: {
...baseMetadata,
id: 1,
@@ -97,34 +100,58 @@ const dummyMovements: Movement[] = [
balance: 0,
due_date: 30,
},
plat_nomor: 'B 1234 CD',
no_surat_jalan: 'SJ-001',
dokumen: 'doc1.pdf',
biaya_ekspedisi: 50000,
nama_sopir: 'Andi',
products: [
{
product: {
...baseMetadata,
id: 1,
name: 'Product X',
brand: 'Brand X',
sku: 'SKU-X',
product_price: 10000,
selling_price: 12000,
tax: 10,
expiry_period: 365,
uom: {
...baseMetadata,
id: 1,
name: 'PCS',
},
product_category: {
...baseMetadata,
id: 1,
code: 'CAT-1',
name: 'Category 1',
},
suppliers: [],
flags: [],
},
product_qty: 10,
},
],
},
],
},
{
...baseMetadata,
id: 2,
alasan_transfer: 'Mutasi Stok',
tanggal_transfer: '2024-06-02',
warehouse_asal: {
transfer_reason: 'Mutasi Stok',
transfer_date: '2024-06-02',
source_warehouse: {
...baseMetadata,
id: 2,
name: 'Warehouse B',
type: 'AREA',
area: { id: 2, name: 'Area 2' },
},
warehouse_tujuan: {
destination_warehouse: {
...baseMetadata,
id: 3,
name: 'Warehouse C',
type: 'AREA',
area: { id: 3, name: 'Area 3' },
},
product: [
products: [
{
product: {
...baseMetadata,
@@ -150,13 +177,16 @@ const dummyMovements: Movement[] = [
suppliers: [],
flags: [],
},
qty_product: 5,
product_qty: 5,
},
],
ekspedisi: [
deliveries: [
{
product_id: 2,
qty: 5,
delivery_cost: 60000,
delivery_cost_per_item: 12000,
document: 'doc2.pdf',
driver_name: 'Budi',
vehicle_plate: 'D 5678 EF',
supplier: {
...baseMetadata,
id: 2,
@@ -174,34 +204,58 @@ const dummyMovements: Movement[] = [
balance: 1000,
due_date: 15,
},
plat_nomor: 'D 5678 EF',
no_surat_jalan: 'SJ-002',
dokumen: 'doc2.pdf',
biaya_ekspedisi: 60000,
nama_sopir: 'Budi',
products: [
{
product: {
...baseMetadata,
id: 2,
name: 'Product Y',
brand: 'Brand Y',
sku: 'SKU-Y',
product_price: 20000,
selling_price: 25000,
tax: 5,
expiry_period: 180,
uom: {
...baseMetadata,
id: 2,
name: 'BOX',
},
product_category: {
...baseMetadata,
id: 2,
code: 'CAT-2',
name: 'Category 2',
},
suppliers: [],
flags: [],
},
product_qty: 5,
},
],
},
],
},
{
...baseMetadata,
id: 3,
alasan_transfer: 'Pengembalian',
tanggal_transfer: '2024-06-03',
warehouse_asal: {
transfer_reason: 'Pengembalian',
transfer_date: '2024-06-03',
source_warehouse: {
...baseMetadata,
id: 3,
name: 'Warehouse C',
type: 'AREA',
area: { id: 3, name: 'Area 3' },
},
warehouse_tujuan: {
destination_warehouse: {
...baseMetadata,
id: 1,
name: 'Warehouse A',
type: 'AREA',
area: { id: 1, name: 'Area 1' },
},
product: [
products: [
{
product: {
...baseMetadata,
@@ -227,13 +281,16 @@ const dummyMovements: Movement[] = [
suppliers: [],
flags: [],
},
qty_product: 8,
product_qty: 8,
},
],
ekspedisi: [
deliveries: [
{
product_id: 3,
qty: 8,
delivery_cost: 40000,
delivery_cost_per_item: 5000,
document: 'doc3.pdf',
driver_name: 'Cici',
vehicle_plate: 'F 9101 GH',
supplier: {
...baseMetadata,
id: 3,
@@ -251,34 +308,58 @@ const dummyMovements: Movement[] = [
balance: 500,
due_date: 10,
},
plat_nomor: 'F 9101 GH',
no_surat_jalan: 'SJ-003',
dokumen: 'doc3.pdf',
biaya_ekspedisi: 40000,
nama_sopir: 'Cici',
products: [
{
product: {
...baseMetadata,
id: 3,
name: 'Product Z',
brand: 'Brand Z',
sku: 'SKU-Z',
product_price: 15000,
selling_price: 18000,
tax: 8,
expiry_period: 90,
uom: {
...baseMetadata,
id: 3,
name: 'KG',
},
product_category: {
...baseMetadata,
id: 3,
code: 'CAT-3',
name: 'Category 3',
},
suppliers: [],
flags: [],
},
product_qty: 8,
},
],
},
],
},
{
...baseMetadata,
id: 4,
alasan_transfer: 'Transfer Internal',
tanggal_transfer: '2024-06-04',
warehouse_asal: {
transfer_reason: 'Transfer Internal',
transfer_date: '2024-06-04',
source_warehouse: {
...baseMetadata,
id: 4,
name: 'Warehouse D',
type: 'AREA',
area: { id: 4, name: 'Area 4' },
},
warehouse_tujuan: {
destination_warehouse: {
...baseMetadata,
id: 5,
name: 'Warehouse E',
type: 'AREA',
area: { id: 5, name: 'Area 5' },
},
product: [
products: [
{
product: {
...baseMetadata,
@@ -304,13 +385,16 @@ const dummyMovements: Movement[] = [
suppliers: [],
flags: [],
},
qty_product: 20,
product_qty: 20,
},
],
ekspedisi: [
deliveries: [
{
product_id: 4,
qty: 20,
delivery_cost: 30000,
delivery_cost_per_item: 1500,
document: 'doc4.pdf',
driver_name: 'Dedi',
vehicle_plate: 'H 2345 IJ',
supplier: {
...baseMetadata,
id: 4,
@@ -328,11 +412,35 @@ const dummyMovements: Movement[] = [
balance: 200,
due_date: 20,
},
plat_nomor: 'H 2345 IJ',
no_surat_jalan: 'SJ-004',
dokumen: 'doc4.pdf',
biaya_ekspedisi: 30000,
nama_sopir: 'Dedi',
products: [
{
product: {
...baseMetadata,
id: 4,
name: 'Product A',
brand: 'Brand A',
sku: 'SKU-A',
product_price: 5000,
selling_price: 7000,
tax: 0,
expiry_period: 60,
uom: {
...baseMetadata,
id: 4,
name: 'LITER',
},
product_category: {
...baseMetadata,
id: 4,
code: 'CAT-4',
name: 'Category 4',
},
suppliers: [],
flags: [],
},
product_qty: 20,
},
],
},
],
},
@@ -401,30 +509,34 @@ const MovementTable = () => {
cell: (props) => pageSize * (page - 1) + props.row.index + 1,
},
{
accessorKey: 'warehouse_asal',
accessorKey: 'source_warehouse',
header: 'Gudang Asal',
cell: (props) => props.row.original.warehouse_asal.name,
cell: (props) => props.row.original.source_warehouse.name,
},
{
accessorKey: 'warehouse_tujuan',
accessorKey: 'destination_warehouse',
header: 'Gudang Tujuan',
cell: (props) => props.row.original.warehouse_tujuan.name,
cell: (props) => props.row.original.destination_warehouse.name,
},
{
accessorKey: 'product',
accessorKey: 'products',
header: 'Nama Produk',
cell: (props) =>
props.row.original.product.map((p) => p.product.name),
props.row.original.products
.map((p) => p.product.name)
.join(', '),
},
{
accessorKey: 'alasan_transfer',
accessorKey: 'transfer_reason',
header: 'Catatan',
},
{
accessorKey: 'biaya_ekspedisi',
header: 'Biaya Ekspedisi',
accessorKey: 'delivery_cost',
header: 'Biaya Pengiriman',
cell: (props) =>
props.row.original.ekspedisi.map((e) => e.biaya_ekspedisi),
props.row.original.deliveries
.reduce((sum, d) => sum + d.delivery_cost, 0)
.toLocaleString('id-ID'),
},
{
id: 'actions',