mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-20 13:32:00 +00:00
feat(FE-208): add goods receipt section with table and dummy data in purchase order detail view
This commit is contained in:
@@ -26,6 +26,23 @@ interface PurchaseOrderItem {
|
|||||||
total: number;
|
total: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface GoodsReceiptItem {
|
||||||
|
id: number;
|
||||||
|
tanggalPenerimaan: string;
|
||||||
|
gudangTujuan: string;
|
||||||
|
noSuratJalan: string;
|
||||||
|
dokumenSuratJalan: string;
|
||||||
|
noArmada: string;
|
||||||
|
pengangkut: string;
|
||||||
|
jumlahTotal: string;
|
||||||
|
jumlahDiterima: string;
|
||||||
|
jumlahRetur: string;
|
||||||
|
ekspedisi: string;
|
||||||
|
transportPerItem: string;
|
||||||
|
transportTotal: string;
|
||||||
|
status?: 'diterima' | 'belum-diterima';
|
||||||
|
}
|
||||||
|
|
||||||
interface PurchaseOrderInfo {
|
interface PurchaseOrderInfo {
|
||||||
businessUnit: string;
|
businessUnit: string;
|
||||||
area: string;
|
area: string;
|
||||||
@@ -62,6 +79,103 @@ const dummyPurchaseOrderItems: PurchaseOrderItem[] = [
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
const dummyGoodsReceiptItems: GoodsReceiptItem[] = [
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
tanggalPenerimaan: '1 Jan 1970 00:00',
|
||||||
|
gudangTujuan: 'Gudang A',
|
||||||
|
noSuratJalan: 'NSJ-1',
|
||||||
|
dokumenSuratJalan: 'details',
|
||||||
|
noArmada: 'NAP-1',
|
||||||
|
pengangkut: 'details',
|
||||||
|
jumlahTotal: 'Rp10.000,00',
|
||||||
|
jumlahDiterima: 'details',
|
||||||
|
jumlahRetur: 'details',
|
||||||
|
ekspedisi: 'Ekspedisi 1',
|
||||||
|
transportPerItem: 'details',
|
||||||
|
transportTotal: 'Rp1.000,00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
tanggalPenerimaan: '1 Jan 1970 00:00',
|
||||||
|
gudangTujuan: 'Gudang A',
|
||||||
|
noSuratJalan: 'NSJ-1',
|
||||||
|
dokumenSuratJalan: 'details',
|
||||||
|
noArmada: 'NAP-1',
|
||||||
|
pengangkut: 'details',
|
||||||
|
jumlahTotal: 'Rp10.000,00',
|
||||||
|
jumlahDiterima: 'details',
|
||||||
|
jumlahRetur: 'Rp0',
|
||||||
|
ekspedisi: 'Ekspedisi 1',
|
||||||
|
transportPerItem: 'details',
|
||||||
|
transportTotal: 'Rp10.000,00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
tanggalPenerimaan: '1 Jan 1970 00:00',
|
||||||
|
gudangTujuan: 'Gudang A',
|
||||||
|
noSuratJalan: 'NSJ-1',
|
||||||
|
dokumenSuratJalan: 'details',
|
||||||
|
noArmada: 'NAP-1',
|
||||||
|
pengangkut: 'details',
|
||||||
|
jumlahTotal: 'Rp10.000,00',
|
||||||
|
jumlahDiterima: 'Jumlah Produk Diterima',
|
||||||
|
jumlahRetur: 'Rp0.000,00',
|
||||||
|
ekspedisi: 'Ekspedisi 1',
|
||||||
|
transportPerItem: 'details',
|
||||||
|
transportTotal: 'Rp10.000,00',
|
||||||
|
status: 'diterima',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 4,
|
||||||
|
tanggalPenerimaan: '1 Jan 1970 00:00',
|
||||||
|
gudangTujuan: 'Gudang A',
|
||||||
|
noSuratJalan: 'NSJ-1',
|
||||||
|
dokumenSuratJalan: 'details',
|
||||||
|
noArmada: 'NAP-1',
|
||||||
|
pengangkut: 'details',
|
||||||
|
jumlahTotal: 'Rp10.000,00',
|
||||||
|
jumlahDiterima: 'Jumlah Produk Belum Diterima',
|
||||||
|
jumlahRetur: 'Rp0.000,00',
|
||||||
|
ekspedisi: 'Ekspedisi 1',
|
||||||
|
transportPerItem: 'details',
|
||||||
|
transportTotal: 'Rp10.000,00',
|
||||||
|
status: 'belum-diterima',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 5,
|
||||||
|
tanggalPenerimaan: '1 Jan 1970 00:00',
|
||||||
|
gudangTujuan: 'Gudang A',
|
||||||
|
noSuratJalan: 'NSJ-1',
|
||||||
|
dokumenSuratJalan: 'details',
|
||||||
|
noArmada: 'NAP-1',
|
||||||
|
pengangkut: 'details',
|
||||||
|
jumlahTotal: 'Rp10.000,00',
|
||||||
|
jumlahDiterima: 'Nominal Produk Diterima',
|
||||||
|
jumlahRetur: 'Rp0.000,00',
|
||||||
|
ekspedisi: 'Ekspedisi 1',
|
||||||
|
transportPerItem: 'details',
|
||||||
|
transportTotal: 'Rp10.000,00',
|
||||||
|
status: 'diterima',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 6,
|
||||||
|
tanggalPenerimaan: '1 Jan 1970 00:00',
|
||||||
|
gudangTujuan: 'Gudang A',
|
||||||
|
noSuratJalan: 'NSJ-1',
|
||||||
|
dokumenSuratJalan: 'details',
|
||||||
|
noArmada: 'NAP-1',
|
||||||
|
pengangkut: 'details',
|
||||||
|
jumlahTotal: 'Rp10.000,00',
|
||||||
|
jumlahDiterima: 'Nominal Produk Belum Diterima',
|
||||||
|
jumlahRetur: 'Rp0.000,00',
|
||||||
|
ekspedisi: 'Ekspedisi 1',
|
||||||
|
transportPerItem: 'details',
|
||||||
|
transportTotal: 'Rp10.000,00',
|
||||||
|
status: 'belum-diterima',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
const dummyGroupedApprovals: BaseGroupedApproval[] = [
|
const dummyGroupedApprovals: BaseGroupedApproval[] = [
|
||||||
{
|
{
|
||||||
step_number: 1,
|
step_number: 1,
|
||||||
@@ -164,6 +278,7 @@ const PurchaseOrderDetail = ({ type = 'detail' }: PurchaseOrderDetailProps) => {
|
|||||||
// ===== STATIC DATA =====
|
// ===== STATIC DATA =====
|
||||||
const purchaseOrderInfo = dummyPurchaseOrderInfo;
|
const purchaseOrderInfo = dummyPurchaseOrderInfo;
|
||||||
const purchaseOrderItems = dummyPurchaseOrderItems;
|
const purchaseOrderItems = dummyPurchaseOrderItems;
|
||||||
|
const goodsReceiptItems = dummyGoodsReceiptItems;
|
||||||
const groupedApprovals = dummyGroupedApprovals;
|
const groupedApprovals = dummyGroupedApprovals;
|
||||||
const latestApproval =
|
const latestApproval =
|
||||||
groupedApprovals[groupedApprovals.length - 1]?.approvals[0];
|
groupedApprovals[groupedApprovals.length - 1]?.approvals[0];
|
||||||
@@ -230,6 +345,57 @@ const PurchaseOrderDetail = ({ type = 'detail' }: PurchaseOrderDetailProps) => {
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
const goodsReceiptColumns: ColumnDef<GoodsReceiptItem>[] = [
|
||||||
|
{
|
||||||
|
accessorKey: 'tanggalPenerimaan',
|
||||||
|
header: 'Tanggal Penerimaan',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
accessorKey: 'gudangTujuan',
|
||||||
|
header: 'Gudang Tujuan',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
accessorKey: 'noSuratJalan',
|
||||||
|
header: 'No. Surat Jalan',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
accessorKey: 'dokumenSuratJalan',
|
||||||
|
header: 'Dokumen Surat Jalan',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
accessorKey: 'noArmada',
|
||||||
|
header: 'No. Armada',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
accessorKey: 'pengangkut',
|
||||||
|
header: 'Pengangkut',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
accessorKey: 'jumlahTotal',
|
||||||
|
header: 'Jumlah Total',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
accessorKey: 'jumlahDiterima',
|
||||||
|
header: 'Jumlah Diterima',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
accessorKey: 'jumlahRetur',
|
||||||
|
header: 'Jumlah Retur',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
accessorKey: 'ekspedisi',
|
||||||
|
header: 'Ekspedisi',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
accessorKey: 'transportPerItem',
|
||||||
|
header: 'Transport /Item',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
accessorKey: 'transportTotal',
|
||||||
|
header: 'Transport Total',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
const summaryData = [
|
const summaryData = [
|
||||||
{
|
{
|
||||||
label: 'Total Sebelum Pajak',
|
label: 'Total Sebelum Pajak',
|
||||||
@@ -448,6 +614,38 @@ const PurchaseOrderDetail = ({ type = 'detail' }: PurchaseOrderDetailProps) => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</Card>
|
</Card>
|
||||||
|
|
||||||
|
{/* Penerimaan Barang */}
|
||||||
|
<Card
|
||||||
|
collapsible
|
||||||
|
title='Penerimaan Barang'
|
||||||
|
variant='bordered'
|
||||||
|
className={{
|
||||||
|
wrapper: 'w-full mt-8',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div className='rounded-lg border border-gray-200 overflow-hidden'>
|
||||||
|
<div className='overflow-x-auto'>
|
||||||
|
<Table<GoodsReceiptItem>
|
||||||
|
data={goodsReceiptItems}
|
||||||
|
columns={goodsReceiptColumns}
|
||||||
|
isLoading={false}
|
||||||
|
className={{
|
||||||
|
containerClassName: 'm-0',
|
||||||
|
tableWrapperClassName: 'overflow-x-auto',
|
||||||
|
tableClassName: 'w-full table-auto',
|
||||||
|
headerRowClassName: 'bg-gray-50 border-b border-gray-200',
|
||||||
|
headerColumnClassName:
|
||||||
|
'px-4 py-3 text-sm font-semibold text-gray-700 text-left whitespace-nowrap',
|
||||||
|
bodyRowClassName:
|
||||||
|
'border-b border-gray-100 hover:bg-gray-50 transition-colors',
|
||||||
|
bodyColumnClassName: 'px-4 py-3 text-sm text-gray-900 whitespace-nowrap',
|
||||||
|
paginationClassName: 'hidden',
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
</section>
|
</section>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user