From a26099b5074dcde4584b05cc5f8f203cd1ece4b5 Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Tue, 9 Dec 2025 15:32:17 +0700 Subject: [PATCH 01/89] feat(FE-347): create ClosingProductionData type --- src/types/api/closing.d.ts | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/types/api/closing.d.ts b/src/types/api/closing.d.ts index 3f7ba816..f5ea7047 100644 --- a/src/types/api/closing.d.ts +++ b/src/types/api/closing.d.ts @@ -53,3 +53,38 @@ export type ClosingIncomingSapronak = { }; export type ClosingOutgoingSapronak = ClosingIncomingSapronak; + +export type ClosingProductionData = { + purchase: { + initial_population: number; + claim_culling: number; + final_population: number; + feed_in_kg: number; + feed_used_kg: number; + feed_used_per_head_kg: number; + }; + sales: { + sales_kg: number; + sales_head: number; + average_weight_kg: number; + average_price_per_kg: number; + }; + performance: { + depletion_head: number; + depletion_percentage: number; + age_days: number; + mortality_std: number; + mortality_act: number; + deff_mortality: number; + fcr_std: number; + fcr_act: number; + deff_fcr: number; + adg: number; + ip: number; + }; + variance: { + variance_head: number; + variance_head_percentage: number; + variance_feed_kg: number; + }; +}; From abf2735b86a3523a5cde360049dfed97282bdcb2 Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Tue, 9 Dec 2025 15:46:12 +0700 Subject: [PATCH 02/89] feat(FE-347): add getProductionData method --- src/services/api/closing.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/services/api/closing.ts b/src/services/api/closing.ts index 041108d0..f3281dba 100644 --- a/src/services/api/closing.ts +++ b/src/services/api/closing.ts @@ -6,6 +6,7 @@ import { ClosingGeneralInformation, ClosingIncomingSapronak, ClosingOutgoingSapronak, + ClosingProductionData, } from '@/types/api/closing'; import { httpClient, httpClientFetcher } from '@/services/http/client'; import { BaseApiResponse } from '@/types/api/api-general'; @@ -49,6 +50,22 @@ export class ClosingApiService extends BaseApiService { return undefined; } } + + async getProductionData(id: number) { + try { + const getProductionDataPath = `${this.basePath}/${id}/production-data`; + const getProductionDataRes = await httpClient< + BaseApiResponse + >(getProductionDataPath); + + return getProductionDataRes; + } catch (error) { + if (axios.isAxiosError>(error)) { + return error.response?.data; + } + return undefined; + } + } } export const ClosingApi = new ClosingApiService('/closing'); From 8b8702b1b87c335f09f5f756600dfdc30ecae0be Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Tue, 9 Dec 2025 15:51:33 +0700 Subject: [PATCH 03/89] feat(FE-346): create ClosingProductionDataTabContent component --- .../ClosingProductionDataTabContent.tsx | 268 ++++++++++++++++++ 1 file changed, 268 insertions(+) create mode 100644 src/components/pages/closing/ClosingProductionDataTabContent.tsx diff --git a/src/components/pages/closing/ClosingProductionDataTabContent.tsx b/src/components/pages/closing/ClosingProductionDataTabContent.tsx new file mode 100644 index 00000000..ba8a12ed --- /dev/null +++ b/src/components/pages/closing/ClosingProductionDataTabContent.tsx @@ -0,0 +1,268 @@ +'use client'; + +import useSWR from 'swr'; +import { ClosingApi } from '@/services/api/closing'; +import { isResponseSuccess } from '@/lib/api-helper'; +import { formatNumber } from '@/lib/helper'; + +interface ClosingProductionDataTabContentProps { + projectFlockId: number; +} + +const ClosingProductionDataTabContent = ({ + projectFlockId, +}: ClosingProductionDataTabContentProps) => { + const { data: productionData, isLoading } = useSWR( + `${ClosingApi.basePath}/${projectFlockId}/production-data`, + () => ClosingApi.getProductionData(projectFlockId) + ); + + if (isLoading) { + return ( +
+ +
+ ); + } + + if (!productionData || !isResponseSuccess(productionData)) { + return ( +
+ Gagal memuat data produksi. +
+ ); + } + + const { purchase, sales, performance, variance } = productionData.data; + + // Helper for consistent row styling + const DataRow = ({ + label, + value, + unit = '', + valueClassName = 'font-bold text-gray-800', + unitClassName = 'text-gray-500 w-12 text-right', + }: { + label: string; + value: string | number; + unit?: string; + valueClassName?: string; + unitClassName?: string; + }) => ( +
+ {label} +
+ {value} + {unit && {unit}} +
+
+ ); + + // Helper for rows with two values (e.g., Deplesi: Ekor & %) + const DoubleDataRow = ({ + label, + value1, + unit1, + value2, + unit2, + value1ClassName = 'font-bold text-gray-800', + value2ClassName = 'font-bold text-blue-500', + }: { + label: string; + value1: string | number; + unit1: string; + value2: string | number; + unit2: string; + value1ClassName?: string; + value2ClassName?: string; + }) => ( +
+ {label} +
+
+ {value1} + {unit1} +
+
+ {value2} + {unit2} +
+
+
+ ); + + return ( +
+

Data Produksi

+ +
+ {/* Left Column */} +
+ {/* Purchase Section */} +
+

+ Pembelian +

+
+ + + + + + +
+
+ + {/* Sales Section */} +
+

+ Penjualan +

+
+ + + + +
+
+
+ + {/* Divider Line (Absolute centered) */} +
+ + {/* Right Column */} +
+ {/* Performance Section */} +
+

+ Performance +

+
+ + + + + + + + + + +
+
+ + {/* Variance Section (Pushed to bottom) */} +
+

Selisih

+
+ + + +
+
+
+
+
+ ); +}; + +export default ClosingProductionDataTabContent; From 1567a4016f937d754a6107c033e3a2c970323a7e Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Tue, 9 Dec 2025 15:55:32 +0700 Subject: [PATCH 04/89] feat(FE-347): use ClosingProductionDataTabContent in dataProduksi tab --- src/components/pages/closing/ClosingDetail.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/components/pages/closing/ClosingDetail.tsx b/src/components/pages/closing/ClosingDetail.tsx index 147b3fbd..f917cfd8 100644 --- a/src/components/pages/closing/ClosingDetail.tsx +++ b/src/components/pages/closing/ClosingDetail.tsx @@ -6,9 +6,10 @@ import { Icon } from '@iconify/react'; import Button from '@/components/Button'; import Tabs from '@/components/Tabs'; import ClosingGeneralInformationTable from '@/components/pages/closing/ClosingGeneralInformationTable'; +import ClosingSapronakTabContent from '@/components/pages/closing/ClosingSapronakTabContent'; +import ClosingProductionDataTabContent from '@/components/pages/closing/ClosingProductionDataTabContent'; import { ClosingGeneralInformation } from '@/types/api/closing'; -import ClosingSapronakTabContent from './ClosingSapronakTabContent'; interface ClosingDetailProps { id: number; @@ -48,7 +49,7 @@ const ClosingDetail: React.FC = ({ id, initialValue }) => { { id: 'dataProduksi', label: 'Data Produksi', - content: 'Data Produksi', + content: , }, { id: 'keuangan', From 4ea56f2e18eeebe39aafa3cf5682403891b7d2ad Mon Sep 17 00:00:00 2001 From: randy-ar Date: Thu, 11 Dec 2025 01:20:48 +0700 Subject: [PATCH 05/89] fix(FE): fixing closing button project flock --- .../closing/ProjectFlockClosingForm.tsx | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/components/pages/production/project-flock/closing/ProjectFlockClosingForm.tsx b/src/components/pages/production/project-flock/closing/ProjectFlockClosingForm.tsx index 26072927..8caaf216 100644 --- a/src/components/pages/production/project-flock/closing/ProjectFlockClosingForm.tsx +++ b/src/components/pages/production/project-flock/closing/ProjectFlockClosingForm.tsx @@ -21,6 +21,7 @@ import { useMemo, useState } from 'react'; import toast from 'react-hot-toast'; import { useRouter } from 'next/navigation'; import { ProductWarehouse } from '@/types/api/inventory/product-warehouse'; +import { ApprovalApi } from '@/services/api/approval'; const ProjectFlockClosingForm = ({ projectFlock, @@ -31,7 +32,7 @@ const ProjectFlockClosingForm = ({ }) => { const router = useRouter(); const closeModal = useModal(); - const isCanClose = projectFlock.approval?.step_number <= 2; + const [isClosingLoading, setIsClosingLoading] = useState(false); const { data: closingData, isLoading } = useSWR( @@ -39,19 +40,35 @@ const ProjectFlockClosingForm = ({ () => ProjectFlockKandangApi.checkClosing(projectFlockKandang.id) ); + const { data: projectFlockKandangApprovals } = useSWR( + `${ApprovalApi.basePath}?module_name=PROJECT_FLOCK_KANDANGS&module_id=${projectFlockKandang.id}`, + () => + ApprovalApi.getAllFetcher( + `${ApprovalApi.basePath}?module_name=PROJECT_FLOCK_KANDANGS&module_id=${projectFlockKandang.id}` + ) + ); + + const isCanClose = useMemo(() => { + return isResponseSuccess(projectFlockKandangApprovals) + ? projectFlockKandangApprovals?.data?.[0]?.step_number <= 2 + : true; + }, [projectFlockKandangApprovals]); + const confirmationModalCloseClickHandler = async () => { setIsClosingLoading(true); const deleteProjectFlockRes = await ProjectFlockKandangApi.closing( projectFlockKandang?.id as number, { - closed_date: formatDate(new Date(), 'YYYY-MM-DD'), + closed_date: isCanClose ? formatDate(new Date(), 'YYYY-MM-DD') : '', action: isCanClose ? 'close' : 'unclose', } ); if (isResponseSuccess(deleteProjectFlockRes)) { toast.success(deleteProjectFlockRes?.message as string); - router.push(`/production/project-flock`); + router.push( + `/production/project-flock/detail?projectFlockId=${projectFlock.id}` + ); } if (isResponseError(deleteProjectFlockRes)) { toast.error(deleteProjectFlockRes?.message as string); From 48c163c1cd7f4c7e17090a08aba0c5ef8c7cf525 Mon Sep 17 00:00:00 2001 From: randy-ar Date: Thu, 11 Dec 2025 14:00:46 +0700 Subject: [PATCH 06/89] fix(FE): remove pengajuan from project flock kandang approval lines --- src/config/approval-line.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/config/approval-line.ts b/src/config/approval-line.ts index 5333c016..fad098eb 100644 --- a/src/config/approval-line.ts +++ b/src/config/approval-line.ts @@ -16,10 +16,10 @@ export const PROJECT_FLOCK_APPROVAL_LINE: ApprovalLine = [ ] as const; export const PROJECT_FLOCK_KANDANGS_APPROVAL_LINE: ApprovalLine = [ - { - step_number: 1, - step_name: 'Pengajuan', - }, + // { + // step_number: 1, + // step_name: 'Pengajuan', + // }, { step_number: 2, step_name: 'Disetujui', From d0abc0e9ff1df5235c147691f7c48d653cb47506 Mon Sep 17 00:00:00 2001 From: randy-ar Date: Thu, 11 Dec 2025 14:35:27 +0700 Subject: [PATCH 07/89] fix(FE): adjust inventory adjustment and inventory product table --- .../adjustment/InventoryAdjustmentTable.tsx | 46 ++++++++----------- .../form/InventoryAdjustmentForm.tsx | 30 +----------- .../product/detail/InventoryProductDetail.tsx | 8 +++- .../product/detail/StockLogTable.tsx | 10 +++- src/types/api/inventory/adjustment.d.ts | 6 +-- 5 files changed, 38 insertions(+), 62 deletions(-) diff --git a/src/components/pages/inventory/adjustment/InventoryAdjustmentTable.tsx b/src/components/pages/inventory/adjustment/InventoryAdjustmentTable.tsx index 30807d1c..a3de8a34 100644 --- a/src/components/pages/inventory/adjustment/InventoryAdjustmentTable.tsx +++ b/src/components/pages/inventory/adjustment/InventoryAdjustmentTable.tsx @@ -1,5 +1,6 @@ 'use client'; +import Badge from '@/components/Badge'; import Button from '@/components/Button'; import SelectInput, { OptionType } from '@/components/input/SelectInput'; import Table from '@/components/Table'; @@ -77,46 +78,39 @@ const InventoryAdjustmentTable = () => { year: 'numeric', }), }, - { - id: 'before_quantity', - header: 'Stok Sebelum', - accessorFn: (row) => formatNumber(String(row.before_quantity)), - }, - { - id: 'after_quantity', - header: 'Stok Sesudah', - accessorFn: (row) => formatNumber(String(row.after_quantity)), - }, + // { + // id: 'before_quantity', + // header: 'Stok Sebelum', + // accessorFn: (row) => + // formatNumber(String(row.product_warehouse?.quantity)), + // }, + // { + // id: 'after_quantity', + // header: 'Stok Sesudah', + // accessorFn: (row) => + // formatNumber(String(row.product_warehouse?.quantity)), + // }, { id: 'quantity', header: 'Kuantitas', - accessorFn: (row) => formatNumber(String(row.quantity)), + accessorFn: (row) => formatNumber(String(row.increase + row.decrease)), }, { id: 'transaction_type', header: 'Tipe Transaksi', accessorFn: (row) => { - if (row.transaction_type === 'INCREASE') return 'Peningkatan'; - if (row.transaction_type === 'DECREASE') return 'Penurunan'; + if (row.increase > 0) return 'Peningkatan'; + if (row.decrease > 0) return 'Penurunan'; return '-'; }, cell: (props) => { - const type = props.row.original.transaction_type; - const label = - type === 'INCREASE' - ? 'Peningkatan' - : type === 'DECREASE' - ? 'Penurunan' - : '-'; + const type = props.row.original.increase; + const label = type > 0 ? 'Peningkatan' : type <= 0 ? 'Penurunan' : '-'; return ( -
+ 0 ? 'success' : 'error'}> {label} -
+ ); }, }, diff --git a/src/components/pages/inventory/adjustment/form/InventoryAdjustmentForm.tsx b/src/components/pages/inventory/adjustment/form/InventoryAdjustmentForm.tsx index 2c6c463c..f134369e 100644 --- a/src/components/pages/inventory/adjustment/form/InventoryAdjustmentForm.tsx +++ b/src/components/pages/inventory/adjustment/form/InventoryAdjustmentForm.tsx @@ -76,7 +76,7 @@ const InventoryAdjustmentForm = ({ product_category: undefined, product: undefined, warehouse: undefined, - quantity: initialValues?.quantity ?? 0, + quantity: initialValues?.increase ?? initialValues?.decrease ?? 0, transaction_type: undefined, note: initialValues?.note ?? '', }; @@ -214,16 +214,8 @@ const InventoryAdjustmentForm = ({ 'quantity', initialValues.product_warehouse.quantity ); - formik.setFieldValue( - 'transaction_type', - initialValues.transaction_type.toLowerCase() - ); formik.setFieldValue('note', initialValues.note); } - if (initialValues?.transaction_type) { - const type = initialValues.transaction_type.toLowerCase(); - setQuantityLabel(type === 'increase' ? 'Tambah Stok' : 'Kurangi Stok'); - } }, [ formik, initialValues, @@ -278,26 +270,6 @@ const InventoryAdjustmentForm = ({ className='w-full mt-8 flex flex-col gap-6' >
- {/* Text Input Before Quantity */} - {type === 'detail' && initialValues && ( - <> - - - - )} - {/* Select Input Product Category */} { const stockLogs = useMemo(() => { return ( - inventoryProduct?.product_warehouses?.flatMap( - (warehouse) => warehouse.stock_logs || [] + inventoryProduct?.product_warehouses?.flatMap((warehouse) => + warehouse.stock_logs.map((log) => ({ + ...log, + warehouse_name: warehouse.warehouse_name, + warehouse_id: warehouse.warehouse_id, + })) ) || [] ); }, [inventoryProduct]); diff --git a/src/components/pages/inventory/product/detail/StockLogTable.tsx b/src/components/pages/inventory/product/detail/StockLogTable.tsx index 42f7bc29..96d3dda6 100644 --- a/src/components/pages/inventory/product/detail/StockLogTable.tsx +++ b/src/components/pages/inventory/product/detail/StockLogTable.tsx @@ -3,7 +3,11 @@ import Table from '@/components/Table'; import { formatDate, formatNumber, formatTitleCase } from '@/lib/helper'; import { StockLog } from '@/types/api/inventory/product'; -const StockLogTable = ({ stockLogs }: { stockLogs: StockLog[] }) => { +const StockLogTable = ({ + stockLogs, +}: { + stockLogs: (StockLog & { warehouse_name: string; warehouse_id: number })[]; +}) => { return ( { return formatDate(props.row.original.created_at, 'DD-MMM-yyyy'); }, }, + { + header: 'Gudang', + accessorKey: 'warehouse_name', + }, { header: 'Peningkatan', accessorKey: 'increase', diff --git a/src/types/api/inventory/adjustment.d.ts b/src/types/api/inventory/adjustment.d.ts index d6c0e078..90ef8ff8 100644 --- a/src/types/api/inventory/adjustment.d.ts +++ b/src/types/api/inventory/adjustment.d.ts @@ -4,10 +4,8 @@ import { BaseMetadata } from '@/types/api/api-general'; export type BaseInventoryAdjustment = { id: number; - transaction_type: string; - quantity: number; - before_quantity: number; - after_quantity: number; + increase: number; + decrease: number; note: string; product_warehouse_id: number; product_warehouse: { From 9c0939567747eb915d6baa6b7a8b4215ad23dd0e Mon Sep 17 00:00:00 2001 From: randy-ar Date: Thu, 11 Dec 2025 18:23:55 +0700 Subject: [PATCH 08/89] feat(FE-338): Slicing UI Halaman Reporting BOP & API integration & refactor debounce input: adding useEffect for sync value --- src/app/report/expense/detail/layout.tsx | 11 + src/app/report/expense/detail/page.tsx | 5 + src/app/report/expense/page.tsx | 52 ++ src/components/input/DebouncedTextInput.tsx | 5 + .../report/expense/ReportExpenseTable.tsx | 346 ++++++++++ .../expense/pdf/ReportExpenseExport.tsx | 420 ++++++++++++ .../pdf/styles/ReportExpenseStyles.tsx | 212 ++++++ src/config/constant.ts | 11 + src/dummy/report/expense.dummy.ts | 627 ++++++++++++++++++ src/services/api/report.ts | 49 ++ src/types/api/report/report-expense.d.ts | 57 ++ 11 files changed, 1795 insertions(+) create mode 100644 src/app/report/expense/detail/layout.tsx create mode 100644 src/app/report/expense/detail/page.tsx create mode 100644 src/app/report/expense/page.tsx create mode 100644 src/components/pages/report/expense/ReportExpenseTable.tsx create mode 100644 src/components/pages/report/expense/pdf/ReportExpenseExport.tsx create mode 100644 src/components/pages/report/expense/pdf/styles/ReportExpenseStyles.tsx create mode 100644 src/dummy/report/expense.dummy.ts create mode 100644 src/services/api/report.ts create mode 100644 src/types/api/report/report-expense.d.ts diff --git a/src/app/report/expense/detail/layout.tsx b/src/app/report/expense/detail/layout.tsx new file mode 100644 index 00000000..7220dfa1 --- /dev/null +++ b/src/app/report/expense/detail/layout.tsx @@ -0,0 +1,11 @@ +import SuspenseHelper from '@/components/helper/SuspenseHelper'; + +const Layout = ({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) => { + return {children}; +}; + +export default Layout; diff --git a/src/app/report/expense/detail/page.tsx b/src/app/report/expense/detail/page.tsx new file mode 100644 index 00000000..f7ae906e --- /dev/null +++ b/src/app/report/expense/detail/page.tsx @@ -0,0 +1,5 @@ +const ReportExpenseDetail = () => { + return
ReportExpenseDetail
; +}; + +export default ReportExpenseDetail; diff --git a/src/app/report/expense/page.tsx b/src/app/report/expense/page.tsx new file mode 100644 index 00000000..6645458b --- /dev/null +++ b/src/app/report/expense/page.tsx @@ -0,0 +1,52 @@ +'use client'; + +import { useState } from 'react'; +import useSWR from 'swr'; +import ReportExpenseTable from '@/components/pages/report/expense/ReportExpenseTable'; +import { ReportExpenseApi } from '@/services/api/report'; +import { isResponseSuccess } from '@/lib/api-helper'; +import { ReportExpenseSearchParams } from '@/types/api/report/report-expense'; + +const ReportExpense = () => { + const [params, setParams] = useState({ + locationId: null, + supplierId: null, + kandangId: null, + startDate: null, + endDate: null, + category: null, + period: '', + search: '', + }); + + const reportUrl = `${ReportExpenseApi.basePath}?${new URLSearchParams({ + location_id: params.locationId ?? '', + supplier_id: params.supplierId ?? '', + kandang_id: params.kandangId ?? '', + start_date: params.startDate ?? '', + end_date: params.endDate ?? '', + category: params.category ?? '', + period: params.period.toString(), + search: params.search, + })}`; + const { data: reportExpenses } = useSWR(reportUrl, () => + ReportExpenseApi.getAllFetcher(reportUrl) + ); + + const onSearch = (searchParams: ReportExpenseSearchParams) => { + setParams(searchParams); + }; + + return ( +
+ +
+ ); +}; + +export default ReportExpense; diff --git a/src/components/input/DebouncedTextInput.tsx b/src/components/input/DebouncedTextInput.tsx index 4b62aaf7..d52ab72e 100644 --- a/src/components/input/DebouncedTextInput.tsx +++ b/src/components/input/DebouncedTextInput.tsx @@ -24,6 +24,11 @@ const DebouncedTextInput = (props: DebouncedTextInputProps) => { setInternalChangeEvent(e); }; + // Sync internal value with external value prop changes (e.g., from reset) + useEffect(() => { + setInternalValue(props.value); + }, [props.value]); + useEffect(() => { if (debouncedChangeEvent) { onChange?.(debouncedChangeEvent); diff --git a/src/components/pages/report/expense/ReportExpenseTable.tsx b/src/components/pages/report/expense/ReportExpenseTable.tsx new file mode 100644 index 00000000..8ef66bb3 --- /dev/null +++ b/src/components/pages/report/expense/ReportExpenseTable.tsx @@ -0,0 +1,346 @@ +import Badge from '@/components/Badge'; +import Button from '@/components/Button'; +import Card from '@/components/Card'; +import DateInput from '@/components/input/DateInput'; +import DebouncedTextInput from '@/components/input/DebouncedTextInput'; +import NumberInput from '@/components/input/NumberInput'; +import SelectInput, { + OptionType, + useSelect, +} from '@/components/input/SelectInput'; +import ExpenseStatusBadge from '@/components/pages/expense/ExpenseStatusBadge'; +import RealizationStatusBadge from '@/components/pages/expense/RealizationStatusBadge'; +import Table, { TABLE_DEFAULT_STYLING } from '@/components/Table'; +import { cn, formatCurrency, formatDate } from '@/lib/helper'; +import { ReportExpense } from '@/types/api/report/report-expense'; +import { Icon } from '@iconify/react'; +import { ColumnDef } from '@tanstack/react-table'; +import { useMemo, useState } from 'react'; +import ReportExpenseExport from '@/components/pages/report/expense/pdf/ReportExpenseExport'; + +const ReportExpenseTable = ({ + reportExpenses, + onSearch, +}: { + reportExpenses: ReportExpense[]; + onSearch: (params: { + locationId: string | null; + supplierId: string | null; + kandangId: string | null; + startDate: string | null; + endDate: string | null; + category: string | null; + period: string | number; + search: string; + }) => void; +}) => { + const [selectedLocation, setSelectedLocation] = useState( + null + ); + const [selectedSupplier, setSelectedSupplier] = useState( + null + ); + const [selectedCategory, setSelectedCategory] = useState( + null + ); + const [selectedKandang, setSelectedKandang] = useState( + null + ); + const [search, setSearch] = useState(''); + const [startDate, setStartDate] = useState(null); + const [endDate, setEndDate] = useState(null); + const [period, setPeriod] = useState(''); + + const { options: optionsLocation, isLoadingOptions: isLoadingLocation } = + useSelect(`/master-data/locations`, 'id', 'name'); + const { options: optionsSupplier, isLoadingOptions: isLoadingSupplier } = + useSelect(`/master-data/suppliers`, 'id', 'name'); + const { options: optionsKandang, isLoadingOptions: isLoadingKandang } = + useSelect(`/master-data/kandangs`, 'id', 'name', '', { + location_id: selectedLocation?.value.toString() || '', + }); + + const columns = useMemo((): ColumnDef[] => { + return [ + { + header: 'No', + accessorFn: (_, index) => index + 1, + }, + { + header: 'No. PO', + accessorKey: 'po_number', + }, + { + header: 'No. Referensi', + accessorKey: 'reference_number', + }, + { + header: 'Tanggal Realisasi', + accessorKey: 'realization_date', + cell: ({ row }) => { + return formatDate(row.original.realization_date, 'DD MMM, YYYY'); + }, + }, + { + header: 'Tanggal Transaksi', + accessorKey: 'transaction_date', + cell: ({ row }) => { + return formatDate(row.original.transaction_date, 'DD MMM, YYYY'); + }, + }, + { + header: 'Kategori', + accessorKey: 'category', + }, + { + header: 'Supplier', + accessorFn: (row) => row.supplier.name, + }, + { + header: 'Lokasi', + accessorFn: (row) => row.location.name, + }, + { + header: 'Kandang', + accessorFn: (row) => row.kandang.name, + }, + { + header: 'Pengajuan', + columns: [ + { + header: 'Qty', + id: 'qty_pengajuan', + accessorFn: (row) => row.pengajuan.qty, + cell: ({ row }) => + row.original.pengajuan.qty.toLocaleString('id-ID'), + }, + { + header: 'Harga', + id: 'harga_pengajuan', + accessorFn: (row) => row.pengajuan.price, + cell: ({ row }) => formatCurrency(row.original.pengajuan.price), + }, + { + header: 'Total', + id: 'total_pengajuan', + accessorFn: (row) => row.pengajuan.qty * row.pengajuan.price, + cell: ({ row }) => { + const total = + row.original.pengajuan.qty * row.original.pengajuan.price; + return formatCurrency(total); + }, + }, + ], + }, + { + header: 'Realisasi', + columns: [ + { + header: 'Qty', + id: 'qty_realisasi', + accessorFn: (row) => row.realisasi.qty, + cell: ({ row }) => + row.original.realisasi.qty.toLocaleString('id-ID'), + }, + { + header: 'Harga', + id: 'harga_realisasi', + accessorFn: (row) => row.realisasi.price, + cell: ({ row }) => formatCurrency(row.original.realisasi.price), + }, + { + header: 'Total', + id: 'total_realisasi', + accessorFn: (row) => row.realisasi.qty * row.realisasi.price, + cell: ({ row }) => { + const total = + row.original.realisasi.qty * row.original.realisasi.price; + return formatCurrency(total); + }, + }, + ], + }, + { + header: 'Status Pencairan', + cell: (props) => ( + + ), + }, + { + header: 'Status BOP', + cell: (props) => ( + + ), + }, + ]; + }, []); + + // Handle Search + const handleSearch = () => { + onSearch({ + search, + period, + startDate, + endDate, + locationId: selectedLocation?.value.toString() ?? '', + kandangId: selectedKandang?.value.toString() ?? '', + supplierId: selectedSupplier?.value.toString() ?? '', + category: selectedCategory?.value.toString() ?? '', + }); + }; + const handleSearchInput = (e: React.ChangeEvent) => { + setSearch(e.target.value); + onSearch({ + search: e.target.value, + period, + startDate, + endDate, + locationId: selectedLocation?.value.toString() ?? '', + kandangId: selectedKandang?.value.toString() ?? '', + supplierId: selectedSupplier?.value.toString() ?? '', + category: selectedCategory?.value.toString() ?? '', + }); + }; + const handleReset = () => { + setSearch(''); + setPeriod(''); + setStartDate(''); + setEndDate(''); + setSelectedLocation(null); + setSelectedKandang(null); + setSelectedSupplier(null); + setSelectedCategory(null); + onSearch({ + search: '', + period: '', + startDate: '', + endDate: '', + locationId: '', + kandangId: '', + supplierId: '', + category: '', + }); + }; + + return ( +
+ +
+ +
+
+ + +
+
+ } + > +
+ { + setSelectedLocation(option as OptionType); + setSelectedKandang(null); + }} + /> + setSelectedKandang(option as OptionType)} + /> + setSelectedSupplier(option as OptionType)} + /> + setSelectedCategory(option as OptionType)} + /> + setPeriod(e.target.value)} + name='periode' + placeholder='Periode' + /> + setStartDate(e.target.value)} + name='start_date' + placeholder='Tanggal Mulai' + /> + setEndDate(e.target.value)} + name='end_date' + placeholder='Tanggal Selesai' + /> + } + /> +
+
+ + columns={columns} + data={reportExpenses} + className={{ + headerRowClassName: cn(TABLE_DEFAULT_STYLING, 'whitespace-nowrap'), + bodyRowClassName: cn(TABLE_DEFAULT_STYLING, 'whitespace-nowrap'), + }} + /> +
+ ); +}; + +export default ReportExpenseTable; diff --git a/src/components/pages/report/expense/pdf/ReportExpenseExport.tsx b/src/components/pages/report/expense/pdf/ReportExpenseExport.tsx new file mode 100644 index 00000000..b04b10bb --- /dev/null +++ b/src/components/pages/report/expense/pdf/ReportExpenseExport.tsx @@ -0,0 +1,420 @@ +import Button from '@/components/Button'; +import { ReportExpense } from '@/types/api/report/report-expense'; +import { Icon } from '@iconify/react'; +import { Document, Image, Page, pdf, Text, View } from '@react-pdf/renderer'; +import { useMemo, useState } from 'react'; +import { formatCurrency, formatDate } from '@/lib/helper'; +import pdfStyles from '@/components/pages/report/expense/pdf/styles/ReportExpenseStyles'; +import toast from 'react-hot-toast'; + +interface ReportExpenseExportProps { + data: ReportExpense[]; + className?: string; +} + +const ReportExpenseExport = ({ data }: ReportExpenseExportProps) => { + const [isGeneratingPDF, setIsGeneratingPDF] = useState(false); + + const handleDownloadPDF = async () => { + if (!data || data.length === 0) { + toast.error('No report expense data available'); + return; + } + setIsGeneratingPDF(true); + try { + const blob = await pdf().toBlob(); + const url = URL.createObjectURL(blob); + const link = document.createElement('a'); + link.href = url; + link.download = `Laporan-BOP-${formatDate(new Date(), 'DD-MMM-YYYY')}.pdf`; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + URL.revokeObjectURL(url); + } catch (error) { + toast.error('Failed to generate PDF. Please try again.'); + return error; + } finally { + setIsGeneratingPDF(false); + } + }; + + return ( + + ); +}; + +export default ReportExpenseExport; + +const PDFDocument = ({ data }: { data: ReportExpense[] }) => { + // Group data by supplier + const groupedBySupplier = useMemo(() => { + const groups: Record = {}; + data.forEach((item) => { + const supplierName = item.supplier.name; + if (!groups[supplierName]) { + groups[supplierName] = []; + } + groups[supplierName].push(item); + }); + return groups; + }, [data]); + + // Calculate grand totals + const grandTotals = useMemo(() => { + return data.reduce( + (acc, item) => { + const pengajuanTotal = item.pengajuan.qty * item.pengajuan.price; + const realisasiTotal = item.realisasi.qty * item.realisasi.price; + return { + pengajuan: acc.pengajuan + pengajuanTotal, + realisasi: acc.realisasi + realisasiTotal, + }; + }, + { pengajuan: 0, realisasi: 0 } + ); + }, [data]); + + return ( + + + {/* Header Section */} + + + PT LUMBUNG TELUR INDONESIA + + SOHO Building Lt.3 (Paris Van Java), Jalan Karang Tinggal, Kel. + Cipedes, Kec. Sukajadi, Kota Bandung 40162 + + + + + {/* Report Title */} + + LAPORAN BIAYA OPERASIONAL + + Tanggal Cetak: {formatDate(new Date(), 'DD MMM YYYY')} + Total Data: {data.length} transaksi + + + + {/* Grouped Tables by Supplier */} + {Object.entries(groupedBySupplier).map( + ([supplierName, items], groupIndex) => { + const supplierTotals = items.reduce( + (acc, item) => { + const pengajuanTotal = + item.pengajuan.qty * item.pengajuan.price; + const realisasiTotal = + item.realisasi.qty * item.realisasi.price; + return { + pengajuan: acc.pengajuan + pengajuanTotal, + realisasi: acc.realisasi + realisasiTotal, + }; + }, + { pengajuan: 0, realisasi: 0 } + ); + + return ( + + {/* Supplier Header */} + {supplierName} + + {/* Table */} + + {/* Table Header */} + + + No + + + No. PO + + + No. Referensi + + + Tgl Realisasi + + + Tgl Transaksi + + + Kategori + + + Lokasi + + + Kandang + + + Qty Pengajuan + + + Harga Pengajuan + + + Total Pengajuan + + + Qty Realisasi + + + Harga Realisasi + + + Total Realisasi + + + Status Pencairan + + + Status BOP + + + + {/* Table Body */} + {items.map((item, index) => { + const pengajuanTotal = + item.pengajuan.qty * item.pengajuan.price; + const realisasiTotal = + item.realisasi.qty * item.realisasi.price; + + return ( + + + {index + 1} + + + {item.po_number} + + + {item.reference_number} + + + + {formatDate(item.realization_date, 'DD MMM YY')} + + + + + {formatDate(item.transaction_date, 'DD MMM YY')} + + + + {item.category} + + + {item.location.name} + + + {item.kandang.name} + + + + {item.pengajuan.qty.toLocaleString('id-ID')} + + + + {formatCurrency(item.pengajuan.price)} + + + {formatCurrency(pengajuanTotal)} + + + + {item.realisasi.qty.toLocaleString('id-ID')} + + + + {formatCurrency(item.realisasi.price)} + + + {formatCurrency(realisasiTotal)} + + + + {item.latest_approval.step_number === 3 + ? 'Lunas' + : 'Belum Lunas'} + + + + + {item.latest_approval.action} + + + + ); + })} + + {/* Supplier Subtotal Row */} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Subtotal + + + + {formatCurrency(supplierTotals.pengajuan)} + + + + + + + Subtotal + + + + {formatCurrency(supplierTotals.realisasi)} + + + + + + + + + + + + ); + } + )} + + {/* Grand Total Section */} + + + + + + GRAND TOTAL PENGAJUAN + + + + + {formatCurrency(grandTotals.pengajuan)} + + + + + + + GRAND TOTAL REALISASI + + + + + {formatCurrency(grandTotals.realisasi)} + + + + + + + {/* Footer */} + + + PT LUMBUNG TELUR INDONESIA + + + + + ); +}; diff --git a/src/components/pages/report/expense/pdf/styles/ReportExpenseStyles.tsx b/src/components/pages/report/expense/pdf/styles/ReportExpenseStyles.tsx new file mode 100644 index 00000000..ab7afb1a --- /dev/null +++ b/src/components/pages/report/expense/pdf/styles/ReportExpenseStyles.tsx @@ -0,0 +1,212 @@ +import { StyleSheet } from '@react-pdf/renderer'; + +const pdfStyles = StyleSheet.create({ + page: { + fontSize: 18, + fontFamily: 'Helvetica', + padding: 20, + backgroundColor: '#FFFFFF', + }, + header: { + marginBottom: 20, + }, + logo: { + width: 120, + height: 30, + marginBottom: 8, + }, + companyInfo: { + fontSize: 18, + fontWeight: 'bold', + marginBottom: 4, + color: '#1f74bf', + }, + address: { + fontSize: 7, + color: '#666666', + maxWidth: 400, + marginBottom: 10, + }, + divider: { + borderBottomWidth: 1, + borderBottomColor: '#000000', + borderBottomStyle: 'solid', + marginBottom: 15, + }, + titleSection: { + flexDirection: 'row', + marginBottom: 20, + justifyContent: 'space-between', + alignItems: 'flex-start', + }, + title: { + fontSize: 18, + fontWeight: 'bold', + flex: 3, + color: '#1f74bf', + }, + poInfo: { + flex: 1, + fontSize: 7, + textAlign: 'right', + }, + sectionTitle: { + fontSize: 14, + fontWeight: 'bold', + marginBottom: 8, + color: '#1f74bf', + }, + table: { + borderWidth: 1, + borderColor: '#000000', + marginBottom: 15, + }, + tableRow: { + flexDirection: 'row', + }, + tableHeader: { + backgroundColor: '#F5F5F5', + }, + tableCell: { + flex: 1, + borderRightWidth: 1, + borderRightColor: '#000000', + borderRightStyle: 'solid', + padding: 3, + fontSize: 7, + }, + tableCellLast: { + flex: 1, + padding: 3, + fontSize: 7, + }, + tableCellHeader: { + flex: 1, + borderRightWidth: 1, + borderRightColor: '#000000', + borderRightStyle: 'solid', + padding: 3, + fontSize: 7, + fontWeight: 'bold', + backgroundColor: '#F5F5F5', + }, + tableCellHeaderLast: { + flex: 1, + padding: 3, + fontSize: 7, + fontWeight: 'bold', + backgroundColor: '#F5F5F5', + }, + tableCellRight: { + flex: 1, + borderRightWidth: 1, + borderRightColor: '#000000', + borderRightStyle: 'solid', + padding: 3, + fontSize: 7, + textAlign: 'right', + }, + tableCellRightLast: { + flex: 1, + padding: 3, + fontSize: 7, + textAlign: 'right', + }, + tableBorderBottom: { + borderBottomWidth: 1, + borderBottomColor: '#000000', + borderBottomStyle: 'solid', + }, + grandTotalRow: { + flexDirection: 'row', + borderTopWidth: 1, + borderTopColor: '#000000', + borderTopStyle: 'solid', + }, + grandTotalLabel: { + flex: 3, + padding: 3, + fontSize: 7, + fontWeight: 'bold', + textAlign: 'right', + borderRightWidth: 1, + borderRightColor: '#000000', + borderRightStyle: 'solid', + }, + grandTotalValue: { + flex: 1, + padding: 3, + fontSize: 7, + fontWeight: 'bold', + textAlign: 'right', + borderRightWidth: 0, + }, + allocationSection: { + marginBottom: 15, + }, + allocationTable: { + borderWidth: 1, + borderColor: '#000000', + }, + innerTable: { + marginTop: 5, + borderWidth: 1, + borderColor: '#000000', + }, + innerRow: { + flexDirection: 'row', + borderBottomWidth: 1, + borderBottomColor: '#000000', + borderBottomStyle: 'solid', + }, + innerCell: { + flex: 1, + borderRightWidth: 1, + borderRightColor: '#000000', + borderRightStyle: 'solid', + padding: 3, + fontSize: 7, + }, + innerCellLast: { + flex: 1, + padding: 3, + fontSize: 7, + }, + innerCellRight: { + flex: 1, + borderRightWidth: 1, + borderRightColor: '#000000', + borderRightStyle: 'solid', + padding: 3, + fontSize: 7, + textAlign: 'right', + }, + innerCellRightLast: { + flex: 1, + padding: 3, + fontSize: 7, + textAlign: 'right', + }, + footer: { + marginTop: 30, + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'flex-start', + }, + footerCompany: { + fontSize: 18, + fontWeight: 'bold', + textAlign: 'right', + flex: 1, + color: '#1f74bf', + }, + specialInstructionTable: { + width: '60%', + maxWidth: 300, + borderWidth: 1, + borderColor: '#000000', + flex: 1, + }, +}); + +export default pdfStyles; diff --git a/src/config/constant.ts b/src/config/constant.ts index 96fc8401..844b0d62 100644 --- a/src/config/constant.ts +++ b/src/config/constant.ts @@ -6,6 +6,17 @@ export const MAIN_DRAWER_LINKS: SidebarMenuItem[] = [ link: '/dashboard', icon: 'heroicons-outline:chart-bar-square', }, + { + text: 'Laporan', + link: '/report', + icon: 'heroicons-outline:clipboard', + submenu: [ + { + text: 'Biaya Operasional', + link: '/report/expense', + }, + ], + }, { text: 'Produksi', link: '/production', diff --git a/src/dummy/report/expense.dummy.ts b/src/dummy/report/expense.dummy.ts new file mode 100644 index 00000000..f802b336 --- /dev/null +++ b/src/dummy/report/expense.dummy.ts @@ -0,0 +1,627 @@ +/** + * Dummy Data untuk Report Expense API + * + * File ini berisi dummy data untuk testing Report Expense API sebelum backend siap. + * + * Struktur data mengikuti tipe yang didefinisikan di @/types/api/report/report-expense.d.ts + * + * @example + * // Menggunakan getAllFetcher dengan SWR: + * import useSWR from 'swr'; + * import { ReportExpenseApi } from '@/services/api/report'; + * + * const { data, error, isLoading } = useSWR( + * ReportExpenseApi.basePath, + * ReportExpenseApi.getAllFetcher + * ); + * + * if (data?.status === 'success') { + * console.log(data.data); // Array of ReportExpense objects + * } + * + * @see {@link /home/sweetpotet/Documents/projects/lti-web-client/src/types/api/report/report-expense.d.ts} + */ + +import { format } from 'date-fns'; +import { + Pengajuan, + Realisasi, + ReportExpense, +} from '@/types/api/report/report-expense'; +import { BaseApiResponse, CreatedUser } from '@/types/api/api-general'; +import { Supplier } from '@/types/api/master-data/supplier'; +import { Location } from '@/types/api/master-data/location'; +import { Nonstock } from '@/types/api/master-data/nonstock'; +import { Kandang } from '@/types/api/master-data/kandang'; + +// Waktu saat ini untuk created_at/updated_at +const now = format(new Date(), 'yyyy-MM-dd HH:mm:ss'); +const today = format(new Date(), 'yyyy-MM-dd'); +const yesterday = format( + new Date(new Date().setDate(new Date().getDate() - 1)), + 'yyyy-MM-dd' +); +const lastWeek = format( + new Date(new Date().setDate(new Date().getDate() - 7)), + 'yyyy-MM-dd' +); +const lastMonth = format( + new Date(new Date().setMonth(new Date().getMonth() - 1)), + 'yyyy-MM-dd' +); + +// ====================== +// 👤 Created User +// ====================== +const createdUser: CreatedUser = { + id: 1, + id_user: 1, + email: 'admin@example.com', + name: 'Admin Utama', +}; + +// ====================== +// 🏢 Supplier Dummy Data +// ====================== +const dummySuppliers: Supplier[] = [ + { + id: 1, + name: 'PT. Mitra Pakan Sejahtera', + alias: 'MPS', + pic: 'Budi Santoso', + type: 'Pakan', + category: 'Supplier Utama', + hatchery: '-', + phone: '022-1234567', + email: 'info@mitrapakan.com', + address: 'Jl. Raya Industri No. 123, Bandung', + npwp: '01.234.567.8-901.000', + account_number: '1234567890', + due_date: 30, + created_user: createdUser, + created_at: now, + updated_at: now, + }, + { + id: 2, + name: 'CV. Sumber Ternak Jaya', + alias: 'STJ', + pic: 'Siti Rahayu', + type: 'DOC', + category: 'Supplier Utama', + hatchery: 'Hatchery Jaya', + phone: '021-9876543', + email: 'contact@sumberternak.com', + address: 'Jl. Peternakan No. 45, Jakarta', + npwp: '02.345.678.9-012.000', + account_number: '0987654321', + due_date: 45, + created_user: createdUser, + created_at: now, + updated_at: now, + }, + { + id: 3, + name: 'PT. Agro Veteriner Indonesia', + alias: 'AVI', + pic: 'Dr. Ahmad Fauzi', + type: 'OVK', + category: 'Supplier Utama', + hatchery: '-', + phone: '031-5555666', + email: 'sales@agroveteriner.co.id', + address: 'Jl. Kesehatan Hewan No. 78, Surabaya', + npwp: '03.456.789.0-123.000', + account_number: '5678901234', + due_date: 60, + created_user: createdUser, + created_at: now, + updated_at: now, + }, +]; + +// ====================== +// 📍 Location Dummy Data +// ====================== +const dummyLocations: Location[] = [ + { + id: 1, + name: 'Farm Sukajadi', + address: 'Jl. Sukajadi No. 100, Bandung', + area: { + id: 1, + name: 'Bandung Barat', + }, + created_user: createdUser, + created_at: now, + updated_at: now, + }, + { + id: 2, + name: 'Farm Cihampelas', + address: 'Jl. Cihampelas No. 200, Bandung', + area: { + id: 1, + name: 'Bandung Barat', + }, + created_user: createdUser, + created_at: now, + updated_at: now, + }, + { + id: 3, + name: 'Farm Pasteur', + address: 'Jl. Pasteur No. 300, Bandung', + area: { + id: 2, + name: 'Bandung Timur', + }, + created_user: createdUser, + created_at: now, + updated_at: now, + }, +]; + +// ====================== +// 📦 Nonstock Dummy Data +// ====================== +const dummyNonstocks: Nonstock[] = [ + { + id: 1, + name: 'Listrik', + uom_id: 1, + uom: { id: 1, name: 'kWh' }, + suppliers: [], + flags: [], + created_user: createdUser, + created_at: now, + updated_at: now, + }, + { + id: 2, + name: 'Air', + uom_id: 2, + uom: { id: 2, name: 'm³' }, + suppliers: [], + flags: [], + created_user: createdUser, + created_at: now, + updated_at: now, + }, + { + id: 3, + name: 'Bahan Bakar', + uom_id: 3, + uom: { id: 3, name: 'Liter' }, + suppliers: [], + flags: [], + created_user: createdUser, + created_at: now, + updated_at: now, + }, + { + id: 4, + name: 'Pemeliharaan Kandang', + uom_id: 4, + uom: { id: 4, name: 'Unit' }, + suppliers: [], + flags: [], + created_user: createdUser, + created_at: now, + updated_at: now, + }, + { + id: 5, + name: 'Transportasi', + uom_id: 5, + uom: { id: 5, name: 'Trip' }, + suppliers: [], + flags: [], + created_user: createdUser, + created_at: now, + updated_at: now, + }, +]; + +// ====================== +// 🏠 Kandang Dummy Data +// ====================== +const dummyKandangs: Kandang[] = [ + { + id: 1, + name: 'Kandang A1', + status: 'Aktif', + location: dummyLocations[0], + capacity: 5000, + pic: { + id_user: 1, + id: 1, + name: 'Budi Kandang', + email: 'budi@example.com', + }, + created_user: createdUser, + created_at: now, + updated_at: now, + }, + { + id: 2, + name: 'Kandang B1', + status: 'Aktif', + location: dummyLocations[1], + capacity: 4000, + pic: { + id_user: 2, + id: 2, + name: 'Siti Kandang', + email: 'siti@example.com', + }, + created_user: createdUser, + created_at: now, + updated_at: now, + }, + { + id: 3, + name: 'Kandang C1', + status: 'Aktif', + location: dummyLocations[2], + capacity: 6000, + pic: { + id_user: 3, + id: 3, + name: 'Ahmad Kandang', + email: 'ahmad@example.com', + }, + created_user: createdUser, + created_at: now, + updated_at: now, + }, +]; + +// ====================== +// 📋 Pengajuan Dummy Data +// ====================== +const dummyPengajuans: Pengajuan[] = [ + { + id: 1, + expense_id: 1, + project_flock_kandang_id: 1, + kandang_id: 1, + nonstock_id: 1, + qty: 1000, + price: 1500, + notes: 'Pengajuan biaya listrik bulan ini', + nonstock: dummyNonstocks[0], + created_at: now, + }, + { + id: 2, + expense_id: 2, + project_flock_kandang_id: 2, + kandang_id: 2, + nonstock_id: 2, + qty: 500, + price: 5000, + notes: 'Pengajuan biaya air bulan ini', + nonstock: dummyNonstocks[1], + created_at: now, + }, + { + id: 3, + expense_id: 3, + project_flock_kandang_id: 3, + kandang_id: 3, + nonstock_id: 3, + qty: 200, + price: 15000, + notes: 'Pengajuan biaya bahan bakar', + nonstock: dummyNonstocks[2], + created_at: now, + }, + { + id: 4, + expense_id: 4, + project_flock_kandang_id: 1, + kandang_id: 1, + nonstock_id: 4, + qty: 1, + price: 5000000, + notes: 'Pengajuan biaya pemeliharaan kandang', + nonstock: dummyNonstocks[3], + created_at: now, + }, + { + id: 5, + expense_id: 5, + project_flock_kandang_id: 2, + kandang_id: 2, + nonstock_id: 5, + qty: 10, + price: 500000, + notes: 'Pengajuan biaya transportasi', + nonstock: dummyNonstocks[4], + created_at: now, + }, +]; + +// ====================== +// 💰 Realisasi Dummy Data +// ====================== +const dummyRealisasis: Realisasi[] = [ + { + id: 1, + expense_nonstock_id: 1, + qty: 950, + price: 1500, + notes: 'Realisasi biaya listrik aktual', + nonstock: dummyNonstocks[0], + created_at: now, + }, + { + id: 2, + expense_nonstock_id: 2, + qty: 480, + price: 5000, + notes: 'Realisasi biaya air aktual', + nonstock: dummyNonstocks[1], + created_at: now, + }, + { + id: 3, + expense_nonstock_id: 3, + qty: 195, + price: 15000, + notes: 'Realisasi biaya bahan bakar aktual', + nonstock: dummyNonstocks[2], + created_at: now, + }, + { + id: 4, + expense_nonstock_id: 4, + qty: 1, + price: 4800000, + notes: 'Realisasi biaya pemeliharaan kandang', + nonstock: dummyNonstocks[3], + created_at: now, + }, + { + id: 5, + expense_nonstock_id: 5, + qty: 9, + price: 500000, + notes: 'Realisasi biaya transportasi', + nonstock: dummyNonstocks[4], + created_at: now, + }, +]; + +// ====================== +// 📊 Report Expense Dummy Data +// ====================== +export const dummyReportExpenses: ReportExpense[] = [ + { + id: 1, + reference_number: 'EXP-2025-001', + po_number: 'PO-2025-001', + category: 'Utilitas', + supplier: dummySuppliers[0], + realization_date: today, + transaction_date: yesterday, + location: dummyLocations[0], + pengajuan: dummyPengajuans[0], + realisasi: dummyRealisasis[0], + kandang: dummyKandangs[0], + created_at: now, + updated_at: now, + created_user: createdUser, + latest_approval: { + id: 1, + step_number: 1, + step_name: 'Manager Approval', + action: 'PENDING', + notes: '', + action_by: createdUser, + action_at: now, + }, + }, + { + id: 2, + reference_number: 'EXP-2025-002', + po_number: 'PO-2025-002', + category: 'Utilitas', + supplier: dummySuppliers[0], + realization_date: today, + transaction_date: yesterday, + location: dummyLocations[1], + pengajuan: dummyPengajuans[1], + realisasi: dummyRealisasis[1], + kandang: dummyKandangs[1], + created_at: now, + updated_at: now, + created_user: createdUser, + latest_approval: { + id: 2, + step_number: 2, + step_name: 'Finance Approval', + action: 'APPROVED', + notes: 'Disetujui oleh finance', + action_by: createdUser, + action_at: now, + }, + }, + { + id: 3, + reference_number: 'EXP-2025-003', + po_number: 'PO-2025-003', + category: 'Operasional', + supplier: dummySuppliers[1], + realization_date: lastWeek, + transaction_date: lastWeek, + location: dummyLocations[2], + pengajuan: dummyPengajuans[2], + realisasi: dummyRealisasis[2], + kandang: dummyKandangs[2], + created_at: lastWeek, + updated_at: lastWeek, + created_user: createdUser, + latest_approval: { + id: 3, + step_number: 3, + step_name: 'Director Approval', + action: 'APPROVED', + notes: 'Disetujui oleh direktur', + action_by: createdUser, + action_at: lastWeek, + }, + }, + { + id: 4, + reference_number: 'EXP-2025-004', + po_number: 'PO-2025-004', + category: 'Maintenance', + supplier: dummySuppliers[2], + realization_date: today, + transaction_date: yesterday, + location: dummyLocations[0], + pengajuan: dummyPengajuans[3], + realisasi: dummyRealisasis[3], + kandang: dummyKandangs[0], + created_at: now, + updated_at: now, + created_user: createdUser, + latest_approval: { + id: 4, + step_number: 1, + step_name: 'Manager Approval', + action: 'REJECTED', + notes: 'Biaya terlalu tinggi, perlu revisi', + action_by: createdUser, + action_at: now, + }, + }, + { + id: 5, + reference_number: 'EXP-2025-005', + po_number: 'PO-2025-005', + category: 'Operasional', + supplier: dummySuppliers[1], + realization_date: yesterday, + transaction_date: lastWeek, + location: dummyLocations[1], + pengajuan: dummyPengajuans[4], + realisasi: dummyRealisasis[4], + kandang: dummyKandangs[1], + created_at: lastWeek, + updated_at: yesterday, + created_user: createdUser, + latest_approval: { + id: 5, + step_number: 2, + step_name: 'Finance Approval', + action: 'PENDING', + notes: '', + action_by: createdUser, + action_at: yesterday, + }, + }, + { + id: 6, + reference_number: 'EXP-2025-006', + po_number: 'PO-2025-006', + category: 'Utilitas', + supplier: dummySuppliers[0], + realization_date: lastMonth, + transaction_date: lastMonth, + location: dummyLocations[2], + pengajuan: { + id: 6, + expense_id: 6, + project_flock_kandang_id: 3, + kandang_id: 3, + nonstock_id: 1, + qty: 1200, + price: 1500, + notes: 'Pengajuan biaya listrik bulan lalu', + nonstock: dummyNonstocks[0], + created_at: lastMonth, + }, + realisasi: { + id: 6, + expense_nonstock_id: 6, + qty: 1150, + price: 1500, + notes: 'Realisasi biaya listrik bulan lalu', + nonstock: dummyNonstocks[0], + created_at: lastMonth, + }, + kandang: dummyKandangs[2], + created_at: lastMonth, + updated_at: lastMonth, + created_user: createdUser, + latest_approval: { + id: 6, + step_number: 3, + step_name: 'Director Approval', + action: 'APPROVED', + notes: 'Selesai diproses', + action_by: createdUser, + action_at: lastMonth, + }, + }, +]; + +// ====================== +// 🔧 Fetcher Functions +// ====================== + +/** + * Dummy fetcher untuk mendapatkan semua data report expense + * @returns Promise dengan BaseApiResponse berisi array ReportExpense + */ +export async function dummyGetAllFetcher(): Promise< + BaseApiResponse +> { + // Simulasi delay network + await new Promise((resolve) => setTimeout(resolve, 500)); + + return { + code: 200, + status: 'success', + message: 'Data report expense berhasil diambil', + data: dummyReportExpenses, + meta: { + page: 1, + limit: 10, + total_results: dummyReportExpenses.length, + total_pages: 1, + }, + }; +} + +/** + * Dummy fetcher untuk mendapatkan single data report expense berdasarkan ID + * @param id - ID dari report expense yang ingin diambil + * @returns Promise dengan BaseApiResponse berisi single ReportExpense + */ +export async function dummyGetSingle( + id: number +): Promise> { + // Simulasi delay network + await new Promise((resolve) => setTimeout(resolve, 300)); + + const reportExpense = dummyReportExpenses.find((item) => item.id === id); + + if (!reportExpense) { + return { + code: 404, + status: 'error', + message: `Report expense dengan ID ${id} tidak ditemukan`, + }; + } + + return { + code: 200, + status: 'success', + message: 'Data report expense berhasil diambil', + data: reportExpense, + }; +} diff --git a/src/services/api/report.ts b/src/services/api/report.ts new file mode 100644 index 00000000..c8c71d44 --- /dev/null +++ b/src/services/api/report.ts @@ -0,0 +1,49 @@ +import { BaseApiService } from '@/services/api/base'; +import { httpClient, httpClientFetcher } from '@/services/http/client'; +import { BaseApiResponse } from '@/types/api/api-general'; +import { ReportExpense } from '@/types/api/report/report-expense'; +import axios from 'axios'; + +export class ReportExpenseApiService extends BaseApiService< + ReportExpense, + unknown, + unknown +> { + constructor(basePath: string) { + super(basePath); + } + + async getAllFetcher( + endpoint: string + ): Promise> { + // TODO: Remove this block when backend is ready + // const { dummyGetAllFetcher } = await import('@/dummy/report/expense.dummy'); + // return await dummyGetAllFetcher(); + + // Uncomment this when backend is ready + return await httpClientFetcher>(endpoint); + } + + async getSingle( + id: number + ): Promise | undefined> { + // TODO: Remove this block when backend is ready + const { dummyGetSingle } = await import('@/dummy/report/expense.dummy'); + return await dummyGetSingle(id); + + // Uncomment this when backend is ready + // try { + // const getSinglePath = `${this.basePath}/${id}`; + // const getSingleRes = + // await httpClient>(getSinglePath); + // return getSingleRes; + // } catch (error) { + // if (axios.isAxiosError>(error)) { + // return error.response?.data; + // } + // return undefined; + // } + } +} + +export const ReportExpenseApi = new ReportExpenseApiService('/report/expense'); diff --git a/src/types/api/report/report-expense.d.ts b/src/types/api/report/report-expense.d.ts new file mode 100644 index 00000000..51ef95c8 --- /dev/null +++ b/src/types/api/report/report-expense.d.ts @@ -0,0 +1,57 @@ +import { BaseApproval, CreatedUser } from '@/types/api/api-general'; +import { Supplier } from '@/types/api/master-data/supplier'; +import { Location } from '@/types/api/master-data/location'; +import { Nonstock } from '@/types/api/master-data/nonstock'; +import { Kandang } from '@/types/api/master-data/kandang'; + +export type Pengajuan = { + id: number; + expense_id: number; + project_flock_kandang_id: number; + kandang_id: number; + nonstock_id: number; + qty: number; + price: number; + notes: string; + nonstock: Nonstock; + created_at: string; +}; + +export type Realisasi = { + id: number; + expense_nonstock_id: number; + qty: number; + price: number; + notes: string; + nonstock: Nonstock; + created_at: string; +}; + +export type ReportExpense = { + id: number; + reference_number: string; + po_number: string; + category: string; + supplier: Supplier; + realization_date: string; + transaction_date: string; + location: Location; + pengajuan: Pengajuan; + realisasi: Realisasi; + kandang: Kandang; + created_at: string; + updated_at: string; + created_user: CreatedUser; + latest_approval: BaseApproval; +}; + +export type ReportExpenseSearchParams = { + locationId: string | null; + supplierId: string | null; + kandangId: string | null; + startDate: string | null; + endDate: string | null; + category: string | null; + period: string | number; + search: string; +}; From 65b60cc464ebe0542a61bf7325c14a591f6055d4 Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Mon, 15 Dec 2025 11:13:18 +0700 Subject: [PATCH 09/89] chore(FE-347): update closings API endpoint '/closings' --- src/services/api/closing.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/api/closing.ts b/src/services/api/closing.ts index f3281dba..e2c604cc 100644 --- a/src/services/api/closing.ts +++ b/src/services/api/closing.ts @@ -68,4 +68,4 @@ export class ClosingApiService extends BaseApiService { } } -export const ClosingApi = new ClosingApiService('/closing'); +export const ClosingApi = new ClosingApiService('/closings'); From b02b458034f53aaacdfd07192c1507448017d60e Mon Sep 17 00:00:00 2001 From: randy-ar Date: Tue, 16 Dec 2025 17:52:59 +0700 Subject: [PATCH 10/89] feat(FE): Closing Finance and adjust reports expense filter request --- src/app/report/expense/page.tsx | 10 +- src/components/Table.tsx | 52 +- src/components/helper/RequireAuth.tsx | 238 +++++--- .../pages/closing/ClosingDetail.tsx | 3 +- .../closing/ClosingFinanceTabContent.tsx | 17 + .../pages/closing/ClosingFinanceTable.tsx | 518 ++++++++++++++++++ .../report/expense/ReportExpenseTable.tsx | 91 ++- .../expense/pdf/ReportExpenseExport.tsx | 329 ++++++++--- .../pdf/styles/ReportExpenseStyles.tsx | 155 +++++- src/dummy/json/closing-finance.dummy.ts | 185 +++++++ src/dummy/report/expense.dummy.ts | 6 - src/services/api/closing.ts | 22 + src/services/api/report.ts | 23 +- src/types/api/closing.d.ts | 75 +++ src/types/api/report/report-expense.d.ts | 6 +- 15 files changed, 1476 insertions(+), 254 deletions(-) create mode 100644 src/components/pages/closing/ClosingFinanceTabContent.tsx create mode 100644 src/components/pages/closing/ClosingFinanceTable.tsx create mode 100644 src/dummy/json/closing-finance.dummy.ts diff --git a/src/app/report/expense/page.tsx b/src/app/report/expense/page.tsx index 6645458b..b3557b6c 100644 --- a/src/app/report/expense/page.tsx +++ b/src/app/report/expense/page.tsx @@ -12,10 +12,9 @@ const ReportExpense = () => { locationId: null, supplierId: null, kandangId: null, - startDate: null, - endDate: null, + nonstockId: null, + realizationDate: null, category: null, - period: '', search: '', }); @@ -23,10 +22,9 @@ const ReportExpense = () => { location_id: params.locationId ?? '', supplier_id: params.supplierId ?? '', kandang_id: params.kandangId ?? '', - start_date: params.startDate ?? '', - end_date: params.endDate ?? '', + nonstock_id: params.nonstockId ?? '', + realization_date: params.realizationDate ?? '', category: params.category ?? '', - period: params.period.toString(), search: params.search, })}`; const { data: reportExpenses } = useSWR(reportUrl, () => diff --git a/src/components/Table.tsx b/src/components/Table.tsx index 9feb33e2..9791dd59 100644 --- a/src/components/Table.tsx +++ b/src/components/Table.tsx @@ -60,6 +60,12 @@ export interface TableProps { renderFooter?: boolean; withCheckbox?: boolean; rowOptions?: number[]; + /** + * Custom row renderer. Should return a complete element or null. + * This gives full control over the row structure including colspan. + * Return null to render the default row. + */ + renderCustomRow?: (row: Row) => ReactNode | null; } const DUMMY_SKELETON_DATA = [{}, {}, {}, {}, {}]; @@ -112,6 +118,7 @@ const Table = ({ renderFooter = false, withCheckbox = false, rowOptions = [10, 20, 50, 100], + renderCustomRow, }: TableProps) => { const isServerSideTable = totalItems !== undefined && @@ -305,24 +312,35 @@ const Table = ({ - {table.getRowModel().rows.map((row) => ( - - {row.getVisibleCells().map((cell) => ( - - {!isLoading && - flexRender(cell.column.columnDef.cell, cell.getContext())} + {table.getRowModel().rows.map((row) => { + const customRowContent = renderCustomRow?.(row); - {isLoading &&
} - - ))} - - ))} + if (customRowContent) { + return renderCustomRow?.(row); + } + + return ( + + {row.getVisibleCells().map((cell) => ( + + {!isLoading && + flexRender( + cell.column.columnDef.cell, + cell.getContext() + )} + + {isLoading &&
} + + ))} + + ); + })} {renderFooter && ( diff --git a/src/components/helper/RequireAuth.tsx b/src/components/helper/RequireAuth.tsx index 65adf48c..dbd4b6bc 100644 --- a/src/components/helper/RequireAuth.tsx +++ b/src/components/helper/RequireAuth.tsx @@ -1,87 +1,197 @@ 'use client'; import { ReactNode, useEffect } from 'react'; -import useSWR from 'swr'; +import { useRouter } from 'next/navigation'; +import useSWRImmutable from 'swr/immutable'; import { useAuth } from '@/services/hooks/useAuth'; import { httpClientFetcher, SWRHttpKey } from '@/services/http/client'; -import { isResponseError, isResponseSuccess } from '@/lib/api-helper'; -import { BaseApiResponse, GetMeResponse } from '@/types/api/api-general'; -import { AxiosError } from 'axios'; -import { redirectToSSO } from '@/lib/auth-helper'; +import { isResponseSuccess } from '@/lib/api-helper'; +import { GetMeResponse } from '@/types/api/api-general'; + +// TODO: delete this later, DONT HARDCODE USER DATA +const DUMMY_USER = { + id: 1, + email: 'admin@mbugroup.id', + npk: '0001', + name: 'Super Admin', + image: null, + created_at: '2025-09-30T03:24:20.899229Z', + updated_at: '2025-09-30T03:24:20.899229Z', + roles: [ + { + id: 1, + key: 'mbu.super_admin', + name: 'MBU Administrator', + client: { + id: 1, + name: 'PT Mitra Berlian Unggas', + alias: 'MBU', + }, + permissions: [ + { + id: 1, + name: 'mbu:purchase:read', + action: 'read', + client: { + id: 1, + name: 'PT Mitra Berlian Unggas', + alias: 'MBU', + }, + }, + { + id: 2, + name: 'mbu:purchase:create', + action: 'create', + client: { + id: 1, + name: 'PT Mitra Berlian Unggas', + alias: 'MBU', + }, + }, + { + id: 3, + name: 'mbu:purchase:approve', + action: 'approve', + client: { + id: 1, + name: 'PT Mitra Berlian Unggas', + alias: 'MBU', + }, + }, + ], + }, + { + id: 2, + key: 'lti.super_admin', + name: 'LTI Administrator', + client: { + id: 2, + name: 'PT Lumbung Telur Indonesia', + alias: 'LTI', + }, + permissions: [ + { + id: 4, + name: 'lti:purchase:read', + action: 'read', + client: { + id: 2, + name: 'PT Lumbung Telur Indonesia', + alias: 'LTI', + }, + }, + { + id: 5, + name: 'lti:purchase:create', + action: 'create', + client: { + id: 2, + name: 'PT Lumbung Telur Indonesia', + alias: 'LTI', + }, + }, + { + id: 6, + name: 'lti:purchase:approve', + action: 'approve', + client: { + id: 2, + name: 'PT Lumbung Telur Indonesia', + alias: 'LTI', + }, + }, + ], + }, + { + id: 3, + key: 'manbu.super_admin', + name: 'MANBU Administrator', + client: { + id: 3, + name: 'PT Mandiri Berlian Unggas', + alias: 'MANBU', + }, + permissions: [ + { + id: 7, + name: 'manbu:purchase:read', + action: 'read', + client: { + id: 3, + name: 'PT Mandiri Berlian Unggas', + alias: 'MANBU', + }, + }, + { + id: 8, + name: 'manbu:purchase:create', + action: 'create', + client: { + id: 3, + name: 'PT Mandiri Berlian Unggas', + alias: 'MANBU', + }, + }, + { + id: 9, + name: 'manbu:purchase:approve', + action: 'approve', + client: { + id: 3, + name: 'PT Mandiri Berlian Unggas', + alias: 'MANBU', + }, + }, + ], + }, + ], +}; interface RequireAuthProps { children?: ReactNode; } const RequireAuth = ({ children }: RequireAuthProps) => { - const { user, setUser, setIsLoadingUser } = useAuth(); + const router = useRouter(); + const { setUser, setIsLoadingUser } = useAuth(); - const { - data: userResponse, - isLoading: isLoadingUserResponse, - error: userErrorResponse, - } = useSWR< - GetMeResponse & { ok?: boolean }, - AxiosError, - SWRHttpKey - >('/sso/userinfo', httpClientFetcher, { - shouldRetryOnError: false, - }); + const { data: userResponse, isLoading: isLoadingUserResponse } = + useSWRImmutable( + '/auth/sso/userinfo', + httpClientFetcher, + { + shouldRetryOnError: false, + revalidateOnFocus: false, + revalidateOnReconnect: false, + refreshInterval: 0, + } + ); + + useEffect(() => { + setIsLoadingUser(isLoadingUserResponse); + }, [isLoadingUserResponse, setIsLoadingUser]); useEffect(() => { if (isResponseSuccess(userResponse)) { setUser(userResponse.data); + } else { + // router.replace(process.env.NEXT_PUBLIC_SSO_LOGIN_URL as string); + // TODO: remove this later, DONT HARDCODE USER DATA + setUser(DUMMY_USER); } - }, [userResponse, setUser]); + }, [userResponse, setIsLoadingUser, setUser]); - // Explicitly handle 401 redirect from the component level - useEffect(() => { - if ( - isResponseError(userResponse) && - userErrorResponse?.response?.status === 401 - ) { - // Clear cache to prevent stale data from rendering children - // mutate('/sso/userinfo', undefined, { revalidate: false }); // Optional: if using global mutate - setUser(undefined); - redirectToSSO(); - } - }, [userErrorResponse, setUser, userResponse]); + // TODO: uncomment this later + // if (isLoadingUserResponse && !userResponse) { + // return ( + //
+ // + //
+ // ); + // } - useEffect(() => { - setIsLoadingUser(isLoadingUserResponse); - }, [isLoadingUserResponse]); - - if ( - (isLoadingUserResponse && !userResponse && !userErrorResponse) || - (!userResponse && !userErrorResponse) - ) { - return ( -
- -
- ); - } - - if (userErrorResponse) { - return ( -
-

Authentication Failed

-

- Please try refreshing the page or contact support if the problem - persists. -

- -
- ); - } - - return <>{isResponseSuccess(userResponse) && user && children}; + return <>{children}; }; export default RequireAuth; diff --git a/src/components/pages/closing/ClosingDetail.tsx b/src/components/pages/closing/ClosingDetail.tsx index fd88fa49..e12769a7 100644 --- a/src/components/pages/closing/ClosingDetail.tsx +++ b/src/components/pages/closing/ClosingDetail.tsx @@ -15,6 +15,7 @@ import ClosingSapronakTabContent from './ClosingSapronakTabContent'; import ClosingSapronakCalculationTabContent from '@/components/pages/closing/ClosingSapronakCalculationTabContent'; import ClosingOverheadTabContent from '@/components/pages/closing/ClosingOverheadTabContent'; import SalesReportTable from './sale/SalesReportTable'; +import ClosingFinanceTabContent from '@/components/pages/closing/ClosingFinanceTabContent'; interface ClosingDetailProps { id: number; @@ -64,7 +65,7 @@ const ClosingDetail: React.FC = ({ { id: 'keuangan', label: 'Keuangan', - content: 'Keuangan', + content: , }, ]; diff --git a/src/components/pages/closing/ClosingFinanceTabContent.tsx b/src/components/pages/closing/ClosingFinanceTabContent.tsx new file mode 100644 index 00000000..92386178 --- /dev/null +++ b/src/components/pages/closing/ClosingFinanceTabContent.tsx @@ -0,0 +1,17 @@ +import ClosingFinanceTable from '@/components/pages/closing/ClosingFinanceTable'; + +const ClosingFinanceTabContent = ({ + projectFlockId, +}: { + projectFlockId: number; +}) => { + return ( +
+ {projectFlockId && ( + + )} +
+ ); +}; + +export default ClosingFinanceTabContent; diff --git a/src/components/pages/closing/ClosingFinanceTable.tsx b/src/components/pages/closing/ClosingFinanceTable.tsx new file mode 100644 index 00000000..0cc5bf37 --- /dev/null +++ b/src/components/pages/closing/ClosingFinanceTable.tsx @@ -0,0 +1,518 @@ +import Card from '@/components/Card'; +import Table, { TABLE_DEFAULT_STYLING } from '@/components/Table'; +import { isResponseSuccess } from '@/lib/api-helper'; +import { formatCurrency, formatTitleCase } from '@/lib/helper'; +import { ClosingApi } from '@/services/api/closing'; +import { + DataSummarySubTotal, + HppPurchaseData, + ProfitLossDataAmount, +} from '@/types/api/closing'; +import useSWR from 'swr'; + +type HppTableRow = + | (HppPurchaseData & { + group_name: string; + group_index: number; + isGroupHeader?: boolean; + }) + | { + group_name: string; + group_index: number; + isGroupHeader: true; + type?: never; + budgeting?: never; + realization?: never; + }; + +type ProfitLossTableRow = + | (DataSummarySubTotal & { + type: string; + group_name: string; + group_index: number; + isGroupHeader?: boolean; + }) + | { + group_name: string; + group_index: number; + isGroupHeader: true; + type?: never; + rp_per_bird?: never; + rp_per_kg?: never; + amount?: never; + }; + +const ClosingFinanceTable = ({ + projectFlockId, +}: { + projectFlockId: number; +}) => { + const { data: finance, isLoading } = useSWR( + `/closing/finance/${projectFlockId}`, + () => ClosingApi.getFinance(projectFlockId) + ); + + const hppTableData: HppTableRow[] = isResponseSuccess(finance) + ? finance.data.hpp_purchases.hpp.flatMap((hpp, groupIndex) => [ + // Group header row + { + group_name: hpp.group_name, + group_index: groupIndex, + isGroupHeader: true as const, + }, + // Data rows + ...hpp.data.map((item) => ({ + group_name: hpp.group_name, + group_index: groupIndex, + type: item.type, + budgeting: item.budgeting, + realization: item.realization, + isGroupHeader: false as const, + })), + ]) + : []; + + const profitLossTableData: ProfitLossTableRow[] = isResponseSuccess(finance) + ? [ + // Penjualan group + { + label: 'Penjualan', + group_name: 'Penjualan', + group_index: 0, + isGroupHeader: true as const, + }, + ...finance.data.profit_loss.data.penjualan.map((item) => ({ + label: 'Penjualan', + group_name: 'Penjualan', + group_index: 0, + type: item.type, + rp_per_bird: item.rp_per_bird, + rp_per_kg: item.rp_per_kg, + amount: item.amount, + isGroupHeader: false as const, + })), + { + label: finance.data.profit_loss.data.summary.gross_profit.label, + group_name: 'Penjualan', + group_index: 0, + isGroupHeader: true as const, + type: finance.data.profit_loss.data.summary.gross_profit.label, + rp_per_bird: + finance.data.profit_loss.data.summary.gross_profit.rp_per_bird, + rp_per_kg: + finance.data.profit_loss.data.summary.gross_profit.rp_per_kg, + amount: finance.data.profit_loss.data.summary.gross_profit.amount, + }, + // Pembelian group + { + label: 'Pembelian', + group_name: 'Pembelian', + group_index: 1, + isGroupHeader: true as const, + }, + ...finance.data.profit_loss.data.pembelian.map((item) => ({ + label: 'Pembelian', + group_name: 'Pembelian', + group_index: 1, + type: item.type, + rp_per_bird: item.rp_per_bird, + rp_per_kg: item.rp_per_kg, + amount: item.amount, + isGroupHeader: false as const, + })), + { + label: finance.data.profit_loss.data.summary.sub_total.label, + group_name: 'Pembelian', + group_index: 1, + isGroupHeader: true as const, + type: finance.data.profit_loss.data.summary.sub_total.label, + rp_per_bird: + finance.data.profit_loss.data.summary.sub_total.rp_per_bird, + rp_per_kg: finance.data.profit_loss.data.summary.sub_total.rp_per_kg, + amount: finance.data.profit_loss.data.summary.sub_total.amount, + }, + ] + : []; + + return ( +
+ {isResponseSuccess(finance) && ( + <> + +
+
+
+ {formatTitleCase( + finance.data.profit_loss.data.summary.gross_profit.label || + '-' + )} +
+
+ {formatCurrency( + finance.data.profit_loss.data.summary.gross_profit.amount + )} +
+
+
+
+ {formatTitleCase( + finance.data.profit_loss.data.summary.net_profit.label || + '-' + )} +
+
+ {formatCurrency( + finance.data.profit_loss.data.summary.net_profit.amount + )} +
+
+
+
+ +
+ + data={hppTableData} + columns={[ + { + header: 'No.', + enableSorting: false, + accessorFn: (item, index) => { + if (item.isGroupHeader) return '-'; + // Calculate row number excluding group headers + const dataRowsBefore = hppTableData + .slice(0, index) + .filter((row) => !row.isGroupHeader).length; + return dataRowsBefore + 1; + }, + footer: (props) => { + return 'HPP'; + }, + }, + { + header: 'Type', + enableSorting: false, + accessorFn: (item) => formatTitleCase(item.type || '-'), + }, + { + header: 'Budgeting', + enableSorting: false, + columns: [ + { + header: 'Rp/Ekor', + id: 'budgeting_rp_per_bird', + enableSorting: false, + accessorFn: (item) => + formatCurrency(item.budgeting?.rp_per_bird || 0), + footer: (props) => { + return props.column.id === 'budgeting_rp_per_bird' + ? formatCurrency( + finance.data.hpp_purchases.hpp.reduce( + (total, hpp) => + total + + (finance.data.hpp_purchases.summary_hpp + .budgeting.rp_per_bird || 0), + 0 + ) + ) + : '-'; + }, + }, + { + header: 'Rp/Kg', + id: 'budgeting_rp_per_kg', + enableSorting: false, + accessorFn: (item) => + formatCurrency(item.budgeting?.rp_per_kg || 0), + footer: (props) => { + return props.column.id === 'budgeting_rp_per_kg' + ? formatCurrency( + finance.data.hpp_purchases.hpp.reduce( + (total, hpp) => + total + + (finance.data.hpp_purchases.summary_hpp + .budgeting.rp_per_kg || 0), + 0 + ) + ) + : '-'; + }, + }, + { + header: 'Jumlah (Rp)', + id: 'budgeting_amount', + enableSorting: false, + accessorFn: (item) => + formatCurrency(item.budgeting?.amount || 0), + footer: (props) => { + return props.column.id === 'budgeting_amount' + ? formatCurrency( + finance.data.hpp_purchases.hpp.reduce( + (total, hpp) => + total + + (finance.data.hpp_purchases.summary_hpp + .budgeting.amount || 0), + 0 + ) + ) + : '-'; + }, + }, + ], + }, + { + header: 'Realization', + enableSorting: false, + columns: [ + { + header: 'Rp/Ekor', + id: 'realization_rp_per_bird', + enableSorting: false, + accessorFn: (item) => + formatCurrency(item.realization?.rp_per_bird || 0), + footer: (props) => { + return props.column.id === 'realization_rp_per_bird' + ? formatCurrency( + finance.data.hpp_purchases.hpp.reduce( + (total, hpp) => + total + + (finance.data.hpp_purchases.summary_hpp + .realization.rp_per_bird || 0), + 0 + ) + ) + : '-'; + }, + }, + { + header: 'Rp/Kg', + id: 'realization_rp_per_kg', + enableSorting: false, + accessorFn: (item) => + formatCurrency(item.realization?.rp_per_kg || 0), + footer: (props) => { + return props.column.id === 'realization_rp_per_kg' + ? formatCurrency( + finance.data.hpp_purchases.hpp.reduce( + (total, hpp) => + total + + (finance.data.hpp_purchases.summary_hpp + .realization.rp_per_kg || 0), + 0 + ) + ) + : '-'; + }, + }, + { + header: 'Jumlah (Rp)', + id: 'realization_amount', + enableSorting: false, + accessorFn: (item) => + formatCurrency(item.realization?.amount || 0), + footer: (props) => { + return props.column.id === 'realization_amount' + ? formatCurrency( + finance.data.hpp_purchases.hpp.reduce( + (total, hpp) => + total + + (finance.data.hpp_purchases.summary_hpp + .realization.amount || 0), + 0 + ) + ) + : '-'; + }, + }, + ], + }, + ]} + renderCustomRow={(row) => { + const rowData = row.original; + if (rowData.isGroupHeader) { + return ( + + + +
+ {formatTitleCase(rowData.group_name ?? '-')} +
+ + + ); + } + return null; + }} + renderFooter + /> +
+
+ +
+ + data={profitLossTableData} + columns={[ + { + header: 'Type', + enableSorting: false, + accessorFn: (item) => item.type, + cell: (item) => ( +
+ {formatTitleCase(item.row.original.type || '-')} +
+ ), + footer: (item) => ( +
+ {formatTitleCase( + finance.data.profit_loss.data.summary.net_profit + .label || '-' + )} +
+ ), + }, + { + header: 'Rp/Ekor', + enableSorting: false, + accessorFn: (item) => formatCurrency(item.rp_per_bird || 0), + footer: (item) => ( +
+ {formatCurrency( + finance.data.profit_loss.data.summary.net_profit + .rp_per_bird || 0 + )} +
+ ), + }, + { + header: 'Rp/Kg', + enableSorting: false, + accessorFn: (item) => formatCurrency(item.rp_per_kg || 0), + footer: (item) => ( +
+ {formatCurrency( + finance.data.profit_loss.data.summary.net_profit + .rp_per_kg || 0 + )} +
+ ), + }, + { + header: 'Jumlah (Rp)', + enableSorting: false, + accessorFn: (item) => formatCurrency(item.amount || 0), + footer: (item) => ( +
+ {formatCurrency( + finance.data.profit_loss.data.summary.net_profit + .amount || 0 + )} +
+ ), + }, + ]} + renderCustomRow={(row) => { + const rowData = row.original; + if (rowData.isGroupHeader) { + if (rowData.amount) { + return ( + + +
+ {formatTitleCase(rowData.label ?? '-')} +
+ + +
+ {formatCurrency(rowData.rp_per_bird ?? 0)} +
+ + +
+ {formatCurrency(rowData.rp_per_kg ?? 0)} +
+ + +
+ {formatCurrency(rowData.amount ?? 0)} +
+ + + ); + } + return ( + + +
+ {formatTitleCase(rowData.group_name ?? '-')} +
+ + + ); + } + return null; + }} + className={{ + paginationClassName: 'hidden', + }} + renderFooter + /> +
+
+ + )} +
+ ); +}; + +export default ClosingFinanceTable; diff --git a/src/components/pages/report/expense/ReportExpenseTable.tsx b/src/components/pages/report/expense/ReportExpenseTable.tsx index 8ef66bb3..290551d8 100644 --- a/src/components/pages/report/expense/ReportExpenseTable.tsx +++ b/src/components/pages/report/expense/ReportExpenseTable.tsx @@ -12,7 +12,10 @@ import ExpenseStatusBadge from '@/components/pages/expense/ExpenseStatusBadge'; import RealizationStatusBadge from '@/components/pages/expense/RealizationStatusBadge'; import Table, { TABLE_DEFAULT_STYLING } from '@/components/Table'; import { cn, formatCurrency, formatDate } from '@/lib/helper'; -import { ReportExpense } from '@/types/api/report/report-expense'; +import { + ReportExpense, + ReportExpenseSearchParams, +} from '@/types/api/report/report-expense'; import { Icon } from '@iconify/react'; import { ColumnDef } from '@tanstack/react-table'; import { useMemo, useState } from 'react'; @@ -23,16 +26,7 @@ const ReportExpenseTable = ({ onSearch, }: { reportExpenses: ReportExpense[]; - onSearch: (params: { - locationId: string | null; - supplierId: string | null; - kandangId: string | null; - startDate: string | null; - endDate: string | null; - category: string | null; - period: string | number; - search: string; - }) => void; + onSearch: (params: ReportExpenseSearchParams) => void; }) => { const [selectedLocation, setSelectedLocation] = useState( null @@ -46,10 +40,11 @@ const ReportExpenseTable = ({ const [selectedKandang, setSelectedKandang] = useState( null ); + const [selectedNonstock, setSelectedNonstock] = useState( + null + ); const [search, setSearch] = useState(''); - const [startDate, setStartDate] = useState(null); - const [endDate, setEndDate] = useState(null); - const [period, setPeriod] = useState(''); + const [realizationDate, setRealizationDate] = useState(null); const { options: optionsLocation, isLoadingOptions: isLoadingLocation } = useSelect(`/master-data/locations`, 'id', 'name'); @@ -59,6 +54,8 @@ const ReportExpenseTable = ({ useSelect(`/master-data/kandangs`, 'id', 'name', '', { location_id: selectedLocation?.value.toString() || '', }); + const { options: optionsNonstock, isLoadingOptions: isLoadingNonstock } = + useSelect(`/master-data/nonstocks`, 'id', 'name'); const columns = useMemo((): ColumnDef[] => { return [ @@ -92,13 +89,17 @@ const ReportExpenseTable = ({ header: 'Kategori', accessorKey: 'category', }, + { + header: 'Produk', + accessorFn: (row) => row.pengajuan.nonstock.name, + }, { header: 'Supplier', accessorFn: (row) => row.supplier.name, }, { header: 'Lokasi', - accessorFn: (row) => row.location.name, + accessorFn: (row) => row.kandang.location.name, }, { header: 'Kandang', @@ -181,44 +182,31 @@ const ReportExpenseTable = ({ const handleSearch = () => { onSearch({ search, - period, - startDate, - endDate, + realizationDate, locationId: selectedLocation?.value.toString() ?? '', kandangId: selectedKandang?.value.toString() ?? '', + nonstockId: selectedNonstock?.value.toString() ?? '', supplierId: selectedSupplier?.value.toString() ?? '', category: selectedCategory?.value.toString() ?? '', }); }; const handleSearchInput = (e: React.ChangeEvent) => { setSearch(e.target.value); - onSearch({ - search: e.target.value, - period, - startDate, - endDate, - locationId: selectedLocation?.value.toString() ?? '', - kandangId: selectedKandang?.value.toString() ?? '', - supplierId: selectedSupplier?.value.toString() ?? '', - category: selectedCategory?.value.toString() ?? '', - }); }; const handleReset = () => { setSearch(''); - setPeriod(''); - setStartDate(''); - setEndDate(''); + setRealizationDate(''); setSelectedLocation(null); setSelectedKandang(null); + setSelectedNonstock(null); setSelectedSupplier(null); setSelectedCategory(null); onSearch({ search: '', - period: '', - startDate: '', - endDate: '', + realizationDate: '', locationId: '', kandangId: '', + nonstockId: '', supplierId: '', category: '', }); @@ -283,6 +271,15 @@ const ReportExpenseTable = ({ value={selectedSupplier} onChange={(option) => setSelectedSupplier(option as OptionType)} /> + setSelectedNonstock(option as OptionType)} + /> setSelectedCategory(option as OptionType)} /> - setPeriod(e.target.value)} - name='periode' - placeholder='Periode' - /> setStartDate(e.target.value)} - name='start_date' - placeholder='Tanggal Mulai' - /> - setEndDate(e.target.value)} - name='end_date' - placeholder='Tanggal Selesai' + label='Tanggal Realisasi' + value={realizationDate as string} + onChange={(e) => setRealizationDate(e.target.value)} + name='realization_date' + placeholder='Tanggal Realisasi' /> { {/* Table */} - {/* Table Header */} + {/* Header Row 1: Group Headers */} - + No - + No. PO - + No. Referensi - + Tgl Realisasi - + Tgl Transaksi - + Kategori - + + Produk + + Lokasi - + Kandang - - Qty Pengajuan + + {/* Pengajuan Group - spans 3 columns: XSmall + Medium + Medium */} + + - - Harga Pengajuan + + Pengajuan - - Total Pengajuan + + - - Qty Realisasi + + {/* Realisasi Group - spans 3 columns: XSmall + Medium + Medium */} + + - - Harga Realisasi + + Realisasi - - Total Realisasi + + - - Status Pencairan - - + + Status BOP + {/* Header Row 2: Sub Headers */} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {/* Pengajuan sub-headers */} + + Qty + + + Harga + + + Total + + + {/* Realisasi sub-headers */} + + Qty + + + Harga + + + Total + + + + + + + {/* Table Body */} {items.map((item, index) => { const pengajuanTotal = @@ -195,74 +346,60 @@ const PDFDocument = ({ data }: { data: ReportExpense[] }) => { return ( - + {index + 1} - + {item.po_number} - + {item.reference_number} - + {formatDate(item.realization_date, 'DD MMM YY')} - + {formatDate(item.transaction_date, 'DD MMM YY')} - - {item.category} + + {item.category.split('-').join(' ')} - {item.location.name} + {item.pengajuan.nonstock.name} - + + {item.kandang.location.name} + + {item.kandang.name} - + {item.pengajuan.qty.toLocaleString('id-ID')} - + {formatCurrency(item.pengajuan.price)} - + {formatCurrency(pengajuanTotal)} - + {item.realisasi.qty.toLocaleString('id-ID')} - + {formatCurrency(item.realisasi.price)} - + {formatCurrency(realisasiTotal)} - - - {item.latest_approval.step_number === 3 - ? 'Lunas' - : 'Belum Lunas'} - - - + { borderRadius: 2, }} > - {item.latest_approval.action} + {item.latest_approval.step_name} @@ -285,78 +422,112 @@ const PDFDocument = ({ data }: { data: ReportExpense[] }) => { {/* Supplier Subtotal Row */} + {/* Empty cells for columns before subtotal */} - + + {/* Pengajuan Subtotal */} + + + + Subtotal - + {formatCurrency(supplierTotals.pengajuan)} + + {/* Realisasi Subtotal */} - + Subtotal - + {formatCurrency(supplierTotals.realisasi)} - - - - + + {/* Empty cell for Status BOP */} + diff --git a/src/components/pages/report/expense/pdf/styles/ReportExpenseStyles.tsx b/src/components/pages/report/expense/pdf/styles/ReportExpenseStyles.tsx index ab7afb1a..65505a5f 100644 --- a/src/components/pages/report/expense/pdf/styles/ReportExpenseStyles.tsx +++ b/src/components/pages/report/expense/pdf/styles/ReportExpenseStyles.tsx @@ -112,6 +112,159 @@ const pdfStyles = StyleSheet.create({ fontSize: 7, textAlign: 'right', }, + tableCellNarrow: { + width: '1%', + minWidth: 20, + borderRightWidth: 1, + borderRightColor: '#000000', + borderRightStyle: 'solid', + padding: 3, + fontSize: 7, + textAlign: 'center', + }, + tableCellNarrowHeader: { + width: '1%', + minWidth: 20, + borderRightWidth: 1, + borderRightColor: '#000000', + borderRightStyle: 'solid', + padding: 3, + fontSize: 7, + fontWeight: 'bold', + backgroundColor: '#F5F5F5', + textAlign: 'center', + }, + tableCellWrap: { + flex: 1, + maxWidth: 80, + borderRightWidth: 1, + borderRightColor: '#000000', + borderRightStyle: 'solid', + padding: 3, + fontSize: 7, + flexWrap: 'wrap', + }, + tableCellWrapHeader: { + flex: 1, + maxWidth: 80, + borderRightWidth: 1, + borderRightColor: '#000000', + borderRightStyle: 'solid', + padding: 3, + fontSize: 7, + fontWeight: 'bold', + backgroundColor: '#F5F5F5', + }, + // Nested header styles + tableHeaderGroup: { + borderRightWidth: 1, + borderRightColor: '#000000', + borderRightStyle: 'solid', + borderBottomWidth: 1, + borderBottomColor: '#000000', + borderBottomStyle: 'solid', + backgroundColor: '#F5F5F5', + }, + tableHeaderGroupLast: { + borderBottomWidth: 1, + borderBottomColor: '#000000', + borderBottomStyle: 'solid', + backgroundColor: '#F5F5F5', + }, + tableHeaderGroupTitle: { + padding: 3, + fontSize: 7, + fontWeight: 'bold', + textAlign: 'center', + borderBottomWidth: 1, + borderBottomColor: '#000000', + borderBottomStyle: 'solid', + }, + tableSubHeaderRow: { + flexDirection: 'row', + }, + // Specific width columns + tableCellXSmall: { + width: 30, + borderRightWidth: 1, + borderRightColor: '#000000', + borderRightStyle: 'solid', + padding: 3, + fontSize: 7, + }, + tableCellXSmallHeader: { + width: 30, + borderRightWidth: 1, + borderRightColor: '#000000', + borderRightStyle: 'solid', + padding: 3, + fontSize: 7, + fontWeight: 'bold', + backgroundColor: '#F5F5F5', + }, + tableCellSmall: { + width: 40, + borderRightWidth: 1, + borderRightColor: '#000000', + borderRightStyle: 'solid', + padding: 3, + fontSize: 7, + }, + tableCellSmallHeader: { + width: 40, + borderRightWidth: 1, + borderRightColor: '#000000', + borderRightStyle: 'solid', + padding: 3, + fontSize: 7, + fontWeight: 'bold', + backgroundColor: '#F5F5F5', + }, + tableCellMedium: { + width: 60, + borderRightWidth: 1, + borderRightColor: '#000000', + borderRightStyle: 'solid', + padding: 3, + fontSize: 7, + }, + tableCellMediumHeader: { + width: 60, + borderRightWidth: 1, + borderRightColor: '#000000', + borderRightStyle: 'solid', + padding: 3, + fontSize: 7, + fontWeight: 'bold', + backgroundColor: '#F5F5F5', + }, + tableCellRightXSmall: { + width: 30, + borderRightWidth: 1, + borderRightColor: '#000000', + borderRightStyle: 'solid', + padding: 3, + fontSize: 7, + textAlign: 'right', + }, + tableCellRightSmall: { + width: 40, + borderRightWidth: 1, + borderRightColor: '#000000', + borderRightStyle: 'solid', + padding: 3, + fontSize: 7, + textAlign: 'right', + }, + tableCellRightMedium: { + width: 60, + borderRightWidth: 1, + borderRightColor: '#000000', + borderRightStyle: 'solid', + padding: 3, + fontSize: 7, + textAlign: 'right', + }, tableBorderBottom: { borderBottomWidth: 1, borderBottomColor: '#000000', @@ -142,7 +295,7 @@ const pdfStyles = StyleSheet.create({ borderRightWidth: 0, }, allocationSection: { - marginBottom: 15, + marginBottom: 8, }, allocationTable: { borderWidth: 1, diff --git a/src/dummy/json/closing-finance.dummy.ts b/src/dummy/json/closing-finance.dummy.ts new file mode 100644 index 00000000..82a22a26 --- /dev/null +++ b/src/dummy/json/closing-finance.dummy.ts @@ -0,0 +1,185 @@ +/** + * Dummy data for ClosingFinance + * Generated from: closing_keuangan.json + * + * This file is auto-generated. Do not edit manually. + */ + +import { ClosingFinance } from '../../types/api/closing'; +import { BaseApiResponse } from '@/types/api/api-general'; + +const DUMMY_DATA: ClosingFinance = { + project_flock_id: 1, + period: 1, + project_type: 'LAYING', + volume_base: { + total_birds: 254435, + total_weight_kg: 499961, + }, + hpp_purchases: { + title: 'Pembelian HPP Budgeting dan HPP Realisasi', + hpp: [ + { + group_name: 'hpp dan pengeluaran', + data: [ + { + type: 'Pembelian PULLET LAYER', + budgeting: { + rp_per_bird: 7458.82, + rp_per_kg: 3795.866, + amount: 1897784868, + }, + realization: { + rp_per_bird: 7292.414, + rp_per_kg: 3711.18, + amount: 1855445430, + }, + }, + { + type: 'Pembelian OVK', + budgeting: { + rp_per_bird: 385.681, + rp_per_kg: 196.277, + amount: 98130789, + }, + realization: { + rp_per_bird: 424.097, + rp_per_kg: 215.827, + amount: 107905006, + }, + }, + { + type: 'Pembelian Pakan', + budgeting: { + rp_per_bird: 23002.545, + rp_per_kg: 11706.218, + amount: 5852652652, + }, + realization: { + rp_per_bird: 25193.973, + rp_per_kg: 12821.457, + amount: 6410228456, + }, + }, + ], + }, + { + group_name: 'hpp dan bahan baku', + data: [ + { + type: 'Pengeluaran Overhead', + budgeting: { + rp_per_bird: 6165.894, + rp_per_kg: 3137.883, + amount: 1568819297, + }, + realization: { + rp_per_bird: 5975.831, + rp_per_kg: 3041.158, + amount: 1520460611, + }, + }, + { + type: 'Beban Ekspedisi', + budgeting: { + rp_per_bird: 304.218, + rp_per_kg: 154.819, + amount: 77403605, + }, + realization: { + rp_per_bird: 237.466, + rp_per_kg: 120.849, + amount: 60419779, + }, + }, + ], + }, + ], + summary_hpp: { + label: 'HPP', + budgeting: { + rp_per_bird: 37317.158, + rp_per_kg: 18991.064, + amount: 9494791211, + }, + realization: { + rp_per_bird: 39123.781, + rp_per_kg: 19910.472, + amount: 9954459282, + }, + }, + }, + profit_loss: { + title: 'Laba Rugi Perusahaan', + data: { + penjualan: [ + { + type: 'Penjualan Telur dan Ayam Afkir', + rp_per_bird: 37551.535, + rp_per_kg: 19110.34, + amount: 9554424729, + }, + ], + pembelian: [ + { + type: 'Pembelian Sapronak Supplier', + rp_per_bird: 27629.158, + rp_per_kg: 14060.746, + amount: 7029824870, + }, + { + type: 'Pengeluaran Overhead', + rp_per_bird: 5975.831, + rp_per_kg: 3041.158, + amount: 1520460611, + }, + { + type: 'Beban Ekspedisi', + rp_per_bird: 237.466, + rp_per_kg: 120.849, + amount: 60419779, + }, + ], + summary: { + gross_profit: { + label: 'LABA RUGI BRUTTO', + rp_per_bird: 9922.376, + rp_per_kg: 5049.594, + amount: 2524599859, + }, + sub_total: { + label: 'SUB TOTAL', + rp_per_bird: 3709.079, + rp_per_kg: 1887.586, + amount: 943719469, + }, + net_profit: { + label: 'LABA RUGI NETTO', + rp_per_bird: 3709.079, + rp_per_kg: 1887.586, + amount: 943719469, + }, + }, + }, + }, +}; + +/** + * Get dummy ClosingFinance data + * @param id - Optional ID parameter + * @returns Promise with BaseApiResponse containing ClosingFinance + */ +export async function dummyGetOneClosingFinance( + id?: number +): Promise> { + return new Promise((resolve) => { + setTimeout(() => { + resolve({ + code: 200, + status: 'success', + message: 'Data retrieved successfully', + data: DUMMY_DATA, + }); + }, 500); + }); +} diff --git a/src/dummy/report/expense.dummy.ts b/src/dummy/report/expense.dummy.ts index f802b336..dd1fa18b 100644 --- a/src/dummy/report/expense.dummy.ts +++ b/src/dummy/report/expense.dummy.ts @@ -406,7 +406,6 @@ export const dummyReportExpenses: ReportExpense[] = [ supplier: dummySuppliers[0], realization_date: today, transaction_date: yesterday, - location: dummyLocations[0], pengajuan: dummyPengajuans[0], realisasi: dummyRealisasis[0], kandang: dummyKandangs[0], @@ -431,7 +430,6 @@ export const dummyReportExpenses: ReportExpense[] = [ supplier: dummySuppliers[0], realization_date: today, transaction_date: yesterday, - location: dummyLocations[1], pengajuan: dummyPengajuans[1], realisasi: dummyRealisasis[1], kandang: dummyKandangs[1], @@ -456,7 +454,6 @@ export const dummyReportExpenses: ReportExpense[] = [ supplier: dummySuppliers[1], realization_date: lastWeek, transaction_date: lastWeek, - location: dummyLocations[2], pengajuan: dummyPengajuans[2], realisasi: dummyRealisasis[2], kandang: dummyKandangs[2], @@ -481,7 +478,6 @@ export const dummyReportExpenses: ReportExpense[] = [ supplier: dummySuppliers[2], realization_date: today, transaction_date: yesterday, - location: dummyLocations[0], pengajuan: dummyPengajuans[3], realisasi: dummyRealisasis[3], kandang: dummyKandangs[0], @@ -506,7 +502,6 @@ export const dummyReportExpenses: ReportExpense[] = [ supplier: dummySuppliers[1], realization_date: yesterday, transaction_date: lastWeek, - location: dummyLocations[1], pengajuan: dummyPengajuans[4], realisasi: dummyRealisasis[4], kandang: dummyKandangs[1], @@ -531,7 +526,6 @@ export const dummyReportExpenses: ReportExpense[] = [ supplier: dummySuppliers[0], realization_date: lastMonth, transaction_date: lastMonth, - location: dummyLocations[2], pengajuan: { id: 6, expense_id: 6, diff --git a/src/services/api/closing.ts b/src/services/api/closing.ts index cc2ad4e1..a9104ea9 100644 --- a/src/services/api/closing.ts +++ b/src/services/api/closing.ts @@ -3,6 +3,7 @@ import axios from 'axios'; import { BaseApiService } from '@/services/api/base'; import { Closing, + ClosingFinance, ClosingGeneralInformation, ClosingIncomingSapronak, ClosingOutgoingSapronak, @@ -21,6 +22,7 @@ import { } from '@/dummy/closing.dummy'; import { httpClient, httpClientFetcher } from '@/services/http/client'; import { ClosingSales } from '@/types/api/closing'; +import { dummyGetOneClosingFinance } from '@/dummy/json/closing-finance.dummy'; export class ClosingApiService extends BaseApiService { constructor(basePath: string) { @@ -193,6 +195,26 @@ export class ClosingApiService extends BaseApiService { return undefined; } } + + async getFinance( + id: number + ): Promise | undefined> { + // TODO: Remove this block when backend is ready + // return dummyGetOneClosingFinance(id); + + // Uncomment this when backend is ready + try { + const path = `${this.basePath}/${id}/finance`; + return await httpClient>(path, { + method: 'GET', + }); + } catch (error) { + if (axios.isAxiosError>(error)) { + return error.response?.data; + } + return undefined; + } + } } export const ClosingApi = new ClosingApiService('/closings'); diff --git a/src/services/api/report.ts b/src/services/api/report.ts index c8c71d44..ffaef831 100644 --- a/src/services/api/report.ts +++ b/src/services/api/report.ts @@ -23,27 +23,6 @@ export class ReportExpenseApiService extends BaseApiService< // Uncomment this when backend is ready return await httpClientFetcher>(endpoint); } - - async getSingle( - id: number - ): Promise | undefined> { - // TODO: Remove this block when backend is ready - const { dummyGetSingle } = await import('@/dummy/report/expense.dummy'); - return await dummyGetSingle(id); - - // Uncomment this when backend is ready - // try { - // const getSinglePath = `${this.basePath}/${id}`; - // const getSingleRes = - // await httpClient>(getSinglePath); - // return getSingleRes; - // } catch (error) { - // if (axios.isAxiosError>(error)) { - // return error.response?.data; - // } - // return undefined; - // } - } } -export const ReportExpenseApi = new ReportExpenseApiService('/report/expense'); +export const ReportExpenseApi = new ReportExpenseApiService('/reports/expense'); diff --git a/src/types/api/closing.d.ts b/src/types/api/closing.d.ts index baf4c7aa..04eca605 100644 --- a/src/types/api/closing.d.ts +++ b/src/types/api/closing.d.ts @@ -142,3 +142,78 @@ export type OverheadTotal = { cost_per_bird: number; }; export type ClosingSales = BaseMetadata & BaseClosingSales; + +// ====== FINANCE ====== +export interface ClosingFinance { + project_flock_id: number; + period: number; + project_type: string; + volume_base: ClosingFinanceVolumeBase; + hpp_purchases: ClosingFinanceHppPurchases; + profit_loss: ClosingFinanceProfitLoss; +} + +export interface ClosingFinanceProfitLoss { + title: string; + data: ProfitLossData; +} + +export interface ClosingFinanceHppPurchases { + title: string; + hpp: GroupHppPurchase[]; + summary_hpp: HppPurchasesSummary; +} + +export interface ClosingFinanceVolumeBase { + total_birds: number; + total_weight_kg: number; +} + +export interface ProfitLossData { + penjualan: ProfitLossDataAmount[]; + pembelian: ProfitLossDataAmount[]; + summary: ProfitLossDataSummary; +} + +export interface GroupHppPurchase { + group_name: string; + data: HppPurchaseData[]; +} + +export interface ProfitLossDataSummary { + gross_profit: DataSummarySubTotal; + sub_total: DataSummarySubTotal; + net_profit: DataSummarySubTotal; +} + +export interface ProfitLossDataAmount { + type: string; + rp_per_bird: number; + rp_per_kg: number; + amount: number; +} + +export interface HppPurchasesSummary { + label: string; + budgeting: HppPurchaseDataAmount; + realization: HppPurchaseDataAmount; +} + +export interface HppPurchaseData { + type: string; + budgeting: HppPurchaseDataAmount; + realization: HppPurchaseDataAmount; +} + +export interface HppPurchaseDataAmount { + rp_per_bird: number; + rp_per_kg: number; + amount: number; +} + +export interface DataSummarySubTotal { + label: string; + rp_per_bird: number; + rp_per_kg: number; + amount: number; +} diff --git a/src/types/api/report/report-expense.d.ts b/src/types/api/report/report-expense.d.ts index 51ef95c8..3918820d 100644 --- a/src/types/api/report/report-expense.d.ts +++ b/src/types/api/report/report-expense.d.ts @@ -35,7 +35,6 @@ export type ReportExpense = { supplier: Supplier; realization_date: string; transaction_date: string; - location: Location; pengajuan: Pengajuan; realisasi: Realisasi; kandang: Kandang; @@ -49,9 +48,8 @@ export type ReportExpenseSearchParams = { locationId: string | null; supplierId: string | null; kandangId: string | null; - startDate: string | null; - endDate: string | null; + nonstockId: string | null; + realizationDate: string | null; category: string | null; - period: string | number; search: string; }; From 0f7f4e891c3624222ac12cf6855e02e210b829be Mon Sep 17 00:00:00 2001 From: rstubryan Date: Wed, 17 Dec 2025 09:50:36 +0700 Subject: [PATCH 11/89] feat(FE-357): Add marketing sales report API and types --- src/config/constant.ts | 11 +++++ src/services/api/report/marketing-sale.ts | 50 +++++++++++++++++++++++ src/types/api/report/hpp-per-kandang.d.ts | 41 +++++++++++++++++++ 3 files changed, 102 insertions(+) create mode 100644 src/services/api/report/marketing-sale.ts create mode 100644 src/types/api/report/hpp-per-kandang.d.ts diff --git a/src/config/constant.ts b/src/config/constant.ts index 96fc8401..6d25f56a 100644 --- a/src/config/constant.ts +++ b/src/config/constant.ts @@ -45,6 +45,17 @@ export const MAIN_DRAWER_LINKS: SidebarMenuItem[] = [ link: '/closing', icon: 'heroicons-outline:presentation-chart-bar', }, + { + text: 'Laporan', + link: '/report', + icon: 'mdi:chart-box-outline', + submenu: [ + { + text: 'Penjualan', + link: '/report/marketing', + }, + ], + }, { text: 'Persediaan', link: '/inventory', diff --git a/src/services/api/report/marketing-sale.ts b/src/services/api/report/marketing-sale.ts new file mode 100644 index 00000000..c18871e3 --- /dev/null +++ b/src/services/api/report/marketing-sale.ts @@ -0,0 +1,50 @@ +import { BaseApiService } from '@/services/api/base'; +import { BaseApiResponse } from '@/types/api/api-general'; +import { HppPerkandang } from '@/types/api/report/hpp-per-kandang'; + +export class MarketingSaleReportService extends BaseApiService< + HppPerkandang, + unknown, + unknown +> { + constructor(basePath: string) { + super(basePath); + } + + async getHppPerKandangReport( + area_id?: number, + location_id?: number, + kandang_id?: number, + weight_min?: number, + weight_max?: number, + period?: string, + sort_by?: string, + show_unrecorded?: boolean, + page?: number, + limit?: number + ): Promise | undefined> { + return await this.customRequest>( + `hpp-per-kandang`, + { + method: 'GET', + params: { + area_id: area_id, + location_id: location_id, + kandang_id: kandang_id, + weight_min: weight_min, + weight_max: weight_max, + period: period, + sort_by: sort_by, + show_unrecorded: show_unrecorded, + page: page, + limit: limit, + }, + } + ); + } +} + +// TODO: REPLACE WITH PRODUCTION URL +export const SaleReportApi = new MarketingSaleReportService( + 'http://localhost:4010/api/reports/marketings/hpp-per-kandang' +); diff --git a/src/types/api/report/hpp-per-kandang.d.ts b/src/types/api/report/hpp-per-kandang.d.ts new file mode 100644 index 00000000..fab7b5c6 --- /dev/null +++ b/src/types/api/report/hpp-per-kandang.d.ts @@ -0,0 +1,41 @@ +import { BaseMetadata } from '@/types/api/api-general'; +import { Supplier } from '@/types/api/supplier/supplier'; +import { Kandang } from '@/types/api/master-data/kandang'; + +export type BaseHppPerKandangSummary = { + total_remaining_chicken_birds: number; + total_remaining_chicken_weight_kg: number; + average_weight_kg: number; + total_remaining_value_rp: number; + total_egg_production_pieces: number; + total_egg_production_kg: number; + average_egg_hpp_rp_per_kg: number; + total_egg_value_rp: number; +}; + +export type BaseHppPerkandang = { + id: number; + kandang: Kandang; + weight_range: { + weight_min: number; + weight_max: number; + }; + remaining_chicken_birds: number; + remaining_chicken_weight_kg: number; + avg_weight_kg: number; + egg_production_pieces: number; + egg_production_kg: number; + egg_hpp_rp_per_kg: number; + egg_value_rp: number; + feed_suppliers: Supplier; + doc_suppliers: Supplier; + average_doc_price_rp: number; + hpp_rp: number; + remaining_value_rp: number; +}; + +export type HppPerkandang = BaseMetadata & { + periods: string; + rows: SalesReport[]; + summary: BaseSalesReportSummary; +}; From 43afc5781c0d2765413fe6bd4b76fbee2b7c81c4 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Wed, 17 Dec 2025 09:50:55 +0700 Subject: [PATCH 12/89] feat(FE-355): Add sale report tabs and marketing layout --- src/app/report/marketing/layout.tsx | 11 ++++++ src/app/report/marketing/page.tsx | 7 ++++ .../pages/report/sale/SaleReportTabs.tsx | 37 +++++++++++++++++++ .../report/sale/tab/HppPerKandangTab.tsx | 3 ++ 4 files changed, 58 insertions(+) create mode 100644 src/app/report/marketing/layout.tsx create mode 100644 src/app/report/marketing/page.tsx create mode 100644 src/components/pages/report/sale/SaleReportTabs.tsx create mode 100644 src/components/pages/report/sale/tab/HppPerKandangTab.tsx diff --git a/src/app/report/marketing/layout.tsx b/src/app/report/marketing/layout.tsx new file mode 100644 index 00000000..7220dfa1 --- /dev/null +++ b/src/app/report/marketing/layout.tsx @@ -0,0 +1,11 @@ +import SuspenseHelper from '@/components/helper/SuspenseHelper'; + +const Layout = ({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) => { + return {children}; +}; + +export default Layout; diff --git a/src/app/report/marketing/page.tsx b/src/app/report/marketing/page.tsx new file mode 100644 index 00000000..a330bc1f --- /dev/null +++ b/src/app/report/marketing/page.tsx @@ -0,0 +1,7 @@ +import SaleReportTabs from '@/components/pages/report/sale/SaleReportTabs'; + +const SaleReport = () => { + return ; +}; + +export default SaleReport; diff --git a/src/components/pages/report/sale/SaleReportTabs.tsx b/src/components/pages/report/sale/SaleReportTabs.tsx new file mode 100644 index 00000000..5c5ee473 --- /dev/null +++ b/src/components/pages/report/sale/SaleReportTabs.tsx @@ -0,0 +1,37 @@ +'use client'; + +import Tabs from '@/components/Tabs'; +import { HppPerKandangTab } from '@/components/pages/report/sale/tab/HppPerKandangTab'; + +const SaleReportTabs = () => { + const tabs = [ + { + id: '1', + label: 'Penjualan Harian', + content: 'Penjualan Harian Tab', + }, + { + id: '2', + label: 'Transaksi Penjualan DO', + content: 'Transaksi Penjualan DO Tab', + }, + { + id: '3', + label: 'Perbandingan HPP Per Rentang BW', + content: 'Perbandingan HPP Per Rentang BW Tab', + }, + { + id: '4', + label: 'HPP Harian Kandang', + content: , + }, + ]; + + return ( +
+ +
+ ); +}; + +export default SaleReportTabs; diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx new file mode 100644 index 00000000..60320597 --- /dev/null +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -0,0 +1,3 @@ +export const HppPerKandangTab = () => { + return
HPP Per Kandang Tab
; +}; From 12e6d607456b1e23415760284063be08ec935f4f Mon Sep 17 00:00:00 2001 From: rstubryan Date: Wed, 17 Dec 2025 10:37:05 +0700 Subject: [PATCH 13/89] feat(FE-357): Rename HppPerkandang types and update API path --- src/services/api/report/marketing-sale.ts | 10 +++++----- src/types/api/report/hpp-per-kandang.d.ts | 19 +++++++++---------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/services/api/report/marketing-sale.ts b/src/services/api/report/marketing-sale.ts index c18871e3..e15d2a8b 100644 --- a/src/services/api/report/marketing-sale.ts +++ b/src/services/api/report/marketing-sale.ts @@ -1,9 +1,9 @@ import { BaseApiService } from '@/services/api/base'; import { BaseApiResponse } from '@/types/api/api-general'; -import { HppPerkandang } from '@/types/api/report/hpp-per-kandang'; +import { HppPerKandangReport } from '@/types/api/report/hpp-per-kandang'; export class MarketingSaleReportService extends BaseApiService< - HppPerkandang, + HppPerKandangReport, unknown, unknown > { @@ -22,8 +22,8 @@ export class MarketingSaleReportService extends BaseApiService< show_unrecorded?: boolean, page?: number, limit?: number - ): Promise | undefined> { - return await this.customRequest>( + ): Promise | undefined> { + return await this.customRequest>( `hpp-per-kandang`, { method: 'GET', @@ -46,5 +46,5 @@ export class MarketingSaleReportService extends BaseApiService< // TODO: REPLACE WITH PRODUCTION URL export const SaleReportApi = new MarketingSaleReportService( - 'http://localhost:4010/api/reports/marketings/hpp-per-kandang' + 'http://localhost:4010/api/reports/marketings' ); diff --git a/src/types/api/report/hpp-per-kandang.d.ts b/src/types/api/report/hpp-per-kandang.d.ts index fab7b5c6..2b4522a0 100644 --- a/src/types/api/report/hpp-per-kandang.d.ts +++ b/src/types/api/report/hpp-per-kandang.d.ts @@ -1,8 +1,7 @@ -import { BaseMetadata } from '@/types/api/api-general'; -import { Supplier } from '@/types/api/supplier/supplier'; +import { Supplier } from '@/types/api/master-data/supplier'; import { Kandang } from '@/types/api/master-data/kandang'; -export type BaseHppPerKandangSummary = { +export type HppPerKandangSummary = { total_remaining_chicken_birds: number; total_remaining_chicken_weight_kg: number; average_weight_kg: number; @@ -13,7 +12,7 @@ export type BaseHppPerKandangSummary = { total_egg_value_rp: number; }; -export type BaseHppPerkandang = { +export type HppPerKandangRow = { id: number; kandang: Kandang; weight_range: { @@ -27,15 +26,15 @@ export type BaseHppPerkandang = { egg_production_kg: number; egg_hpp_rp_per_kg: number; egg_value_rp: number; - feed_suppliers: Supplier; - doc_suppliers: Supplier; + feed_suppliers: Supplier[]; + doc_suppliers: Supplier[]; average_doc_price_rp: number; hpp_rp: number; remaining_value_rp: number; }; -export type HppPerkandang = BaseMetadata & { - periods: string; - rows: SalesReport[]; - summary: BaseSalesReportSummary; +export type HppPerKandangReport = { + period: string; + rows: HppPerKandangRow[]; + summary: HppPerKandangSummary; }; From 3d91c1287435328e976f315cc625ba28bcc6dfbe Mon Sep 17 00:00:00 2001 From: rstubryan Date: Wed, 17 Dec 2025 10:38:56 +0700 Subject: [PATCH 14/89] feat(FE-355,356,357): Implement HPP Per Kandang report tab --- .../pages/report/sale/SaleReportTabs.tsx | 2 +- .../report/sale/tab/HppPerKandangTab.tsx | 745 +++++++++++++++++- 2 files changed, 744 insertions(+), 3 deletions(-) diff --git a/src/components/pages/report/sale/SaleReportTabs.tsx b/src/components/pages/report/sale/SaleReportTabs.tsx index 5c5ee473..ed1ce0ac 100644 --- a/src/components/pages/report/sale/SaleReportTabs.tsx +++ b/src/components/pages/report/sale/SaleReportTabs.tsx @@ -1,7 +1,7 @@ 'use client'; import Tabs from '@/components/Tabs'; -import { HppPerKandangTab } from '@/components/pages/report/sale/tab/HppPerKandangTab'; +import HppPerKandangTab from '@/components/pages/report/sale/tab/HppPerKandangTab'; const SaleReportTabs = () => { const tabs = [ diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index 60320597..6d72f2d8 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -1,3 +1,744 @@ -export const HppPerKandangTab = () => { - return
HPP Per Kandang Tab
; +import { useState, useMemo, useCallback } from 'react'; +import { ChangeEventHandler } from 'react'; +import useSWR from 'swr'; +import Card from '@/components/Card'; +import SelectInput, { + useSelect, + OptionType, +} from '@/components/input/SelectInput'; +import DateInput from '@/components/input/DateInput'; +import TextInput from '@/components/input/TextInput'; +import CheckboxInput from '@/components/input/CheckboxInput'; +import { AreaApi } from '@/services/api/master-data'; +import { LocationApi } from '@/services/api/master-data'; +import { KandangApi } from '@/services/api/master-data'; +import { SaleReportApi } from '@/services/api/report/marketing-sale'; +import Table from '@/components/Table'; +import { ColumnDef } from '@tanstack/react-table'; +import { formatCurrency, formatNumber } from '@/lib/helper'; +import { HppPerKandangReport } from '@/types/api/report/hpp-per-kandang'; +import { isResponseSuccess } from '@/lib/api-helper'; +import { useTableFilter } from '@/services/hooks/useTableFilter'; +import Pagination from '@/components/Pagination'; +import Button from '@/components/Button'; +import Dropdown from '@/components/dropdown/Dropdown'; +import MenuItem from '@/components/menu/MenuItem'; +import Menu from '@/components/menu/Menu'; +import toast from 'react-hot-toast'; +import * as XLSX from 'xlsx'; + +interface Totals { + total_remaining_chicken_birds: number; + total_remaining_chicken_weight_kg: number; + total_remaining_value_rp: number; +} + +const HppPerKandangTab = () => { + // ===== STATE MANAGEMENT ===== + const [isPdfExportLoading, setIsPdfExportLoading] = useState(false); + + // ===== PAGINATION STATE ===== + const [currentPage, setCurrentPage] = useState(1); + const [pageSize, setPageSize] = useState(10); + + // ===== SUBMISSION STATE ===== + const [isSubmitted, setIsSubmitted] = useState(false); + + // ===== TABLE FILTER STATE ===== + const { state: tableFilterState, updateFilter } = useTableFilter({ + initial: { + area_id: '', + location_id: '', + kandang_id: '', + weight_min: '', + weight_max: '', + period: '', + sort_by: '', + show_unrecorded: false, + }, + paramMap: { + page: 'page', + pageSize: 'limit', + }, + }); + + const { options: areaOptions, isLoadingOptions: isLoadingAreas } = useSelect( + AreaApi.basePath, + 'id', + 'name', + 'search' + ); + + const { options: locationOptions, isLoadingOptions: isLoadingLocations } = + useSelect(LocationApi.basePath, 'id', 'name', 'search'); + + const { options: kandangOptions, isLoadingOptions: isLoadingKandangs } = + useSelect(KandangApi.basePath, 'id', 'name', 'search'); + + const areaChangeHandler = useCallback( + (val: OptionType | OptionType[] | null) => { + const newVal = val as OptionType; + updateFilter('area_id', newVal?.value ? String(newVal.value) : ''); + setIsSubmitted(false); + }, + [updateFilter] + ); + + const locationChangeHandler = useCallback( + (val: OptionType | OptionType[] | null) => { + const newVal = val as OptionType; + updateFilter('location_id', newVal?.value ? String(newVal.value) : ''); + setIsSubmitted(false); + }, + [updateFilter] + ); + + const kandangChangeHandler = useCallback( + (val: OptionType | OptionType[] | null) => { + const newVal = val as OptionType; + updateFilter('kandang_id', newVal?.value ? String(newVal.value) : ''); + setIsSubmitted(false); + }, + [updateFilter] + ); + + const weightMinChangeHandler = useCallback< + ChangeEventHandler + >( + (e) => { + const val = e.target.value; + updateFilter('weight_min', val || ''); + setIsSubmitted(false); + }, + [updateFilter] + ); + + const weightMaxChangeHandler = useCallback< + ChangeEventHandler + >( + (e) => { + const val = e.target.value; + updateFilter('weight_max', val || ''); + setIsSubmitted(false); + }, + [updateFilter] + ); + + const periodChangeHandler = useCallback>( + (e) => { + const val = e.target.value; + updateFilter('period', val || ''); + setIsSubmitted(false); + }, + [updateFilter] + ); + + const showUnrecordedChangeHandler = useCallback< + ChangeEventHandler + >( + (e) => { + const checked = e.target.checked; + updateFilter('show_unrecorded', checked); + setIsSubmitted(false); + }, + [updateFilter] + ); + + const resetFilters = useCallback(() => { + updateFilter('area_id', ''); + updateFilter('location_id', ''); + updateFilter('kandang_id', ''); + updateFilter('weight_min', ''); + updateFilter('weight_max', ''); + updateFilter('period', ''); + updateFilter('sort_by', ''); + updateFilter('show_unrecorded', false); + setIsSubmitted(false); + }, [updateFilter]); + + const handleSubmit = useCallback(() => { + if (!tableFilterState.period) { + toast.error('Periode wajib diisi'); + return; + } + setIsSubmitted(true); + setCurrentPage(1); + }, [tableFilterState.period]); + + // ===== DATA FETCHING ===== + const { data: hppPerKandang, isLoading } = useSWR( + isSubmitted + ? () => { + const params = { + area_id: tableFilterState.area_id + ? Number(tableFilterState.area_id) + : undefined, + location_id: tableFilterState.location_id + ? Number(tableFilterState.location_id) + : undefined, + kandang_id: tableFilterState.kandang_id + ? Number(tableFilterState.kandang_id) + : undefined, + weight_min: tableFilterState.weight_min + ? Number(tableFilterState.weight_min) + : undefined, + weight_max: tableFilterState.weight_max + ? Number(tableFilterState.weight_max) + : undefined, + period: tableFilterState.period || undefined, + sort_by: tableFilterState.sort_by || undefined, + show_unrecorded: tableFilterState.show_unrecorded, + page: currentPage, + limit: pageSize, + }; + + return ['hpp-per-kandang-report', params]; + } + : null, + ([, params]) => + SaleReportApi.getHppPerKandangReport( + params.area_id, + params.location_id, + params.kandang_id, + params.weight_min, + params.weight_max, + params.period, + params.sort_by, + params.show_unrecorded, + params.page, + params.limit + ) + ); + + const data: HppPerKandangReport['rows'] = useMemo( + () => + isResponseSuccess(hppPerKandang) + ? (hppPerKandang?.data?.rows as HppPerKandangReport['rows']) || [] + : [], + [hppPerKandang] + ); + + const summary = + isResponseSuccess(hppPerKandang) && 'summary' in hppPerKandang + ? hppPerKandang.data.summary + : undefined; + + const period = + isResponseSuccess(hppPerKandang) && 'period' in hppPerKandang + ? hppPerKandang.data.period + : undefined; + + const meta = + isResponseSuccess(hppPerKandang) && 'meta' in hppPerKandang + ? hppPerKandang.meta + : undefined; + + const { data: allDataForExport } = useSWR( + isSubmitted + ? () => { + const params = { + area_id: tableFilterState.area_id + ? Number(tableFilterState.area_id) + : undefined, + location_id: tableFilterState.location_id + ? Number(tableFilterState.location_id) + : undefined, + kandang_id: tableFilterState.kandang_id + ? Number(tableFilterState.kandang_id) + : undefined, + weight_min: tableFilterState.weight_min + ? Number(tableFilterState.weight_min) + : undefined, + weight_max: tableFilterState.weight_max + ? Number(tableFilterState.weight_max) + : undefined, + period: tableFilterState.period || undefined, + sort_by: tableFilterState.sort_by || undefined, + show_unrecorded: tableFilterState.show_unrecorded, + limit: 10000, + page: 1, + }; + + return ['hpp-per-kandang-report-export', params]; + } + : null, + ([, params]) => + SaleReportApi.getHppPerKandangReport( + params.area_id, + params.location_id, + params.kandang_id, + params.weight_min, + params.weight_max, + params.period, + params.sort_by, + params.show_unrecorded, + params.page, + params.limit + ) + ); + + const allExportData: HppPerKandangReport['rows'] = useMemo( + () => + isResponseSuccess(allDataForExport) + ? (allDataForExport?.data?.rows as HppPerKandangReport['rows']) || [] + : [], + [allDataForExport] + ); + + // ===== EXPORT HANDLERS ===== + const handleExportExcel = useCallback(() => { + if (allExportData.length === 0) { + toast.error('Tidak ada data untuk diekspor.'); + return; + } + + try { + const totals = allExportData.reduce( + (acc, item) => ({ + total_remaining_chicken_birds: + acc.total_remaining_chicken_birds + + (item.remaining_chicken_birds || 0), + total_remaining_chicken_weight_kg: + acc.total_remaining_chicken_weight_kg + + (item.remaining_chicken_weight_kg || 0), + total_remaining_value_rp: + acc.total_remaining_value_rp + (item.remaining_value_rp || 0), + }), + { + total_remaining_chicken_birds: 0, + total_remaining_chicken_weight_kg: 0, + total_remaining_value_rp: 0, + } + ); + + const excelData: { [key: string]: string | number }[] = allExportData.map( + (item, index) => ({ + No: index + 1, + Kandang: item.kandang?.name || '', + 'Rentang Bobot': item.weight_range + ? `${formatNumber(item.weight_range.weight_min)} - ${formatNumber(item.weight_range.weight_max)}` + : '', + 'Sisa Ayam (Ekor)': item.remaining_chicken_birds || 0, + 'Sisa Ayam (KG)': item.remaining_chicken_weight_kg || 0, + 'Rata-Rata Bobot (KG)': item.avg_weight_kg || 0, + 'Feed (Supplier)': + item.feed_suppliers?.map((s) => s.alias || s.name).join(' | ') || + '', + 'DOC (Supplier)': + item.doc_suppliers?.map((s) => s.alias || s.name).join(' | ') || '', + 'Rata-Rata Harga DOC (RP)': item.average_doc_price_rp || 0, + 'HPP (RP)': item.hpp_rp || 0, + 'Nilai Nominal Sisa Ayam (RP)': item.remaining_value_rp || 0, + }) + ); + + excelData.push({ + No: 'TOTAL', + Kandang: 'ALL', + 'Rentang Bobot': '-', + 'Sisa Ayam (Ekor)': totals.total_remaining_chicken_birds, + 'Sisa Ayam (KG)': totals.total_remaining_chicken_weight_kg, + 'Rata-Rata Bobot (KG)': '', + 'Feed (Supplier)': '', + 'DOC (Supplier)': '', + 'Rata-Rata Harga DOC (RP)': '', + 'HPP (RP)': '', + 'Nilai Nominal Sisa Ayam (RP)': totals.total_remaining_value_rp, + }); + + const worksheet = XLSX.utils.json_to_sheet(excelData); + + const colWidths = [ + { wch: 5 }, // No + { wch: 30 }, // Kandang + { wch: 15 }, // Rentang Bobot + { wch: 15 }, // Sisa Ayam (Ekor) + { wch: 15 }, // Sisa Ayam (KG) + { wch: 18 }, // Rata-Rata Bobot (KG) + { wch: 20 }, // Feed (Supplier) + { wch: 20 }, // DOC (Supplier) + { wch: 20 }, // Rata-Rata Harga DOC (RP) + { wch: 12 }, // HPP (RP) + { wch: 25 }, // Nilai Nominal Sisa Ayam (RP) + ]; + worksheet['!cols'] = colWidths; + + const workbook = XLSX.utils.book_new(); + XLSX.utils.book_append_sheet(workbook, worksheet, 'HPP Per Kandang'); + + const areaName = tableFilterState.area_id + ? areaOptions.find( + (opt) => opt.value === Number(tableFilterState.area_id) + )?.label || 'Semua Area' + : 'Semua Area'; + + const locationName = tableFilterState.location_id + ? locationOptions.find( + (opt) => opt.value === Number(tableFilterState.location_id) + )?.label || 'Semua Lokasi' + : 'Semua Lokasi'; + + const kandangName = tableFilterState.kandang_id + ? kandangOptions.find( + (opt) => opt.value === Number(tableFilterState.kandang_id) + )?.label || 'Semua Kandang' + : 'Semua Kandang'; + + const filename = `Laporan_HPP_Per_Kandang_${areaName}_${locationName}_${kandangName}_${tableFilterState.period}.xlsx`; + + XLSX.writeFile(workbook, filename); + toast.success('Excel berhasil dibuat dan diunduh.'); + } catch { + toast.error('Gagal membuat Excel. Silakan coba lagi.'); + } + }, [ + allExportData, + tableFilterState, + areaOptions, + locationOptions, + kandangOptions, + ]); + + // ===== PAGINATION HANDLERS ===== + const handlePageChange = (page: number) => { + setCurrentPage(page); + }; + + const handleRowChange = (pageSize: number) => { + setPageSize(pageSize); + }; + + const handleNextPage = () => { + if (meta && currentPage < meta.total_pages) { + setCurrentPage(currentPage + 1); + } + }; + + const handlePrevPage = () => { + if (currentPage > 1) { + setCurrentPage(currentPage - 1); + } + }; + + // ===== TABLE COLUMNS DEFINITION ===== + const totals: Totals = useMemo(() => { + return { + total_remaining_chicken_birds: + summary?.total_remaining_chicken_birds || 0, + total_remaining_chicken_weight_kg: + summary?.total_remaining_chicken_weight_kg || 0, + total_remaining_value_rp: summary?.total_remaining_value_rp || 0, + }; + }, [summary]); + + const getTableColumns = (): ColumnDef[] => { + const tableColumns: ColumnDef[] = [ + { + id: 'no', + header: 'No', + cell: (props) => props.row.index + 1, + footer: () =>
TOTAL
, + }, + { + id: 'kandang_name', + header: 'Kandang', + accessorKey: 'kandang.name', + cell: (props) => { + const kandang = props.row.original.kandang; + return kandang?.name || '-'; + }, + }, + { + id: 'weight_range', + header: 'Rentang Bobot', + accessorKey: 'weight_range', + cell: (props) => { + const weightRange = props.row.original.weight_range; + return weightRange + ? `${formatNumber(weightRange.weight_min)} - ${formatNumber(weightRange.weight_max)}` + : '-'; + }, + }, + { + id: 'remaining_chicken_birds', + header: 'Sisa Ayam (Ekor)', + accessorKey: 'remaining_chicken_birds', + cell: (props) => { + const value = props.row.original.remaining_chicken_birds; + return
{formatNumber(value)}
; + }, + footer: () => ( +
+ {formatNumber(totals.total_remaining_chicken_birds)} +
+ ), + }, + { + id: 'remaining_chicken_weight_kg', + header: 'Sisa Ayam (KG)', + accessorKey: 'remaining_chicken_weight_kg', + cell: (props) => { + const value = props.row.original.remaining_chicken_weight_kg; + return
{formatNumber(value)}
; + }, + footer: () => ( +
+ {formatNumber(totals.total_remaining_chicken_weight_kg)} +
+ ), + }, + { + id: 'avg_weight_kg', + header: 'Rata-Rata Bobot (KG)', + accessorKey: 'avg_weight_kg', + cell: (props) => { + const value = props.row.original.avg_weight_kg; + return
{formatNumber(value)}
; + }, + }, + { + id: 'feed_suppliers', + header: 'Feed (Supplier)', + accessorKey: 'feed_suppliers', + cell: (props) => { + const suppliers = props.row.original.feed_suppliers; + return suppliers?.map((s) => s.alias || s.name).join(' | ') || '-'; + }, + }, + { + id: 'doc_suppliers', + header: 'DOC (Supplier)', + accessorKey: 'doc_suppliers', + cell: (props) => { + const suppliers = props.row.original.doc_suppliers; + return suppliers?.map((s) => s.alias || s.name).join(' | ') || '-'; + }, + }, + { + id: 'average_doc_price_rp', + header: 'Rata-Rata Harga DOC (RP)', + accessorKey: 'average_doc_price_rp', + cell: (props) => { + const value = props.row.original.average_doc_price_rp; + return
{formatCurrency(value)}
; + }, + }, + { + id: 'hpp_rp', + header: 'HPP (RP)', + accessorKey: 'hpp_rp', + cell: (props) => { + const value = props.row.original.hpp_rp; + return
{formatCurrency(value)}
; + }, + }, + { + id: 'remaining_value_rp', + header: 'Nilai Nominal Sisa Ayam (RP)', + accessorKey: 'remaining_value_rp', + cell: (props) => { + const value = props.row.original.remaining_value_rp; + return
{formatCurrency(value)}
; + }, + footer: () => ( +
+ {formatCurrency(totals.total_remaining_value_rp)} +
+ ), + }, + ]; + return tableColumns; + }; + + return ( +
+ HPP Harian Kandang (${period})` + : 'Laporan > HPP Harian Kandang' + } + className={{ wrapper: 'w-full', body: 'p-1!' }} + > +
+ + + Export} + align='end' + > + + + { + alert('Fitur belum tersedia'); + }} + /> + + +
+ +
+ + option.value === Number(tableFilterState.area_id) + ) || null + : null + } + onChange={areaChangeHandler} + isLoading={isLoadingAreas} + isClearable + /> + + option.value === Number(tableFilterState.location_id) + ) || null + : null + } + onChange={locationChangeHandler} + isLoading={isLoadingLocations} + isClearable + /> + + option.value === Number(tableFilterState.kandang_id) + ) || null + : null + } + onChange={kandangChangeHandler} + isLoading={isLoadingKandangs} + isClearable + /> +
+ +
+ + + +
+ +
+ +
+ + {!isSubmitted ? ( +
+ Silakan pilih filter dan klik tombol Cari untuk menampilkan data. +
+ ) : isLoading ? ( +
+ +
+ ) : data.length === 0 ? ( +
+ Tidak ada data yang dapat ditampilkan... +
+ ) : ( + + 0} + className={{ + containerClassName: 'w-full', + tableWrapperClassName: 'overflow-x-auto mt-4', + tableClassName: 'w-full table-auto text-sm', + headerRowClassName: 'border-b border-b-gray-200 bg-gray-50', + headerColumnClassName: + 'px-4 py-3 text-xs font-semibold text-gray-700 text-left border border-gray-200', + bodyRowClassName: + 'hover:bg-gray-50 transition-colors border-b border-l border-r border-b-gray-200 border-l-gray-200 border-r-gray-200', + bodyColumnClassName: + 'px-4 py-3 text-xs text-gray-900 whitespace-nowrap', + tableFooterClassName: + 'bg-gray-100 font-semibold border border-gray-200', + footerRowClassName: 'border-t-2 border-gray-300', + footerColumnClassName: + 'px-4 py-3 text-xs text-gray-900 whitespace-nowrap', + paginationClassName: 'hidden', + }} + /> + + )} + + {meta && data.length > 0 && ( +
+ +
+ )} + + ); }; + +export default HppPerKandangTab; From 78efd587be2ffae838bb8739126d2ac2ea41f2ac Mon Sep 17 00:00:00 2001 From: rstubryan Date: Wed, 17 Dec 2025 10:54:02 +0700 Subject: [PATCH 15/89] feat(FE-355,357): Add aggregated footers for HPP per kandang table --- .../report/sale/tab/HppPerKandangTab.tsx | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index 6d72f2d8..7982ba99 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -431,6 +431,52 @@ const HppPerKandangTab = () => { }; }, [summary]); + const allFeedSuppliers = useMemo(() => { + const suppliers = new Set(); + data.forEach((item) => { + item.feed_suppliers?.forEach((s) => { + suppliers.add(s.alias || s.name); + }); + }); + return Array.from(suppliers).join(' | '); + }, [data]); + + const allDocSuppliers = useMemo(() => { + const suppliers = new Set(); + data.forEach((item) => { + item.doc_suppliers?.forEach((s) => { + suppliers.add(s.alias || s.name); + }); + }); + return Array.from(suppliers).join(' | '); + }, [data]); + + const weightedAverageDocPrice = useMemo(() => { + if (data.length === 0) return 0; + const totalValue = data.reduce( + (sum, item) => sum + (item.hpp_rp * item.remaining_chicken_birds || 0), + 0 + ); + const totalChickens = data.reduce( + (sum, item) => sum + (item.remaining_chicken_birds || 0), + 0 + ); + return totalChickens > 0 ? totalValue / totalChickens : 0; + }, [data]); + + const weightedAverageHpp = useMemo(() => { + if (data.length === 0) return 0; + const totalValue = data.reduce( + (sum, item) => sum + (item.hpp_rp * item.remaining_chicken_birds || 0), + 0 + ); + const totalChickens = data.reduce( + (sum, item) => sum + (item.remaining_chicken_birds || 0), + 0 + ); + return totalChickens > 0 ? totalValue / totalChickens : 0; + }, [data]); + const getTableColumns = (): ColumnDef[] => { const tableColumns: ColumnDef[] = [ { @@ -447,6 +493,7 @@ const HppPerKandangTab = () => { const kandang = props.row.original.kandang; return kandang?.name || '-'; }, + footer: () =>
ALL
, }, { id: 'weight_range', @@ -458,6 +505,7 @@ const HppPerKandangTab = () => { ? `${formatNumber(weightRange.weight_min)} - ${formatNumber(weightRange.weight_max)}` : '-'; }, + footer: () =>
-
, }, { id: 'remaining_chicken_birds', @@ -495,6 +543,11 @@ const HppPerKandangTab = () => { const value = props.row.original.avg_weight_kg; return
{formatNumber(value)}
; }, + footer: () => ( +
+ {formatNumber(summary?.average_weight_kg || 0)} +
+ ), }, { id: 'feed_suppliers', @@ -504,6 +557,11 @@ const HppPerKandangTab = () => { const suppliers = props.row.original.feed_suppliers; return suppliers?.map((s) => s.alias || s.name).join(' | ') || '-'; }, + footer: () => ( +
+ {allFeedSuppliers || '-'} +
+ ), }, { id: 'doc_suppliers', @@ -513,6 +571,11 @@ const HppPerKandangTab = () => { const suppliers = props.row.original.doc_suppliers; return suppliers?.map((s) => s.alias || s.name).join(' | ') || '-'; }, + footer: () => ( +
+ {allDocSuppliers || '-'} +
+ ), }, { id: 'average_doc_price_rp', @@ -522,6 +585,11 @@ const HppPerKandangTab = () => { const value = props.row.original.average_doc_price_rp; return
{formatCurrency(value)}
; }, + footer: () => ( +
+ {formatCurrency(weightedAverageDocPrice)} +
+ ), }, { id: 'hpp_rp', @@ -531,6 +599,11 @@ const HppPerKandangTab = () => { const value = props.row.original.hpp_rp; return
{formatCurrency(value)}
; }, + footer: () => ( +
+ {formatCurrency(weightedAverageHpp)} +
+ ), }, { id: 'remaining_value_rp', From 730b7903a76bca6511205a152148444bd5a02110 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Wed, 17 Dec 2025 11:01:01 +0700 Subject: [PATCH 16/89] feat(FE-355): Remove pagination from HppPerKandangTab --- .../report/sale/tab/HppPerKandangTab.tsx | 113 ++++-------------- 1 file changed, 25 insertions(+), 88 deletions(-) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index 7982ba99..209011c5 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -37,10 +37,6 @@ const HppPerKandangTab = () => { // ===== STATE MANAGEMENT ===== const [isPdfExportLoading, setIsPdfExportLoading] = useState(false); - // ===== PAGINATION STATE ===== - const [currentPage, setCurrentPage] = useState(1); - const [pageSize, setPageSize] = useState(10); - // ===== SUBMISSION STATE ===== const [isSubmitted, setIsSubmitted] = useState(false); @@ -162,7 +158,6 @@ const HppPerKandangTab = () => { return; } setIsSubmitted(true); - setCurrentPage(1); }, [tableFilterState.period]); // ===== DATA FETCHING ===== @@ -188,8 +183,6 @@ const HppPerKandangTab = () => { period: tableFilterState.period || undefined, sort_by: tableFilterState.sort_by || undefined, show_unrecorded: tableFilterState.show_unrecorded, - page: currentPage, - limit: pageSize, }; return ['hpp-per-kandang-report', params]; @@ -204,9 +197,7 @@ const HppPerKandangTab = () => { params.weight_max, params.period, params.sort_by, - params.show_unrecorded, - params.page, - params.limit + params.show_unrecorded ) ); @@ -255,8 +246,6 @@ const HppPerKandangTab = () => { period: tableFilterState.period || undefined, sort_by: tableFilterState.sort_by || undefined, show_unrecorded: tableFilterState.show_unrecorded, - limit: 10000, - page: 1, }; return ['hpp-per-kandang-report-export', params]; @@ -271,9 +260,7 @@ const HppPerKandangTab = () => { params.weight_max, params.period, params.sort_by, - params.show_unrecorded, - params.page, - params.limit + params.show_unrecorded ) ); @@ -399,27 +386,6 @@ const HppPerKandangTab = () => { kandangOptions, ]); - // ===== PAGINATION HANDLERS ===== - const handlePageChange = (page: number) => { - setCurrentPage(page); - }; - - const handleRowChange = (pageSize: number) => { - setPageSize(pageSize); - }; - - const handleNextPage = () => { - if (meta && currentPage < meta.total_pages) { - setCurrentPage(currentPage + 1); - } - }; - - const handlePrevPage = () => { - if (currentPage > 1) { - setCurrentPage(currentPage - 1); - } - }; - // ===== TABLE COLUMNS DEFINITION ===== const totals: Totals = useMemo(() => { return { @@ -756,60 +722,31 @@ const HppPerKandangTab = () => { Tidak ada data yang dapat ditampilkan... ) : ( - -
0} - className={{ - containerClassName: 'w-full', - tableWrapperClassName: 'overflow-x-auto mt-4', - tableClassName: 'w-full table-auto text-sm', - headerRowClassName: 'border-b border-b-gray-200 bg-gray-50', - headerColumnClassName: - 'px-4 py-3 text-xs font-semibold text-gray-700 text-left border border-gray-200', - bodyRowClassName: - 'hover:bg-gray-50 transition-colors border-b border-l border-r border-b-gray-200 border-l-gray-200 border-r-gray-200', - bodyColumnClassName: - 'px-4 py-3 text-xs text-gray-900 whitespace-nowrap', - tableFooterClassName: - 'bg-gray-100 font-semibold border border-gray-200', - footerRowClassName: 'border-t-2 border-gray-300', - footerColumnClassName: - 'px-4 py-3 text-xs text-gray-900 whitespace-nowrap', - paginationClassName: 'hidden', - }} - /> - +
0} + className={{ + containerClassName: 'w-full', + tableWrapperClassName: 'overflow-x-auto mt-4', + tableClassName: 'w-full table-auto text-sm', + headerRowClassName: 'border-b border-b-gray-200 bg-gray-50', + headerColumnClassName: + 'px-4 py-3 text-xs font-semibold text-gray-700 text-left border border-gray-200', + bodyRowClassName: + 'hover:bg-gray-50 transition-colors border-b border-l border-r border-b-gray-200 border-l-gray-200 border-r-gray-200', + bodyColumnClassName: + 'px-4 py-3 text-xs text-gray-900 whitespace-nowrap', + tableFooterClassName: + 'bg-gray-100 font-semibold border border-gray-200', + footerRowClassName: 'border-t-2 border-gray-300', + footerColumnClassName: + 'px-4 py-3 text-xs text-gray-900 whitespace-nowrap', + paginationClassName: 'hidden', + }} + /> )} - {meta && data.length > 0 && ( -
- -
- )} ); }; From 4cc41c016767063f7660ca5dc817b2e0b3a28faf Mon Sep 17 00:00:00 2001 From: rstubryan Date: Wed, 17 Dec 2025 11:11:44 +0700 Subject: [PATCH 17/89] feat(FE-355,357): Use API summary for weighted averages --- .../report/sale/tab/HppPerKandangTab.tsx | 57 +++++++------------ 1 file changed, 19 insertions(+), 38 deletions(-) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index 209011c5..0481dd2a 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -19,7 +19,6 @@ import { formatCurrency, formatNumber } from '@/lib/helper'; import { HppPerKandangReport } from '@/types/api/report/hpp-per-kandang'; import { isResponseSuccess } from '@/lib/api-helper'; import { useTableFilter } from '@/services/hooks/useTableFilter'; -import Pagination from '@/components/Pagination'; import Button from '@/components/Button'; import Dropdown from '@/components/dropdown/Dropdown'; import MenuItem from '@/components/menu/MenuItem'; @@ -210,20 +209,15 @@ const HppPerKandangTab = () => { ); const summary = - isResponseSuccess(hppPerKandang) && 'summary' in hppPerKandang + isResponseSuccess(hppPerKandang) && hppPerKandang?.data?.summary ? hppPerKandang.data.summary : undefined; const period = - isResponseSuccess(hppPerKandang) && 'period' in hppPerKandang + isResponseSuccess(hppPerKandang) && hppPerKandang?.data?.period ? hppPerKandang.data.period : undefined; - const meta = - isResponseSuccess(hppPerKandang) && 'meta' in hppPerKandang - ? hppPerKandang.meta - : undefined; - const { data: allDataForExport } = useSWR( isSubmitted ? () => { @@ -417,32 +411,6 @@ const HppPerKandangTab = () => { return Array.from(suppliers).join(' | '); }, [data]); - const weightedAverageDocPrice = useMemo(() => { - if (data.length === 0) return 0; - const totalValue = data.reduce( - (sum, item) => sum + (item.hpp_rp * item.remaining_chicken_birds || 0), - 0 - ); - const totalChickens = data.reduce( - (sum, item) => sum + (item.remaining_chicken_birds || 0), - 0 - ); - return totalChickens > 0 ? totalValue / totalChickens : 0; - }, [data]); - - const weightedAverageHpp = useMemo(() => { - if (data.length === 0) return 0; - const totalValue = data.reduce( - (sum, item) => sum + (item.hpp_rp * item.remaining_chicken_birds || 0), - 0 - ); - const totalChickens = data.reduce( - (sum, item) => sum + (item.remaining_chicken_birds || 0), - 0 - ); - return totalChickens > 0 ? totalValue / totalChickens : 0; - }, [data]); - const getTableColumns = (): ColumnDef[] => { const tableColumns: ColumnDef[] = [ { @@ -553,7 +521,13 @@ const HppPerKandangTab = () => { }, footer: () => (
- {formatCurrency(weightedAverageDocPrice)} + {formatCurrency( + summary?.total_remaining_value_rp && + summary?.total_remaining_chicken_birds + ? summary.total_remaining_value_rp / + summary.total_remaining_chicken_birds + : 0 + )}
), }, @@ -567,7 +541,13 @@ const HppPerKandangTab = () => { }, footer: () => (
- {formatCurrency(weightedAverageHpp)} + {formatCurrency( + summary?.total_remaining_value_rp && + summary?.total_remaining_chicken_birds + ? summary.total_remaining_value_rp / + summary.total_remaining_chicken_birds + : 0 + )}
), }, @@ -709,6 +689,8 @@ const HppPerKandangTab = () => { /> +
+ {!isSubmitted ? (
Silakan pilih filter dan klik tombol Cari untuk menampilkan data. @@ -727,7 +709,7 @@ const HppPerKandangTab = () => { columns={getTableColumns()} renderFooter={data.length > 0} className={{ - containerClassName: 'w-full', + containerClassName: 'w-full mt-6', tableWrapperClassName: 'overflow-x-auto mt-4', tableClassName: 'w-full table-auto text-sm', headerRowClassName: 'border-b border-b-gray-200 bg-gray-50', @@ -742,7 +724,6 @@ const HppPerKandangTab = () => { footerRowClassName: 'border-t-2 border-gray-300', footerColumnClassName: 'px-4 py-3 text-xs text-gray-900 whitespace-nowrap', - paginationClassName: 'hidden', }} /> )} From c70cfbd450b1c34699be49e3b429055474518acb Mon Sep 17 00:00:00 2001 From: rstubryan Date: Wed, 17 Dec 2025 11:42:45 +0700 Subject: [PATCH 18/89] feat(FE-355,356,357): Add PDF export for HPP per kandang report --- .../sale/export/HppPerkandangExport.tsx | 490 ++++++++++++++++++ .../report/sale/tab/HppPerKandangTab.tsx | 56 +- 2 files changed, 540 insertions(+), 6 deletions(-) create mode 100644 src/components/pages/report/sale/export/HppPerkandangExport.tsx diff --git a/src/components/pages/report/sale/export/HppPerkandangExport.tsx b/src/components/pages/report/sale/export/HppPerkandangExport.tsx new file mode 100644 index 00000000..dc0c95f0 --- /dev/null +++ b/src/components/pages/report/sale/export/HppPerkandangExport.tsx @@ -0,0 +1,490 @@ +'use client'; + +import { + Page, + Text, + View, + Document, + StyleSheet, + Font, + pdf, +} from '@react-pdf/renderer'; +import { HppPerKandangReport } from '@/types/api/report/hpp-per-kandang'; +import { formatDate, formatNumber } from '@/lib/helper'; + +Font.register({ + family: 'Helvetica', + src: 'helvetica', +}); + +const pdfStyles = StyleSheet.create({ + page: { + fontSize: 10, + fontFamily: 'Helvetica', + padding: 20, + backgroundColor: '#FFFFFF', + }, + titleSection: { + marginBottom: 10, + }, + mainTitle: { + fontSize: 14, + fontWeight: 'bold', + marginBottom: 5, + color: '#1f74bf', + }, + supplierTitle: { + fontSize: 12, + fontWeight: 'bold', + marginBottom: 8, + color: '#1f74bf', + }, + table: { + borderWidth: 1, + borderColor: '#000000', + marginBottom: 15, + }, + tableRow: { + flexDirection: 'row', + }, + tableHeader: { + backgroundColor: '#F5F5F5', + }, + tableCell: { + flex: 1, + borderRightWidth: 1, + borderRightColor: '#000000', + borderRightStyle: 'solid', + padding: 4, + fontSize: 8, + textAlign: 'left', + }, + tableCellHeader: { + flex: 1, + borderRightWidth: 1, + borderRightColor: '#000000', + borderRightStyle: 'solid', + padding: 4, + fontSize: 8, + fontWeight: 'bold', + backgroundColor: '#F5F5F5', + borderBottomWidth: 1, + borderBottomColor: '#000000', + borderBottomStyle: 'solid', + paddingVertical: 12, + textAlign: 'center', + }, + tableCellHeaderRight: { + flex: 1, + borderRightWidth: 1, + borderRightColor: '#000000', + borderRightStyle: 'solid', + padding: 4, + fontSize: 8, + fontWeight: 'bold', + backgroundColor: '#F5F5F5', + textAlign: 'right', + borderBottomWidth: 1, + borderBottomColor: '#000000', + borderBottomStyle: 'solid', + paddingVertical: 12, + }, + tableCellRight: { + flex: 1, + borderRightWidth: 1, + borderRightColor: '#000000', + borderRightStyle: 'solid', + padding: 4, + fontSize: 8, + textAlign: 'right', + }, + tableCellCenter: { + flex: 1, + borderRightWidth: 1, + borderRightColor: '#000000', + borderRightStyle: 'solid', + padding: 4, + fontSize: 8, + textAlign: 'center', + }, + tableBorderBottom: { + borderBottomWidth: 1, + borderBottomColor: '#000000', + borderBottomStyle: 'solid', + }, + supplierSection: { + marginBottom: 10, + }, + supplierSectionBreak: { + marginBottom: 15, + }, + parameterBadge: { + backgroundColor: '#F5F5F5', + color: '#333333', + padding: 4, + borderRadius: 4, + fontSize: 8, + marginRight: 8, + marginBottom: 4, + }, + parameterContainer: { + flexDirection: 'row', + flexWrap: 'wrap', + marginBottom: 8, + }, +}); + +interface HppPerKandangExportParams { + data: HppPerKandangReport; + params: { + area_name?: string; + location_name?: string; + kandang_name?: string; + period?: string; + weight_min?: string; + weight_max?: string; + show_unrecorded?: string; + sort_by?: string; + }; +} + +interface WeightRangeGroup { + weight_min: number; + weight_max: number; + items: HppPerKandangReport['rows']; + totals: { + total_remaining_chicken_birds: number; + total_remaining_chicken_weight_kg: number; + average_weight_kg: number; + total_hpp_rp: number; + total_remaining_value_rp: number; + all_feed_suppliers: string[]; + all_doc_suppliers: string[]; + average_doc_price_rp: number; + }; +} + +const groupDataByWeightRange = ( + data: HppPerKandangReport['rows'] +): WeightRangeGroup[] => { + const groups: { + [key: string]: WeightRangeGroup; + } = {}; + + data.forEach((item) => { + const key = `${item.weight_range.weight_min}-${item.weight_range.weight_max}`; + if (!groups[key]) { + groups[key] = { + weight_min: item.weight_range.weight_min, + weight_max: item.weight_range.weight_max, + items: [], + totals: { + total_remaining_chicken_birds: 0, + total_remaining_chicken_weight_kg: 0, + average_weight_kg: 0, + total_hpp_rp: 0, + total_remaining_value_rp: 0, + all_feed_suppliers: [], + all_doc_suppliers: [], + average_doc_price_rp: 0, + }, + }; + } + + groups[key].items.push(item); + + groups[key].totals.total_remaining_chicken_birds += + item.remaining_chicken_birds; + groups[key].totals.total_remaining_chicken_weight_kg += + item.remaining_chicken_weight_kg; + groups[key].totals.total_hpp_rp += item.hpp_rp; + groups[key].totals.total_remaining_value_rp += item.remaining_value_rp; + + item.feed_suppliers?.forEach((supplier) => { + const alias = supplier.alias || supplier.name; + if (!groups[key].totals.all_feed_suppliers.includes(alias)) { + groups[key].totals.all_feed_suppliers.push(alias); + } + }); + + item.doc_suppliers?.forEach((supplier) => { + const alias = supplier.alias || supplier.name; + if (!groups[key].totals.all_doc_suppliers.includes(alias)) { + groups[key].totals.all_doc_suppliers.push(alias); + } + }); + }); + + Object.values(groups).forEach((group) => { + group.totals.average_weight_kg = + group.totals.total_remaining_chicken_weight_kg / + group.totals.total_remaining_chicken_birds; + group.totals.average_doc_price_rp = + group.items.reduce((sum, item) => sum + item.average_doc_price_rp, 0) / + group.items.length; + }); + + return Object.values(groups).sort((a, b) => a.weight_min - b.weight_min); +}; + +const getParameterText = (params: HppPerKandangExportParams['params']) => { + const paramsText = []; + + if (params.period) { + const formattedDate = formatDate(params.period, 'DD MMM YYYY'); + paramsText.push(`Tanggal: ${formattedDate}`); + } + + const currentDate = formatDate(new Date().toISOString(), 'DD MMM YYYY HH:mm'); + paramsText.push(`Dicetak: ${currentDate}`); + + return paramsText; +}; + +const createPDFDocument = ( + data: HppPerKandangExportParams['data'], + params: HppPerKandangExportParams['params'] +) => { + const groupedByWeightRange = groupDataByWeightRange(data.rows); + + return ( + + + {/* Title and Parameters */} + + + Laporan > HPP Harian Kandang + + + {getParameterText(params).map((param, index) => ( + + {param} + + ))} + + + + {/* Rekapitulasi Section */} + + Rekapitulasi + + + {/* Table Header */} + + + Rentang BW + + + Sisa Ekor + + + Sisa Kg + + + Rata-Rata Bobot (Kg) + + + Feed (Supplier) + + + DOC (Supplier) + + + Rata-Rata Harga DOC + + + HPP + + + Nominal Sisa + + + + {/* Table Body - Rekapitulasi */} + {groupedByWeightRange.map((group, index) => ( + + + + {group.weight_min.toFixed(2)} -{' '} + {group.weight_max.toFixed(2)} + + + + + {formatNumber(group.totals.total_remaining_chicken_birds)} + + + + + {formatNumber( + group.totals.total_remaining_chicken_weight_kg + )} + + + + {formatNumber(group.totals.average_weight_kg)} + + + {group.totals.all_feed_suppliers.join(' | ')} + + + {group.totals.all_doc_suppliers.join(' | ')} + + + {formatNumber(group.totals.average_doc_price_rp)} + + + + { + (group.totals.total_remaining_chicken_birds > 0 + ? group.totals.total_hpp_rp / + group.totals.total_remaining_chicken_birds + : 0, + 2) + } + + + + + {formatNumber(group.totals.total_remaining_value_rp)} + + + + ))} + + + + {/* Detail Per Kandang Section */} + + Detail Per Kandang + + + {/* Table Header */} + + + No + + + Kandang + + + Rentang BW + + + Sisa Ekor + + + Sisa Kg + + + Rata-Rata Bobot (Kg) + + + Feed (Supplier) + + + DOC (Supplier) + + + Rata-Rata Harga DOC + + + HPP + + + Nominal Sisa + + + + {/* Table Body - Detail Per Kandang */} + {data.rows.map((item, index) => ( + + + {index + 1} + + + {item.kandang?.name || '-'} + + + + {item.weight_range.weight_min.toFixed(2)} -{' '} + {item.weight_range.weight_max.toFixed(2)} + + + + {formatNumber(item.remaining_chicken_birds)} + + + {formatNumber(item.remaining_chicken_weight_kg)} + + + {formatNumber(item.avg_weight_kg)} + + + + {item.feed_suppliers + ?.map((s) => s.alias || s.name) + .join(' | ')} + + + + + {item.doc_suppliers + ?.map((s) => s.alias || s.name) + .join(' | ')} + + + + {formatNumber(item.average_doc_price_rp)} + + + {formatNumber(item.hpp_rp)} + + + {formatNumber(item.remaining_value_rp)} + + + ))} + + + + + ); +}; + +export const generateHppPerKandangPDF = async ( + data: HppPerKandangExportParams['data'], + params: HppPerKandangExportParams['params'] +): Promise => { + const PDFDocument = createPDFDocument(data, params); + + try { + const blob = await pdf(PDFDocument).toBlob(); + const url = URL.createObjectURL(blob); + const link = document.createElement('a'); + link.href = url; + link.download = `laporan-hpp-harian-kandang-${formatDate(new Date(), 'YYYY-MM-DD-HHmm')}.pdf`; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + URL.revokeObjectURL(url); + } catch (error) { + throw error; + } +}; diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index 0481dd2a..d90040c6 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -23,6 +23,7 @@ import Button from '@/components/Button'; import Dropdown from '@/components/dropdown/Dropdown'; import MenuItem from '@/components/menu/MenuItem'; import Menu from '@/components/menu/Menu'; +import { generateHppPerKandangPDF } from '../export/HppPerkandangExport'; import toast from 'react-hot-toast'; import * as XLSX from 'xlsx'; @@ -380,6 +381,54 @@ const HppPerKandangTab = () => { kandangOptions, ]); + const handleExportPDF = useCallback(async () => { + if (!hppPerKandang || !isResponseSuccess(hppPerKandang)) { + toast.error('Tidak ada data untuk diekspor.'); + return; + } + + try { + const areaName = tableFilterState.area_id + ? areaOptions.find( + (opt) => opt.value === Number(tableFilterState.area_id) + )?.label || 'Semua Area' + : 'Semua Area'; + + const locationName = tableFilterState.location_id + ? locationOptions.find( + (opt) => opt.value === Number(tableFilterState.location_id) + )?.label || 'Semua Lokasi' + : 'Semua Lokasi'; + + const kandangName = tableFilterState.kandang_id + ? kandangOptions.find( + (opt) => opt.value === Number(tableFilterState.kandang_id) + )?.label || 'Semua Kandang' + : 'Semua Kandang'; + + await generateHppPerKandangPDF(hppPerKandang.data, { + area_name: areaName, + location_name: locationName, + kandang_name: kandangName, + period: tableFilterState.period, + weight_min: tableFilterState.weight_min, + weight_max: tableFilterState.weight_max, + show_unrecorded: tableFilterState.show_unrecorded.toString(), + sort_by: tableFilterState.sort_by, + }); + + toast.success('PDF berhasil dibuat dan diunduh.'); + } catch { + toast.error('Gagal membuat PDF. Silakan coba lagi.'); + } + }, [ + hppPerKandang, + tableFilterState, + areaOptions, + locationOptions, + kandangOptions, + ]); + // ===== TABLE COLUMNS DEFINITION ===== const totals: Totals = useMemo(() => { return { @@ -592,12 +641,7 @@ const HppPerKandangTab = () => { > - { - alert('Fitur belum tersedia'); - }} - /> +
From 62d4d7b7dbc5e759e422e399fc54da71053ba7f1 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Wed, 17 Dec 2025 11:49:41 +0700 Subject: [PATCH 19/89] refactor(FE): Fix Dropdown import path --- src/components/pages/report/sale/tab/HppPerKandangTab.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index d90040c6..9dd1dcf3 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -20,7 +20,7 @@ import { HppPerKandangReport } from '@/types/api/report/hpp-per-kandang'; import { isResponseSuccess } from '@/lib/api-helper'; import { useTableFilter } from '@/services/hooks/useTableFilter'; import Button from '@/components/Button'; -import Dropdown from '@/components/dropdown/Dropdown'; +import Dropdown from '@/components/Dropdown'; import MenuItem from '@/components/menu/MenuItem'; import Menu from '@/components/menu/Menu'; import { generateHppPerKandangPDF } from '../export/HppPerkandangExport'; From a8c3b1a66f19cf4d317248828f749fb861612acd Mon Sep 17 00:00:00 2001 From: rstubryan Date: Wed, 17 Dec 2025 11:56:42 +0700 Subject: [PATCH 20/89] feat(FE-356): Include HPP and supplier aggregates in export --- .../report/sale/tab/HppPerKandangTab.tsx | 40 ++++++++++++++++--- 1 file changed, 35 insertions(+), 5 deletions(-) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index 9dd1dcf3..1f6bdc7f 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -285,14 +285,44 @@ const HppPerKandangTab = () => { (item.remaining_chicken_weight_kg || 0), total_remaining_value_rp: acc.total_remaining_value_rp + (item.remaining_value_rp || 0), + total_hpp_rp: acc.total_hpp_rp + (item.hpp_rp || 0), + average_doc_price_rp: + acc.average_doc_price_rp + (item.average_doc_price_rp || 0), + all_feed_suppliers: new Set([ + ...acc.all_feed_suppliers, + ...(item.feed_suppliers?.map((s) => s.alias || s.name) || []), + ]), + all_doc_suppliers: new Set([ + ...acc.all_doc_suppliers, + ...(item.doc_suppliers?.map((s) => s.alias || s.name) || []), + ]), }), { total_remaining_chicken_birds: 0, total_remaining_chicken_weight_kg: 0, total_remaining_value_rp: 0, + total_hpp_rp: 0, + average_doc_price_rp: 0, + all_feed_suppliers: new Set(), + all_doc_suppliers: new Set(), } ); + // Calculate averages + const avgWeight = + totals.total_remaining_chicken_birds > 0 + ? totals.total_remaining_chicken_weight_kg / + totals.total_remaining_chicken_birds + : 0; + const avgDocPrice = + allExportData.length > 0 + ? totals.average_doc_price_rp / allExportData.length + : 0; + const avgHpp = + totals.total_remaining_chicken_birds > 0 + ? totals.total_hpp_rp / totals.total_remaining_chicken_birds + : 0; + const excelData: { [key: string]: string | number }[] = allExportData.map( (item, index) => ({ No: index + 1, @@ -320,11 +350,11 @@ const HppPerKandangTab = () => { 'Rentang Bobot': '-', 'Sisa Ayam (Ekor)': totals.total_remaining_chicken_birds, 'Sisa Ayam (KG)': totals.total_remaining_chicken_weight_kg, - 'Rata-Rata Bobot (KG)': '', - 'Feed (Supplier)': '', - 'DOC (Supplier)': '', - 'Rata-Rata Harga DOC (RP)': '', - 'HPP (RP)': '', + 'Rata-Rata Bobot (KG)': avgWeight, + 'Feed (Supplier)': Array.from(totals.all_feed_suppliers).join(' | '), + 'DOC (Supplier)': Array.from(totals.all_doc_suppliers).join(' | '), + 'Rata-Rata Harga DOC (RP)': avgDocPrice, + 'HPP (RP)': avgHpp, 'Nilai Nominal Sisa Ayam (RP)': totals.total_remaining_value_rp, }); From 530ef4982d917252711da85f335611b9666aeffb Mon Sep 17 00:00:00 2001 From: rstubryan Date: Wed, 17 Dec 2025 13:04:26 +0700 Subject: [PATCH 21/89] refactor(FE-355,357): Use summary fields for egg HPP and total value --- .../pages/report/sale/tab/HppPerKandangTab.tsx | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index 1f6bdc7f..3a948a0f 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -600,13 +600,7 @@ const HppPerKandangTab = () => { }, footer: () => (
- {formatCurrency( - summary?.total_remaining_value_rp && - summary?.total_remaining_chicken_birds - ? summary.total_remaining_value_rp / - summary.total_remaining_chicken_birds - : 0 - )} + {formatCurrency(summary?.average_egg_hpp_rp_per_kg || 0)}
), }, @@ -620,13 +614,7 @@ const HppPerKandangTab = () => { }, footer: () => (
- {formatCurrency( - summary?.total_remaining_value_rp && - summary?.total_remaining_chicken_birds - ? summary.total_remaining_value_rp / - summary.total_remaining_chicken_birds - : 0 - )} + {formatCurrency(summary?.total_egg_value_rp || 0)}
), }, From e5154383120b16d15d7e9556cba04ac1454dd183 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Wed, 17 Dec 2025 13:33:51 +0700 Subject: [PATCH 22/89] refactor(FE-355): Use NumberInput and SelectInput for filters --- .../report/sale/tab/HppPerKandangTab.tsx | 74 ++++++++++--------- 1 file changed, 38 insertions(+), 36 deletions(-) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index 3a948a0f..e50667fd 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -7,8 +7,7 @@ import SelectInput, { OptionType, } from '@/components/input/SelectInput'; import DateInput from '@/components/input/DateInput'; -import TextInput from '@/components/input/TextInput'; -import CheckboxInput from '@/components/input/CheckboxInput'; +import NumberInput from '@/components/input/NumberInput'; import { AreaApi } from '@/services/api/master-data'; import { LocationApi } from '@/services/api/master-data'; import { KandangApi } from '@/services/api/master-data'; @@ -34,9 +33,6 @@ interface Totals { } const HppPerKandangTab = () => { - // ===== STATE MANAGEMENT ===== - const [isPdfExportLoading, setIsPdfExportLoading] = useState(false); - // ===== SUBMISSION STATE ===== const [isSubmitted, setIsSubmitted] = useState(false); @@ -71,6 +67,11 @@ const HppPerKandangTab = () => { const { options: kandangOptions, isLoadingOptions: isLoadingKandangs } = useSelect(KandangApi.basePath, 'id', 'name', 'search'); + const showUnrecordedOptions: OptionType[] = [ + { value: 'false', label: 'Sembunyikan' }, + { value: 'true', label: 'Tampilkan' }, + ]; + const areaChangeHandler = useCallback( (val: OptionType | OptionType[] | null) => { const newVal = val as OptionType; @@ -103,7 +104,7 @@ const HppPerKandangTab = () => { >( (e) => { const val = e.target.value; - updateFilter('weight_min', val || ''); + updateFilter('weight_min', val ? String(parseInt(val, 10)) : ''); setIsSubmitted(false); }, [updateFilter] @@ -114,7 +115,7 @@ const HppPerKandangTab = () => { >( (e) => { const val = e.target.value; - updateFilter('weight_max', val || ''); + updateFilter('weight_max', val ? String(parseInt(val, 10)) : ''); setIsSubmitted(false); }, [updateFilter] @@ -129,12 +130,10 @@ const HppPerKandangTab = () => { [updateFilter] ); - const showUnrecordedChangeHandler = useCallback< - ChangeEventHandler - >( - (e) => { - const checked = e.target.checked; - updateFilter('show_unrecorded', checked); + const showUnrecordedChangeHandler = useCallback( + (val: OptionType | OptionType[] | null) => { + const newVal = val as OptionType; + updateFilter('show_unrecorded', newVal?.value === 'true'); setIsSubmitted(false); }, [updateFilter] @@ -308,7 +307,6 @@ const HppPerKandangTab = () => { } ); - // Calculate averages const avgWeight = totals.total_remaining_chicken_birds > 0 ? totals.total_remaining_chicken_weight_kg / @@ -716,22 +714,22 @@ const HppPerKandangTab = () => {
- - +
+ + +
{ onChange={periodChangeHandler} required /> -
- -
- opt.value === 'true') || + null + : showUnrecordedOptions.find((opt) => opt.value === 'false') || + null + } onChange={showUnrecordedChangeHandler} />
From 9365320b03ef2e2c5693e425b4b717c253b7968f Mon Sep 17 00:00:00 2001 From: rstubryan Date: Wed, 17 Dec 2025 13:45:00 +0700 Subject: [PATCH 23/89] feat(FE-357): Add loading state for export --- .../pages/report/sale/tab/HppPerKandangTab.tsx | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index e50667fd..620f41d6 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -33,6 +33,11 @@ interface Totals { } const HppPerKandangTab = () => { + // ===== STATE MANAGEMENT ===== + const [isPdfExportLoading, setIsPdfExportLoading] = useState(false); + const [isExcelExportLoading, setIsExcelExportLoading] = useState(false); + const isAnyExportLoading = isPdfExportLoading || isExcelExportLoading; + // ===== SUBMISSION STATE ===== const [isSubmitted, setIsSubmitted] = useState(false); @@ -273,6 +278,7 @@ const HppPerKandangTab = () => { return; } + setIsExcelExportLoading(true); try { const totals = allExportData.reduce( (acc, item) => ({ @@ -400,6 +406,8 @@ const HppPerKandangTab = () => { toast.success('Excel berhasil dibuat dan diunduh.'); } catch { toast.error('Gagal membuat Excel. Silakan coba lagi.'); + } finally { + setIsExcelExportLoading(false); } }, [ allExportData, @@ -415,6 +423,7 @@ const HppPerKandangTab = () => { return; } + setIsPdfExportLoading(true); try { const areaName = tableFilterState.area_id ? areaOptions.find( @@ -448,6 +457,8 @@ const HppPerKandangTab = () => { toast.success('PDF berhasil dibuat dan diunduh.'); } catch { toast.error('Gagal membuat PDF. Silakan coba lagi.'); + } finally { + setIsPdfExportLoading(false); } }, [ hppPerKandang, @@ -652,7 +663,11 @@ const HppPerKandangTab = () => { Reset Export} + trigger={ + + } align='end' > From e1b562c17599562e970fdce2dcb6e9423d97238e Mon Sep 17 00:00:00 2001 From: rstubryan Date: Wed, 17 Dec 2025 14:05:29 +0700 Subject: [PATCH 24/89] refactor(FE-357): Refactor export data fetching and handlers --- .../report/sale/tab/HppPerKandangTab.tsx | 128 ++++++++++-------- 1 file changed, 69 insertions(+), 59 deletions(-) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index 620f41d6..38ac1649 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -165,7 +165,7 @@ const HppPerKandangTab = () => { }, [tableFilterState.period]); // ===== DATA FETCHING ===== - const { data: hppPerKandang, isLoading } = useSWR( + const { data: hppPerKandangResponse, isLoading } = useSWR( isSubmitted ? () => { const params = { @@ -207,51 +207,52 @@ const HppPerKandangTab = () => { const data: HppPerKandangReport['rows'] = useMemo( () => - isResponseSuccess(hppPerKandang) - ? (hppPerKandang?.data?.rows as HppPerKandangReport['rows']) || [] + isResponseSuccess(hppPerKandangResponse) + ? (hppPerKandangResponse?.data?.rows as HppPerKandangReport['rows']) || + [] : [], - [hppPerKandang] + [hppPerKandangResponse] ); const summary = - isResponseSuccess(hppPerKandang) && hppPerKandang?.data?.summary - ? hppPerKandang.data.summary + isResponseSuccess(hppPerKandangResponse) && + hppPerKandangResponse?.data?.summary + ? hppPerKandangResponse.data.summary : undefined; const period = - isResponseSuccess(hppPerKandang) && hppPerKandang?.data?.period - ? hppPerKandang.data.period + isResponseSuccess(hppPerKandangResponse) && + hppPerKandangResponse?.data?.period + ? hppPerKandangResponse.data.period : undefined; - const { data: allDataForExport } = useSWR( - isSubmitted - ? () => { - const params = { - area_id: tableFilterState.area_id - ? Number(tableFilterState.area_id) - : undefined, - location_id: tableFilterState.location_id - ? Number(tableFilterState.location_id) - : undefined, - kandang_id: tableFilterState.kandang_id - ? Number(tableFilterState.kandang_id) - : undefined, - weight_min: tableFilterState.weight_min - ? Number(tableFilterState.weight_min) - : undefined, - weight_max: tableFilterState.weight_max - ? Number(tableFilterState.weight_max) - : undefined, - period: tableFilterState.period || undefined, - sort_by: tableFilterState.sort_by || undefined, - show_unrecorded: tableFilterState.show_unrecorded, - }; + // ===== EXPORT DATA FETCHER ===== + const fetchAllExportData = + useCallback(async (): Promise => { + const params = { + area_id: tableFilterState.area_id + ? Number(tableFilterState.area_id) + : undefined, + location_id: tableFilterState.location_id + ? Number(tableFilterState.location_id) + : undefined, + kandang_id: tableFilterState.kandang_id + ? Number(tableFilterState.kandang_id) + : undefined, + weight_min: tableFilterState.weight_min + ? Number(tableFilterState.weight_min) + : undefined, + weight_max: tableFilterState.weight_max + ? Number(tableFilterState.weight_max) + : undefined, + period: tableFilterState.period || undefined, + sort_by: tableFilterState.sort_by || undefined, + show_unrecorded: tableFilterState.show_unrecorded, + limit: 10000, + page: 1, + }; - return ['hpp-per-kandang-report-export', params]; - } - : null, - ([, params]) => - SaleReportApi.getHppPerKandangReport( + const response = await SaleReportApi.getHppPerKandangReport( params.area_id, params.location_id, params.kandang_id, @@ -260,26 +261,29 @@ const HppPerKandangTab = () => { params.period, params.sort_by, params.show_unrecorded - ) - ); + ); - const allExportData: HppPerKandangReport['rows'] = useMemo( - () => - isResponseSuccess(allDataForExport) - ? (allDataForExport?.data?.rows as HppPerKandangReport['rows']) || [] - : [], - [allDataForExport] - ); + return isResponseSuccess(response) ? response.data : null; + }, [tableFilterState]); // ===== EXPORT HANDLERS ===== - const handleExportExcel = useCallback(() => { - if (allExportData.length === 0) { - toast.error('Tidak ada data untuk diekspor.'); - return; - } - + const handleExportExcel = useCallback(async () => { setIsExcelExportLoading(true); try { + const allDataForExport = await fetchAllExportData(); + + if ( + !allDataForExport || + !allDataForExport?.rows || + allDataForExport.rows.length === 0 + ) { + toast.error('Tidak ada data untuk diekspor.'); + return; + } + + const allExportData = + allDataForExport.rows as HppPerKandangReport['rows']; + const totals = allExportData.reduce( (acc, item) => ({ total_remaining_chicken_birds: @@ -410,7 +414,7 @@ const HppPerKandangTab = () => { setIsExcelExportLoading(false); } }, [ - allExportData, + fetchAllExportData, tableFilterState, areaOptions, locationOptions, @@ -418,13 +422,19 @@ const HppPerKandangTab = () => { ]); const handleExportPDF = useCallback(async () => { - if (!hppPerKandang || !isResponseSuccess(hppPerKandang)) { - toast.error('Tidak ada data untuk diekspor.'); - return; - } - setIsPdfExportLoading(true); try { + const allDataForExport = await fetchAllExportData(); + + if ( + !allDataForExport || + !allDataForExport?.rows || + allDataForExport.rows.length === 0 + ) { + toast.error('Tidak ada data untuk diekspor.'); + return; + } + const areaName = tableFilterState.area_id ? areaOptions.find( (opt) => opt.value === Number(tableFilterState.area_id) @@ -443,7 +453,7 @@ const HppPerKandangTab = () => { )?.label || 'Semua Kandang' : 'Semua Kandang'; - await generateHppPerKandangPDF(hppPerKandang.data, { + await generateHppPerKandangPDF(allDataForExport, { area_name: areaName, location_name: locationName, kandang_name: kandangName, @@ -461,7 +471,7 @@ const HppPerKandangTab = () => { setIsPdfExportLoading(false); } }, [ - hppPerKandang, + fetchAllExportData, tableFilterState, areaOptions, locationOptions, From 80fd75dfc14c1a4f7015b78f213bd95704bdbe3b Mon Sep 17 00:00:00 2001 From: rstubryan Date: Wed, 17 Dec 2025 14:14:27 +0700 Subject: [PATCH 25/89] refactor(FE-357): Rename API response and export fetch vars --- .../report/sale/tab/HppPerKandangTab.tsx | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index 38ac1649..fa0e2df1 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -165,7 +165,7 @@ const HppPerKandangTab = () => { }, [tableFilterState.period]); // ===== DATA FETCHING ===== - const { data: hppPerKandangResponse, isLoading } = useSWR( + const { data: hppPerKandang, isLoading } = useSWR( isSubmitted ? () => { const params = { @@ -207,27 +207,24 @@ const HppPerKandangTab = () => { const data: HppPerKandangReport['rows'] = useMemo( () => - isResponseSuccess(hppPerKandangResponse) - ? (hppPerKandangResponse?.data?.rows as HppPerKandangReport['rows']) || - [] + isResponseSuccess(hppPerKandang) + ? (hppPerKandang?.data?.rows as HppPerKandangReport['rows']) || [] : [], - [hppPerKandangResponse] + [hppPerKandang] ); const summary = - isResponseSuccess(hppPerKandangResponse) && - hppPerKandangResponse?.data?.summary - ? hppPerKandangResponse.data.summary + isResponseSuccess(hppPerKandang) && hppPerKandang?.data?.summary + ? hppPerKandang.data.summary : undefined; const period = - isResponseSuccess(hppPerKandangResponse) && - hppPerKandangResponse?.data?.period - ? hppPerKandangResponse.data.period + isResponseSuccess(hppPerKandang) && hppPerKandang?.data?.period + ? hppPerKandang.data.period : undefined; // ===== EXPORT DATA FETCHER ===== - const fetchAllExportData = + const hppPerKandangExport = useCallback(async (): Promise => { const params = { area_id: tableFilterState.area_id @@ -270,7 +267,7 @@ const HppPerKandangTab = () => { const handleExportExcel = useCallback(async () => { setIsExcelExportLoading(true); try { - const allDataForExport = await fetchAllExportData(); + const allDataForExport = await hppPerKandangExport(); if ( !allDataForExport || From bb80e9e9c6fcbb5e232b7fe85b78056806dc74d1 Mon Sep 17 00:00:00 2001 From: randy-ar Date: Wed, 17 Dec 2025 14:22:15 +0700 Subject: [PATCH 26/89] fix(FE): remove dummy data and integrate live API for closing finance and fixing closing UI when given data is null --- .../pages/closing/ClosingFinanceTable.tsx | 689 +++++----- .../ClosingSapronakCalculationTable.tsx | 124 +- src/dummy/closing.dummy.ts | 1136 ----------------- src/dummy/json/closing-finance.dummy.ts | 185 --- src/dummy/marketing.dummy.ts | 388 ------ src/dummy/report/expense.dummy.ts | 621 --------- src/services/api/closing.ts | 100 +- src/services/api/marketing/marketing.ts | 37 - 8 files changed, 409 insertions(+), 2871 deletions(-) delete mode 100644 src/dummy/closing.dummy.ts delete mode 100644 src/dummy/json/closing-finance.dummy.ts delete mode 100644 src/dummy/marketing.dummy.ts delete mode 100644 src/dummy/report/expense.dummy.ts diff --git a/src/components/pages/closing/ClosingFinanceTable.tsx b/src/components/pages/closing/ClosingFinanceTable.tsx index 0cc5bf37..1a3c0130 100644 --- a/src/components/pages/closing/ClosingFinanceTable.tsx +++ b/src/components/pages/closing/ClosingFinanceTable.tsx @@ -136,381 +136,370 @@ const ClosingFinanceTable = ({ return (
- {isResponseSuccess(finance) && ( - <> - -
-
-
- {formatTitleCase( - finance.data.profit_loss.data.summary.gross_profit.label || - '-' - )} -
-
- {formatCurrency( - finance.data.profit_loss.data.summary.gross_profit.amount - )} -
+ <> + +
+
+
+ {isResponseSuccess(finance) + ? formatTitleCase( + finance.data.profit_loss.data.summary.gross_profit + .label || '-' + ) + : 'Laba Rugi Brutto'}
-
-
- {formatTitleCase( - finance.data.profit_loss.data.summary.net_profit.label || - '-' - )} -
-
- {formatCurrency( - finance.data.profit_loss.data.summary.net_profit.amount - )} -
+
+ {isResponseSuccess(finance) + ? formatCurrency( + finance.data.profit_loss.data.summary.gross_profit.amount + ) + : '-'}
- - -
- - data={hppTableData} - columns={[ - { - header: 'No.', - enableSorting: false, - accessorFn: (item, index) => { - if (item.isGroupHeader) return '-'; - // Calculate row number excluding group headers - const dataRowsBefore = hppTableData - .slice(0, index) - .filter((row) => !row.isGroupHeader).length; - return dataRowsBefore + 1; +
+
+ {isResponseSuccess(finance) + ? formatTitleCase( + finance.data.profit_loss.data.summary.net_profit.label || + '-' + ) + : 'Laba Rugi Netto'} +
+
+ {isResponseSuccess(finance) + ? formatCurrency( + finance.data.profit_loss.data.summary.net_profit.amount + ) + : '-'} +
+
+
+
+ +
+ + data={hppTableData} + columns={[ + { + header: 'No.', + enableSorting: false, + accessorFn: (item, index) => { + if (item.isGroupHeader) return '-'; + const dataRowsBefore = hppTableData + .slice(0, index) + .filter((row) => !row.isGroupHeader).length; + return dataRowsBefore + 1; + }, + footer: (props) => { + return 'HPP'; + }, + }, + { + header: 'Type', + enableSorting: false, + accessorFn: (item) => formatTitleCase(item.type || '-'), + }, + { + header: 'Budgeting', + enableSorting: false, + columns: [ + { + header: 'Rp/Ekor', + id: 'budgeting_rp_per_bird', + enableSorting: false, + accessorFn: (item) => + formatCurrency(item.budgeting?.rp_per_bird || 0), + footer: (props) => { + return props.column.id === 'budgeting_rp_per_bird' && + isResponseSuccess(finance) + ? formatCurrency( + finance.data.hpp_purchases.summary_hpp.budgeting + .rp_per_bird || 0 + ) + : '-'; + }, }, - footer: (props) => { - return 'HPP'; + { + header: 'Rp/Kg', + id: 'budgeting_rp_per_kg', + enableSorting: false, + accessorFn: (item) => + formatCurrency(item.budgeting?.rp_per_kg || 0), + footer: (props) => { + return props.column.id === 'budgeting_rp_per_kg' && + isResponseSuccess(finance) + ? formatCurrency( + finance.data.hpp_purchases.summary_hpp.budgeting + .rp_per_kg || 0 + ) + : '-'; + }, }, - }, - { - header: 'Type', - enableSorting: false, - accessorFn: (item) => formatTitleCase(item.type || '-'), - }, - { - header: 'Budgeting', - enableSorting: false, - columns: [ - { - header: 'Rp/Ekor', - id: 'budgeting_rp_per_bird', - enableSorting: false, - accessorFn: (item) => - formatCurrency(item.budgeting?.rp_per_bird || 0), - footer: (props) => { - return props.column.id === 'budgeting_rp_per_bird' - ? formatCurrency( - finance.data.hpp_purchases.hpp.reduce( - (total, hpp) => - total + - (finance.data.hpp_purchases.summary_hpp - .budgeting.rp_per_bird || 0), - 0 - ) - ) - : '-'; - }, + { + header: 'Jumlah (Rp)', + id: 'budgeting_amount', + enableSorting: false, + accessorFn: (item) => + formatCurrency(item.budgeting?.amount || 0), + footer: (props) => { + return props.column.id === 'budgeting_amount' && + isResponseSuccess(finance) + ? formatCurrency( + finance.data.hpp_purchases.summary_hpp.budgeting + .amount || 0 + ) + : '-'; }, - { - header: 'Rp/Kg', - id: 'budgeting_rp_per_kg', - enableSorting: false, - accessorFn: (item) => - formatCurrency(item.budgeting?.rp_per_kg || 0), - footer: (props) => { - return props.column.id === 'budgeting_rp_per_kg' - ? formatCurrency( - finance.data.hpp_purchases.hpp.reduce( - (total, hpp) => - total + - (finance.data.hpp_purchases.summary_hpp - .budgeting.rp_per_kg || 0), - 0 - ) - ) - : '-'; - }, + }, + ], + }, + { + header: 'Realization', + enableSorting: false, + columns: [ + { + header: 'Rp/Ekor', + id: 'realization_rp_per_bird', + enableSorting: false, + accessorFn: (item) => + formatCurrency(item.realization?.rp_per_bird || 0), + footer: (props) => { + return props.column.id === 'realization_rp_per_bird' && + isResponseSuccess(finance) + ? formatCurrency( + finance.data.hpp_purchases.summary_hpp.realization + .rp_per_bird || 0 + ) + : '-'; }, - { - header: 'Jumlah (Rp)', - id: 'budgeting_amount', - enableSorting: false, - accessorFn: (item) => - formatCurrency(item.budgeting?.amount || 0), - footer: (props) => { - return props.column.id === 'budgeting_amount' - ? formatCurrency( - finance.data.hpp_purchases.hpp.reduce( - (total, hpp) => - total + - (finance.data.hpp_purchases.summary_hpp - .budgeting.amount || 0), - 0 - ) - ) - : '-'; - }, + }, + { + header: 'Rp/Kg', + id: 'realization_rp_per_kg', + enableSorting: false, + accessorFn: (item) => + formatCurrency(item.realization?.rp_per_kg || 0), + footer: (props) => { + return props.column.id === 'realization_rp_per_kg' && + isResponseSuccess(finance) + ? formatCurrency( + finance.data.hpp_purchases.summary_hpp.realization + .rp_per_kg || 0 + ) + : '-'; }, - ], - }, - { - header: 'Realization', - enableSorting: false, - columns: [ - { - header: 'Rp/Ekor', - id: 'realization_rp_per_bird', - enableSorting: false, - accessorFn: (item) => - formatCurrency(item.realization?.rp_per_bird || 0), - footer: (props) => { - return props.column.id === 'realization_rp_per_bird' - ? formatCurrency( - finance.data.hpp_purchases.hpp.reduce( - (total, hpp) => - total + - (finance.data.hpp_purchases.summary_hpp - .realization.rp_per_bird || 0), - 0 - ) - ) - : '-'; - }, + }, + { + header: 'Jumlah (Rp)', + id: 'realization_amount', + enableSorting: false, + accessorFn: (item) => + formatCurrency(item.realization?.amount || 0), + footer: (props) => { + return props.column.id === 'realization_amount' && + isResponseSuccess(finance) + ? formatCurrency( + finance.data.hpp_purchases.summary_hpp.realization + .amount || 0 + ) + : '-'; }, - { - header: 'Rp/Kg', - id: 'realization_rp_per_kg', - enableSorting: false, - accessorFn: (item) => - formatCurrency(item.realization?.rp_per_kg || 0), - footer: (props) => { - return props.column.id === 'realization_rp_per_kg' - ? formatCurrency( - finance.data.hpp_purchases.hpp.reduce( - (total, hpp) => - total + - (finance.data.hpp_purchases.summary_hpp - .realization.rp_per_kg || 0), - 0 - ) - ) - : '-'; - }, - }, - { - header: 'Jumlah (Rp)', - id: 'realization_amount', - enableSorting: false, - accessorFn: (item) => - formatCurrency(item.realization?.amount || 0), - footer: (props) => { - return props.column.id === 'realization_amount' - ? formatCurrency( - finance.data.hpp_purchases.hpp.reduce( - (total, hpp) => - total + - (finance.data.hpp_purchases.summary_hpp - .realization.amount || 0), - 0 - ) - ) - : '-'; - }, - }, - ], - }, - ]} - renderCustomRow={(row) => { - const rowData = row.original; - if (rowData.isGroupHeader) { + }, + ], + }, + ]} + renderCustomRow={(row) => { + const rowData = row.original; + if (rowData.isGroupHeader) { + return ( +
+ + + + ); + } + return null; + }} + renderFooter={isResponseSuccess(finance)} + /> + + + +
+ + data={profitLossTableData} + columns={[ + { + header: 'Type', + enableSorting: false, + accessorFn: (item) => item.type, + cell: (item) => ( +
+ {formatTitleCase(item.row.original.type || '-')} +
+ ), + footer: (item) => ( +
+ {isResponseSuccess(finance) + ? formatTitleCase( + finance.data.profit_loss.data.summary.net_profit + .label || '-' + ) + : '-'} +
+ ), + }, + { + header: 'Rp/Ekor', + enableSorting: false, + accessorFn: (item) => formatCurrency(item.rp_per_bird || 0), + footer: (item) => ( +
+ {isResponseSuccess(finance) + ? formatCurrency( + finance.data.profit_loss.data.summary.net_profit + .rp_per_bird || 0 + ) + : formatCurrency(0)} +
+ ), + }, + { + header: 'Rp/Kg', + enableSorting: false, + accessorFn: (item) => formatCurrency(item.rp_per_kg || 0), + footer: (item) => ( +
+ {isResponseSuccess(finance) + ? formatCurrency( + finance.data.profit_loss.data.summary.net_profit + .rp_per_kg || 0 + ) + : formatCurrency(0)} +
+ ), + }, + { + header: 'Jumlah (Rp)', + enableSorting: false, + accessorFn: (item) => formatCurrency(item.amount || 0), + footer: (item) => ( +
+ {isResponseSuccess(finance) + ? formatCurrency( + finance.data.profit_loss.data.summary.net_profit + .amount || 0 + ) + : formatCurrency(0)} +
+ ), + }, + ]} + renderCustomRow={(row) => { + const rowData = row.original; + if (rowData.isGroupHeader) { + if (rowData.amount) { return (
+ > +
+ {formatTitleCase(rowData.label ?? '-')} +
+ + + ); } - return null; - }} - renderFooter - /> - - - -
- - data={profitLossTableData} - columns={[ - { - header: 'Type', - enableSorting: false, - accessorFn: (item) => item.type, - cell: (item) => ( -
- {formatTitleCase(item.row.original.type || '-')} -
- ), - footer: (item) => ( -
- {formatTitleCase( - finance.data.profit_loss.data.summary.net_profit - .label || '-' - )} -
- ), - }, - { - header: 'Rp/Ekor', - enableSorting: false, - accessorFn: (item) => formatCurrency(item.rp_per_bird || 0), - footer: (item) => ( -
- {formatCurrency( - finance.data.profit_loss.data.summary.net_profit - .rp_per_bird || 0 - )} -
- ), - }, - { - header: 'Rp/Kg', - enableSorting: false, - accessorFn: (item) => formatCurrency(item.rp_per_kg || 0), - footer: (item) => ( -
- {formatCurrency( - finance.data.profit_loss.data.summary.net_profit - .rp_per_kg || 0 - )} -
- ), - }, - { - header: 'Jumlah (Rp)', - enableSorting: false, - accessorFn: (item) => formatCurrency(item.amount || 0), - footer: (item) => ( -
- {formatCurrency( - finance.data.profit_loss.data.summary.net_profit - .amount || 0 - )} -
- ), - }, - ]} - renderCustomRow={(row) => { - const rowData = row.original; - if (rowData.isGroupHeader) { - if (rowData.amount) { - return ( -
- - - - - - ); - } - return ( - + - - ); - } - return null; - }} - className={{ - paginationClassName: 'hidden', - }} - renderFooter - /> - - - - )} +
+ {formatTitleCase(rowData.group_name ?? '-')} +
+ + + ); + } + return null; + }} + className={{ + paginationClassName: 'hidden', + }} + renderFooter={isResponseSuccess(finance)} + /> + + + ); }; diff --git a/src/components/pages/closing/ClosingSapronakCalculationTable.tsx b/src/components/pages/closing/ClosingSapronakCalculationTable.tsx index 445b7d8c..ea27fd80 100644 --- a/src/components/pages/closing/ClosingSapronakCalculationTable.tsx +++ b/src/components/pages/closing/ClosingSapronakCalculationTable.tsx @@ -154,66 +154,74 @@ const ClosingSapronakCalculationTable = ({ return (
- {isResponseSuccess(sapronakCalculation) && ( - <> - - - data={sapronakCalculation.data?.doc_broiler.rows ?? []} - columns={docBroilerColumns} - className={{ - containerClassName: 'my-4', - }} - renderFooter - /> - + + + data={ + isResponseSuccess(sapronakCalculation) + ? (sapronakCalculation.data?.doc_broiler.rows ?? []) + : [] + } + columns={docBroilerColumns} + className={{ + containerClassName: 'my-4', + }} + renderFooter={isResponseSuccess(sapronakCalculation)} + /> + - - - data={sapronakCalculation.data?.ovk.rows ?? []} - columns={ovkColumns} - className={{ - containerClassName: 'my-4', - }} - renderFooter - /> - + + + data={ + isResponseSuccess(sapronakCalculation) + ? (sapronakCalculation.data?.ovk.rows ?? []) + : [] + } + columns={ovkColumns} + className={{ + containerClassName: 'my-4', + }} + renderFooter={isResponseSuccess(sapronakCalculation)} + /> + - - - data={sapronakCalculation.data?.pakan.rows ?? []} - columns={pakanColumns} - className={{ - containerClassName: 'my-4', - }} - renderFooter - /> - - - )} + + + data={ + isResponseSuccess(sapronakCalculation) + ? (sapronakCalculation.data?.pakan.rows ?? []) + : [] + } + columns={pakanColumns} + className={{ + containerClassName: 'my-4', + }} + renderFooter={isResponseSuccess(sapronakCalculation)} + /> +
); }; diff --git a/src/dummy/closing.dummy.ts b/src/dummy/closing.dummy.ts deleted file mode 100644 index 3a20cdaf..00000000 --- a/src/dummy/closing.dummy.ts +++ /dev/null @@ -1,1136 +0,0 @@ -/** - * Dummy Data untuk Closing API - * - * File ini berisi dummy data untuk testing API Closing sebelum backend siap. - * - * Struktur data mengikuti tipe yang didefinisikan di @/types/api/closing.d.ts - * - * @example - * // 1. Menggunakan getAllFetcher dengan SWR: - * import useSWR from 'swr'; - * import { ClosingApi } from '@/services/api/closing'; - * - * const { data, error, isLoading } = useSWR( - * '/closings', - * ClosingApi.getAllFetcher.bind(ClosingApi) - * ); - * - * if (data?.status === 'success') { - * console.log(data.data); // Array of Closing objects - * } - * - * @example - * // 2. Menggunakan getSingle: - * import { ClosingApi } from '@/services/api/closing'; - * - * const response = await ClosingApi.getSingle(1); - * if (response?.status === 'success') { - * console.log(response.data); // Single Closing object - * } else if (response?.status === 'error') { - * console.error(response.message); // Error message - * } - * - * @example - * // 3. Menggunakan getGeneralInfo dengan SWR: - * import useSWR from 'swr'; - * import { ClosingApi } from '@/services/api/closing'; - * - * const closingId = 1; - * const { data, error, isLoading } = useSWR( - * closingId, - * (id: number) => ClosingApi.getGeneralInfo(id) - * ); - * - * if (data?.status === 'success') { - * console.log(data.data); // ClosingGeneralInformation object - * } - * - * @example - * // 4. Menggunakan getAllIncomingSapronakFetcher dengan SWR: - * import useSWR from 'swr'; - * import { ClosingApi } from '@/services/api/closing'; - * - * const { data, error, isLoading } = useSWR( - * `${ClosingApi.basePath}/1/sapronak/incoming`, - * ClosingApi.getAllIncomingSapronakFetcher.bind(ClosingApi) - * ); - * - * if (data?.status === 'success') { - * console.log(data.data); // Array of ClosingIncomingSapronak - * } - * - * @example - * // 5. Menggunakan getAllOutgoingSapronakFetcher dengan SWR: - * import useSWR from 'swr'; - * import { ClosingApi } from '@/services/api/closing'; - * - * const { data, error, isLoading } = useSWR( - * `${ClosingApi.basePath}/1/sapronak/outgoing`, - * ClosingApi.getAllOutgoingSapronakFetcher.bind(ClosingApi) - * ); - * - * if (data?.status === 'success') { - * console.log(data.data); // Array of ClosingOutgoingSapronak - * } - * - * @see {@link /home/sweetpotet/Documents/projects/lti-web-client/src/types/api/closing.d.ts} - */ - -import { format } from 'date-fns'; -import { - Closing, - ClosingGeneralInformation, - ClosingIncomingSapronak, - ClosingOutgoingSapronak, - ClosingOverhead, - ClosingSapronakCalculation, -} from '@/types/api/closing'; -import { CreatedUser, BaseApiResponse } from '@/types/api/api-general'; - -// Waktu saat ini untuk created_at/updated_at -const now = format(new Date(), 'yyyy-MM-dd HH:mm:ss'); -const today = format(new Date(), 'yyyy-MM-dd'); -const yesterday = format( - new Date().setDate(new Date().getDate() - 1), - 'yyyy-MM-dd' -); -const lastWeek = format( - new Date().setDate(new Date().getDate() - 7), - 'yyyy-MM-dd' -); -const lastMonth = format( - new Date().setMonth(new Date().getMonth() - 1), - 'yyyy-MM-dd' -); - -// ====================== -// 👤 Created User -// ====================== -export const createdUser: CreatedUser = { - id: 1, - id_user: 1, - email: 'admin@example.com', - name: 'Admin Utama', -}; - -// ====================== -// 📊 Closing Dummy Data -// ====================== -export const dummyClosings: Closing[] = [ - // 1. Closing dengan status Pengajuan - GROWING - { - id: 1, - location_id: 1, - location_name: 'Farm Sukajadi', - project_category: 'GROWING', - period: 1, - closing_date: today, - shed_label: 'Kandang A1, A2, A3', - shed_count: 3, - sales_paid_amount: 150000000, - sales_remaining_amount: 50000000, - sales_payment_status: 'Sebagian Lunas', - project_status: 'Pengajuan', - created_user: createdUser, - created_at: now, - updated_at: now, - }, - - // 2. Closing dengan status Aktif - LAYING - { - id: 2, - location_id: 2, - location_name: 'Farm Cihampelas', - project_category: 'LAYING', - period: 2, - closing_date: yesterday, - shed_label: 'Kandang B1, B2', - shed_count: 2, - sales_paid_amount: 200000000, - sales_remaining_amount: 0, - sales_payment_status: 'Lunas', - project_status: 'Aktif', - created_user: createdUser, - created_at: lastWeek, - updated_at: yesterday, - }, - - // 3. Closing dengan status Selesai - GROWING - { - id: 3, - location_id: 3, - location_name: 'Farm Pasteur', - project_category: 'GROWING', - period: 3, - closing_date: lastWeek, - shed_label: 'Kandang C1, C2, C3, C4', - shed_count: 4, - sales_paid_amount: 300000000, - sales_remaining_amount: 25000000, - sales_payment_status: 'Sebagian Lunas', - project_status: 'Selesai', - created_user: createdUser, - created_at: lastMonth, - updated_at: lastWeek, - }, - - // 4. Closing dengan status Aktif - LAYING - { - id: 4, - location_id: 4, - location_name: 'Farm Setiabudi', - project_category: 'LAYING', - period: 1, - closing_date: today, - shed_label: 'Kandang D1', - shed_count: 1, - sales_paid_amount: 75000000, - sales_remaining_amount: 75000000, - sales_payment_status: 'Belum Lunas', - project_status: 'Aktif', - created_user: createdUser, - created_at: yesterday, - updated_at: now, - }, - - // 5. Closing dengan status Selesai - GROWING - { - id: 5, - location_id: 5, - location_name: 'Farm Dago', - project_category: 'GROWING', - period: 4, - closing_date: lastMonth, - shed_label: 'Kandang E1, E2, E3, E4, E5', - shed_count: 5, - sales_paid_amount: 500000000, - sales_remaining_amount: 0, - sales_payment_status: 'Lunas', - project_status: 'Selesai', - created_user: createdUser, - created_at: lastMonth, - updated_at: lastMonth, - }, - - // 6. Closing dengan status Pengajuan - LAYING - { - id: 6, - location_id: 6, - location_name: 'Farm Lembang', - project_category: 'LAYING', - period: 2, - closing_date: undefined, // Belum ada tanggal closing - shed_label: 'Kandang F1, F2', - shed_count: 2, - sales_paid_amount: 0, - sales_remaining_amount: 180000000, - sales_payment_status: 'Belum Lunas', - project_status: 'Pengajuan', - created_user: createdUser, - created_at: now, - updated_at: now, - }, - - // 7. Closing dengan status Aktif - GROWING - { - id: 7, - location_id: 7, - location_name: 'Farm Ciwidey', - project_category: 'GROWING', - period: 1, - closing_date: yesterday, - shed_label: 'Kandang G1, G2, G3', - shed_count: 3, - sales_paid_amount: 120000000, - sales_remaining_amount: 30000000, - sales_payment_status: 'Sebagian Lunas', - project_status: 'Aktif', - created_user: createdUser, - created_at: lastWeek, - updated_at: yesterday, - }, - - // 8. Closing dengan status Selesai - LAYING - { - id: 8, - location_id: 8, - location_name: 'Farm Bandung Timur', - project_category: 'LAYING', - period: 3, - closing_date: lastMonth, - shed_label: 'Kandang H1, H2, H3, H4, H5, H6', - shed_count: 6, - sales_paid_amount: 600000000, - sales_remaining_amount: 0, - sales_payment_status: 'Lunas', - project_status: 'Selesai', - created_user: createdUser, - created_at: lastMonth, - updated_at: lastMonth, - }, -]; - -// ====================== -// 📊 Closing General Information Dummy Data -// ====================== -export const dummyClosingGeneralInformations: ClosingGeneralInformation[] = [ - // 1. General Info - GROWING - Pengajuan - { - id: 1, - location_id: 1, - location_name: 'Farm Sukajadi', - project_category: 'GROWING', - period: 1, - closing_date: today, - shed_label: 'Kandang A1, A2, A3', - shed_count: 3, - sales_paid_amount: 150000000, - sales_remaining_amount: 50000000, - sales_payment_status: 'Sebagian Lunas', - project_status: 'Pengajuan', - flock_id: 101, - project_type: 'GROWING', - population: 15000, - active_house_count: 3, - closing_status: 'Draft', - created_user: createdUser, - created_at: now, - updated_at: now, - }, - - // 2. General Info - LAYING - Aktif - { - id: 2, - location_id: 2, - location_name: 'Farm Cihampelas', - project_category: 'LAYING', - period: 2, - closing_date: yesterday, - shed_label: 'Kandang B1, B2', - shed_count: 2, - sales_paid_amount: 200000000, - sales_remaining_amount: 0, - sales_payment_status: 'Lunas', - project_status: 'Aktif', - flock_id: 102, - project_type: 'LAYING', - population: 10000, - active_house_count: 2, - closing_status: 'In Progress', - created_user: createdUser, - created_at: lastWeek, - updated_at: yesterday, - }, - - // 3. General Info - GROWING - Selesai - { - id: 3, - location_id: 3, - location_name: 'Farm Pasteur', - project_category: 'GROWING', - period: 3, - closing_date: lastWeek, - shed_label: 'Kandang C1, C2, C3, C4', - shed_count: 4, - sales_paid_amount: 300000000, - sales_remaining_amount: 25000000, - sales_payment_status: 'Sebagian Lunas', - project_status: 'Selesai', - flock_id: 103, - project_type: 'GROWING', - population: 20000, - active_house_count: 4, - closing_status: 'Completed', - created_user: createdUser, - created_at: lastMonth, - updated_at: lastWeek, - }, - - // 4. General Info - LAYING - Aktif - { - id: 4, - location_id: 4, - location_name: 'Farm Setiabudi', - project_category: 'LAYING', - period: 1, - closing_date: today, - shed_label: 'Kandang D1', - shed_count: 1, - sales_paid_amount: 75000000, - sales_remaining_amount: 75000000, - sales_payment_status: 'Belum Lunas', - project_status: 'Aktif', - flock_id: 104, - project_type: 'LAYING', - population: 5000, - active_house_count: 1, - closing_status: 'In Progress', - created_user: createdUser, - created_at: yesterday, - updated_at: now, - }, - - // 5. General Info - GROWING - Selesai - { - id: 5, - location_id: 5, - location_name: 'Farm Dago', - project_category: 'GROWING', - period: 4, - closing_date: lastMonth, - shed_label: 'Kandang E1, E2, E3, E4, E5', - shed_count: 5, - sales_paid_amount: 500000000, - sales_remaining_amount: 0, - sales_payment_status: 'Lunas', - project_status: 'Selesai', - flock_id: 105, - project_type: 'GROWING', - population: 25000, - active_house_count: 5, - closing_status: 'Completed', - created_user: createdUser, - created_at: lastMonth, - updated_at: lastMonth, - }, - - // 6. General Info - LAYING - Pengajuan - { - id: 6, - location_id: 6, - location_name: 'Farm Lembang', - project_category: 'LAYING', - period: 2, - closing_date: undefined, - shed_label: 'Kandang F1, F2', - shed_count: 2, - sales_paid_amount: 0, - sales_remaining_amount: 180000000, - sales_payment_status: 'Belum Lunas', - project_status: 'Pengajuan', - flock_id: 106, - project_type: 'LAYING', - population: 12000, - active_house_count: 2, - closing_status: 'Draft', - created_user: createdUser, - created_at: now, - updated_at: now, - }, - - // 7. General Info - GROWING - Aktif - { - id: 7, - location_id: 7, - location_name: 'Farm Ciwidey', - project_category: 'GROWING', - period: 1, - closing_date: yesterday, - shed_label: 'Kandang G1, G2, G3', - shed_count: 3, - sales_paid_amount: 120000000, - sales_remaining_amount: 30000000, - sales_payment_status: 'Sebagian Lunas', - project_status: 'Aktif', - flock_id: 107, - project_type: 'GROWING', - population: 18000, - active_house_count: 3, - closing_status: 'In Progress', - created_user: createdUser, - created_at: lastWeek, - updated_at: yesterday, - }, - - // 8. General Info - LAYING - Selesai - { - id: 8, - location_id: 8, - location_name: 'Farm Bandung Timur', - project_category: 'LAYING', - period: 3, - closing_date: lastMonth, - shed_label: 'Kandang H1, H2, H3, H4, H5, H6', - shed_count: 6, - sales_paid_amount: 600000000, - sales_remaining_amount: 0, - sales_payment_status: 'Lunas', - project_status: 'Selesai', - flock_id: 108, - project_type: 'LAYING', - population: 30000, - active_house_count: 6, - closing_status: 'Completed', - created_user: createdUser, - created_at: lastMonth, - updated_at: lastMonth, - }, -]; - -// ====================== -// 📦 Incoming Sapronak Dummy Data -// ====================== -export const dummyIncomingSapronaks: ClosingIncomingSapronak[] = [ - { - id: 1, - date: today, - reference_number: 'IN-2025-001', - transaction_type: 'Pembelian', - product_name: 'DOC Broiler Cobb 500', - product_category: 'DOC', - product_sub_category: 'DOC Broiler', - source_warehouse: 'Gudang Pusat', - destination_warehouse: 'Kandang A1', - quantity: 5000, - unit: 'Ekor', - formatted_quantity: '5,000 Ekor', - notes: 'DOC berkualitas tinggi dari supplier terpercaya', - }, - { - id: 2, - date: yesterday, - reference_number: 'IN-2025-002', - transaction_type: 'Transfer Masuk', - product_name: 'Pakan Starter BR-1', - product_category: 'Pakan', - product_sub_category: 'Starter', - source_warehouse: 'Gudang Area Bandung', - destination_warehouse: 'Kandang B1', - quantity: 100, - unit: 'Sak', - formatted_quantity: '100 Sak (5,000 Kg)', - notes: 'Pakan starter untuk periode awal', - }, - { - id: 3, - date: lastWeek, - reference_number: 'IN-2025-003', - transaction_type: 'Pembelian', - product_name: 'Vitamin B Complex', - product_category: 'OVK', - product_sub_category: 'Vitamin', - source_warehouse: 'Supplier Medion', - destination_warehouse: 'Gudang Farmasi', - quantity: 50, - unit: 'Botol', - formatted_quantity: '50 Botol', - notes: 'Vitamin untuk meningkatkan daya tahan tubuh', - }, - { - id: 4, - date: today, - reference_number: 'IN-2025-004', - transaction_type: 'Pembelian', - product_name: 'Pakan Finisher BR-2', - product_category: 'Pakan', - product_sub_category: 'Finisher', - source_warehouse: 'Gudang Pusat', - destination_warehouse: 'Kandang C1', - quantity: 200, - unit: 'Sak', - formatted_quantity: '200 Sak (10,000 Kg)', - notes: 'Pakan finisher untuk periode akhir', - }, - { - id: 5, - date: yesterday, - reference_number: 'IN-2025-005', - transaction_type: 'Transfer Masuk', - product_name: 'Antibiotik Enrofloxacin', - product_category: 'OVK', - product_sub_category: 'Obat', - source_warehouse: 'Gudang Area Jakarta', - destination_warehouse: 'Gudang Farmasi', - quantity: 30, - unit: 'Box', - formatted_quantity: '30 Box', - notes: 'Antibiotik untuk pencegahan penyakit', - }, -]; - -// ====================== -// 📤 Outgoing Sapronak Dummy Data -// ====================== -export const dummyOutgoingSapronaks: ClosingOutgoingSapronak[] = [ - { - id: 1, - date: today, - reference_number: 'OUT-2025-001', - transaction_type: 'Pemakaian', - product_name: 'Pakan Starter BR-1', - product_category: 'Pakan', - product_sub_category: 'Starter', - source_warehouse: 'Kandang A1', - destination_warehouse: 'Konsumsi Kandang A1', - quantity: 50, - unit: 'Sak', - formatted_quantity: '50 Sak (2,500 Kg)', - notes: 'Pemakaian pakan harian periode starter', - }, - { - id: 2, - date: yesterday, - reference_number: 'OUT-2025-002', - transaction_type: 'Transfer Keluar', - product_name: 'DOC Broiler Cobb 500', - product_category: 'DOC', - product_sub_category: 'DOC Broiler', - source_warehouse: 'Kandang B1', - destination_warehouse: 'Kandang B2', - quantity: 1000, - unit: 'Ekor', - formatted_quantity: '1,000 Ekor', - notes: 'Transfer DOC ke kandang baru', - }, - { - id: 3, - date: lastWeek, - reference_number: 'OUT-2025-003', - transaction_type: 'Pemakaian', - product_name: 'Vitamin B Complex', - product_category: 'OVK', - product_sub_category: 'Vitamin', - source_warehouse: 'Gudang Farmasi', - destination_warehouse: 'Konsumsi Kandang C1', - quantity: 10, - unit: 'Botol', - formatted_quantity: '10 Botol', - notes: 'Pemberian vitamin untuk meningkatkan kesehatan', - }, - { - id: 4, - date: today, - reference_number: 'OUT-2025-004', - transaction_type: 'Pemakaian', - product_name: 'Pakan Finisher BR-2', - product_category: 'Pakan', - product_sub_category: 'Finisher', - source_warehouse: 'Kandang C1', - destination_warehouse: 'Konsumsi Kandang C1', - quantity: 80, - unit: 'Sak', - formatted_quantity: '80 Sak (4,000 Kg)', - notes: 'Pemakaian pakan harian periode finisher', - }, - { - id: 5, - date: yesterday, - reference_number: 'OUT-2025-005', - transaction_type: 'Pemakaian', - product_name: 'Antibiotik Enrofloxacin', - product_category: 'OVK', - product_sub_category: 'Obat', - source_warehouse: 'Gudang Farmasi', - destination_warehouse: 'Konsumsi Kandang D1', - quantity: 5, - unit: 'Box', - formatted_quantity: '5 Box', - notes: 'Pengobatan untuk ayam yang sakit', - }, - { - id: 6, - date: lastWeek, - reference_number: 'OUT-2025-006', - transaction_type: 'Transfer Keluar', - product_name: 'Pakan Starter BR-1', - product_category: 'Pakan', - product_sub_category: 'Starter', - source_warehouse: 'Kandang E1', - destination_warehouse: 'Kandang E2', - quantity: 30, - unit: 'Sak', - formatted_quantity: '30 Sak (1,500 Kg)', - notes: 'Transfer pakan antar kandang', - }, -]; - -// ====================== -// 📊 Perhitungan Sapronak Dummy Data -// ====================== -export const dummySapronakCalculation: ClosingSapronakCalculation = { - // DOC Broiler Calculation - doc_broiler: { - rows: [ - { - id: 1, - tanggal: today, - no_referensi: 'IN-2025-001', - qty_masuk: 5000, - qty_keluar: 0, - qty_pakai: 0, - uraian: 'DOC Broiler Cobb 500', - kategori_produk: 'DOC Broiler', - harga_beli_per_qty: 8000, - total_harga: 40000000, - keterangan: 'Pembelian DOC dari supplier', - }, - { - id: 2, - tanggal: yesterday, - no_referensi: 'OUT-2025-002', - qty_masuk: 0, - qty_keluar: 1000, - qty_pakai: 0, - uraian: 'DOC Broiler Cobb 500', - kategori_produk: 'DOC Broiler', - harga_beli_per_qty: 8000, - total_harga: 8000000, - keterangan: 'Transfer DOC ke kandang lain', - }, - { - id: 3, - tanggal: lastWeek, - no_referensi: 'USE-2025-001', - qty_masuk: 0, - qty_keluar: 0, - qty_pakai: 50, - uraian: 'DOC Broiler Cobb 500', - kategori_produk: 'DOC Broiler', - harga_beli_per_qty: 8000, - total_harga: 400000, - keterangan: 'Mortalitas DOC', - }, - ], - total: { - label: 'Total DOC Broiler', - qty_masuk: 5000, - qty_keluar: 1000, - qty_pakai: 50, - harga_beli_per_qty: 8000, - total_harga: 48400000, - }, - }, - - // OVK Calculation - ovk: { - rows: [ - { - id: 1, - tanggal: today, - no_referensi: 'IN-2025-003', - qty_masuk: 50, - qty_keluar: 0, - qty_pakai: 0, - uraian: 'Vitamin B Complex', - kategori_produk: 'Vitamin', - harga_beli_per_qty: 150000, - total_harga: 7500000, - keterangan: 'Pembelian vitamin', - }, - { - id: 2, - tanggal: yesterday, - no_referensi: 'IN-2025-005', - qty_masuk: 30, - qty_keluar: 0, - qty_pakai: 0, - uraian: 'Antibiotik Enrofloxacin', - kategori_produk: 'Obat', - harga_beli_per_qty: 250000, - total_harga: 7500000, - keterangan: 'Pembelian antibiotik', - }, - { - id: 3, - tanggal: lastWeek, - no_referensi: 'OUT-2025-003', - qty_masuk: 0, - qty_keluar: 0, - qty_pakai: 10, - uraian: 'Vitamin B Complex', - kategori_produk: 'Vitamin', - harga_beli_per_qty: 150000, - total_harga: 1500000, - keterangan: 'Pemakaian vitamin', - }, - { - id: 4, - tanggal: yesterday, - no_referensi: 'OUT-2025-005', - qty_masuk: 0, - qty_keluar: 0, - qty_pakai: 5, - uraian: 'Antibiotik Enrofloxacin', - kategori_produk: 'Obat', - harga_beli_per_qty: 250000, - total_harga: 1250000, - keterangan: 'Pemakaian antibiotik', - }, - ], - total: { - label: 'Total OVK', - qty_masuk: 80, - qty_keluar: 0, - qty_pakai: 15, - harga_beli_per_qty: 200000, - total_harga: 17750000, - }, - }, - - // Pakan Calculation - pakan: { - rows: [ - { - id: 1, - tanggal: yesterday, - no_referensi: 'IN-2025-002', - qty_masuk: 100, - qty_keluar: 0, - qty_pakai: 0, - uraian: 'Pakan Starter BR-1', - kategori_produk: 'Starter', - harga_beli_per_qty: 450000, - total_harga: 45000000, - keterangan: 'Pembelian pakan starter', - }, - { - id: 2, - tanggal: today, - no_referensi: 'IN-2025-004', - qty_masuk: 200, - qty_keluar: 0, - qty_pakai: 0, - uraian: 'Pakan Finisher BR-2', - kategori_produk: 'Finisher', - harga_beli_per_qty: 480000, - total_harga: 96000000, - keterangan: 'Pembelian pakan finisher', - }, - { - id: 3, - tanggal: today, - no_referensi: 'OUT-2025-001', - qty_masuk: 0, - qty_keluar: 0, - qty_pakai: 50, - uraian: 'Pakan Starter BR-1', - kategori_produk: 'Starter', - harga_beli_per_qty: 450000, - total_harga: 22500000, - keterangan: 'Pemakaian pakan starter', - }, - { - id: 4, - tanggal: today, - no_referensi: 'OUT-2025-004', - qty_masuk: 0, - qty_keluar: 0, - qty_pakai: 80, - uraian: 'Pakan Finisher BR-2', - kategori_produk: 'Finisher', - harga_beli_per_qty: 480000, - total_harga: 38400000, - keterangan: 'Pemakaian pakan finisher', - }, - { - id: 5, - tanggal: lastWeek, - no_referensi: 'OUT-2025-006', - qty_masuk: 0, - qty_keluar: 30, - qty_pakai: 0, - uraian: 'Pakan Starter BR-1', - kategori_produk: 'Starter', - harga_beli_per_qty: 450000, - total_harga: 13500000, - keterangan: 'Transfer pakan ke kandang lain', - }, - ], - total: { - label: 'Total Pakan', - qty_masuk: 300, - qty_keluar: 30, - qty_pakai: 130, - harga_beli_per_qty: 465000, - total_harga: 215400000, - }, - }, -}; - -// ====================== -// 💰 Overhead Dummy Data -// ====================== -export const dummyOverhead: ClosingOverhead = { - overheads: [ - { - item_name: 'Expedisi DOC', - uom_name: 'Ekor', - budget_quantity: 500, - budget_unit_price: 8000, - budget_total_amount: 4000000, - actual_date: '', - actual_quantity: 0, - actual_unit_price: 0, - actual_total_amount: 0, - cost_per_bird: 0, - }, - { - item_name: 'Solar', - uom_name: 'Liter', - budget_quantity: 0, - budget_unit_price: 0, - budget_total_amount: 0, - actual_date: today, - actual_quantity: 20, - actual_unit_price: 10000, - actual_total_amount: 200000, - cost_per_bird: 200, - }, - { - item_name: 'Gaji Karyawan Kandang', - uom_name: 'Orang', - budget_quantity: 3, - budget_unit_price: 3000000, - budget_total_amount: 9000000, - actual_date: today, - actual_quantity: 3, - actual_unit_price: 3200000, - actual_total_amount: 9600000, - cost_per_bird: 640, - }, - { - item_name: 'Listrik Kandang', - uom_name: 'Bulan', - budget_quantity: 1, - budget_unit_price: 2500000, - budget_total_amount: 2500000, - actual_date: today, - actual_quantity: 1, - actual_unit_price: 2800000, - actual_total_amount: 2800000, - cost_per_bird: 187, - }, - { - item_name: 'Air Bersih', - uom_name: 'Bulan', - budget_quantity: 1, - budget_unit_price: 500000, - budget_total_amount: 500000, - actual_date: today, - actual_quantity: 1, - actual_unit_price: 450000, - actual_total_amount: 450000, - cost_per_bird: 30, - }, - { - item_name: 'Perbaikan Kandang', - uom_name: 'Paket', - budget_quantity: 1, - budget_unit_price: 3000000, - budget_total_amount: 3000000, - actual_date: yesterday, - actual_quantity: 1, - actual_unit_price: 3500000, - actual_total_amount: 3500000, - cost_per_bird: 233, - }, - { - item_name: 'Service Peralatan', - uom_name: 'Kali', - budget_quantity: 2, - budget_unit_price: 500000, - budget_total_amount: 1000000, - actual_date: lastWeek, - actual_quantity: 2, - actual_unit_price: 550000, - actual_total_amount: 1100000, - cost_per_bird: 73, - }, - { - item_name: 'ATK & Supplies', - uom_name: 'Paket', - budget_quantity: 1, - budget_unit_price: 500000, - budget_total_amount: 500000, - actual_date: today, - actual_quantity: 1, - actual_unit_price: 450000, - actual_total_amount: 450000, - cost_per_bird: 30, - }, - { - item_name: 'Biaya Komunikasi', - uom_name: 'Bulan', - budget_quantity: 1, - budget_unit_price: 300000, - budget_total_amount: 300000, - actual_date: today, - actual_quantity: 1, - actual_unit_price: 320000, - actual_total_amount: 320000, - cost_per_bird: 21, - }, - { - item_name: 'BBM Kendaraan Operasional', - uom_name: 'Liter', - budget_quantity: 200, - budget_unit_price: 10000, - budget_total_amount: 2000000, - actual_date: today, - actual_quantity: 220, - actual_unit_price: 10500, - actual_total_amount: 2310000, - cost_per_bird: 154, - }, - ], - total: { - budget_quantity: 710, - budget_total_amount: 23300000, - actual_quantity: 250, - actual_total_amount: 24530000, - cost_per_bird: 1568, - }, -}; - -// ====================== -// 🔧 Dummy API Response Functions -// ====================== - -/** - * Dummy implementation for getAllFetcher - * Returns all closing records - */ -export const dummyGetAllFetcher = async (): Promise<{ - code: number; - status: 'success'; - message: string; - data: Closing[]; -}> => { - await new Promise((resolve) => setTimeout(resolve, 500)); - return { - code: 200, - status: 'success', - message: 'Data closing berhasil diambil', - data: dummyClosings, - }; -}; - -/** - * Dummy implementation for getSingle - * Returns a single closing by ID - */ -export const dummyGetSingle = async ( - id: number -): Promise | undefined> => { - await new Promise((resolve) => setTimeout(resolve, 300)); - const closing = dummyClosings.find((c) => c.id === id); - - if (!closing) { - return { - code: 404, - status: 'error', - message: `Closing dengan ID ${id} tidak ditemukan`, - }; - } - - return { - code: 200, - status: 'success', - message: 'Data closing berhasil diambil', - data: closing, - }; -}; - -/** - * Dummy implementation for getAllIncomingSapronakFetcher - * Returns all incoming sapronak records - */ -export const dummyGetAllIncomingSapronakFetcher = async (): Promise<{ - code: number; - status: 'success'; - message: string; - data: ClosingIncomingSapronak[]; -}> => { - await new Promise((resolve) => setTimeout(resolve, 400)); - return { - code: 200, - status: 'success', - message: 'Data sapronak masuk berhasil diambil', - data: dummyIncomingSapronaks, - }; -}; - -/** - * Dummy implementation for getAllOutgoingSapronakFetcher - * Returns all outgoing sapronak records - */ -export const dummyGetAllOutgoingSapronakFetcher = async (): Promise<{ - code: number; - status: 'success'; - message: string; - data: ClosingOutgoingSapronak[]; -}> => { - await new Promise((resolve) => setTimeout(resolve, 400)); - return { - code: 200, - status: 'success', - message: 'Data sapronak keluar berhasil diambil', - data: dummyOutgoingSapronaks, - }; -}; - -/** - * Dummy implementation for getGeneralInfo - * Returns closing general information by ID - */ -export const dummyGetGeneralInfo = async ( - id: number -): Promise | undefined> => { - await new Promise((resolve) => setTimeout(resolve, 300)); - const closingInfo = dummyClosingGeneralInformations.find((c) => c.id == id); - - if (!closingInfo) { - return { - code: 404, - status: 'error', - message: `Closing general information dengan ID ${id} tidak ditemukan`, - }; - } - - return { - code: 200, - status: 'success', - message: 'Data closing general information berhasil diambil', - data: closingInfo, - }; -}; - -/** - * Dummy implementation for getPerhitunganSapronak - * Returns sapronak calculation data - */ -export const dummyGetPerhitunganSapronak = async ( - id: number -): Promise< - | { - code: number; - status: 'success'; - message: string; - data: ClosingSapronakCalculation; - } - | undefined -> => { - await new Promise((resolve) => setTimeout(resolve, 400)); - return { - code: 200, - status: 'success', - message: 'Data perhitungan sapronak berhasil diambil', - data: dummySapronakCalculation, - }; -}; - -/** - * Dummy implementation for getOverhead - * Returns overhead data - */ -export const dummyGetOverhead = async ( - id: number -): Promise | undefined> => { - await new Promise((resolve) => setTimeout(resolve, 400)); - return { - code: 200, - status: 'success', - message: 'Data overhead berhasil diambil', - data: dummyOverhead, - }; -}; diff --git a/src/dummy/json/closing-finance.dummy.ts b/src/dummy/json/closing-finance.dummy.ts deleted file mode 100644 index 82a22a26..00000000 --- a/src/dummy/json/closing-finance.dummy.ts +++ /dev/null @@ -1,185 +0,0 @@ -/** - * Dummy data for ClosingFinance - * Generated from: closing_keuangan.json - * - * This file is auto-generated. Do not edit manually. - */ - -import { ClosingFinance } from '../../types/api/closing'; -import { BaseApiResponse } from '@/types/api/api-general'; - -const DUMMY_DATA: ClosingFinance = { - project_flock_id: 1, - period: 1, - project_type: 'LAYING', - volume_base: { - total_birds: 254435, - total_weight_kg: 499961, - }, - hpp_purchases: { - title: 'Pembelian HPP Budgeting dan HPP Realisasi', - hpp: [ - { - group_name: 'hpp dan pengeluaran', - data: [ - { - type: 'Pembelian PULLET LAYER', - budgeting: { - rp_per_bird: 7458.82, - rp_per_kg: 3795.866, - amount: 1897784868, - }, - realization: { - rp_per_bird: 7292.414, - rp_per_kg: 3711.18, - amount: 1855445430, - }, - }, - { - type: 'Pembelian OVK', - budgeting: { - rp_per_bird: 385.681, - rp_per_kg: 196.277, - amount: 98130789, - }, - realization: { - rp_per_bird: 424.097, - rp_per_kg: 215.827, - amount: 107905006, - }, - }, - { - type: 'Pembelian Pakan', - budgeting: { - rp_per_bird: 23002.545, - rp_per_kg: 11706.218, - amount: 5852652652, - }, - realization: { - rp_per_bird: 25193.973, - rp_per_kg: 12821.457, - amount: 6410228456, - }, - }, - ], - }, - { - group_name: 'hpp dan bahan baku', - data: [ - { - type: 'Pengeluaran Overhead', - budgeting: { - rp_per_bird: 6165.894, - rp_per_kg: 3137.883, - amount: 1568819297, - }, - realization: { - rp_per_bird: 5975.831, - rp_per_kg: 3041.158, - amount: 1520460611, - }, - }, - { - type: 'Beban Ekspedisi', - budgeting: { - rp_per_bird: 304.218, - rp_per_kg: 154.819, - amount: 77403605, - }, - realization: { - rp_per_bird: 237.466, - rp_per_kg: 120.849, - amount: 60419779, - }, - }, - ], - }, - ], - summary_hpp: { - label: 'HPP', - budgeting: { - rp_per_bird: 37317.158, - rp_per_kg: 18991.064, - amount: 9494791211, - }, - realization: { - rp_per_bird: 39123.781, - rp_per_kg: 19910.472, - amount: 9954459282, - }, - }, - }, - profit_loss: { - title: 'Laba Rugi Perusahaan', - data: { - penjualan: [ - { - type: 'Penjualan Telur dan Ayam Afkir', - rp_per_bird: 37551.535, - rp_per_kg: 19110.34, - amount: 9554424729, - }, - ], - pembelian: [ - { - type: 'Pembelian Sapronak Supplier', - rp_per_bird: 27629.158, - rp_per_kg: 14060.746, - amount: 7029824870, - }, - { - type: 'Pengeluaran Overhead', - rp_per_bird: 5975.831, - rp_per_kg: 3041.158, - amount: 1520460611, - }, - { - type: 'Beban Ekspedisi', - rp_per_bird: 237.466, - rp_per_kg: 120.849, - amount: 60419779, - }, - ], - summary: { - gross_profit: { - label: 'LABA RUGI BRUTTO', - rp_per_bird: 9922.376, - rp_per_kg: 5049.594, - amount: 2524599859, - }, - sub_total: { - label: 'SUB TOTAL', - rp_per_bird: 3709.079, - rp_per_kg: 1887.586, - amount: 943719469, - }, - net_profit: { - label: 'LABA RUGI NETTO', - rp_per_bird: 3709.079, - rp_per_kg: 1887.586, - amount: 943719469, - }, - }, - }, - }, -}; - -/** - * Get dummy ClosingFinance data - * @param id - Optional ID parameter - * @returns Promise with BaseApiResponse containing ClosingFinance - */ -export async function dummyGetOneClosingFinance( - id?: number -): Promise> { - return new Promise((resolve) => { - setTimeout(() => { - resolve({ - code: 200, - status: 'success', - message: 'Data retrieved successfully', - data: DUMMY_DATA, - }); - }, 500); - }); -} diff --git a/src/dummy/marketing.dummy.ts b/src/dummy/marketing.dummy.ts deleted file mode 100644 index 35e65e8c..00000000 --- a/src/dummy/marketing.dummy.ts +++ /dev/null @@ -1,388 +0,0 @@ -import { format } from 'date-fns'; -import { Area } from '@/types/api/master-data/area'; -import { Location } from '@/types/api/master-data/location'; -import { Kandang } from '@/types/api/master-data/kandang'; -import { Warehouse } from '@/types/api/master-data/warehouse'; -import { ProductWarehouse } from '@/types/api/inventory/product-warehouse'; -import { - BaseMarketing, - Marketing, - BaseSalesOrder, - BaseDeliveryOrder, - BaseDelivery, -} from '@/types/api/marketing/marketing'; -import { - CreatedUser, - BaseApproval, - BaseMetadata, -} from '@/types/api/api-general'; -import { Product } from '@/types/api/master-data/product'; -import { Customer } from '@/types/api/master-data/customer'; -import { Uom } from '@/types/api/master-data/uom'; -import { ProductCategory } from '@/types/api/master-data/product-category'; -import { Supplier } from '@/types/api/master-data/supplier'; - -// Waktu saat ini untuk created_at/updated_at -const now = format(new Date(), 'yyyy-MM-dd HH:mm:ss'); -const today = format(new Date(), 'yyyy-MM-dd'); -const tomorrow = format( - new Date().setDate(new Date().getDate() + 1), - 'yyyy-MM-dd' -); - -// ====================== -// 👤 Created User & Helper Data -// ====================== -export const createdUser: CreatedUser = { - id: 1, - id_user: 1, - email: 'admin@example.com', - name: 'Admin Utama', -}; - -const dummyProductBase: Product = { - id: 101, - name: 'Pakan Ayam Premium', - brand: 'Brand Hebat', - sku: 'PAK-001', - product_price: 15000, - selling_price: 18000, - tax: 0.1, - expiry_period: 365, - uom: { id: 1, name: 'Sak' } as Uom, - product_category: { id: 1, name: 'Pakan' } as ProductCategory, - suppliers: [{ id: 1, name: 'Supplier A' } as Supplier], - flags: ['PAKAN'], - created_user: createdUser, - created_at: now, - updated_at: now, -}; - -// ====================== -// 📍 Area Dummy -// ====================== -export const dummyAreas: Area[] = [ - { - id: 1, - name: 'Bandung Barat', - created_user: createdUser, - created_at: now, - updated_at: now, - }, - { - id: 2, - name: 'Cimahi Utara', - created_user: createdUser, - created_at: now, - updated_at: now, - }, -]; - -// ====================== -// 🏢 Location Dummy -// ====================== -export const dummyLocations: Location[] = [ - { - id: 1, - name: 'Gudang A', - address: 'Jl. Sukajadi No. 12', - area: dummyAreas[0], - created_user: createdUser, - created_at: now, - updated_at: now, - }, - { - id: 2, - name: 'Gudang B', - address: 'Jl. Setiabudi No. 45', - area: dummyAreas[1], - created_user: createdUser, - created_at: now, - updated_at: now, - }, -]; - -// ====================== -// 🐔 Kandang Dummy -// ====================== -export const dummyKandangs: Kandang[] = [ - { - id: 1, - name: 'Kandang Ayam Layer 1', - status: 'AKTIF', - capacity: 500, - location: dummyLocations[0], - pic: createdUser, - created_user: createdUser, - created_at: now, - updated_at: now, - }, - { - id: 2, - name: 'Kandang Ayam Broiler 2', - status: 'NONAKTIF', - capacity: 300, - location: dummyLocations[1], - pic: createdUser, - created_user: createdUser, - created_at: now, - updated_at: now, - }, -]; - -// ====================== -// 🏭 Warehouse Dummy -// ====================== -export const dummyWarehouses: Warehouse[] = [ - { - id: 1, - type: 'AREA', - name: 'Gudang Wilayah Bandung Barat', - area: dummyAreas[0], - created_user: createdUser, - created_at: now, - updated_at: now, - } as Warehouse, - { - id: 2, - type: 'LOKASI', - name: 'Gudang Produksi Sukajadi', - area: dummyAreas[0], - location: { ...dummyLocations[0], area: dummyAreas[0] }, - created_user: createdUser, - created_at: now, - updated_at: now, - } as Warehouse, - { - id: 3, - type: 'KANDANG', - name: 'Gudang Kandang Layer 1', - area: dummyAreas[0], - location: { ...dummyLocations[0], area: dummyAreas[0] }, - kandang: { - ...dummyKandangs[0], - location: dummyLocations[0], - pic: createdUser, - }, - created_user: createdUser, - created_at: now, - updated_at: now, - } as Warehouse, -]; - -// ====================== -// 📦 Product Warehouse Dummy -// ====================== -export const dummyProductWarehouses: ProductWarehouse[] = [ - { - id: 1, - product_id: 101, - warehouse_id: 1, - quantity: 1000, - product: dummyProductBase, - warehouse: dummyWarehouses[0], - created_user: createdUser, - created_at: now, - updated_at: now, - }, - { - id: 2, - product_id: 102, - warehouse_id: 2, - quantity: 500, - product: { - ...dummyProductBase, - id: 102, - name: 'Vitamin Ayam Super', - sku: 'VIT-002', - flags: ['VITAMIN'], - selling_price: 25000, - }, - warehouse: dummyWarehouses[1], - created_user: createdUser, - created_at: now, - updated_at: now, - }, -]; - -// ====================== -// 💼 Marketing Dummy -// ====================== - -// Helper untuk Sales Order (SO) Item -const soItem1: BaseSalesOrder = { - vehicle_number: 'B 1234 ABC', - id: 101, - marketing_id: 1, - product_warehouse_id: 1, - qty: 100, - unit_price: 18000, // Harga jual - avg_weight: 1.0, - total_weight: 100 * 1.0, - total_price: 100 * 18000, - product_warehouse: dummyProductWarehouses[0] as ProductWarehouse, -}; -const soItem2: BaseSalesOrder = { - vehicle_number: 'D 5678 EFG', - id: 102, - marketing_id: 2, - product_warehouse_id: 2, - qty: 50, - unit_price: 25000, - avg_weight: 0.5, - total_weight: 50 * 0.5, - total_price: 50 * 25000, - product_warehouse: dummyProductWarehouses[1] as ProductWarehouse, -}; - -// Helper untuk Delivery Item (DO) Detail -const doDelivery1: BaseDelivery[] = [ - { - product_warehouse: dummyProductWarehouses[0] as ProductWarehouse, - qty: soItem1.qty, - unit_price: soItem1.unit_price, - total_weight: soItem1.total_weight, - avg_weight: soItem1.avg_weight, - total_price: soItem1.total_price, - vehicle_number: 'B 1234 ABC', - }, -]; - -const doDelivery2: BaseDelivery[] = [ - { - product_warehouse: dummyProductWarehouses[1] as ProductWarehouse, - qty: soItem2.qty, - unit_price: soItem2.unit_price, - total_weight: soItem2.total_weight, - avg_weight: soItem2.avg_weight, - total_price: soItem2.total_price, - vehicle_number: 'D 5678 EFG', - }, -]; - -// Helper untuk Delivery Order (DO) Header -const deliveryOrder1: BaseDeliveryOrder[] = [ - { - id: 1, - marketing_id: 3, - do_number: 'DO-003-2025', - delivery_date: tomorrow, - warehouse: dummyWarehouses[0], - deliveries: doDelivery1, - }, -]; - -export const dummyMarketings: Marketing[] = [ - // 1. Pengajuan Order (Langkah Pertama/Awal) - { - id: 1, - status: 'DRAFT', - // name: 'SO-001-2025', // `name` is not part of BaseMarketing - so_number: 'SO-001-2025', - so_date: today, - customer: { - id: 1, - name: 'PT Maju Jaya', - pic_id: 1, - pic: createdUser, - type: 'Distributor', - address: 'Jl. Merdeka No. 1', - phone: '081212121212', - email: 'contact@majujaya.com', - account_number: '1234567890', - created_user: createdUser, - created_at: now, - updated_at: now, - } as Customer, - sales_person: createdUser, - notes: 'Pengajuan Order Awal, menunggu persetujuan harga.', - latest_approval: { - step_number: 1, - step_name: 'Pengajuan Order', - action: 'CREATED', - action_by: createdUser, - action_at: now, - } as BaseApproval, - sales_order: [soItem1], - delivery_order: [], - created_user: createdUser, - created_at: now, - updated_at: now, - } as Marketing, - - // 2. Sales Order (Disetujui dan Siap DO) - { - id: 2, - status: 'APPROVED', - // name: 'SO-002-2025', // `name` is not part of BaseMarketing - so_number: 'SO-002-2025', - so_date: today, - customer: { - id: 2, - name: 'CV Sumber Sehat', - pic_id: 2, - pic: createdUser, - type: 'Retail', - address: 'Jl. Cihampelas No. 5', - phone: '082222222222', - email: 'info@sumbersehat.com', - account_number: '9876543210', - created_user: createdUser, - created_at: now, - updated_at: now, - } as Customer, - sales_person: createdUser, - notes: 'Sales Order telah disetujui oleh Supervisor.', - latest_approval: { - id: 2, - step_number: 2, - step_name: 'Sales Order', - action: 'APPROVED', - action_by: createdUser, - action_at: now, - } as BaseApproval, - sales_order: [soItem2], - delivery_order: [], // Belum ada pengiriman (DO) yang dibuat - created_user: createdUser, - created_at: now, - updated_at: now, - } as Marketing, - - // 3. Delivery Order (Proses Pengiriman telah dibuat) - { - id: 3, - status: 'DELIVERED', // Asumsi status DELIVERED berarti DO sudah selesai/terbuat - // name: 'SO-003-2025', // `name` is not part of BaseMarketing - so_number: 'SO-003-2025', - so_date: today, - customer: { - id: 3, - name: 'UD Ternak Sejahtera', - pic_id: 3, - pic: createdUser, - type: 'Reseller', - address: 'Jl. Pasteur No. 88', - phone: '083333333333', - email: 'halo@ternaksejahtera.com', - account_number: '1122334455', - created_user: createdUser, - created_at: now, - updated_at: now, - } as Customer, - sales_person: createdUser, - notes: 'Pengiriman barang telah berhasil dilakukan.', - latest_approval: { - id: 3, - step_number: 3, - step_name: 'Delivery Order', - action: 'COMPLETED', - action_by: createdUser, - action_at: now, - } as BaseApproval, - sales_order: [soItem1, soItem2], - delivery_order: deliveryOrder1, // DO sudah terbuat - created_user: createdUser, - created_at: now, - updated_at: now, - } as Marketing, -]; diff --git a/src/dummy/report/expense.dummy.ts b/src/dummy/report/expense.dummy.ts deleted file mode 100644 index dd1fa18b..00000000 --- a/src/dummy/report/expense.dummy.ts +++ /dev/null @@ -1,621 +0,0 @@ -/** - * Dummy Data untuk Report Expense API - * - * File ini berisi dummy data untuk testing Report Expense API sebelum backend siap. - * - * Struktur data mengikuti tipe yang didefinisikan di @/types/api/report/report-expense.d.ts - * - * @example - * // Menggunakan getAllFetcher dengan SWR: - * import useSWR from 'swr'; - * import { ReportExpenseApi } from '@/services/api/report'; - * - * const { data, error, isLoading } = useSWR( - * ReportExpenseApi.basePath, - * ReportExpenseApi.getAllFetcher - * ); - * - * if (data?.status === 'success') { - * console.log(data.data); // Array of ReportExpense objects - * } - * - * @see {@link /home/sweetpotet/Documents/projects/lti-web-client/src/types/api/report/report-expense.d.ts} - */ - -import { format } from 'date-fns'; -import { - Pengajuan, - Realisasi, - ReportExpense, -} from '@/types/api/report/report-expense'; -import { BaseApiResponse, CreatedUser } from '@/types/api/api-general'; -import { Supplier } from '@/types/api/master-data/supplier'; -import { Location } from '@/types/api/master-data/location'; -import { Nonstock } from '@/types/api/master-data/nonstock'; -import { Kandang } from '@/types/api/master-data/kandang'; - -// Waktu saat ini untuk created_at/updated_at -const now = format(new Date(), 'yyyy-MM-dd HH:mm:ss'); -const today = format(new Date(), 'yyyy-MM-dd'); -const yesterday = format( - new Date(new Date().setDate(new Date().getDate() - 1)), - 'yyyy-MM-dd' -); -const lastWeek = format( - new Date(new Date().setDate(new Date().getDate() - 7)), - 'yyyy-MM-dd' -); -const lastMonth = format( - new Date(new Date().setMonth(new Date().getMonth() - 1)), - 'yyyy-MM-dd' -); - -// ====================== -// 👤 Created User -// ====================== -const createdUser: CreatedUser = { - id: 1, - id_user: 1, - email: 'admin@example.com', - name: 'Admin Utama', -}; - -// ====================== -// 🏢 Supplier Dummy Data -// ====================== -const dummySuppliers: Supplier[] = [ - { - id: 1, - name: 'PT. Mitra Pakan Sejahtera', - alias: 'MPS', - pic: 'Budi Santoso', - type: 'Pakan', - category: 'Supplier Utama', - hatchery: '-', - phone: '022-1234567', - email: 'info@mitrapakan.com', - address: 'Jl. Raya Industri No. 123, Bandung', - npwp: '01.234.567.8-901.000', - account_number: '1234567890', - due_date: 30, - created_user: createdUser, - created_at: now, - updated_at: now, - }, - { - id: 2, - name: 'CV. Sumber Ternak Jaya', - alias: 'STJ', - pic: 'Siti Rahayu', - type: 'DOC', - category: 'Supplier Utama', - hatchery: 'Hatchery Jaya', - phone: '021-9876543', - email: 'contact@sumberternak.com', - address: 'Jl. Peternakan No. 45, Jakarta', - npwp: '02.345.678.9-012.000', - account_number: '0987654321', - due_date: 45, - created_user: createdUser, - created_at: now, - updated_at: now, - }, - { - id: 3, - name: 'PT. Agro Veteriner Indonesia', - alias: 'AVI', - pic: 'Dr. Ahmad Fauzi', - type: 'OVK', - category: 'Supplier Utama', - hatchery: '-', - phone: '031-5555666', - email: 'sales@agroveteriner.co.id', - address: 'Jl. Kesehatan Hewan No. 78, Surabaya', - npwp: '03.456.789.0-123.000', - account_number: '5678901234', - due_date: 60, - created_user: createdUser, - created_at: now, - updated_at: now, - }, -]; - -// ====================== -// 📍 Location Dummy Data -// ====================== -const dummyLocations: Location[] = [ - { - id: 1, - name: 'Farm Sukajadi', - address: 'Jl. Sukajadi No. 100, Bandung', - area: { - id: 1, - name: 'Bandung Barat', - }, - created_user: createdUser, - created_at: now, - updated_at: now, - }, - { - id: 2, - name: 'Farm Cihampelas', - address: 'Jl. Cihampelas No. 200, Bandung', - area: { - id: 1, - name: 'Bandung Barat', - }, - created_user: createdUser, - created_at: now, - updated_at: now, - }, - { - id: 3, - name: 'Farm Pasteur', - address: 'Jl. Pasteur No. 300, Bandung', - area: { - id: 2, - name: 'Bandung Timur', - }, - created_user: createdUser, - created_at: now, - updated_at: now, - }, -]; - -// ====================== -// 📦 Nonstock Dummy Data -// ====================== -const dummyNonstocks: Nonstock[] = [ - { - id: 1, - name: 'Listrik', - uom_id: 1, - uom: { id: 1, name: 'kWh' }, - suppliers: [], - flags: [], - created_user: createdUser, - created_at: now, - updated_at: now, - }, - { - id: 2, - name: 'Air', - uom_id: 2, - uom: { id: 2, name: 'm³' }, - suppliers: [], - flags: [], - created_user: createdUser, - created_at: now, - updated_at: now, - }, - { - id: 3, - name: 'Bahan Bakar', - uom_id: 3, - uom: { id: 3, name: 'Liter' }, - suppliers: [], - flags: [], - created_user: createdUser, - created_at: now, - updated_at: now, - }, - { - id: 4, - name: 'Pemeliharaan Kandang', - uom_id: 4, - uom: { id: 4, name: 'Unit' }, - suppliers: [], - flags: [], - created_user: createdUser, - created_at: now, - updated_at: now, - }, - { - id: 5, - name: 'Transportasi', - uom_id: 5, - uom: { id: 5, name: 'Trip' }, - suppliers: [], - flags: [], - created_user: createdUser, - created_at: now, - updated_at: now, - }, -]; - -// ====================== -// 🏠 Kandang Dummy Data -// ====================== -const dummyKandangs: Kandang[] = [ - { - id: 1, - name: 'Kandang A1', - status: 'Aktif', - location: dummyLocations[0], - capacity: 5000, - pic: { - id_user: 1, - id: 1, - name: 'Budi Kandang', - email: 'budi@example.com', - }, - created_user: createdUser, - created_at: now, - updated_at: now, - }, - { - id: 2, - name: 'Kandang B1', - status: 'Aktif', - location: dummyLocations[1], - capacity: 4000, - pic: { - id_user: 2, - id: 2, - name: 'Siti Kandang', - email: 'siti@example.com', - }, - created_user: createdUser, - created_at: now, - updated_at: now, - }, - { - id: 3, - name: 'Kandang C1', - status: 'Aktif', - location: dummyLocations[2], - capacity: 6000, - pic: { - id_user: 3, - id: 3, - name: 'Ahmad Kandang', - email: 'ahmad@example.com', - }, - created_user: createdUser, - created_at: now, - updated_at: now, - }, -]; - -// ====================== -// 📋 Pengajuan Dummy Data -// ====================== -const dummyPengajuans: Pengajuan[] = [ - { - id: 1, - expense_id: 1, - project_flock_kandang_id: 1, - kandang_id: 1, - nonstock_id: 1, - qty: 1000, - price: 1500, - notes: 'Pengajuan biaya listrik bulan ini', - nonstock: dummyNonstocks[0], - created_at: now, - }, - { - id: 2, - expense_id: 2, - project_flock_kandang_id: 2, - kandang_id: 2, - nonstock_id: 2, - qty: 500, - price: 5000, - notes: 'Pengajuan biaya air bulan ini', - nonstock: dummyNonstocks[1], - created_at: now, - }, - { - id: 3, - expense_id: 3, - project_flock_kandang_id: 3, - kandang_id: 3, - nonstock_id: 3, - qty: 200, - price: 15000, - notes: 'Pengajuan biaya bahan bakar', - nonstock: dummyNonstocks[2], - created_at: now, - }, - { - id: 4, - expense_id: 4, - project_flock_kandang_id: 1, - kandang_id: 1, - nonstock_id: 4, - qty: 1, - price: 5000000, - notes: 'Pengajuan biaya pemeliharaan kandang', - nonstock: dummyNonstocks[3], - created_at: now, - }, - { - id: 5, - expense_id: 5, - project_flock_kandang_id: 2, - kandang_id: 2, - nonstock_id: 5, - qty: 10, - price: 500000, - notes: 'Pengajuan biaya transportasi', - nonstock: dummyNonstocks[4], - created_at: now, - }, -]; - -// ====================== -// 💰 Realisasi Dummy Data -// ====================== -const dummyRealisasis: Realisasi[] = [ - { - id: 1, - expense_nonstock_id: 1, - qty: 950, - price: 1500, - notes: 'Realisasi biaya listrik aktual', - nonstock: dummyNonstocks[0], - created_at: now, - }, - { - id: 2, - expense_nonstock_id: 2, - qty: 480, - price: 5000, - notes: 'Realisasi biaya air aktual', - nonstock: dummyNonstocks[1], - created_at: now, - }, - { - id: 3, - expense_nonstock_id: 3, - qty: 195, - price: 15000, - notes: 'Realisasi biaya bahan bakar aktual', - nonstock: dummyNonstocks[2], - created_at: now, - }, - { - id: 4, - expense_nonstock_id: 4, - qty: 1, - price: 4800000, - notes: 'Realisasi biaya pemeliharaan kandang', - nonstock: dummyNonstocks[3], - created_at: now, - }, - { - id: 5, - expense_nonstock_id: 5, - qty: 9, - price: 500000, - notes: 'Realisasi biaya transportasi', - nonstock: dummyNonstocks[4], - created_at: now, - }, -]; - -// ====================== -// 📊 Report Expense Dummy Data -// ====================== -export const dummyReportExpenses: ReportExpense[] = [ - { - id: 1, - reference_number: 'EXP-2025-001', - po_number: 'PO-2025-001', - category: 'Utilitas', - supplier: dummySuppliers[0], - realization_date: today, - transaction_date: yesterday, - pengajuan: dummyPengajuans[0], - realisasi: dummyRealisasis[0], - kandang: dummyKandangs[0], - created_at: now, - updated_at: now, - created_user: createdUser, - latest_approval: { - id: 1, - step_number: 1, - step_name: 'Manager Approval', - action: 'PENDING', - notes: '', - action_by: createdUser, - action_at: now, - }, - }, - { - id: 2, - reference_number: 'EXP-2025-002', - po_number: 'PO-2025-002', - category: 'Utilitas', - supplier: dummySuppliers[0], - realization_date: today, - transaction_date: yesterday, - pengajuan: dummyPengajuans[1], - realisasi: dummyRealisasis[1], - kandang: dummyKandangs[1], - created_at: now, - updated_at: now, - created_user: createdUser, - latest_approval: { - id: 2, - step_number: 2, - step_name: 'Finance Approval', - action: 'APPROVED', - notes: 'Disetujui oleh finance', - action_by: createdUser, - action_at: now, - }, - }, - { - id: 3, - reference_number: 'EXP-2025-003', - po_number: 'PO-2025-003', - category: 'Operasional', - supplier: dummySuppliers[1], - realization_date: lastWeek, - transaction_date: lastWeek, - pengajuan: dummyPengajuans[2], - realisasi: dummyRealisasis[2], - kandang: dummyKandangs[2], - created_at: lastWeek, - updated_at: lastWeek, - created_user: createdUser, - latest_approval: { - id: 3, - step_number: 3, - step_name: 'Director Approval', - action: 'APPROVED', - notes: 'Disetujui oleh direktur', - action_by: createdUser, - action_at: lastWeek, - }, - }, - { - id: 4, - reference_number: 'EXP-2025-004', - po_number: 'PO-2025-004', - category: 'Maintenance', - supplier: dummySuppliers[2], - realization_date: today, - transaction_date: yesterday, - pengajuan: dummyPengajuans[3], - realisasi: dummyRealisasis[3], - kandang: dummyKandangs[0], - created_at: now, - updated_at: now, - created_user: createdUser, - latest_approval: { - id: 4, - step_number: 1, - step_name: 'Manager Approval', - action: 'REJECTED', - notes: 'Biaya terlalu tinggi, perlu revisi', - action_by: createdUser, - action_at: now, - }, - }, - { - id: 5, - reference_number: 'EXP-2025-005', - po_number: 'PO-2025-005', - category: 'Operasional', - supplier: dummySuppliers[1], - realization_date: yesterday, - transaction_date: lastWeek, - pengajuan: dummyPengajuans[4], - realisasi: dummyRealisasis[4], - kandang: dummyKandangs[1], - created_at: lastWeek, - updated_at: yesterday, - created_user: createdUser, - latest_approval: { - id: 5, - step_number: 2, - step_name: 'Finance Approval', - action: 'PENDING', - notes: '', - action_by: createdUser, - action_at: yesterday, - }, - }, - { - id: 6, - reference_number: 'EXP-2025-006', - po_number: 'PO-2025-006', - category: 'Utilitas', - supplier: dummySuppliers[0], - realization_date: lastMonth, - transaction_date: lastMonth, - pengajuan: { - id: 6, - expense_id: 6, - project_flock_kandang_id: 3, - kandang_id: 3, - nonstock_id: 1, - qty: 1200, - price: 1500, - notes: 'Pengajuan biaya listrik bulan lalu', - nonstock: dummyNonstocks[0], - created_at: lastMonth, - }, - realisasi: { - id: 6, - expense_nonstock_id: 6, - qty: 1150, - price: 1500, - notes: 'Realisasi biaya listrik bulan lalu', - nonstock: dummyNonstocks[0], - created_at: lastMonth, - }, - kandang: dummyKandangs[2], - created_at: lastMonth, - updated_at: lastMonth, - created_user: createdUser, - latest_approval: { - id: 6, - step_number: 3, - step_name: 'Director Approval', - action: 'APPROVED', - notes: 'Selesai diproses', - action_by: createdUser, - action_at: lastMonth, - }, - }, -]; - -// ====================== -// 🔧 Fetcher Functions -// ====================== - -/** - * Dummy fetcher untuk mendapatkan semua data report expense - * @returns Promise dengan BaseApiResponse berisi array ReportExpense - */ -export async function dummyGetAllFetcher(): Promise< - BaseApiResponse -> { - // Simulasi delay network - await new Promise((resolve) => setTimeout(resolve, 500)); - - return { - code: 200, - status: 'success', - message: 'Data report expense berhasil diambil', - data: dummyReportExpenses, - meta: { - page: 1, - limit: 10, - total_results: dummyReportExpenses.length, - total_pages: 1, - }, - }; -} - -/** - * Dummy fetcher untuk mendapatkan single data report expense berdasarkan ID - * @param id - ID dari report expense yang ingin diambil - * @returns Promise dengan BaseApiResponse berisi single ReportExpense - */ -export async function dummyGetSingle( - id: number -): Promise> { - // Simulasi delay network - await new Promise((resolve) => setTimeout(resolve, 300)); - - const reportExpense = dummyReportExpenses.find((item) => item.id === id); - - if (!reportExpense) { - return { - code: 404, - status: 'error', - message: `Report expense dengan ID ${id} tidak ditemukan`, - }; - } - - return { - code: 200, - status: 'success', - message: 'Data report expense berhasil diambil', - data: reportExpense, - }; -} diff --git a/src/services/api/closing.ts b/src/services/api/closing.ts index a9104ea9..16cf24cf 100644 --- a/src/services/api/closing.ts +++ b/src/services/api/closing.ts @@ -11,56 +11,13 @@ import { ClosingSapronakCalculation, } from '@/types/api/closing'; import { BaseApiResponse } from '@/types/api/api-general'; -import { - dummyGetAllFetcher, - dummyGetSingle, - dummyGetAllIncomingSapronakFetcher, - dummyGetAllOutgoingSapronakFetcher, - dummyGetGeneralInfo, - dummyGetPerhitunganSapronak, - dummyGetOverhead, -} from '@/dummy/closing.dummy'; import { httpClient, httpClientFetcher } from '@/services/http/client'; import { ClosingSales } from '@/types/api/closing'; -import { dummyGetOneClosingFinance } from '@/dummy/json/closing-finance.dummy'; - export class ClosingApiService extends BaseApiService { constructor(basePath: string) { super(basePath); } - async getAllFetcher(endpoint: string): Promise> { - // TODO: Remove this block when backend is ready - // return await dummyGetAllFetcher(); - - // Uncomment this when backend is ready - return await httpClientFetcher>(endpoint); - } - - async getSingle(id: number): Promise | undefined> { - // TODO: Remove this block when backend is ready - // try { - // return await dummyGetSingle(id); - // } catch (error) { - // if (axios.isAxiosError>(error)) { - // return error.response?.data; - // } - // return undefined; - // } - - // Uncomment this when backend is ready - try { - const getSinglePath = `${this.basePath}/${id}`; - const getSingleRes = - await httpClient>(getSinglePath); - return getSingleRes; - } catch (error) { - if (axios.isAxiosError>(error)) { - } - return undefined; - } - } - async getPenjualan( id: number ): Promise | undefined> { @@ -81,10 +38,6 @@ export class ClosingApiService extends BaseApiService { async getAllIncomingSapronakFetcher( endpoint: string ): Promise> { - // TODO: Remove this block when backend is ready - // return await dummyGetAllIncomingSapronakFetcher(); - - // Uncomment this when backend is ready return await httpClientFetcher>( endpoint ); @@ -93,31 +46,14 @@ export class ClosingApiService extends BaseApiService { async getAllOutgoingSapronakFetcher( endpoint: string ): Promise> { - // TODO: Remove this block when backend is ready - return await dummyGetAllOutgoingSapronakFetcher(); - - // Uncomment this when backend is ready - // return await httpClientFetcher>( - // endpoint - // ); + return await httpClientFetcher>( + endpoint + ); } async getGeneralInfo( id: number ): Promise | undefined> { - // TODO: Remove this block when backend is ready - // try { - // return await dummyGetGeneralInfo(id); - // } catch (error) { - // if ( - // axios.isAxiosError>(error) - // ) { - // return error.response?.data; - // } - // return undefined; - // } - - // Uncomment this when backend is ready try { const getGeneralInfoPath = `${this.basePath}/${id}`; const getGeneralInfoRes = @@ -138,19 +74,6 @@ export class ClosingApiService extends BaseApiService { async getPerhitunganSapronak( id: number ): Promise | undefined> { - // TODO: Remove this block when backend is ready - // try { - // return await dummyGetPerhitunganSapronak(id); - // } catch (error) { - // if ( - // axios.isAxiosError>(error) - // ) { - // return error.response?.data; - // } - // return undefined; - // } - - // Uncomment this when backend is ready try { const path = `${this.basePath}/${id}/perhitungan_sapronak`; return await httpClient>( @@ -172,17 +95,6 @@ export class ClosingApiService extends BaseApiService { async getOverhead( id: number ): Promise | undefined> { - // TODO: Remove this block when backend is ready - // try { - // return await dummyGetOverhead(id); - // } catch (error) { - // if (axios.isAxiosError>(error)) { - // return error.response?.data; - // } - // return undefined; - // } - - // Uncomment this when backend is ready try { const path = `${this.basePath}/${id}/overhead`; return await httpClient>(path, { @@ -199,12 +111,8 @@ export class ClosingApiService extends BaseApiService { async getFinance( id: number ): Promise | undefined> { - // TODO: Remove this block when backend is ready - // return dummyGetOneClosingFinance(id); - - // Uncomment this when backend is ready try { - const path = `${this.basePath}/${id}/finance`; + const path = `${this.basePath}/${id}/keuangan`; return await httpClient>(path, { method: 'GET', }); diff --git a/src/services/api/marketing/marketing.ts b/src/services/api/marketing/marketing.ts index c2b5d018..59b9b4c8 100644 --- a/src/services/api/marketing/marketing.ts +++ b/src/services/api/marketing/marketing.ts @@ -1,5 +1,3 @@ -import { dummyMarketings } from '@/dummy/marketing.dummy'; -import { sleep } from '@/lib/helper'; import { BaseApiService } from '@/services/api/base'; import { httpClient } from '@/services/http/client'; import { BaseApiResponse } from '@/types/api/api-general'; @@ -31,41 +29,6 @@ export class SalesOrderService extends BaseApiService< super(basePath); } - // /** - // * Override: Mengambil semua data Marketing dari dummyMarketings - // */ - // async getAllFetcher(endpoint: string): Promise> { - // // Simulasi delay jaringan - // await sleep(500); - - // // Filter data marketing yang valid (jika menggunakan BaseMarketing[]) - // const data = dummyMarketings as Marketing[]; - - // return createDummyResponse(data); - // } - - // /** - // * Override: Mengambil satu data Marketing berdasarkan ID dari dummyMarketings - // */ - // async getSingle(id: number): Promise | undefined> { - // // Simulasi delay jaringan - // await sleep(300); - - // const foundData = dummyMarketings.find((m) => m.id == id); - - // if (foundData) { - // // Data ditemukan, kembalikan respons sukses - // return createDummyResponse(foundData as Marketing); - // } else { - // // Data tidak ditemukan, simulasi respons error - // return { - // code: 404, - // status: 'error', - // message: 'Marketing data not found (MOCK)', - // }; - // } - // } - /** * Approve single marketing data */ From 6155929e14d530116a5a320e76fce8f24eed9537 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Wed, 17 Dec 2025 14:54:28 +0700 Subject: [PATCH 27/89] refactor(FE-357): Use hppPerKandangExport instead of fetchAllExportData --- src/components/pages/report/sale/tab/HppPerKandangTab.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index fa0e2df1..a92a5f75 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -411,7 +411,7 @@ const HppPerKandangTab = () => { setIsExcelExportLoading(false); } }, [ - fetchAllExportData, + hppPerKandangExport, tableFilterState, areaOptions, locationOptions, @@ -421,7 +421,7 @@ const HppPerKandangTab = () => { const handleExportPDF = useCallback(async () => { setIsPdfExportLoading(true); try { - const allDataForExport = await fetchAllExportData(); + const allDataForExport = await hppPerKandangExport(); if ( !allDataForExport || @@ -468,7 +468,7 @@ const HppPerKandangTab = () => { setIsPdfExportLoading(false); } }, [ - fetchAllExportData, + hppPerKandangExport, tableFilterState, areaOptions, locationOptions, From 9b2d98f7cec4a2b41abb29f6e7ead6af367a0210 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Thu, 18 Dec 2025 08:59:07 +0700 Subject: [PATCH 28/89] feat(FE-355,357): Add egg columns to HPP table and disable sale tabs --- .../pages/report/sale/SaleReportTabs.tsx | 30 ++++---- .../report/sale/tab/HppPerKandangTab.tsx | 72 +++++++++++++++---- 2 files changed, 73 insertions(+), 29 deletions(-) diff --git a/src/components/pages/report/sale/SaleReportTabs.tsx b/src/components/pages/report/sale/SaleReportTabs.tsx index ed1ce0ac..988c16b2 100644 --- a/src/components/pages/report/sale/SaleReportTabs.tsx +++ b/src/components/pages/report/sale/SaleReportTabs.tsx @@ -5,21 +5,21 @@ import HppPerKandangTab from '@/components/pages/report/sale/tab/HppPerKandangTa const SaleReportTabs = () => { const tabs = [ - { - id: '1', - label: 'Penjualan Harian', - content: 'Penjualan Harian Tab', - }, - { - id: '2', - label: 'Transaksi Penjualan DO', - content: 'Transaksi Penjualan DO Tab', - }, - { - id: '3', - label: 'Perbandingan HPP Per Rentang BW', - content: 'Perbandingan HPP Per Rentang BW Tab', - }, + // { + // id: '1', + // label: 'Penjualan Harian', + // content: 'Penjualan Harian Tab', + // }, + // { + // id: '2', + // label: 'Transaksi Penjualan DO', + // content: 'Transaksi Penjualan DO Tab', + // }, + // { + // id: '3', + // label: 'Perbandingan HPP Per Rentang BW', + // content: 'Perbandingan HPP Per Rentang BW Tab', + // }, { id: '4', label: 'HPP Harian Kandang', diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index a92a5f75..8cf54194 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -536,6 +536,20 @@ const HppPerKandangTab = () => { }, footer: () =>
-
, }, + { + id: 'avg_weight_kg', + header: 'Rata-Rata Bobot (KG)', + accessorKey: 'avg_weight_kg', + cell: (props) => { + const value = props.row.original.avg_weight_kg; + return
{formatNumber(value)}
; + }, + footer: () => ( +
+ {formatNumber(summary?.average_weight_kg || 0)} +
+ ), + }, { id: 'remaining_chicken_birds', header: 'Sisa Ayam (Ekor)', @@ -565,17 +579,39 @@ const HppPerKandangTab = () => { ), }, { - id: 'avg_weight_kg', - header: 'Rata-Rata Bobot (KG)', - accessorKey: 'avg_weight_kg', + id: 'egg_production_pieces', + header: 'Produksi Telur (Butir)', + accessorKey: 'egg_production_pieces', cell: (props) => { - const value = props.row.original.avg_weight_kg; + const value = props.row.original.egg_production_pieces; return
{formatNumber(value)}
; }, footer: () => ( -
- {formatNumber(summary?.average_weight_kg || 0)} -
+
-
+ ), + }, + { + id: 'egg_production_kg', + header: 'Produksi Telur (KG)', + accessorKey: 'egg_production_kg', + cell: (props) => { + const value = props.row.original.egg_production_kg; + return
{formatNumber(value)}
; + }, + footer: () => ( +
-
+ ), + }, + { + id: 'egg_value_rp', + header: 'Nilai Nominal Telur (RP)', + accessorKey: 'egg_value_rp', + cell: (props) => { + const value = props.row.original.egg_value_rp; + return
{formatCurrency(value)}
; + }, + footer: () => ( +
-
), }, { @@ -615,23 +651,31 @@ const HppPerKandangTab = () => { return
{formatCurrency(value)}
; }, footer: () => ( -
- {formatCurrency(summary?.average_egg_hpp_rp_per_kg || 0)} -
+
-
), }, { id: 'hpp_rp', - header: 'HPP (RP)', + header: 'HPP Ayam (RP)', accessorKey: 'hpp_rp', cell: (props) => { const value = props.row.original.hpp_rp; return
{formatCurrency(value)}
; }, footer: () => ( -
- {formatCurrency(summary?.total_egg_value_rp || 0)} -
+
-
+ ), + }, + { + id: 'egg_hpp_rp_per_kg', + header: 'HPP Telur (RP/KG)', + accessorKey: 'egg_hpp_rp_per_kg', + cell: (props) => { + const value = props.row.original.egg_hpp_rp_per_kg; + return
{formatCurrency(value)}
; + }, + footer: () => ( +
-
), }, { From 481a643b3c0488803d1280cd273524b3d0ae9ce3 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Thu, 18 Dec 2025 09:11:21 +0700 Subject: [PATCH 29/89] refactor(FE-355): Use summary fallbacks for report footers --- .../report/sale/tab/HppPerKandangTab.tsx | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index 8cf54194..5e8ebb63 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -560,7 +560,7 @@ const HppPerKandangTab = () => { }, footer: () => (
- {formatNumber(totals.total_remaining_chicken_birds)} + {formatNumber(summary?.total_remaining_chicken_birds || 0)}
), }, @@ -574,7 +574,7 @@ const HppPerKandangTab = () => { }, footer: () => (
- {formatNumber(totals.total_remaining_chicken_weight_kg)} + {formatNumber(summary?.total_remaining_chicken_weight_kg || 0)}
), }, @@ -587,7 +587,9 @@ const HppPerKandangTab = () => { return
{formatNumber(value)}
; }, footer: () => ( -
-
+
+ {formatNumber(summary?.total_egg_production_pieces || 0)} +
), }, { @@ -599,7 +601,9 @@ const HppPerKandangTab = () => { return
{formatNumber(value)}
; }, footer: () => ( -
-
+
+ {formatNumber(summary?.total_remaining_chicken_weight_kg || 0)} +
), }, { @@ -611,7 +615,9 @@ const HppPerKandangTab = () => { return
{formatCurrency(value)}
; }, footer: () => ( -
-
+
+ {formatCurrency(summary?.total_egg_value_rp || 0)} +
), }, { @@ -675,7 +681,9 @@ const HppPerKandangTab = () => { return
{formatCurrency(value)}
; }, footer: () => ( -
-
+
+ {formatCurrency(summary?.average_egg_hpp_rp_per_kg || 0)} +
), }, { @@ -688,7 +696,7 @@ const HppPerKandangTab = () => { }, footer: () => (
- {formatCurrency(totals.total_remaining_value_rp)} + {formatCurrency(summary?.total_remaining_value_rp || 0)}
), }, From 40f2d0ba93e4336de48453907c3b8aa0f67fd3a8 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Thu, 18 Dec 2025 09:12:28 +0700 Subject: [PATCH 30/89] refactor(FE-355): Reorder egg_value_rp column in HppPerKandangTab --- .../report/sale/tab/HppPerKandangTab.tsx | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index 5e8ebb63..d1fbefa3 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -606,20 +606,6 @@ const HppPerKandangTab = () => { ), }, - { - id: 'egg_value_rp', - header: 'Nilai Nominal Telur (RP)', - accessorKey: 'egg_value_rp', - cell: (props) => { - const value = props.row.original.egg_value_rp; - return
{formatCurrency(value)}
; - }, - footer: () => ( -
- {formatCurrency(summary?.total_egg_value_rp || 0)} -
- ), - }, { id: 'feed_suppliers', header: 'Feed (Supplier)', @@ -660,6 +646,20 @@ const HppPerKandangTab = () => {
-
), }, + { + id: 'egg_value_rp', + header: 'Nilai Nominal Telur (RP)', + accessorKey: 'egg_value_rp', + cell: (props) => { + const value = props.row.original.egg_value_rp; + return
{formatCurrency(value)}
; + }, + footer: () => ( +
+ {formatCurrency(summary?.total_egg_value_rp || 0)} +
+ ), + }, { id: 'hpp_rp', header: 'HPP Ayam (RP)', From 320bc5224495e7fc112b0e6940f5a4c562430636 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Thu, 18 Dec 2025 09:24:49 +0700 Subject: [PATCH 31/89] refactor(FE-355,357): Show HPP and average DOC totals in table footer --- .../report/sale/tab/HppPerKandangTab.tsx | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index d1fbefa3..82fe632b 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -27,9 +27,8 @@ import toast from 'react-hot-toast'; import * as XLSX from 'xlsx'; interface Totals { - total_remaining_chicken_birds: number; - total_remaining_chicken_weight_kg: number; - total_remaining_value_rp: number; + total_hpp_rp: number; + total_average_doc_price_rp: number; } const HppPerKandangTab = () => { @@ -478,11 +477,14 @@ const HppPerKandangTab = () => { // ===== TABLE COLUMNS DEFINITION ===== const totals: Totals = useMemo(() => { return { - total_remaining_chicken_birds: - summary?.total_remaining_chicken_birds || 0, - total_remaining_chicken_weight_kg: - summary?.total_remaining_chicken_weight_kg || 0, - total_remaining_value_rp: summary?.total_remaining_value_rp || 0, + total_hpp_rp: data.reduce((acc, item) => acc + (item.hpp_rp || 0), 0), + total_average_doc_price_rp: + data.length > 0 + ? data.reduce( + (acc, item) => acc + (item.average_doc_price_rp || 0), + 0 + ) / data.length + : 0, }; }, [summary]); @@ -643,7 +645,9 @@ const HppPerKandangTab = () => { return
{formatCurrency(value)}
; }, footer: () => ( -
-
+
+ {formatCurrency(totals?.total_average_doc_price_rp || 0)} +
), }, { @@ -669,7 +673,9 @@ const HppPerKandangTab = () => { return
{formatCurrency(value)}
; }, footer: () => ( -
-
+
+ {formatCurrency(totals?.total_hpp_rp || 0)} +
), }, { From 69b4ca455ee50268ac1fc9e482a99e465c3b4806 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Thu, 18 Dec 2025 09:33:13 +0700 Subject: [PATCH 32/89] refactor(FE-355): Guard HPP total calculation for empty data --- src/components/pages/report/sale/tab/HppPerKandangTab.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index 82fe632b..14945264 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -477,7 +477,10 @@ const HppPerKandangTab = () => { // ===== TABLE COLUMNS DEFINITION ===== const totals: Totals = useMemo(() => { return { - total_hpp_rp: data.reduce((acc, item) => acc + (item.hpp_rp || 0), 0), + total_hpp_rp: + data.length > 0 + ? data.reduce((acc, item) => acc + (item.hpp_rp || 0), 0) + : 0, total_average_doc_price_rp: data.length > 0 ? data.reduce( From 3497a6346ce6f65dd6da49bcce8cdd42e0b322cb Mon Sep 17 00:00:00 2001 From: rstubryan Date: Thu, 18 Dec 2025 09:47:52 +0700 Subject: [PATCH 33/89] refactor(FE-357): Deduplicate totals and supplier aggregation --- .../report/sale/tab/HppPerKandangTab.tsx | 137 ++++++------------ 1 file changed, 46 insertions(+), 91 deletions(-) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index 14945264..3b5cfa28 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -262,6 +262,43 @@ const HppPerKandangTab = () => { return isResponseSuccess(response) ? response.data : null; }, [tableFilterState]); + // ===== TABLE COLUMNS DEFINITION ===== + const totals: Totals = useMemo(() => { + return { + total_hpp_rp: + data.length > 0 + ? data.reduce((acc, item) => acc + (item.hpp_rp || 0), 0) + : 0, + total_average_doc_price_rp: + data.length > 0 + ? data.reduce( + (acc, item) => acc + (item.average_doc_price_rp || 0), + 0 + ) / data.length + : 0, + }; + }, [summary]); + + const allFeedSuppliers = useMemo(() => { + const suppliers = new Set(); + data.forEach((item) => { + item.feed_suppliers?.forEach((s) => { + suppliers.add(s.alias || s.name); + }); + }); + return Array.from(suppliers).join(' | '); + }, [data]); + + const allDocSuppliers = useMemo(() => { + const suppliers = new Set(); + data.forEach((item) => { + item.doc_suppliers?.forEach((s) => { + suppliers.add(s.alias || s.name); + }); + }); + return Array.from(suppliers).join(' | '); + }, [data]); + // ===== EXPORT HANDLERS ===== const handleExportExcel = useCallback(async () => { setIsExcelExportLoading(true); @@ -280,52 +317,7 @@ const HppPerKandangTab = () => { const allExportData = allDataForExport.rows as HppPerKandangReport['rows']; - const totals = allExportData.reduce( - (acc, item) => ({ - total_remaining_chicken_birds: - acc.total_remaining_chicken_birds + - (item.remaining_chicken_birds || 0), - total_remaining_chicken_weight_kg: - acc.total_remaining_chicken_weight_kg + - (item.remaining_chicken_weight_kg || 0), - total_remaining_value_rp: - acc.total_remaining_value_rp + (item.remaining_value_rp || 0), - total_hpp_rp: acc.total_hpp_rp + (item.hpp_rp || 0), - average_doc_price_rp: - acc.average_doc_price_rp + (item.average_doc_price_rp || 0), - all_feed_suppliers: new Set([ - ...acc.all_feed_suppliers, - ...(item.feed_suppliers?.map((s) => s.alias || s.name) || []), - ]), - all_doc_suppliers: new Set([ - ...acc.all_doc_suppliers, - ...(item.doc_suppliers?.map((s) => s.alias || s.name) || []), - ]), - }), - { - total_remaining_chicken_birds: 0, - total_remaining_chicken_weight_kg: 0, - total_remaining_value_rp: 0, - total_hpp_rp: 0, - average_doc_price_rp: 0, - all_feed_suppliers: new Set(), - all_doc_suppliers: new Set(), - } - ); - - const avgWeight = - totals.total_remaining_chicken_birds > 0 - ? totals.total_remaining_chicken_weight_kg / - totals.total_remaining_chicken_birds - : 0; - const avgDocPrice = - allExportData.length > 0 - ? totals.average_doc_price_rp / allExportData.length - : 0; - const avgHpp = - totals.total_remaining_chicken_birds > 0 - ? totals.total_hpp_rp / totals.total_remaining_chicken_birds - : 0; + const summary = allDataForExport.summary; const excelData: { [key: string]: string | number }[] = allExportData.map( (item, index) => ({ @@ -352,14 +344,14 @@ const HppPerKandangTab = () => { No: 'TOTAL', Kandang: 'ALL', 'Rentang Bobot': '-', - 'Sisa Ayam (Ekor)': totals.total_remaining_chicken_birds, - 'Sisa Ayam (KG)': totals.total_remaining_chicken_weight_kg, - 'Rata-Rata Bobot (KG)': avgWeight, - 'Feed (Supplier)': Array.from(totals.all_feed_suppliers).join(' | '), - 'DOC (Supplier)': Array.from(totals.all_doc_suppliers).join(' | '), - 'Rata-Rata Harga DOC (RP)': avgDocPrice, - 'HPP (RP)': avgHpp, - 'Nilai Nominal Sisa Ayam (RP)': totals.total_remaining_value_rp, + 'Sisa Ayam (Ekor)': summary?.total_remaining_chicken_birds || 0, + 'Sisa Ayam (KG)': summary?.total_remaining_chicken_weight_kg || 0, + 'Rata-Rata Bobot (KG)': summary?.average_weight_kg || 0, + 'Feed (Supplier)': allFeedSuppliers, + 'DOC (Supplier)': allDocSuppliers, + 'Rata-Rata Harga DOC (RP)': totals?.total_average_doc_price_rp || 0, + 'HPP (RP)': totals?.total_hpp_rp || 0, + 'Nilai Nominal Sisa Ayam (RP)': summary?.total_remaining_value_rp || 0, }); const worksheet = XLSX.utils.json_to_sheet(excelData); @@ -474,43 +466,6 @@ const HppPerKandangTab = () => { kandangOptions, ]); - // ===== TABLE COLUMNS DEFINITION ===== - const totals: Totals = useMemo(() => { - return { - total_hpp_rp: - data.length > 0 - ? data.reduce((acc, item) => acc + (item.hpp_rp || 0), 0) - : 0, - total_average_doc_price_rp: - data.length > 0 - ? data.reduce( - (acc, item) => acc + (item.average_doc_price_rp || 0), - 0 - ) / data.length - : 0, - }; - }, [summary]); - - const allFeedSuppliers = useMemo(() => { - const suppliers = new Set(); - data.forEach((item) => { - item.feed_suppliers?.forEach((s) => { - suppliers.add(s.alias || s.name); - }); - }); - return Array.from(suppliers).join(' | '); - }, [data]); - - const allDocSuppliers = useMemo(() => { - const suppliers = new Set(); - data.forEach((item) => { - item.doc_suppliers?.forEach((s) => { - suppliers.add(s.alias || s.name); - }); - }); - return Array.from(suppliers).join(' | '); - }, [data]); - const getTableColumns = (): ColumnDef[] => { const tableColumns: ColumnDef[] = [ { From cc3765abcd8806aff4a0acabfc17207d52344dee Mon Sep 17 00:00:00 2001 From: rstubryan Date: Thu, 18 Dec 2025 09:50:11 +0700 Subject: [PATCH 34/89] refactor(FE-356): Add egg production and pricing columns --- .../report/sale/tab/HppPerKandangTab.tsx | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index 3b5cfa28..8a6e8a9c 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -326,16 +326,20 @@ const HppPerKandangTab = () => { 'Rentang Bobot': item.weight_range ? `${formatNumber(item.weight_range.weight_min)} - ${formatNumber(item.weight_range.weight_max)}` : '', + 'Rata-Rata Bobot (KG)': item.avg_weight_kg || 0, 'Sisa Ayam (Ekor)': item.remaining_chicken_birds || 0, 'Sisa Ayam (KG)': item.remaining_chicken_weight_kg || 0, - 'Rata-Rata Bobot (KG)': item.avg_weight_kg || 0, + 'Produksi Telur (Butir)': item.egg_production_pieces || 0, + 'Produksi Telur (KG)': item.egg_production_kg || 0, 'Feed (Supplier)': item.feed_suppliers?.map((s) => s.alias || s.name).join(' | ') || '', 'DOC (Supplier)': item.doc_suppliers?.map((s) => s.alias || s.name).join(' | ') || '', 'Rata-Rata Harga DOC (RP)': item.average_doc_price_rp || 0, - 'HPP (RP)': item.hpp_rp || 0, + 'Nilai Nominal Telur (RP)': item.egg_value_rp || 0, + 'HPP Ayam (RP)': item.hpp_rp || 0, + 'HPP Telur (RP/KG)': item.egg_hpp_rp_per_kg || 0, 'Nilai Nominal Sisa Ayam (RP)': item.remaining_value_rp || 0, }) ); @@ -344,13 +348,17 @@ const HppPerKandangTab = () => { No: 'TOTAL', Kandang: 'ALL', 'Rentang Bobot': '-', + 'Rata-Rata Bobot (KG)': summary?.average_weight_kg || 0, 'Sisa Ayam (Ekor)': summary?.total_remaining_chicken_birds || 0, 'Sisa Ayam (KG)': summary?.total_remaining_chicken_weight_kg || 0, - 'Rata-Rata Bobot (KG)': summary?.average_weight_kg || 0, + 'Produksi Telur (Butir)': summary?.total_egg_production_pieces || 0, + 'Produksi Telur (KG)': summary?.total_egg_production_kg || 0, 'Feed (Supplier)': allFeedSuppliers, 'DOC (Supplier)': allDocSuppliers, 'Rata-Rata Harga DOC (RP)': totals?.total_average_doc_price_rp || 0, - 'HPP (RP)': totals?.total_hpp_rp || 0, + 'Nilai Nominal Telur (RP)': summary?.total_egg_value_rp || 0, + 'HPP Ayam (RP)': totals?.total_hpp_rp || 0, + 'HPP Telur (RP/KG)': summary?.average_egg_hpp_rp_per_kg || 0, 'Nilai Nominal Sisa Ayam (RP)': summary?.total_remaining_value_rp || 0, }); @@ -360,13 +368,17 @@ const HppPerKandangTab = () => { { wch: 5 }, // No { wch: 30 }, // Kandang { wch: 15 }, // Rentang Bobot + { wch: 18 }, // Rata-Rata Bobot (KG) { wch: 15 }, // Sisa Ayam (Ekor) { wch: 15 }, // Sisa Ayam (KG) - { wch: 18 }, // Rata-Rata Bobot (KG) + { wch: 18 }, // Produksi Telur (Butir) + { wch: 18 }, // Produksi Telur (KG) { wch: 20 }, // Feed (Supplier) { wch: 20 }, // DOC (Supplier) { wch: 20 }, // Rata-Rata Harga DOC (RP) - { wch: 12 }, // HPP (RP) + { wch: 20 }, // Nilai Nominal Telur (RP) + { wch: 15 }, // HPP Ayam (RP) + { wch: 18 }, // HPP Telur (RP/KG) { wch: 25 }, // Nilai Nominal Sisa Ayam (RP) ]; worksheet['!cols'] = colWidths; From 4edd4f1285e036765249e660bc12a40c3a5a6653 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Thu, 18 Dec 2025 09:57:21 +0700 Subject: [PATCH 35/89] feat(FE-356): Add egg production and HPP fields to PDF export --- .../sale/export/HppPerkandangExport.tsx | 128 +++++++++++++++--- 1 file changed, 112 insertions(+), 16 deletions(-) diff --git a/src/components/pages/report/sale/export/HppPerkandangExport.tsx b/src/components/pages/report/sale/export/HppPerkandangExport.tsx index dc0c95f0..6fb0f914 100644 --- a/src/components/pages/report/sale/export/HppPerkandangExport.tsx +++ b/src/components/pages/report/sale/export/HppPerkandangExport.tsx @@ -165,7 +165,8 @@ interface WeightRangeGroup { } const groupDataByWeightRange = ( - data: HppPerKandangReport['rows'] + data: HppPerKandangReport['rows'], + summary: HppPerKandangReport['summary'] ): WeightRangeGroup[] => { const groups: { [key: string]: WeightRangeGroup; @@ -220,8 +221,12 @@ const groupDataByWeightRange = ( group.totals.total_remaining_chicken_weight_kg / group.totals.total_remaining_chicken_birds; group.totals.average_doc_price_rp = - group.items.reduce((sum, item) => sum + item.average_doc_price_rp, 0) / - group.items.length; + group.items.length > 0 + ? group.items.reduce( + (sum, item) => sum + item.average_doc_price_rp, + 0 + ) / group.items.length + : 0; }); return Object.values(groups).sort((a, b) => a.weight_min - b.weight_min); @@ -241,11 +246,27 @@ const getParameterText = (params: HppPerKandangExportParams['params']) => { return paramsText; }; +const getTotalsForExport = (data: HppPerKandangReport['rows']) => { + const totalHppRp = data.reduce((sum, item) => sum + (item.hpp_rp || 0), 0); + const avgDocPrice = + data.length > 0 + ? data.reduce((sum, item) => sum + (item.average_doc_price_rp || 0), 0) / + data.length + : 0; + + return { + total_hpp_rp: totalHppRp, + total_average_doc_price_rp: avgDocPrice, + }; +}; + const createPDFDocument = ( data: HppPerKandangExportParams['data'], params: HppPerKandangExportParams['params'] ) => { - const groupedByWeightRange = groupDataByWeightRange(data.rows); + const summary = data.summary; + const exportTotals = getTotalsForExport(data.rows); + const groupedByWeightRange = groupDataByWeightRange(data.rows, summary); return ( @@ -283,6 +304,12 @@ const createPDFDocument = ( Rata-Rata Bobot (Kg) + + Produksi Telur (Butir) + + + Produksi Telur (Kg) + Feed (Supplier) @@ -292,8 +319,14 @@ const createPDFDocument = ( Rata-Rata Harga DOC + + Nilai Nominal Telur + - HPP + HPP Ayam + + + HPP Telur (RP/KG) Nominal Sisa @@ -332,6 +365,26 @@ const createPDFDocument = ( {formatNumber(group.totals.average_weight_kg)} + + + {formatNumber( + group.items.reduce( + (sum, item) => sum + (item.egg_production_pieces || 0), + 0 + ) + )} + + + + + {formatNumber( + group.items.reduce( + (sum, item) => sum + (item.egg_production_kg || 0), + 0 + ) + )} + + {group.totals.all_feed_suppliers.join(' | ')} @@ -341,15 +394,34 @@ const createPDFDocument = ( {formatNumber(group.totals.average_doc_price_rp)} + + + {formatNumber( + group.items.reduce( + (sum, item) => sum + (item.egg_value_rp || 0), + 0 + ) + )} + + - { - (group.totals.total_remaining_chicken_birds > 0 + {formatNumber( + group.totals.total_remaining_chicken_birds > 0 ? group.totals.total_hpp_rp / - group.totals.total_remaining_chicken_birds - : 0, - 2) - } + group.totals.total_remaining_chicken_birds + : 0 + )} + + + + + {formatNumber( + group.items.reduce( + (sum, item) => sum + (item.egg_hpp_rp_per_kg || 0), + 0 + ) / group.items.length || 0 + )} @@ -378,14 +450,20 @@ const createPDFDocument = ( Rentang BW + + Rata-Rata Bobot (Kg) + Sisa Ekor Sisa Kg - - Rata-Rata Bobot (Kg) + + Produksi Telur (Butir) + + + Produksi Telur (Kg) Feed (Supplier) @@ -396,8 +474,14 @@ const createPDFDocument = ( Rata-Rata Harga DOC + + Nilai Nominal Telur + - HPP + HPP Ayam + + + HPP Telur (RP/KG) Nominal Sisa @@ -427,14 +511,20 @@ const createPDFDocument = ( {item.weight_range.weight_max.toFixed(2)} + + {formatNumber(item.avg_weight_kg)} + {formatNumber(item.remaining_chicken_birds)} {formatNumber(item.remaining_chicken_weight_kg)} - - {formatNumber(item.avg_weight_kg)} + + {formatNumber(item.egg_production_pieces)} + + + {formatNumber(item.egg_production_kg)} @@ -453,9 +543,15 @@ const createPDFDocument = ( {formatNumber(item.average_doc_price_rp)} + + {formatNumber(item.egg_value_rp)} + {formatNumber(item.hpp_rp)} + + {formatNumber(item.egg_hpp_rp_per_kg)} + {formatNumber(item.remaining_value_rp)} From 83fc92d48be4eb0399910ea436a30242dc89284f Mon Sep 17 00:00:00 2001 From: rstubryan Date: Thu, 18 Dec 2025 11:12:30 +0700 Subject: [PATCH 36/89] refactor(FE-356): Refactor weight-range grouping and format currency --- .../sale/export/HppPerkandangExport.tsx | 230 +++++++----------- 1 file changed, 83 insertions(+), 147 deletions(-) diff --git a/src/components/pages/report/sale/export/HppPerkandangExport.tsx b/src/components/pages/report/sale/export/HppPerkandangExport.tsx index 6fb0f914..d6bd3e25 100644 --- a/src/components/pages/report/sale/export/HppPerkandangExport.tsx +++ b/src/components/pages/report/sale/export/HppPerkandangExport.tsx @@ -10,7 +10,7 @@ import { pdf, } from '@react-pdf/renderer'; import { HppPerKandangReport } from '@/types/api/report/hpp-per-kandang'; -import { formatDate, formatNumber } from '@/lib/helper'; +import { formatDate, formatNumber, formatCurrency } from '@/lib/helper'; Font.register({ family: 'Helvetica', @@ -148,88 +148,72 @@ interface HppPerKandangExportParams { }; } -interface WeightRangeGroup { - weight_min: number; - weight_max: number; - items: HppPerKandangReport['rows']; - totals: { - total_remaining_chicken_birds: number; - total_remaining_chicken_weight_kg: number; - average_weight_kg: number; - total_hpp_rp: number; - total_remaining_value_rp: number; - all_feed_suppliers: string[]; - all_doc_suppliers: string[]; - average_doc_price_rp: number; - }; -} - -const groupDataByWeightRange = ( - data: HppPerKandangReport['rows'], - summary: HppPerKandangReport['summary'] -): WeightRangeGroup[] => { - const groups: { - [key: string]: WeightRangeGroup; - } = {}; +const rekapitulasiData = (data: HppPerKandangReport['rows']) => { + const groups: { [key: string]: HppPerKandangReport['rows'] } = {}; data.forEach((item) => { const key = `${item.weight_range.weight_min}-${item.weight_range.weight_max}`; if (!groups[key]) { - groups[key] = { - weight_min: item.weight_range.weight_min, - weight_max: item.weight_range.weight_max, - items: [], - totals: { - total_remaining_chicken_birds: 0, - total_remaining_chicken_weight_kg: 0, - average_weight_kg: 0, - total_hpp_rp: 0, - total_remaining_value_rp: 0, - all_feed_suppliers: [], - all_doc_suppliers: [], - average_doc_price_rp: 0, - }, - }; + groups[key] = []; } - - groups[key].items.push(item); - - groups[key].totals.total_remaining_chicken_birds += - item.remaining_chicken_birds; - groups[key].totals.total_remaining_chicken_weight_kg += - item.remaining_chicken_weight_kg; - groups[key].totals.total_hpp_rp += item.hpp_rp; - groups[key].totals.total_remaining_value_rp += item.remaining_value_rp; - - item.feed_suppliers?.forEach((supplier) => { - const alias = supplier.alias || supplier.name; - if (!groups[key].totals.all_feed_suppliers.includes(alias)) { - groups[key].totals.all_feed_suppliers.push(alias); - } - }); - - item.doc_suppliers?.forEach((supplier) => { - const alias = supplier.alias || supplier.name; - if (!groups[key].totals.all_doc_suppliers.includes(alias)) { - groups[key].totals.all_doc_suppliers.push(alias); - } - }); + groups[key].push(item); }); - Object.values(groups).forEach((group) => { - group.totals.average_weight_kg = - group.totals.total_remaining_chicken_weight_kg / - group.totals.total_remaining_chicken_birds; - group.totals.average_doc_price_rp = - group.items.length > 0 - ? group.items.reduce( - (sum, item) => sum + item.average_doc_price_rp, - 0 - ) / group.items.length - : 0; - }); - - return Object.values(groups).sort((a, b) => a.weight_min - b.weight_min); + return Object.entries(groups) + .map(([key, items]) => ({ + weight_min: items[0].weight_range.weight_min, + weight_max: items[0].weight_range.weight_max, + items, + total_remaining_chicken_birds: items.reduce( + (sum, item) => sum + item.remaining_chicken_birds, + 0 + ), + total_remaining_chicken_weight_kg: items.reduce( + (sum, item) => sum + item.remaining_chicken_weight_kg, + 0 + ), + average_weight_kg: + items.reduce((sum, item) => sum + item.remaining_chicken_weight_kg, 0) / + items.reduce((sum, item) => sum + item.remaining_chicken_birds, 0), + total_hpp_rp: items.reduce((sum, item) => sum + item.hpp_rp, 0), + total_remaining_value_rp: items.reduce( + (sum, item) => sum + item.remaining_value_rp, + 0 + ), + total_egg_production_pieces: items.reduce( + (sum, item) => sum + (item.egg_production_pieces || 0), + 0 + ), + total_egg_production_kg: items.reduce( + (sum, item) => sum + (item.egg_production_kg || 0), + 0 + ), + total_egg_value_rp: items.reduce( + (sum, item) => sum + (item.egg_value_rp || 0), + 0 + ), + average_egg_hpp_rp_per_kg: + items.reduce((sum, item) => sum + (item.egg_hpp_rp_per_kg || 0), 0) / + items.length, + average_doc_price_rp: + items.reduce((sum, item) => sum + item.average_doc_price_rp, 0) / + items.length, + all_feed_suppliers: [ + ...new Set( + items.flatMap( + (item) => item.feed_suppliers?.map((s) => s.alias || s.name) || [] + ) + ), + ], + all_doc_suppliers: [ + ...new Set( + items.flatMap( + (item) => item.doc_suppliers?.map((s) => s.alias || s.name) || [] + ) + ), + ], + })) + .sort((a, b) => a.weight_min - b.weight_min); }; const getParameterText = (params: HppPerKandangExportParams['params']) => { @@ -246,27 +230,11 @@ const getParameterText = (params: HppPerKandangExportParams['params']) => { return paramsText; }; -const getTotalsForExport = (data: HppPerKandangReport['rows']) => { - const totalHppRp = data.reduce((sum, item) => sum + (item.hpp_rp || 0), 0); - const avgDocPrice = - data.length > 0 - ? data.reduce((sum, item) => sum + (item.average_doc_price_rp || 0), 0) / - data.length - : 0; - - return { - total_hpp_rp: totalHppRp, - total_average_doc_price_rp: avgDocPrice, - }; -}; - const createPDFDocument = ( data: HppPerKandangExportParams['data'], params: HppPerKandangExportParams['params'] ) => { - const summary = data.summary; - const exportTotals = getTotalsForExport(data.rows); - const groupedByWeightRange = groupDataByWeightRange(data.rows, summary); + const rekapitulasiByWeightRange = rekapitulasiData(data.rows); return ( @@ -334,12 +302,12 @@ const createPDFDocument = ( {/* Table Body - Rekapitulasi */} - {groupedByWeightRange.map((group, index) => ( + {rekapitulasiByWeightRange.map((group, index) => ( - {formatNumber(group.totals.total_remaining_chicken_birds)} + {formatNumber(group.total_remaining_chicken_birds)} - {formatNumber( - group.totals.total_remaining_chicken_weight_kg - )} + {formatNumber(group.total_remaining_chicken_weight_kg)} - {formatNumber(group.totals.average_weight_kg)} + {formatNumber(group.average_weight_kg)} - - {formatNumber( - group.items.reduce( - (sum, item) => sum + (item.egg_production_pieces || 0), - 0 - ) - )} - + {formatNumber(group.total_egg_production_pieces)} - - {formatNumber( - group.items.reduce( - (sum, item) => sum + (item.egg_production_kg || 0), - 0 - ) - )} - + {formatNumber(group.total_egg_production_kg)} - {group.totals.all_feed_suppliers.join(' | ')} + {group.all_feed_suppliers.join(' | ')} - {group.totals.all_doc_suppliers.join(' | ')} + {group.all_doc_suppliers.join(' | ')} - {formatNumber(group.totals.average_doc_price_rp)} + {formatCurrency(group.average_doc_price_rp)} - - {formatNumber( - group.items.reduce( - (sum, item) => sum + (item.egg_value_rp || 0), - 0 - ) - )} - + {formatCurrency(group.total_egg_value_rp)} - {formatNumber( - group.totals.total_remaining_chicken_birds > 0 - ? group.totals.total_hpp_rp / - group.totals.total_remaining_chicken_birds + {formatCurrency( + group.total_remaining_chicken_birds > 0 + ? group.total_hpp_rp / + group.total_remaining_chicken_birds : 0 )} - - {formatNumber( - group.items.reduce( - (sum, item) => sum + (item.egg_hpp_rp_per_kg || 0), - 0 - ) / group.items.length || 0 - )} - + {formatCurrency(group.average_egg_hpp_rp_per_kg)} - - {formatNumber(group.totals.total_remaining_value_rp)} - + {formatCurrency(group.total_remaining_value_rp)} ))} @@ -541,19 +477,19 @@ const createPDFDocument = ( - {formatNumber(item.average_doc_price_rp)} + {formatCurrency(item.average_doc_price_rp)} - {formatNumber(item.egg_value_rp)} + {formatCurrency(item.egg_value_rp)} - {formatNumber(item.hpp_rp)} + {formatCurrency(item.hpp_rp)} - {formatNumber(item.egg_hpp_rp_per_kg)} + {formatCurrency(item.egg_hpp_rp_per_kg)} - {formatNumber(item.remaining_value_rp)} + {formatCurrency(item.remaining_value_rp)} ))} From f844c9ff2ccc6ddcde0e8fab62558ab8e98930e5 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Thu, 18 Dec 2025 11:19:23 +0700 Subject: [PATCH 37/89] refactor(FE-357): Use relative URL for marketing sale reports --- src/services/api/report/marketing-sale.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/services/api/report/marketing-sale.ts b/src/services/api/report/marketing-sale.ts index e15d2a8b..ba8fe481 100644 --- a/src/services/api/report/marketing-sale.ts +++ b/src/services/api/report/marketing-sale.ts @@ -44,7 +44,13 @@ export class MarketingSaleReportService extends BaseApiService< } } -// TODO: REPLACE WITH PRODUCTION URL export const SaleReportApi = new MarketingSaleReportService( - 'http://localhost:4010/api/reports/marketings' + 'reports/marketings' ); + +/* For local testing purpose only +export const SaleReportApi = new MarketingSaleReportService( + 'http://localhost:4010/api/reports/marketings' + 'reports/marketings' + ); +*/ From a935ffd9f5692845acc10afe4927f63b439b3b46 Mon Sep 17 00:00:00 2001 From: randy-ar Date: Thu, 18 Dec 2025 11:33:18 +0700 Subject: [PATCH 38/89] fix(FE): fixing floating button & revert require auth component --- src/components/FloatingActionsButton.tsx | 4 +- src/components/Navbar.tsx | 7 +- src/components/dropdown/Dropdown.tsx | 166 ++++++++-------- src/components/helper/RequireAuth.tsx | 238 ++++++----------------- 4 files changed, 154 insertions(+), 261 deletions(-) diff --git a/src/components/FloatingActionsButton.tsx b/src/components/FloatingActionsButton.tsx index c9ca3454..2e4eed07 100644 --- a/src/components/FloatingActionsButton.tsx +++ b/src/components/FloatingActionsButton.tsx @@ -33,7 +33,9 @@ const FloatingActionsButton = ({ }: FloatingActionsButtonProps) => { // Jika tidak ada baris yang dipilih, jangan tampilkan FAB const positionStyles = - selectedRowIds.length > 0 ? 'bottom-[10%]' : 'bottom-[-100%]'; + selectedRowIds.length > 0 + ? 'bottom-[10%] opacity-100' + : 'bottom-[-10%] opacity-0'; // Helper untuk menentukan gaya warna tombol approval const getApprovalColor = (action: 'APPROVED' | 'REJECTED') => { diff --git a/src/components/Navbar.tsx b/src/components/Navbar.tsx index bee92a57..918122d2 100644 --- a/src/components/Navbar.tsx +++ b/src/components/Navbar.tsx @@ -54,7 +54,8 @@ const Navbar = ({ title, toggleSidebar }: NavbarProps) => {
@@ -62,7 +63,9 @@ const Navbar = ({ title, toggleSidebar }: NavbarProps) => {
} - contentClassName='w-52 mt-3' + className={{ + content: 'w-52 mt-3', + }} > diff --git a/src/components/dropdown/Dropdown.tsx b/src/components/dropdown/Dropdown.tsx index 4489231d..5bfa7a7d 100644 --- a/src/components/dropdown/Dropdown.tsx +++ b/src/components/dropdown/Dropdown.tsx @@ -1,111 +1,109 @@ -'use client'; +import React, { ReactNode, useState, useRef } from 'react'; -import { ReactNode, useRef, useEffect, useState } from 'react'; import { cn } from '@/lib/helper'; -interface DropdownProps { +export interface DropdownProps { trigger: ReactNode; children: ReactNode; - position?: - | 'top' - | 'bottom' - | 'left' - | 'right' - | 'top-start' - | 'top-end' - | 'bottom-start' - | 'bottom-end' - | 'left-start' - | 'left-end' - | 'right-start' - | 'right-end'; + className?: { + wrapper?: string; + trigger?: string; + content?: string; + }; align?: 'start' | 'center' | 'end'; + direction?: 'top' | 'bottom' | 'left' | 'right'; hover?: boolean; - className?: string; - contentClassName?: string; + defaultOpen?: boolean; + open?: boolean; + close?: boolean; + controlled?: boolean; } const Dropdown = ({ trigger, children, - position = 'bottom', - align = 'start', - hover = false, className, - contentClassName, + align, + direction, + hover, + defaultOpen = false, + open, + close, + controlled = false, }: DropdownProps) => { - const [isOpen, setIsOpen] = useState(false); + const [isOpen, setIsOpen] = useState(defaultOpen); const dropdownRef = useRef(null); - // Handle click outside to close dropdown - useEffect(() => { - const handleClickOutside = (event: MouseEvent) => { - if ( - dropdownRef.current && - !dropdownRef.current.contains(event.target as Node) - ) { - setIsOpen(false); - } - }; - - if (isOpen) { - document.addEventListener('mousedown', handleClickOutside); + const toggleDropdown = () => { + if (!controlled) { + const newState = !isOpen; + setIsOpen(newState); } - - return () => { - document.removeEventListener('mousedown', handleClickOutside); - }; - }, [isOpen]); - - // Build position classes - const getPositionClasses = () => { - const classes: string[] = []; - - // Handle combined positions like 'top-start' - if (position.includes('-')) { - const [pos, al] = position.split('-'); - classes.push(`dropdown-${pos}`); - classes.push(`dropdown-${al}`); - } else { - classes.push(`dropdown-${position}`); - if (align !== 'start') { - classes.push(`dropdown-${align}`); - } - } - - return classes.join(' '); }; - const handleToggle = (e: React.MouseEvent) => { - e.preventDefault(); - e.stopPropagation(); - // alert('clicked'); - setIsOpen(!isOpen); + const getWrapperClasses = () => { + const openState = controlled ? open : isOpen; + + return cn( + 'dropdown', + { + 'dropdown-start': align === 'start', + 'dropdown-center': align === 'center', + 'dropdown-end': align === 'end', + 'dropdown-top': direction === 'top', + 'dropdown-bottom': direction === 'bottom', + 'dropdown-left': direction === 'left', + 'dropdown-right': direction === 'right', + 'dropdown-hover': hover, + 'dropdown-open': openState && !close, + 'dropdown-close': close, + }, + className?.wrapper + ); }; + const getTriggerClasses = () => { + return cn(className?.trigger); + }; + + const getContentClasses = () => { + return cn( + 'dropdown-content z-[9999] shadow-sm bg-base-100 rounded-box', + className?.content + ); + }; + + if (controlled) { + return ( +
+ {trigger} + {open && !close && ( +
+ {children} +
+ )} +
+ ); + } + return ( -
- {/* Trigger Button */} -
+
+
{ + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + toggleDropdown(); + } + }} + > {trigger}
- - {/* Dropdown Content - Only render when open */} - {isOpen && ( -
setIsOpen(false)} // Close on item click - > + {!close && ( +
{children}
)} diff --git a/src/components/helper/RequireAuth.tsx b/src/components/helper/RequireAuth.tsx index dbd4b6bc..65adf48c 100644 --- a/src/components/helper/RequireAuth.tsx +++ b/src/components/helper/RequireAuth.tsx @@ -1,197 +1,87 @@ 'use client'; import { ReactNode, useEffect } from 'react'; -import { useRouter } from 'next/navigation'; -import useSWRImmutable from 'swr/immutable'; +import useSWR from 'swr'; import { useAuth } from '@/services/hooks/useAuth'; import { httpClientFetcher, SWRHttpKey } from '@/services/http/client'; -import { isResponseSuccess } from '@/lib/api-helper'; -import { GetMeResponse } from '@/types/api/api-general'; - -// TODO: delete this later, DONT HARDCODE USER DATA -const DUMMY_USER = { - id: 1, - email: 'admin@mbugroup.id', - npk: '0001', - name: 'Super Admin', - image: null, - created_at: '2025-09-30T03:24:20.899229Z', - updated_at: '2025-09-30T03:24:20.899229Z', - roles: [ - { - id: 1, - key: 'mbu.super_admin', - name: 'MBU Administrator', - client: { - id: 1, - name: 'PT Mitra Berlian Unggas', - alias: 'MBU', - }, - permissions: [ - { - id: 1, - name: 'mbu:purchase:read', - action: 'read', - client: { - id: 1, - name: 'PT Mitra Berlian Unggas', - alias: 'MBU', - }, - }, - { - id: 2, - name: 'mbu:purchase:create', - action: 'create', - client: { - id: 1, - name: 'PT Mitra Berlian Unggas', - alias: 'MBU', - }, - }, - { - id: 3, - name: 'mbu:purchase:approve', - action: 'approve', - client: { - id: 1, - name: 'PT Mitra Berlian Unggas', - alias: 'MBU', - }, - }, - ], - }, - { - id: 2, - key: 'lti.super_admin', - name: 'LTI Administrator', - client: { - id: 2, - name: 'PT Lumbung Telur Indonesia', - alias: 'LTI', - }, - permissions: [ - { - id: 4, - name: 'lti:purchase:read', - action: 'read', - client: { - id: 2, - name: 'PT Lumbung Telur Indonesia', - alias: 'LTI', - }, - }, - { - id: 5, - name: 'lti:purchase:create', - action: 'create', - client: { - id: 2, - name: 'PT Lumbung Telur Indonesia', - alias: 'LTI', - }, - }, - { - id: 6, - name: 'lti:purchase:approve', - action: 'approve', - client: { - id: 2, - name: 'PT Lumbung Telur Indonesia', - alias: 'LTI', - }, - }, - ], - }, - { - id: 3, - key: 'manbu.super_admin', - name: 'MANBU Administrator', - client: { - id: 3, - name: 'PT Mandiri Berlian Unggas', - alias: 'MANBU', - }, - permissions: [ - { - id: 7, - name: 'manbu:purchase:read', - action: 'read', - client: { - id: 3, - name: 'PT Mandiri Berlian Unggas', - alias: 'MANBU', - }, - }, - { - id: 8, - name: 'manbu:purchase:create', - action: 'create', - client: { - id: 3, - name: 'PT Mandiri Berlian Unggas', - alias: 'MANBU', - }, - }, - { - id: 9, - name: 'manbu:purchase:approve', - action: 'approve', - client: { - id: 3, - name: 'PT Mandiri Berlian Unggas', - alias: 'MANBU', - }, - }, - ], - }, - ], -}; +import { isResponseError, isResponseSuccess } from '@/lib/api-helper'; +import { BaseApiResponse, GetMeResponse } from '@/types/api/api-general'; +import { AxiosError } from 'axios'; +import { redirectToSSO } from '@/lib/auth-helper'; interface RequireAuthProps { children?: ReactNode; } const RequireAuth = ({ children }: RequireAuthProps) => { - const router = useRouter(); - const { setUser, setIsLoadingUser } = useAuth(); + const { user, setUser, setIsLoadingUser } = useAuth(); - const { data: userResponse, isLoading: isLoadingUserResponse } = - useSWRImmutable( - '/auth/sso/userinfo', - httpClientFetcher, - { - shouldRetryOnError: false, - revalidateOnFocus: false, - revalidateOnReconnect: false, - refreshInterval: 0, - } - ); - - useEffect(() => { - setIsLoadingUser(isLoadingUserResponse); - }, [isLoadingUserResponse, setIsLoadingUser]); + const { + data: userResponse, + isLoading: isLoadingUserResponse, + error: userErrorResponse, + } = useSWR< + GetMeResponse & { ok?: boolean }, + AxiosError, + SWRHttpKey + >('/sso/userinfo', httpClientFetcher, { + shouldRetryOnError: false, + }); useEffect(() => { if (isResponseSuccess(userResponse)) { setUser(userResponse.data); - } else { - // router.replace(process.env.NEXT_PUBLIC_SSO_LOGIN_URL as string); - // TODO: remove this later, DONT HARDCODE USER DATA - setUser(DUMMY_USER); } - }, [userResponse, setIsLoadingUser, setUser]); + }, [userResponse, setUser]); - // TODO: uncomment this later - // if (isLoadingUserResponse && !userResponse) { - // return ( - //
- // - //
- // ); - // } + // Explicitly handle 401 redirect from the component level + useEffect(() => { + if ( + isResponseError(userResponse) && + userErrorResponse?.response?.status === 401 + ) { + // Clear cache to prevent stale data from rendering children + // mutate('/sso/userinfo', undefined, { revalidate: false }); // Optional: if using global mutate + setUser(undefined); + redirectToSSO(); + } + }, [userErrorResponse, setUser, userResponse]); - return <>{children}; + useEffect(() => { + setIsLoadingUser(isLoadingUserResponse); + }, [isLoadingUserResponse]); + + if ( + (isLoadingUserResponse && !userResponse && !userErrorResponse) || + (!userResponse && !userErrorResponse) + ) { + return ( +
+ +
+ ); + } + + if (userErrorResponse) { + return ( +
+

Authentication Failed

+

+ Please try refreshing the page or contact support if the problem + persists. +

+ +
+ ); + } + + return <>{isResponseSuccess(userResponse) && user && children}; }; export default RequireAuth; From 843fa6ee7a9f95ceb53deeb90ce877b3ab736e96 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Thu, 18 Dec 2025 12:56:05 +0700 Subject: [PATCH 39/89] refactor(FE-357): Make area/location/kandang filters multi-select --- .../report/sale/tab/HppPerKandangTab.tsx | 207 +++++++++++------- src/services/api/report/marketing-sale.ts | 15 +- 2 files changed, 129 insertions(+), 93 deletions(-) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index 8a6e8a9c..9a9ddde7 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -43,9 +43,9 @@ const HppPerKandangTab = () => { // ===== TABLE FILTER STATE ===== const { state: tableFilterState, updateFilter } = useTableFilter({ initial: { - area_id: '', - location_id: '', - kandang_id: '', + area_id: [] as string[], + location_id: [] as string[], + kandang_id: [] as string[], weight_min: '', weight_max: '', period: '', @@ -78,8 +78,11 @@ const HppPerKandangTab = () => { const areaChangeHandler = useCallback( (val: OptionType | OptionType[] | null) => { - const newVal = val as OptionType; - updateFilter('area_id', newVal?.value ? String(newVal.value) : ''); + const arr = Array.isArray(val) ? val : val ? [val] : []; + updateFilter( + 'area_id', + arr.map((v) => String((v as OptionType).value)) + ); setIsSubmitted(false); }, [updateFilter] @@ -87,8 +90,11 @@ const HppPerKandangTab = () => { const locationChangeHandler = useCallback( (val: OptionType | OptionType[] | null) => { - const newVal = val as OptionType; - updateFilter('location_id', newVal?.value ? String(newVal.value) : ''); + const arr = Array.isArray(val) ? val : val ? [val] : []; + updateFilter( + 'location_id', + arr.map((v) => String((v as OptionType).value)) + ); setIsSubmitted(false); }, [updateFilter] @@ -96,8 +102,11 @@ const HppPerKandangTab = () => { const kandangChangeHandler = useCallback( (val: OptionType | OptionType[] | null) => { - const newVal = val as OptionType; - updateFilter('kandang_id', newVal?.value ? String(newVal.value) : ''); + const arr = Array.isArray(val) ? val : val ? [val] : []; + updateFilter( + 'kandang_id', + arr.map((v) => String((v as OptionType).value)) + ); setIsSubmitted(false); }, [updateFilter] @@ -144,9 +153,9 @@ const HppPerKandangTab = () => { ); const resetFilters = useCallback(() => { - updateFilter('area_id', ''); - updateFilter('location_id', ''); - updateFilter('kandang_id', ''); + updateFilter('area_id', []); + updateFilter('location_id', []); + updateFilter('kandang_id', []); updateFilter('weight_min', ''); updateFilter('weight_max', ''); updateFilter('period', ''); @@ -168,15 +177,18 @@ const HppPerKandangTab = () => { isSubmitted ? () => { const params = { - area_id: tableFilterState.area_id - ? Number(tableFilterState.area_id) - : undefined, - location_id: tableFilterState.location_id - ? Number(tableFilterState.location_id) - : undefined, - kandang_id: tableFilterState.kandang_id - ? Number(tableFilterState.kandang_id) - : undefined, + area_id: + tableFilterState.area_id.length > 0 + ? tableFilterState.area_id.join(',') + : undefined, + location_id: + tableFilterState.location_id.length > 0 + ? tableFilterState.location_id.join(',') + : undefined, + kandang_id: + tableFilterState.kandang_id.length > 0 + ? tableFilterState.kandang_id.join(',') + : undefined, weight_min: tableFilterState.weight_min ? Number(tableFilterState.weight_min) : undefined, @@ -226,15 +238,18 @@ const HppPerKandangTab = () => { const hppPerKandangExport = useCallback(async (): Promise => { const params = { - area_id: tableFilterState.area_id - ? Number(tableFilterState.area_id) - : undefined, - location_id: tableFilterState.location_id - ? Number(tableFilterState.location_id) - : undefined, - kandang_id: tableFilterState.kandang_id - ? Number(tableFilterState.kandang_id) - : undefined, + area_id: + tableFilterState.area_id.length > 0 + ? tableFilterState.area_id.join(',') + : undefined, + location_id: + tableFilterState.location_id.length > 0 + ? tableFilterState.location_id.join(',') + : undefined, + kandang_id: + tableFilterState.kandang_id.length > 0 + ? tableFilterState.kandang_id.join(',') + : undefined, weight_min: tableFilterState.weight_min ? Number(tableFilterState.weight_min) : undefined, @@ -386,23 +401,38 @@ const HppPerKandangTab = () => { const workbook = XLSX.utils.book_new(); XLSX.utils.book_append_sheet(workbook, worksheet, 'HPP Per Kandang'); - const areaName = tableFilterState.area_id - ? areaOptions.find( - (opt) => opt.value === Number(tableFilterState.area_id) - )?.label || 'Semua Area' - : 'Semua Area'; + const areaName = + tableFilterState.area_id.length > 0 + ? tableFilterState.area_id + .map( + (id) => + areaOptions.find((opt) => opt.value === Number(id))?.label + ) + .filter(Boolean) + .join(', ') || 'Semua Area' + : 'Semua Area'; - const locationName = tableFilterState.location_id - ? locationOptions.find( - (opt) => opt.value === Number(tableFilterState.location_id) - )?.label || 'Semua Lokasi' - : 'Semua Lokasi'; + const locationName = + tableFilterState.location_id.length > 0 + ? tableFilterState.location_id + .map( + (id) => + locationOptions.find((opt) => opt.value === Number(id))?.label + ) + .filter(Boolean) + .join(', ') || 'Semua Lokasi' + : 'Semua Lokasi'; - const kandangName = tableFilterState.kandang_id - ? kandangOptions.find( - (opt) => opt.value === Number(tableFilterState.kandang_id) - )?.label || 'Semua Kandang' - : 'Semua Kandang'; + const kandangName = + tableFilterState.kandang_id.length > 0 + ? tableFilterState.kandang_id + .map( + (id) => + kandangOptions.find((opt) => opt.value === Number(id))?.label + ) + .filter(Boolean) + .join(', ') || 'Semua Kandang' + : 'Semua Kandang'; const filename = `Laporan_HPP_Per_Kandang_${areaName}_${locationName}_${kandangName}_${tableFilterState.period}.xlsx`; @@ -435,23 +465,38 @@ const HppPerKandangTab = () => { return; } - const areaName = tableFilterState.area_id - ? areaOptions.find( - (opt) => opt.value === Number(tableFilterState.area_id) - )?.label || 'Semua Area' - : 'Semua Area'; + const areaName = + tableFilterState.area_id.length > 0 + ? tableFilterState.area_id + .map( + (id) => + areaOptions.find((opt) => opt.value === Number(id))?.label + ) + .filter(Boolean) + .join(', ') || 'Semua Area' + : 'Semua Area'; - const locationName = tableFilterState.location_id - ? locationOptions.find( - (opt) => opt.value === Number(tableFilterState.location_id) - )?.label || 'Semua Lokasi' - : 'Semua Lokasi'; + const locationName = + tableFilterState.location_id.length > 0 + ? tableFilterState.location_id + .map( + (id) => + locationOptions.find((opt) => opt.value === Number(id))?.label + ) + .filter(Boolean) + .join(', ') || 'Semua Lokasi' + : 'Semua Lokasi'; - const kandangName = tableFilterState.kandang_id - ? kandangOptions.find( - (opt) => opt.value === Number(tableFilterState.kandang_id) - )?.label || 'Semua Kandang' - : 'Semua Kandang'; + const kandangName = + tableFilterState.kandang_id.length > 0 + ? tableFilterState.kandang_id + .map( + (id) => + kandangOptions.find((opt) => opt.value === Number(id))?.label + ) + .filter(Boolean) + .join(', ') || 'Semua Kandang' + : 'Semua Kandang'; await generateHppPerKandangPDF(allDataForExport, { area_name: areaName, @@ -716,15 +761,13 @@ const HppPerKandangTab = () => { - option.value === Number(tableFilterState.area_id) - ) || null - : null - } + value={areaOptions.filter((opt) => + (tableFilterState.area_id || []) + .map(String) + .includes(String(opt.value)) + )} onChange={areaChangeHandler} isLoading={isLoadingAreas} isClearable @@ -732,15 +775,13 @@ const HppPerKandangTab = () => { - option.value === Number(tableFilterState.location_id) - ) || null - : null - } + value={locationOptions.filter((opt) => + (tableFilterState.location_id || []) + .map(String) + .includes(String(opt.value)) + )} onChange={locationChangeHandler} isLoading={isLoadingLocations} isClearable @@ -748,15 +789,13 @@ const HppPerKandangTab = () => { - option.value === Number(tableFilterState.kandang_id) - ) || null - : null - } + value={kandangOptions.filter((opt) => + (tableFilterState.kandang_id || []) + .map(String) + .includes(String(opt.value)) + )} onChange={kandangChangeHandler} isLoading={isLoadingKandangs} isClearable diff --git a/src/services/api/report/marketing-sale.ts b/src/services/api/report/marketing-sale.ts index ba8fe481..4422957e 100644 --- a/src/services/api/report/marketing-sale.ts +++ b/src/services/api/report/marketing-sale.ts @@ -12,9 +12,9 @@ export class MarketingSaleReportService extends BaseApiService< } async getHppPerKandangReport( - area_id?: number, - location_id?: number, - kandang_id?: number, + area_id?: string, + location_id?: string, + kandang_id?: string, weight_min?: number, weight_max?: number, period?: string, @@ -48,9 +48,6 @@ export const SaleReportApi = new MarketingSaleReportService( 'reports/marketings' ); -/* For local testing purpose only -export const SaleReportApi = new MarketingSaleReportService( - 'http://localhost:4010/api/reports/marketings' - 'reports/marketings' - ); -*/ +// export const SaleReportApi = new MarketingSaleReportService( +// 'http://localhost:4010/api/reports/marketings' +// ); From 6b30457ec26c2ba70e8ccc934fdefb5cec6ced9c Mon Sep 17 00:00:00 2001 From: rstubryan Date: Thu, 18 Dec 2025 13:02:16 +0700 Subject: [PATCH 40/89] feat(FE-356): Include filter details in export header --- .../sale/export/HppPerkandangExport.tsx | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/components/pages/report/sale/export/HppPerkandangExport.tsx b/src/components/pages/report/sale/export/HppPerkandangExport.tsx index d6bd3e25..12d0a697 100644 --- a/src/components/pages/report/sale/export/HppPerkandangExport.tsx +++ b/src/components/pages/report/sale/export/HppPerkandangExport.tsx @@ -219,11 +219,37 @@ const rekapitulasiData = (data: HppPerKandangReport['rows']) => { const getParameterText = (params: HppPerKandangExportParams['params']) => { const paramsText = []; + if (params.area_name && params.area_name !== 'Semua Area') { + paramsText.push(`Area: ${params.area_name}`); + } + + if (params.location_name && params.location_name !== 'Semua Lokasi') { + paramsText.push(`Lokasi: ${params.location_name}`); + } + + if (params.kandang_name && params.kandang_name !== 'Semua Kandang') { + paramsText.push(`Kandang: ${params.kandang_name}`); + } + if (params.period) { const formattedDate = formatDate(params.period, 'DD MMM YYYY'); paramsText.push(`Tanggal: ${formattedDate}`); } + if (params.weight_min || params.weight_max) { + const weightRange = + params.weight_min && params.weight_max + ? `${params.weight_min} - ${params.weight_max} kg` + : params.weight_min + ? `≥ ${params.weight_min} kg` + : `≤ ${params.weight_max} kg`; + paramsText.push(`Rentang Bobot: ${weightRange}`); + } + + if (params.show_unrecorded === 'true') { + paramsText.push('Tampilkan: Tanpa Recording'); + } + const currentDate = formatDate(new Date().toISOString(), 'DD MMM YYYY HH:mm'); paramsText.push(`Dicetak: ${currentDate}`); From fa7824224c6a0ec08e4fc724b12bf038cf7b417b Mon Sep 17 00:00:00 2001 From: rstubryan Date: Thu, 18 Dec 2025 13:05:01 +0700 Subject: [PATCH 41/89] refactor(FE-356): Use timestamped filename for HPP export --- .../report/sale/tab/HppPerKandangTab.tsx | 37 +------------------ 1 file changed, 2 insertions(+), 35 deletions(-) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index 9a9ddde7..7ccfd439 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -14,7 +14,7 @@ import { KandangApi } from '@/services/api/master-data'; import { SaleReportApi } from '@/services/api/report/marketing-sale'; import Table from '@/components/Table'; import { ColumnDef } from '@tanstack/react-table'; -import { formatCurrency, formatNumber } from '@/lib/helper'; +import { formatCurrency, formatDate, formatNumber } from '@/lib/helper'; import { HppPerKandangReport } from '@/types/api/report/hpp-per-kandang'; import { isResponseSuccess } from '@/lib/api-helper'; import { useTableFilter } from '@/services/hooks/useTableFilter'; @@ -401,40 +401,7 @@ const HppPerKandangTab = () => { const workbook = XLSX.utils.book_new(); XLSX.utils.book_append_sheet(workbook, worksheet, 'HPP Per Kandang'); - const areaName = - tableFilterState.area_id.length > 0 - ? tableFilterState.area_id - .map( - (id) => - areaOptions.find((opt) => opt.value === Number(id))?.label - ) - .filter(Boolean) - .join(', ') || 'Semua Area' - : 'Semua Area'; - - const locationName = - tableFilterState.location_id.length > 0 - ? tableFilterState.location_id - .map( - (id) => - locationOptions.find((opt) => opt.value === Number(id))?.label - ) - .filter(Boolean) - .join(', ') || 'Semua Lokasi' - : 'Semua Lokasi'; - - const kandangName = - tableFilterState.kandang_id.length > 0 - ? tableFilterState.kandang_id - .map( - (id) => - kandangOptions.find((opt) => opt.value === Number(id))?.label - ) - .filter(Boolean) - .join(', ') || 'Semua Kandang' - : 'Semua Kandang'; - - const filename = `Laporan_HPP_Per_Kandang_${areaName}_${locationName}_${kandangName}_${tableFilterState.period}.xlsx`; + const filename = `laporan-hpp-harian-kandang-${tableFilterState.period}-${formatDate(new Date(), 'YYYY-MM-DD-HHmm')}.xlsx`; XLSX.writeFile(workbook, filename); toast.success('Excel berhasil dibuat dan diunduh.'); From ceae338c73dda2f163114dee5808a2fdc393f2d5 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Thu, 18 Dec 2025 13:10:21 +0700 Subject: [PATCH 42/89] refactor(FE-356): Include period in export filenames --- .../pages/report/sale/export/HppPerkandangExport.tsx | 5 ++++- src/components/pages/report/sale/tab/HppPerKandangTab.tsx | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/components/pages/report/sale/export/HppPerkandangExport.tsx b/src/components/pages/report/sale/export/HppPerkandangExport.tsx index 12d0a697..72e7cbaa 100644 --- a/src/components/pages/report/sale/export/HppPerkandangExport.tsx +++ b/src/components/pages/report/sale/export/HppPerkandangExport.tsx @@ -537,7 +537,10 @@ export const generateHppPerKandangPDF = async ( const url = URL.createObjectURL(blob); const link = document.createElement('a'); link.href = url; - link.download = `laporan-hpp-harian-kandang-${formatDate(new Date(), 'YYYY-MM-DD-HHmm')}.pdf`; + + const period = params.period || formatDate(new Date(), 'YYYY-MM-DD'); + link.download = `laporan-hpp-harian-kandang-periode-${period}.pdf`; + document.body.appendChild(link); link.click(); document.body.removeChild(link); diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index 7ccfd439..c9456a8c 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -401,7 +401,7 @@ const HppPerKandangTab = () => { const workbook = XLSX.utils.book_new(); XLSX.utils.book_append_sheet(workbook, worksheet, 'HPP Per Kandang'); - const filename = `laporan-hpp-harian-kandang-${tableFilterState.period}-${formatDate(new Date(), 'YYYY-MM-DD-HHmm')}.xlsx`; + const filename = `laporan-hpp-harian-kandang-periode-${tableFilterState.period}.xlsx`; XLSX.writeFile(workbook, filename); toast.success('Excel berhasil dibuat dan diunduh.'); From 5def3c9f17919f073ad1c4145f70fee893285fbf Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Thu, 18 Dec 2025 16:04:43 +0700 Subject: [PATCH 43/89] chore: update next version and install xlsx --- package-lock.json | 120 ++++++++++++++++++++++++++++++++++++++++++---- package.json | 3 +- 2 files changed, 114 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index f0212474..1e8f3fd8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "clsx": "^2.1.1", "formik": "^2.4.6", "moment": "^2.30.1", - "next": "15.5.7", + "next": "^15.5.9", "react": "19.1.0", "react-day-picker": "^9.11.1", "react-dom": "19.1.0", @@ -26,6 +26,7 @@ "swr": "^2.3.6", "tailwind-merge": "^3.3.1", "use-debounce": "^10.0.6", + "xlsx": "^0.18.5", "yup": "^1.7.0", "zustand": "^5.0.8" }, @@ -1082,9 +1083,9 @@ } }, "node_modules/@next/env": { - "version": "15.5.7", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.7.tgz", - "integrity": "sha512-4h6Y2NyEkIEN7Z8YxkA27pq6zTkS09bUSYC0xjd0NpwFxjnIKeZEeH591o5WECSmjpUhLn3H2QLJcDye3Uzcvg==", + "version": "15.5.9", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.9.tgz", + "integrity": "sha512-4GlTZ+EJM7WaW2HEZcyU317tIQDjkQIyENDLxYJfSWlfqguN+dHkZgyQTV/7ykvobU7yEH5gKvreNrH4B6QgIg==", "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { @@ -2464,6 +2465,15 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/adler-32": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", + "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -2924,6 +2934,19 @@ ], "license": "CC-BY-4.0" }, + "node_modules/cfb": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz", + "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==", + "license": "Apache-2.0", + "dependencies": { + "adler-32": "~1.3.0", + "crc-32": "~1.2.0" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -2965,6 +2988,15 @@ "node": ">=6" } }, + "node_modules/codepage": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", + "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -3035,6 +3067,18 @@ "node": ">=10" } }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "license": "Apache-2.0", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -4180,6 +4224,15 @@ "react": ">=16.8.0" } }, + "node_modules/frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -5654,12 +5707,12 @@ "license": "MIT" }, "node_modules/next": { - "version": "15.5.7", - "resolved": "https://registry.npmjs.org/next/-/next-15.5.7.tgz", - "integrity": "sha512-+t2/0jIJ48kUpGKkdlhgkv+zPTEOoXyr60qXe68eB/pl3CMJaLeIGjzp5D6Oqt25hCBiBTt8wEeeAzfJvUKnPQ==", + "version": "15.5.9", + "resolved": "https://registry.npmjs.org/next/-/next-15.5.9.tgz", + "integrity": "sha512-agNLK89seZEtC5zUHwtut0+tNrc0Xw4FT/Dg+B/VLEo9pAcS9rtTKpek3V6kVcVwsB2YlqMaHdfZL4eLEVYuCg==", "license": "MIT", "dependencies": { - "@next/env": "15.5.7", + "@next/env": "15.5.9", "@swc/helpers": "0.5.15", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", @@ -6754,6 +6807,18 @@ "node": ">=0.10.0" } }, + "node_modules/ssf": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", + "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", + "license": "Apache-2.0", + "dependencies": { + "frac": "~1.1.2" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/stable-hash": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", @@ -7515,6 +7580,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/wmf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/word": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz", + "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -7525,6 +7608,27 @@ "node": ">=0.10.0" } }, + "node_modules/xlsx": { + "version": "0.18.5", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz", + "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==", + "license": "Apache-2.0", + "dependencies": { + "adler-32": "~1.3.0", + "cfb": "~1.2.1", + "codepage": "~1.15.0", + "crc-32": "~1.2.1", + "ssf": "~0.11.2", + "wmf": "~1.0.1", + "word": "~0.3.0" + }, + "bin": { + "xlsx": "bin/xlsx.njs" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", diff --git a/package.json b/package.json index 52fc6ce2..aa26b7bf 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "clsx": "^2.1.1", "formik": "^2.4.6", "moment": "^2.30.1", - "next": "15.5.7", + "next": "^15.5.9", "react": "19.1.0", "react-day-picker": "^9.11.1", "react-dom": "19.1.0", @@ -29,6 +29,7 @@ "swr": "^2.3.6", "tailwind-merge": "^3.3.1", "use-debounce": "^10.0.6", + "xlsx": "^0.18.5", "yup": "^1.7.0", "zustand": "^5.0.8" }, From b8c6f94db85427fc1a66291d2e9fa9969eebe184 Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Thu, 18 Dec 2025 16:06:19 +0700 Subject: [PATCH 44/89] feat(FE-364): create Marketing Report page --- src/app/report/marketing/page.tsx | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/app/report/marketing/page.tsx diff --git a/src/app/report/marketing/page.tsx b/src/app/report/marketing/page.tsx new file mode 100644 index 00000000..52a3d4dd --- /dev/null +++ b/src/app/report/marketing/page.tsx @@ -0,0 +1,11 @@ +import MarketingReportContent from '@/components/pages/report/MarketingReportContent'; + +const MarketingReportPage = () => { + return ( +
+ +
+ ); +}; + +export default MarketingReportPage; From e49c247f029066be9b0472bcadedfd5676a52b9c Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Thu, 18 Dec 2025 16:06:41 +0700 Subject: [PATCH 45/89] chore: update Tabs component --- src/components/Tabs.tsx | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/components/Tabs.tsx b/src/components/Tabs.tsx index 2ad2477d..8f685452 100644 --- a/src/components/Tabs.tsx +++ b/src/components/Tabs.tsx @@ -21,6 +21,7 @@ export interface TabsProps className?: | string | { + container?: string; wrapper?: string; tab?: string; content?: string; @@ -53,10 +54,14 @@ const Tabs = ({ onTabChange?.(tabId); }; - const { wrapper: wrapperClassName, tab: tabClassName } = - typeof className === 'object' - ? className - : { wrapper: className, tab: undefined }; + const { + container: containerClassName, + wrapper: wrapperClassName, + tab: tabClassName, + content: contentClassName, + } = typeof className === 'object' + ? className + : { wrapper: className, tab: undefined }; const getTabsClasses = () => { const variantClasses: Record = { @@ -104,7 +109,7 @@ const Tabs = ({ {...props} className={cn( 'w-full', - typeof className === 'string' ? className : undefined + typeof className === 'string' ? className : containerClassName )} >
@@ -121,7 +126,9 @@ const Tabs = ({ ))}
- {activeContent &&
{activeContent}
} + {activeContent && ( +
{activeContent}
+ )}
); }; From b9b7e45bc7601c48219966e6da63dbece2abc77a Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Thu, 18 Dec 2025 16:06:48 +0700 Subject: [PATCH 46/89] chore: update Dropdown component --- src/components/dropdown/Dropdown.tsx | 166 +++++++++++++-------------- 1 file changed, 82 insertions(+), 84 deletions(-) diff --git a/src/components/dropdown/Dropdown.tsx b/src/components/dropdown/Dropdown.tsx index 4489231d..5bfa7a7d 100644 --- a/src/components/dropdown/Dropdown.tsx +++ b/src/components/dropdown/Dropdown.tsx @@ -1,111 +1,109 @@ -'use client'; +import React, { ReactNode, useState, useRef } from 'react'; -import { ReactNode, useRef, useEffect, useState } from 'react'; import { cn } from '@/lib/helper'; -interface DropdownProps { +export interface DropdownProps { trigger: ReactNode; children: ReactNode; - position?: - | 'top' - | 'bottom' - | 'left' - | 'right' - | 'top-start' - | 'top-end' - | 'bottom-start' - | 'bottom-end' - | 'left-start' - | 'left-end' - | 'right-start' - | 'right-end'; + className?: { + wrapper?: string; + trigger?: string; + content?: string; + }; align?: 'start' | 'center' | 'end'; + direction?: 'top' | 'bottom' | 'left' | 'right'; hover?: boolean; - className?: string; - contentClassName?: string; + defaultOpen?: boolean; + open?: boolean; + close?: boolean; + controlled?: boolean; } const Dropdown = ({ trigger, children, - position = 'bottom', - align = 'start', - hover = false, className, - contentClassName, + align, + direction, + hover, + defaultOpen = false, + open, + close, + controlled = false, }: DropdownProps) => { - const [isOpen, setIsOpen] = useState(false); + const [isOpen, setIsOpen] = useState(defaultOpen); const dropdownRef = useRef(null); - // Handle click outside to close dropdown - useEffect(() => { - const handleClickOutside = (event: MouseEvent) => { - if ( - dropdownRef.current && - !dropdownRef.current.contains(event.target as Node) - ) { - setIsOpen(false); - } - }; - - if (isOpen) { - document.addEventListener('mousedown', handleClickOutside); + const toggleDropdown = () => { + if (!controlled) { + const newState = !isOpen; + setIsOpen(newState); } - - return () => { - document.removeEventListener('mousedown', handleClickOutside); - }; - }, [isOpen]); - - // Build position classes - const getPositionClasses = () => { - const classes: string[] = []; - - // Handle combined positions like 'top-start' - if (position.includes('-')) { - const [pos, al] = position.split('-'); - classes.push(`dropdown-${pos}`); - classes.push(`dropdown-${al}`); - } else { - classes.push(`dropdown-${position}`); - if (align !== 'start') { - classes.push(`dropdown-${align}`); - } - } - - return classes.join(' '); }; - const handleToggle = (e: React.MouseEvent) => { - e.preventDefault(); - e.stopPropagation(); - // alert('clicked'); - setIsOpen(!isOpen); + const getWrapperClasses = () => { + const openState = controlled ? open : isOpen; + + return cn( + 'dropdown', + { + 'dropdown-start': align === 'start', + 'dropdown-center': align === 'center', + 'dropdown-end': align === 'end', + 'dropdown-top': direction === 'top', + 'dropdown-bottom': direction === 'bottom', + 'dropdown-left': direction === 'left', + 'dropdown-right': direction === 'right', + 'dropdown-hover': hover, + 'dropdown-open': openState && !close, + 'dropdown-close': close, + }, + className?.wrapper + ); }; + const getTriggerClasses = () => { + return cn(className?.trigger); + }; + + const getContentClasses = () => { + return cn( + 'dropdown-content z-[9999] shadow-sm bg-base-100 rounded-box', + className?.content + ); + }; + + if (controlled) { + return ( +
+ {trigger} + {open && !close && ( +
+ {children} +
+ )} +
+ ); + } + return ( -
- {/* Trigger Button */} -
+
+
{ + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + toggleDropdown(); + } + }} + > {trigger}
- - {/* Dropdown Content - Only render when open */} - {isOpen && ( -
setIsOpen(false)} // Close on item click - > + {!close && ( +
{children}
)} From 09d36f504b7b2bc1a0c0cf0910921d327ba6aa81 Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Thu, 18 Dec 2025 16:07:04 +0700 Subject: [PATCH 47/89] feat: refresh user data every 13 minutes --- src/components/helper/RequireAuth.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/components/helper/RequireAuth.tsx b/src/components/helper/RequireAuth.tsx index 65adf48c..9dbd2557 100644 --- a/src/components/helper/RequireAuth.tsx +++ b/src/components/helper/RequireAuth.tsx @@ -27,6 +27,9 @@ const RequireAuth = ({ children }: RequireAuthProps) => { SWRHttpKey >('/sso/userinfo', httpClientFetcher, { shouldRetryOnError: false, + + // refresh every 13 minutes + refreshInterval: 13 * 60 * 1000, }); useEffect(() => { From 3a35c72e06c39b0e9188bdd7e730530612cba4ff Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Thu, 18 Dec 2025 16:07:19 +0700 Subject: [PATCH 48/89] feat: add isLoading prop --- src/components/menu/MenuItem.tsx | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/components/menu/MenuItem.tsx b/src/components/menu/MenuItem.tsx index dce81dac..61af4b04 100644 --- a/src/components/menu/MenuItem.tsx +++ b/src/components/menu/MenuItem.tsx @@ -8,6 +8,7 @@ interface MenuItemProps { href?: string; icon?: string; active?: boolean; + isLoading?: boolean; onClick?: () => void; className?: string; } @@ -17,6 +18,7 @@ const MenuItem = ({ href, icon, active = false, + isLoading = false, className, onClick, }: MenuItemProps) => { @@ -50,17 +52,28 @@ const MenuItem = ({ return (
  • - {href && ( + {!isLoading && href && ( {menuItemContent} )} - {!href && ( + {!isLoading && !href && ( )} + + {isLoading && ( + + )}
  • ); }; From 466ea471217dedbb7dbd09bb3ace20375a6b3854 Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Thu, 18 Dec 2025 16:08:15 +0700 Subject: [PATCH 49/89] feat(FE-364): create DailyMarketingReportContent component --- .../report/DailyMarketingReportContent.tsx | 413 ++++++++++++++++++ 1 file changed, 413 insertions(+) create mode 100644 src/components/pages/report/DailyMarketingReportContent.tsx diff --git a/src/components/pages/report/DailyMarketingReportContent.tsx b/src/components/pages/report/DailyMarketingReportContent.tsx new file mode 100644 index 00000000..1eba4ea3 --- /dev/null +++ b/src/components/pages/report/DailyMarketingReportContent.tsx @@ -0,0 +1,413 @@ +'use client'; + +import { ChangeEventHandler, useState } from 'react'; +import { pdf } from '@react-pdf/renderer'; +import toast from 'react-hot-toast'; + +import { Icon } from '@iconify/react'; +import Button from '@/components/Button'; +import Dropdown from '@/components/dropdown/Dropdown'; +import DateInput from '@/components/input/DateInput'; +import SelectInput, { + OptionType, + useSelect, +} from '@/components/input/SelectInput'; +import Menu from '@/components/menu/Menu'; +import MenuItem from '@/components/menu/MenuItem'; +import DailyMarketingsTable from '@/components/pages/report/DailyMarketingsTable'; +import { useTableFilter } from '@/services/hooks/useTableFilter'; +import DailyMarketingReportPDF from '@/components/pages/report/DailyMarketingReportPDF'; + +import { Area } from '@/types/api/master-data/area'; +import { + AreaApi, + CustomerApi, + LocationApi, + WarehouseApi, +} from '@/services/api/master-data'; +import { Warehouse } from '@/types/api/master-data/warehouse'; +import { Customer } from '@/types/api/master-data/customer'; +import { MarketingReportApi } from '@/services/api/report/marketing-report'; +import { MARKETING_TYPE_OPTIONS } from '@/config/constant'; +import { httpClient } from '@/services/http/client'; +import { BaseApiResponse } from '@/types/api/api-general'; +import { DailyMarketingReport } from '@/types/api/report/marketing'; +import { isResponseError } from '@/lib/api-helper'; + +const DailyMarketingReportContent = () => { + const { + state: tableFilterState, + updateFilter, + setPage, + setPageSize, + toQueryString: getTableFilterQueryString, + reset: resetFilter, + } = useTableFilter({ + initial: { + search: '', + area_id: '', + location_id: '', + warehouse_id: '', + customer_id: '', + start_date: '', + end_date: '', + marketing_type: '', + filter_by: '', + sort_by: '', + }, + paramMap: { + page: 'page', + pageSize: 'limit', + area_id: 'area_id', + location_id: 'location_id', + warehouse_id: 'warehouse_id', + customer_id: 'customer_id', + start_date: 'start_date', + end_date: 'end_date', + marketing_type: 'marketing_type', + filter_by: 'filter_by', + sort_by: 'sort_by', + }, + }); + + const dailyMarketingsReportUrl = `${MarketingReportApi.basePath}${getTableFilterQueryString()}`; + + const [isLoadingExportingToExcel, setIsLoadingExportingToExcel] = + useState(false); + const [isLoadingExportingToPdf, setIsLoadingExportingToPdf] = useState(false); + + const [selectedArea, setSelectedArea] = useState(null); + const { + setInputValue: setAreaInputValue, + options: areaOptions, + isLoadingOptions: isLoadingAreaOptions, + } = useSelect(AreaApi.basePath, 'id', 'name'); + + const areaChangeHandler = (val: OptionType | OptionType[] | null) => { + setSelectedArea(val as OptionType); + updateFilter('area_id', val ? ((val as OptionType).value as string) : ''); + }; + + const [selectedLocation, setSelectedLocation] = useState( + null + ); + const { + setInputValue: setLocationInputValue, + options: locationOptions, + isLoadingOptions: isLoadingLocationOptions, + } = useSelect(LocationApi.basePath, 'id', 'name'); + + const locationChangeHandler = (val: OptionType | OptionType[] | null) => { + setSelectedLocation(val as OptionType); + updateFilter( + 'location_id', + val ? ((val as OptionType).value as string) : '' + ); + }; + + const [selectedWarehouse, setSelectedWarehouse] = useState( + null + ); + const { + setInputValue: setWarehouseInputValue, + options: warehouseOptions, + isLoadingOptions: isLoadingWarehouseOptions, + } = useSelect(WarehouseApi.basePath, 'id', 'name'); + + const warehouseChangeHandler = (val: OptionType | OptionType[] | null) => { + setSelectedWarehouse(val as OptionType); + updateFilter( + 'warehouse_id', + val ? ((val as OptionType).value as string) : '' + ); + }; + + const [selectedCustomer, setSelectedCustomer] = useState( + null + ); + const { + setInputValue: setCustomerInputValue, + options: customerOptions, + isLoadingOptions: isLoadingCustomerOptions, + } = useSelect(CustomerApi.basePath, 'id', 'name'); + + const customerChangeHandler = (val: OptionType | OptionType[] | null) => { + setSelectedCustomer(val as OptionType); + updateFilter( + 'customer_id', + val ? ((val as OptionType).value as string) : '' + ); + }; + + const startDateChangeHandler = (e: React.ChangeEvent) => { + updateFilter('start_date', e.target.value ? e.target.value : ''); + }; + + const endDateChangeHandler = (e: React.ChangeEvent) => { + updateFilter('end_date', e.target.value ? e.target.value : ''); + }; + + const [selectedMarketingType, setSelectedMarketingType] = + useState(null); + const marketingTypeChangeHandler = ( + val: OptionType | OptionType[] | null + ) => { + setSelectedMarketingType(val as OptionType); + updateFilter( + 'marketing_type', + val ? ((val as OptionType).value as string) : '' + ); + }; + + const searchChangeHandler: ChangeEventHandler = (e) => { + updateFilter('search', e.target.value); + }; + + const filterByChangeHandler = (filterBy: string) => { + updateFilter('filter_by', filterBy); + }; + + const sortByChangeHandler = (sort: 'asc' | 'desc' | '') => { + updateFilter('sort_by', sort); + }; + + const exportToExcelHandler = async () => { + setIsLoadingExportingToExcel(true); + + await MarketingReportApi.exportDailyMarketingToExcel( + getTableFilterQueryString() + ); + + setIsLoadingExportingToExcel(false); + }; + + const exportToPdfHandler = async () => { + setIsLoadingExportingToPdf(true); + + const params = new URLSearchParams(getTableFilterQueryString()); + + params.set('limit', '9999999'); + + const queryString = `?${params.toString()}`; + + try { + const dailyMarketingsReport = await httpClient< + BaseApiResponse + >(`${MarketingReportApi.basePath}${queryString}`); + + if (isResponseError(dailyMarketingsReport)) { + toast.error('Gagal melakukan export penjualan harian! Coba lagi.'); + return; + } + + const openPdf = async () => { + const dailyMarketingReportPdfBlob = await pdf( + + ).toBlob(); + + const dailyMarketingReportPdfUrl = URL.createObjectURL( + dailyMarketingReportPdfBlob + ); + window.open(dailyMarketingReportPdfUrl, '_blank'); + }; + + const downloadPdf = async () => { + const blob = await pdf( + + ).toBlob(); + const url = URL.createObjectURL(blob); + + const link = document.createElement('a'); + link.href = url; + link.download = 'laporan-penjualan-harian.pdf'; + link.click(); + + URL.revokeObjectURL(url); + }; + + await openPdf(); + } catch (error) { + toast.error('Gagal melakukan export penjualan harian! Coba lagi.'); + } + + setIsLoadingExportingToPdf(false); + }; + + const handleReset = () => { + setSelectedArea(null); + setSelectedLocation(null); + setSelectedWarehouse(null); + setSelectedCustomer(null); + setSelectedMarketingType(null); + resetFilter(); + }; + + return ( +
    +
    +

    Penjualan Harian

    +
    + + {/* Filters */} +
    +
    + + + + + + + + + + + +
    + +
    + + +
    + + + + + + Export{' '} + + + } + > + + + + + +
    +
    +
    + + +
    + ); +}; + +export default DailyMarketingReportContent; From 61d85154fdf286a6deb5c4444aa4beaf9a5489ee Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Thu, 18 Dec 2025 16:08:46 +0700 Subject: [PATCH 50/89] feat(FE-368): create DailyMarketingReportPDF component --- .../pages/report/DailyMarketingReportPDF.tsx | 550 ++++++++++++++++++ 1 file changed, 550 insertions(+) create mode 100644 src/components/pages/report/DailyMarketingReportPDF.tsx diff --git a/src/components/pages/report/DailyMarketingReportPDF.tsx b/src/components/pages/report/DailyMarketingReportPDF.tsx new file mode 100644 index 00000000..337892b3 --- /dev/null +++ b/src/components/pages/report/DailyMarketingReportPDF.tsx @@ -0,0 +1,550 @@ +'use client'; + +import { + Document, + Image, + Page, + StyleSheet, + Text, + View, +} from '@react-pdf/renderer'; + +import { DailyMarketingReport } from '@/types/api/report/marketing'; +import { formatCurrency, formatDate, formatNumber } from '@/lib/helper'; + +interface DailyMarketingReportPDFProps { + data?: DailyMarketingReport; +} + +const DailyMarketingReportPDFStyle = StyleSheet.create({ + page: { + paddingTop: 24, + paddingBottom: 64, + paddingHorizontal: 16, // Reduce padding to fit more columns + orientation: 'landscape', + }, + + companyInfoHeader: { + width: '100%', + display: 'flex', + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'flex-start', + marginBottom: 8, + }, + companyLogo: { + width: 64, + height: 'auto', + }, + companyInfoHeaderDate: { + paddingTop: 8, + fontSize: 10, + }, + companyName: { + fontSize: 12, + fontWeight: 'bold', + marginBottom: 4, + }, + companyAddress: { + fontSize: 8, + maxWidth: 400, + marginBottom: 10, + }, + + title: { + marginTop: 16, + fontSize: 14, + lineHeight: '150%', + textAlign: 'center', + fontFamily: 'Times-Roman', + fontWeight: 'bold', + }, + + footer: { + width: '100%', + display: 'flex', + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + paddingHorizontal: 16, + + position: 'absolute', + fontSize: 8, + bottom: 30, + left: 0, + right: 0, + textAlign: 'center', + color: 'grey', + }, + + // Table Styles + table: { + width: '100%', + marginTop: 16, + borderWidth: 1, + borderColor: '#000000', + borderBottomWidth: 0, + fontSize: 7, // Smaller font for report + }, + tableRow: { + flexDirection: 'row', + borderBottomWidth: 1, + borderBottomColor: '#000000', + alignItems: 'center', + minHeight: 20, + }, + tableHeader: { + backgroundColor: '#f0f0f0', + fontWeight: 'bold', + }, + + // Columns definition (Total 100%) + colNo: { + width: '3%', + padding: 2, + textAlign: 'center', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colSoDate: { + width: '6%', + padding: 2, + textAlign: 'left', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colDoDate: { + width: '6%', + padding: 2, + textAlign: 'left', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colAging: { + width: '3%', + padding: 2, + textAlign: 'center', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colWarehouse: { + width: '7%', + padding: 2, + textAlign: 'left', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colCustomer: { + width: '9%', + padding: 2, + textAlign: 'left', + borderRightWidth: 1, + borderRightColor: '#000000', + }, // Reduced slightly + colSales: { + width: '6%', + padding: 2, + textAlign: 'left', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colProduct: { + width: '8%', + padding: 2, + textAlign: 'left', + borderRightWidth: 1, + borderRightColor: '#000000', + }, // Reduced slightly + colDoNumber: { + width: '7%', + padding: 2, + textAlign: 'left', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colVehicle: { + width: '5%', + padding: 2, + textAlign: 'left', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colMarketingType: { + width: '5%', + padding: 2, + textAlign: 'left', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colQty: { + width: '4%', + padding: 2, + textAlign: 'right', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colAvgWeight: { + width: '4%', + padding: 2, + textAlign: 'right', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colTotalWeight: { + width: '5%', + padding: 2, + textAlign: 'right', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colSalesPrice: { + width: '5%', + padding: 2, + textAlign: 'right', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colHppPrice: { + width: '5%', + padding: 2, + textAlign: 'right', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colSalesAmount: { + width: '6%', + padding: 2, + textAlign: 'right', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colHppAmount: { width: '6%', padding: 2, textAlign: 'right' }, // Last column + + // Text inside columns + cellText: { + fontSize: 6, + }, + headerText: { + fontSize: 7, + fontWeight: 'bold', + textAlign: 'center', + }, + + // Utils + doubleDivider: { + width: '100%', + height: 6, + borderTop: '2px solid black', + borderBottom: '2px solid black', + }, + + // Summary + summaryContainer: { + marginTop: 12, + flexDirection: 'row', + justifyContent: 'flex-end', + width: '100%', + }, + summaryTable: { + width: '30%', + borderWidth: 1, + borderColor: '#000000', + fontSize: 8, + }, + summaryRow: { + flexDirection: 'row', + padding: 2, + borderBottomWidth: 1, + borderBottomColor: '#eee', + }, + summaryLabel: { + width: '50%', + fontWeight: 'bold', + }, + summaryValue: { + width: '50%', + textAlign: 'right', + }, +}); + +const DailyMarketingReportPDF = ({ data }: DailyMarketingReportPDFProps) => { + const rows = data?.rows || []; + const summary = data?.summary; + + return ( + + + + + + + + {formatDate(Date.now(), 'DD MMMM YYYY')} + + + + + + PT LUMBUNG TELUR INDONESIA + + + SOHO Building Lt.3 (Paris Van Java), Jalan Karang Tinggal, Kel. + Cipedes, Kec. Sukajadi, Kota Bandung 40162 + + + + + + + + Laporan Penjualan Harian + + + {/* Data Table */} + + {/* Header */} + + + No + + + + Tgl SO + + + + + Tgl DO + + + + Aging + + + + Gudang + + + + + Pelanggan + + + + Sales + + + + Produk + + + + No DO + + + + Plat No + + + + Tipe + + + Qty + + + + Rerata + + + + Berat + + + + Hrg Jual + + + + + HPP/kg + + + + + Total Jual + + + + + Total HPP + + + + + {/* Rows */} + {rows.map((row, index) => ( + + + + {index + 1} + + + + + {formatDate(row.so_date, 'DD/MM/YYYY')} + + + + + {formatDate(row.do_date, 'DD/MM/YYYY')} + + + + + {row.aging_days} + + + + + {row.warehouse?.name} + + + + + {row.customer?.name} + + + + + {row.sales} + + + + + {row.product?.name} + + + + + {row.do_number} + + + + + {row.vehicle_number} + + + + + {row.marketing_type} + + + + + {formatNumber(row.qty)} + + + + + {formatNumber(row.average_weight_kg)} + + + + + {formatNumber(row.total_weight_kg)} + + + + + {formatCurrency(row.sales_price_per_kg)} + + + + + {formatCurrency(row.hpp_price_per_kg)} + + + + + {formatCurrency(row.sales_amount)} + + + + + {formatCurrency(row.hpp_amount)} + + + + ))} + + + {/* Summary */} + + + + + Total Qty: + + + {formatNumber(summary?.total_qty ?? 0)} + + + + + Total Berat (kg): + + + {formatNumber(summary?.total_weight_kg ?? 0)} + + + + + Total Penjualan: + + + {formatCurrency(summary?.total_sales_amount ?? 0)} + + + + + Total HPP: + + + {formatCurrency(summary?.total_hpp_amount ?? 0)} + + + + + + + + `${pageNumber} / ${totalPages}` + } + fixed + /> + + + + ); +}; + +export default DailyMarketingReportPDF; From 33d8d2aa2af86f1e881715ed12ad0d05e582062a Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Thu, 18 Dec 2025 16:09:34 +0700 Subject: [PATCH 51/89] feat(FE-364): create DailyMarketingsTable component --- .../pages/report/DailyMarketingsTable.tsx | 255 ++++++++++++++++++ 1 file changed, 255 insertions(+) create mode 100644 src/components/pages/report/DailyMarketingsTable.tsx diff --git a/src/components/pages/report/DailyMarketingsTable.tsx b/src/components/pages/report/DailyMarketingsTable.tsx new file mode 100644 index 00000000..d6914cf1 --- /dev/null +++ b/src/components/pages/report/DailyMarketingsTable.tsx @@ -0,0 +1,255 @@ +'use client'; + +import { ChangeEventHandler, useEffect, useState } from 'react'; +import useSWR from 'swr'; +import { ColumnDef, SortingState } from '@tanstack/react-table'; + +import { Icon } from '@iconify/react'; +import Table from '@/components/Table'; +import DebouncedTextInput from '@/components/input/DebouncedTextInput'; +import Card from '@/components/Card'; +import Collapse from '@/components/Collapse'; + +import { cn, formatCurrency, formatDate, formatNumber } from '@/lib/helper'; +import { isResponseSuccess } from '@/lib/api-helper'; +import { DailyMarketingRow } from '@/types/api/report/marketing'; +import { MarketingReportApi } from '@/services/api/report/marketing-report'; + +interface DailyMarketingsTableProps { + dailyMarketingsReportUrl: string; + onSetPage: (page: number) => void; + pageSize: number; + onSetPageSize: (pageSize: number) => void; + searchValue: string; + onSearchChange: ChangeEventHandler; + onFilterByChange: (filterBy: string) => void; + onSortByChange: (sort: 'asc' | 'desc' | '') => void; +} + +const DailyMarketingsTable = ({ + dailyMarketingsReportUrl, + onSetPage, + pageSize, + onSetPageSize, + searchValue, + onSearchChange, + onFilterByChange, + onSortByChange, +}: DailyMarketingsTableProps) => { + const { data: dailyMarketings, isLoading: isLoadingDailyMarketings } = useSWR( + dailyMarketingsReportUrl, + MarketingReportApi.getAllDailyMarketingFetcher, + { + keepPreviousData: true, + } + ); + + const [open, setOpen] = useState(true); + + const [sorting, setSorting] = useState([]); + + const dailyMarketingColumns: ColumnDef[] = [ + { + header: 'No', + cell: (props) => props.row.index + 1, + }, + { + accessorKey: 'so_date', + header: 'Tanggal Jual', + cell: (props) => formatDate(props.row.original.so_date, 'DD-MMM-YYYY'), + footer: 'Total', + }, + { + accessorKey: 'do_date', + header: 'Tanggal DO', + cell: (props) => formatDate(props.row.original.do_date, 'DD-MMM-YYYY'), + }, + { + accessorKey: 'aging_days', + header: 'Aging', + cell: (props) => `${props.row.original.aging_days} hari`, + }, + { + accessorKey: 'warehouse.name', + header: 'Gudang', + }, + { + accessorKey: 'customer.name', + header: 'Pelanggan', + }, + { + accessorKey: 'do_number', + header: 'No. DO', + }, + { + accessorKey: 'sales', + header: 'Sales/Marketing', + }, + { + accessorKey: 'vehicle_number', + header: 'No. Polisi', + cell: (props) => ( + {props.row.original.vehicle_number} + ), + }, + { + accessorKey: 'marketing_type', + header: 'Marketing Type', + }, + { + accessorKey: 'product.name', + header: 'Produk', + }, + { + accessorKey: 'qty', + header: 'Kuantitas', + cell: (props) => formatNumber(props.row.original.qty), + footer: () => { + const totalQty = isResponseSuccess(dailyMarketings) + ? dailyMarketings.data.summary.total_qty + : 0; + + return formatNumber(totalQty); + }, + }, + { + accessorKey: 'average_weight_kg', + header: 'Bobot Rata-Rata (Kg)', + cell: (props) => formatNumber(props.row.original.average_weight_kg), + }, + { + accessorKey: 'total_weight_kg', + header: 'Bobot Total (Kg)', + cell: (props) => formatNumber(props.row.original.total_weight_kg), + footer: () => { + const totalWeightKg = isResponseSuccess(dailyMarketings) + ? dailyMarketings.data.summary.total_weight_kg + : 0; + + return formatNumber(totalWeightKg); + }, + }, + { + accessorKey: 'sales_price_per_kg', + header: 'Harga Jual (Rp)', + cell: (props) => formatCurrency(props.row.original.sales_price_per_kg), + }, + { + accessorKey: 'hpp_price_per_kg', + header: 'HPP (Rp)', + cell: (props) => formatCurrency(props.row.original.hpp_price_per_kg), + }, + { + accessorKey: 'sales_amount', + header: 'Total (Rp)', + cell: (props) => formatCurrency(props.row.original.sales_amount), + footer: () => { + const totalSalesAmount = isResponseSuccess(dailyMarketings) + ? dailyMarketings.data.summary.total_sales_amount + : 0; + + return formatCurrency(totalSalesAmount); + }, + }, + ]; + + useEffect(() => { + if (sorting.length === 1) { + onFilterByChange(sorting[0].id); + onSortByChange(sorting[0].desc ? 'desc' : 'asc'); + } else { + onFilterByChange(''); + onSortByChange(''); + } + }, [sorting]); + + useEffect(() => { + if (!open) { + setOpen( + isResponseSuccess(dailyMarketings) + ? dailyMarketings.data.rows.length > 0 + : false + ); + } + }, [dailyMarketings, isResponseSuccess]); + + return ( + + +
    Penjualan Harian
    + + +
    + } + className='w-full!' + titleClassName='w-full p-0!' + > +
    +
    +
    + +
    +
    + + + data={ + isResponseSuccess(dailyMarketings) + ? dailyMarketings?.data.rows + : [] + } + columns={dailyMarketingColumns} + pageSize={pageSize} + onPageSizeChange={onSetPageSize} + rowOptions={[10, 20, 50, 100]} + page={ + isResponseSuccess(dailyMarketings) + ? dailyMarketings?.meta?.page + : 0 + } + totalItems={ + isResponseSuccess(dailyMarketings) + ? dailyMarketings?.meta?.total_results + : 0 + } + onPageChange={onSetPage} + isLoading={isLoadingDailyMarketings} + sorting={sorting} + setSorting={setSorting} + renderFooter={true} + className={{ + containerClassName: cn({ + 'w-full mb-20': + isResponseSuccess(dailyMarketings) && + dailyMarketings?.data?.rows.length === 0, + }), + }} + /> +
    + + + ); +}; + +export default DailyMarketingsTable; From c9cf33f1ad3788bd61ce3ad38c894890a58f9254 Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Thu, 18 Dec 2025 16:10:10 +0700 Subject: [PATCH 52/89] feat(FE-364): create MarketingReportContent component --- .../pages/report/MarketingReportContent.tsx | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/components/pages/report/MarketingReportContent.tsx diff --git a/src/components/pages/report/MarketingReportContent.tsx b/src/components/pages/report/MarketingReportContent.tsx new file mode 100644 index 00000000..160de8b2 --- /dev/null +++ b/src/components/pages/report/MarketingReportContent.tsx @@ -0,0 +1,44 @@ +'use client'; + +import { JSX, useState } from 'react'; + +import Tabs from '@/components/Tabs'; +import DailyMarketingReportContent from '@/components/pages/report/DailyMarketingReportContent'; + +type MarketingReportTabType = + | 'daily' + | 'transaction' + | 'hpp-comparison' + | 'daily-hpp'; + +const marketingReportTabs: { + id: MarketingReportTabType; + label: string; + content: JSX.Element; +}[] = [ + { + id: 'daily', + label: 'Penjualan Harian', + content: , + }, +]; + +const MarketingReportContent = () => { + const [activeTab, setActiveTab] = useState('daily'); + + return ( +
    + +
    + ); +}; + +export default MarketingReportContent; From d9b41a67603d7585597b97e87b8031e1811231d7 Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Thu, 18 Dec 2025 16:11:59 +0700 Subject: [PATCH 53/89] feat: add laporan menu, FILTER_TYPE_OPTIONS, and MARKETING_TYPE_OPTIONS --- src/config/constant.ts | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/config/constant.ts b/src/config/constant.ts index 96fc8401..c16862af 100644 --- a/src/config/constant.ts +++ b/src/config/constant.ts @@ -45,6 +45,17 @@ export const MAIN_DRAWER_LINKS: SidebarMenuItem[] = [ link: '/closing', icon: 'heroicons-outline:presentation-chart-bar', }, + { + text: 'Laporan', + link: '/report', + icon: 'heroicons-outline:document-text', + submenu: [ + { + text: 'Penjualan', + link: '/report/marketing', + }, + ], + }, { text: 'Persediaan', link: '/inventory', @@ -251,3 +262,29 @@ export const ACCEPTED_FILE_TYPE = { 'image/*': [], }, }; + +export const FILTER_TYPE_OPTIONS = [ + { + label: 'Tanggal Realisasi', + value: 'REALIZATION_DATE', + }, + { + label: 'Tanggal DO', + value: 'DO_DATE', + }, +]; + +export const MARKETING_TYPE_OPTIONS = [ + { + label: 'Ayam', + value: 'ayam', + }, + { + label: 'Telur', + value: 'telur', + }, + { + label: 'Trading', + value: 'trading', + }, +]; From fa63bd8ff9a9b05659726d99ff11bdf2acec0765 Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Thu, 18 Dec 2025 16:12:19 +0700 Subject: [PATCH 54/89] feat: create marketing-report.dummy.ts for marketing report dummy data --- src/dummy/report/marketing-report.dummy.ts | 139 +++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 src/dummy/report/marketing-report.dummy.ts diff --git a/src/dummy/report/marketing-report.dummy.ts b/src/dummy/report/marketing-report.dummy.ts new file mode 100644 index 00000000..ea5af398 --- /dev/null +++ b/src/dummy/report/marketing-report.dummy.ts @@ -0,0 +1,139 @@ +import { BaseApiResponse } from '@/types/api/api-general'; +import { DailyMarketingReport } from '@/types/api/report/marketing'; + +// TODO: delete this later +export const DAILY_MARKETING_DUMMY_DATA: BaseApiResponse = + { + code: 200, + status: 'success', + message: 'Get daily marketing report successfully', + meta: { + page: 1, + limit: 10, + total_pages: 1, + total_results: 2, + }, + data: { + rows: [ + { + // metadata + created_user: { + id: 1, + id_user: 101, + email: 'admin@example.com', + name: 'Admin User', + }, + created_at: '2025-12-01T08:00:00Z', + updated_at: '2025-12-01T08:00:00Z', + + // row data + no: 1, + so_date: '2025-12-01', + do_date: '2025-12-08', + aging_days: 7, + + warehouse: { + id: 1, + name: 'Warehouse Kandang A', + type: 'KANDANG', + area: { + id: 1, + name: 'Area Barat', + }, + location: { + id: 1, + name: 'Farm Bandung', + address: 'Jl. Raya Farm No. 1', + area: null, + }, + kandang: { + id: 1, + name: 'Kandang A1', + status: 'ACTIVE', + capacity: 5000, + location: null, + pic: null, + }, + }, + + customer: { + id: 1, + name: 'PT Maju Jaya', + pic_id: 10, + pic: { + id: 10, + id_user: 210, + email: 'pic@majujaya.com', + name: 'Budi Santoso', + }, + type: 'BROILER', + address: 'Jl. Industri No. 10', + phone: '08123456789', + email: 'contact@majujaya.com', + account_number: '1234567890', + }, + + sales: 'Andi Wijaya', + + product: { + id: 1, + name: 'Live Chicken', + brand: 'LTI Farm', + sku: 'LC-001', + product_price: 18_000, + selling_price: 20_000, + tax: 0, + expiry_period: 0, + uom: { + id: 1, + name: 'Kg', + created_user: { + id: 1, + id_user: 101, + email: 'admin@example.com', + name: 'Admin User', + }, + created_at: '2025-01-01T00:00:00Z', + updated_at: '2025-01-01T00:00:00Z', + }, + product_category: { + id: 1, + code: 'BROILER', + name: 'Broiler Chicken', + created_user: { + id: 1, + id_user: 101, + email: 'admin@example.com', + name: 'Admin User', + }, + created_at: '2025-01-01T00:00:00Z', + updated_at: '2025-01-01T00:00:00Z', + }, + suppliers: [], + flags: ['LIVE'], + }, + + do_number: 'DO-2025-0001', + vehicle_number: 'B 1234 CD', + marketing_type: 'REGULAR', + + qty: 1000, + average_weight_kg: 1.8, + total_weight_kg: 1800, + + sales_price_per_kg: 20_000, + hpp_price_per_kg: 18_000, + + sales_amount: 36_000_000, + hpp_amount: 32_400_000, + }, + ], + + summary: { + total_qty: 1000, + total_weight_kg: 1800, + total_sales_amount: 36_000_000, + total_hpp_amount: 32_400_000, + }, + }, + }; From 86cef78a12a627ea1aae7a41ff146089aa1e35f9 Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Thu, 18 Dec 2025 16:13:37 +0700 Subject: [PATCH 55/89] feat(FE-347): create product data dummy data --- src/services/api/closing.ts | 58 +++++++++++++++++++++++++++++++++---- 1 file changed, 53 insertions(+), 5 deletions(-) diff --git a/src/services/api/closing.ts b/src/services/api/closing.ts index 2511a4f9..279cdd7c 100644 --- a/src/services/api/closing.ts +++ b/src/services/api/closing.ts @@ -22,6 +22,51 @@ import { } from '@/dummy/closing.dummy'; import { httpClient, httpClientFetcher } from '@/services/http/client'; import { ClosingSales } from '@/types/api/closing'; +import { sleep } from '@/lib/helper'; + +export const dummyClosingProductionResponse: BaseApiResponse = + { + code: 200, + status: 'success', + message: 'Closing production data fetched successfully', + data: { + purchase: { + initial_population: 10_000, + claim_culling: 150, + final_population: 9_850, + feed_in_kg: 18_000, + feed_used_kg: 17_200, + feed_used_per_head_kg: 1.75, + }, + + sales: { + sales_kg: 18_500, + sales_head: 9_600, + average_weight_kg: 1.93, + average_price_per_kg: 20_500, + }, + + performance: { + depletion_head: 400, + depletion_percentage: 4, + age_days: 35, + mortality_std: 3.5, + mortality_act: 4, + deff_mortality: 0.5, + fcr_std: 1.6, + fcr_act: 1.72, + deff_fcr: 0.12, + adg: 55, + ip: 320, + }, + + variance: { + variance_head: -250, + variance_head_percentage: -2.5, + variance_feed_kg: -800, + }, + }, + }; export class ClosingApiService extends BaseApiService { constructor(basePath: string) { @@ -137,12 +182,15 @@ export class ClosingApiService extends BaseApiService { async getProductionData(id: number) { try { - const getProductionDataPath = `${this.basePath}/${id}/production-data`; - const getProductionDataRes = await httpClient< - BaseApiResponse - >(getProductionDataPath); + // const getProductionDataPath = `${this.basePath}/${id}/production-data`; + // const getProductionDataRes = await httpClient< + // BaseApiResponse + // >(getProductionDataPath); - return getProductionDataRes; + // return getProductionDataRes; + + await sleep(1000); + return dummyClosingProductionResponse; } catch (error) { if (axios.isAxiosError>(error)) { return error.response?.data; From cf41fbfdaff68284cecb0570b473f1405d765d7a Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Thu, 18 Dec 2025 16:18:11 +0700 Subject: [PATCH 56/89] feat(FE-365): create Marketing Report API Service --- src/services/api/report/marketing-report.ts | 75 +++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 src/services/api/report/marketing-report.ts diff --git a/src/services/api/report/marketing-report.ts b/src/services/api/report/marketing-report.ts new file mode 100644 index 00000000..b1bcafae --- /dev/null +++ b/src/services/api/report/marketing-report.ts @@ -0,0 +1,75 @@ +import * as XLSX from 'xlsx'; +import toast from 'react-hot-toast'; + +import { BaseApiService } from '@/services/api/base'; +import { httpClient, httpClientFetcher } from '@/services/http/client'; +import { BaseApiResponse } from '@/types/api/api-general'; +import { DailyMarketingReport } from '@/types/api/report/marketing'; +import { isResponseError, isResponseSuccess } from '@/lib/api-helper'; +import { formatDate, sleep } from '@/lib/helper'; + +export class MarketingReportApiService extends BaseApiService< + DailyMarketingReport, + unknown, + unknown +> { + constructor(basePath: string = '/reports/marketings/daily-marketing') { + super(basePath); + } + + async getAllDailyMarketingFetcher( + endpoint: string + ): Promise> { + return await httpClientFetcher>( + endpoint + ); + } + + async exportDailyMarketingToExcel(initialQueryString: string) { + const params = new URLSearchParams(initialQueryString); + + params.set('limit', '9999999'); + + const queryString = `?${params.toString()}`; + + try { + const dailyMarketingsReport = await httpClientFetcher< + BaseApiResponse + >(`${this.basePath}${queryString}`); + + if (isResponseError(dailyMarketingsReport)) { + toast.error('Gagal melakukan export penjualan harian! Coba lagi.'); + return; + } + + const rows = dailyMarketingsReport.data.rows; + + const formattedRows = []; + + for (let i = 0; i < rows.length; i++) { + formattedRows.push({ + ...rows[i], + created_user: rows[i].created_user.name, + created_at: formatDate(rows[i].created_at, 'YYYY-MM-DD'), + updated_at: formatDate(rows[i].updated_at, 'YYYY-MM-DD'), + warehouse: rows[i].warehouse.name, + customer: rows[i].customer.name, + product: rows[i].product.name, + }); + } + + const ws = XLSX.utils.json_to_sheet(formattedRows); + const wb = XLSX.utils.book_new(); + XLSX.utils.book_append_sheet(wb, ws, 'laporan-penjualan-harian'); + + // triggers download in browser + XLSX.writeFile(wb, 'laporan-penjualan-harian.xlsx'); + } catch (error) { + toast.error('Gagal melakukan export penjualan harian! Coba lagi.'); + } + } +} + +export const MarketingReportApi = new MarketingReportApiService( + '/reports/marketings/daily-marketing' +); From 2fe4ec981cca760979890947696eeaa9330d2c05 Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Thu, 18 Dec 2025 16:18:25 +0700 Subject: [PATCH 57/89] chore: remove double declaration --- src/types/api/master-data/kandang.d.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/types/api/master-data/kandang.d.ts b/src/types/api/master-data/kandang.d.ts index c9c14882..eafa0334 100644 --- a/src/types/api/master-data/kandang.d.ts +++ b/src/types/api/master-data/kandang.d.ts @@ -10,7 +10,6 @@ export type BaseKandang = { capacity: number; pic: BaseUser; project_flock_kandang_id?: number; - capacity: number; }; export type Kandang = BaseMetadata & BaseKandang; From 7e0aa4f790e73d0e5701eae0bc6a16d72376a346 Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Thu, 18 Dec 2025 16:19:30 +0700 Subject: [PATCH 58/89] feat(FE-365): create marketing report types --- src/types/api/report/marketing.d.ts | 61 +++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 src/types/api/report/marketing.d.ts diff --git a/src/types/api/report/marketing.d.ts b/src/types/api/report/marketing.d.ts new file mode 100644 index 00000000..d1e81f77 --- /dev/null +++ b/src/types/api/report/marketing.d.ts @@ -0,0 +1,61 @@ +import { BaseMetadata } from '@/types/api/api-general'; +import { BaseCustomer, Customer } from '@/types/api/master-data/customer'; +import { + BaseWarehouseArea, + BaseWarehouseKandang, + BaseWarehouseLocation, + Warehouse, +} from '@/types/api/master-data/warehouse'; +import { Location } from '@/types/api/master-data/location'; +import { Area } from '@/types/api/master-data/area'; +import { BaseProduct } from '@/types/api/master-data/product'; + +export type BaseDailyMarketingRow = { + no: number; + so_date: string; // e.g. "01-Dec-2025" + do_date: string; // e.g. "08-Dec-2025" + aging_days: number; + + warehouse: BaseWarehouseArea | BaseWarehouseLocation | BaseWarehouseKandang; + customer: BaseCustomer; + sales: string; + product: BaseProduct; + + do_number: string; + vehicle_number: string; + marketing_type: string; + + qty: number; + average_weight_kg: number; + total_weight_kg: number; + + sales_price_per_kg: number; + hpp_price_per_kg: number; + + sales_amount: number; + hpp_amount: number; +}; + +export type DailyMarketingRow = BaseMetadata & BaseDailyMarketingRow; + +export interface SalesSummary { + total_qty: number; + total_weight_kg: number; + total_sales_amount: number; + total_hpp_amount: number; +} + +export type DailyMarketingReport = { + rows: DailyMarketingRow[]; + summary: SalesSummary; +}; + +export type MarketingReportFilters = { + area_id?: number; + location_id?: number; + warehouse_id?: number; + customer_id?: number; + start_date?: string; + end_date?: string; + date_type?: 'realized' | 'transaction'; +}; From c8a834f84af6ad218830bb6e7d0c172859b11e5d Mon Sep 17 00:00:00 2001 From: randy-ar Date: Thu, 18 Dec 2025 18:13:27 +0700 Subject: [PATCH 59/89] feat(FE): adding export xlsx for report expense, change report data fetching, adding progress bar --- package-lock.json | 29 +- package.json | 5 +- src/app/report/expense/page.tsx | 39 +- .../report/expense/ReportExpenseTable.tsx | 806 +- .../expense/pdf/ReportExpenseExport.tsx | 221 +- src/config/constant.ts | 27 +- src/dummy/reports-expense.dummy.json | 69334 ++++++++++++++++ src/dummy/reports-expense.dummy.ts | 29 + src/services/api/report.ts | 4 +- 9 files changed, 70194 insertions(+), 300 deletions(-) create mode 100644 src/dummy/reports-expense.dummy.json create mode 100644 src/dummy/reports-expense.dummy.ts diff --git a/package-lock.json b/package-lock.json index f0212474..59e9d7db 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "clsx": "^2.1.1", "formik": "^2.4.6", "moment": "^2.30.1", - "next": "15.5.7", + "next": "15.5.9", "react": "19.1.0", "react-day-picker": "^9.11.1", "react-dom": "19.1.0", @@ -26,6 +26,7 @@ "swr": "^2.3.6", "tailwind-merge": "^3.3.1", "use-debounce": "^10.0.6", + "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz", "yup": "^1.7.0", "zustand": "^5.0.8" }, @@ -1082,9 +1083,9 @@ } }, "node_modules/@next/env": { - "version": "15.5.7", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.7.tgz", - "integrity": "sha512-4h6Y2NyEkIEN7Z8YxkA27pq6zTkS09bUSYC0xjd0NpwFxjnIKeZEeH591o5WECSmjpUhLn3H2QLJcDye3Uzcvg==", + "version": "15.5.9", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.9.tgz", + "integrity": "sha512-4GlTZ+EJM7WaW2HEZcyU317tIQDjkQIyENDLxYJfSWlfqguN+dHkZgyQTV/7ykvobU7yEH5gKvreNrH4B6QgIg==", "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { @@ -5654,12 +5655,12 @@ "license": "MIT" }, "node_modules/next": { - "version": "15.5.7", - "resolved": "https://registry.npmjs.org/next/-/next-15.5.7.tgz", - "integrity": "sha512-+t2/0jIJ48kUpGKkdlhgkv+zPTEOoXyr60qXe68eB/pl3CMJaLeIGjzp5D6Oqt25hCBiBTt8wEeeAzfJvUKnPQ==", + "version": "15.5.9", + "resolved": "https://registry.npmjs.org/next/-/next-15.5.9.tgz", + "integrity": "sha512-agNLK89seZEtC5zUHwtut0+tNrc0Xw4FT/Dg+B/VLEo9pAcS9rtTKpek3V6kVcVwsB2YlqMaHdfZL4eLEVYuCg==", "license": "MIT", "dependencies": { - "@next/env": "15.5.7", + "@next/env": "15.5.9", "@swc/helpers": "0.5.15", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", @@ -7525,6 +7526,18 @@ "node": ">=0.10.0" } }, + "node_modules/xlsx": { + "version": "0.20.3", + "resolved": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz", + "integrity": "sha512-oLDq3jw7AcLqKWH2AhCpVTZl8mf6X2YReP+Neh0SJUzV/BdZYjth94tG5toiMB1PPrYtxOCfaoUCkvtuH+3AJA==", + "license": "Apache-2.0", + "bin": { + "xlsx": "bin/xlsx.njs" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", diff --git a/package.json b/package.json index 52fc6ce2..ac561885 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "clsx": "^2.1.1", "formik": "^2.4.6", "moment": "^2.30.1", - "next": "15.5.7", + "next": "15.5.9", "react": "19.1.0", "react-day-picker": "^9.11.1", "react-dom": "19.1.0", @@ -29,6 +29,7 @@ "swr": "^2.3.6", "tailwind-merge": "^3.3.1", "use-debounce": "^10.0.6", + "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz", "yup": "^1.7.0", "zustand": "^5.0.8" }, @@ -47,4 +48,4 @@ "tailwindcss": "^4", "typescript": "^5" } -} +} \ No newline at end of file diff --git a/src/app/report/expense/page.tsx b/src/app/report/expense/page.tsx index b3557b6c..99d2862e 100644 --- a/src/app/report/expense/page.tsx +++ b/src/app/report/expense/page.tsx @@ -1,48 +1,11 @@ 'use client'; -import { useState } from 'react'; -import useSWR from 'swr'; import ReportExpenseTable from '@/components/pages/report/expense/ReportExpenseTable'; -import { ReportExpenseApi } from '@/services/api/report'; -import { isResponseSuccess } from '@/lib/api-helper'; -import { ReportExpenseSearchParams } from '@/types/api/report/report-expense'; const ReportExpense = () => { - const [params, setParams] = useState({ - locationId: null, - supplierId: null, - kandangId: null, - nonstockId: null, - realizationDate: null, - category: null, - search: '', - }); - - const reportUrl = `${ReportExpenseApi.basePath}?${new URLSearchParams({ - location_id: params.locationId ?? '', - supplier_id: params.supplierId ?? '', - kandang_id: params.kandangId ?? '', - nonstock_id: params.nonstockId ?? '', - realization_date: params.realizationDate ?? '', - category: params.category ?? '', - search: params.search, - })}`; - const { data: reportExpenses } = useSWR(reportUrl, () => - ReportExpenseApi.getAllFetcher(reportUrl) - ); - - const onSearch = (searchParams: ReportExpenseSearchParams) => { - setParams(searchParams); - }; - return (
    - +
    ); }; diff --git a/src/components/pages/report/expense/ReportExpenseTable.tsx b/src/components/pages/report/expense/ReportExpenseTable.tsx index 290551d8..c34072a2 100644 --- a/src/components/pages/report/expense/ReportExpenseTable.tsx +++ b/src/components/pages/report/expense/ReportExpenseTable.tsx @@ -1,9 +1,10 @@ -import Badge from '@/components/Badge'; +import { useState, useMemo, useCallback } from 'react'; +import { ChangeEventHandler } from 'react'; +import useSWR from 'swr'; import Button from '@/components/Button'; import Card from '@/components/Card'; import DateInput from '@/components/input/DateInput'; import DebouncedTextInput from '@/components/input/DebouncedTextInput'; -import NumberInput from '@/components/input/NumberInput'; import SelectInput, { OptionType, useSelect, @@ -12,56 +13,517 @@ import ExpenseStatusBadge from '@/components/pages/expense/ExpenseStatusBadge'; import RealizationStatusBadge from '@/components/pages/expense/RealizationStatusBadge'; import Table, { TABLE_DEFAULT_STYLING } from '@/components/Table'; import { cn, formatCurrency, formatDate } from '@/lib/helper'; -import { - ReportExpense, - ReportExpenseSearchParams, -} from '@/types/api/report/report-expense'; +import { ReportExpense } from '@/types/api/report/report-expense'; import { Icon } from '@iconify/react'; import { ColumnDef } from '@tanstack/react-table'; -import { useMemo, useState } from 'react'; -import ReportExpenseExport from '@/components/pages/report/expense/pdf/ReportExpenseExport'; +import { ReportExpenseApi } from '@/services/api/report'; +import { isResponseSuccess } from '@/lib/api-helper'; +import { useTableFilter } from '@/services/hooks/useTableFilter'; +import Pagination from '@/components/Pagination'; +import Dropdown from '@/components/dropdown/Dropdown'; +import Menu from '@/components/menu/Menu'; +import MenuItem from '@/components/menu/MenuItem'; +import * as XLSX from 'xlsx'; +import { generateReportExpensePDF } from './pdf/ReportExpenseExport'; +import toast from 'react-hot-toast'; -const ReportExpenseTable = ({ - reportExpenses, - onSearch, -}: { - reportExpenses: ReportExpense[]; - onSearch: (params: ReportExpenseSearchParams) => void; -}) => { - const [selectedLocation, setSelectedLocation] = useState( - null - ); - const [selectedSupplier, setSelectedSupplier] = useState( - null - ); - const [selectedCategory, setSelectedCategory] = useState( - null - ); - const [selectedKandang, setSelectedKandang] = useState( - null - ); - const [selectedNonstock, setSelectedNonstock] = useState( - null - ); - const [search, setSearch] = useState(''); - const [realizationDate, setRealizationDate] = useState(null); +const ReportExpenseTable = () => { + // ===== STATE MANAGEMENT ===== + const [isPdfExportLoading, setIsPdfExportLoading] = useState(false); + const [isExcelExportLoading, setIsExcelExportLoading] = useState(false); + const [dropdownOpen, setDropdownOpen] = useState(false); + const [pdfProgress, setPdfProgress] = useState(0); + const [excelProgress, setExcelProgress] = useState(0); + const isAnyExportLoading = isPdfExportLoading || isExcelExportLoading; + // ===== SUBMISSION STATE ===== + const [isSubmitted, setIsSubmitted] = useState(false); + + // ===== TABLE FILTER STATE ===== + const { + state: filterState, + updateFilter, + setPage, + setPageSize, + reset: resetFilterState, + toQueryString, + } = useTableFilter({ + initial: { + location_id: '', + supplier_id: '', + kandang_id: '', + nonstock_id: '', + realization_date: '', + category: '', + search: '', + }, + paramMap: { + page: 'page', + pageSize: 'limit', + }, + }); + + // ===== SELECT OPTIONS ===== const { options: optionsLocation, isLoadingOptions: isLoadingLocation } = useSelect(`/master-data/locations`, 'id', 'name'); const { options: optionsSupplier, isLoadingOptions: isLoadingSupplier } = useSelect(`/master-data/suppliers`, 'id', 'name'); const { options: optionsKandang, isLoadingOptions: isLoadingKandang } = useSelect(`/master-data/kandangs`, 'id', 'name', '', { - location_id: selectedLocation?.value.toString() || '', + location_id: filterState.location_id, }); const { options: optionsNonstock, isLoadingOptions: isLoadingNonstock } = useSelect(`/master-data/nonstocks`, 'id', 'name'); + const categoryOptions = useMemo( + () => [ + { value: 'BOP', label: 'BOP' }, + { value: 'NON-BOP', label: 'Non BOP' }, + ], + [] + ); + + // Mendapatkan value option select dari filter state + const selectedLocation = useMemo( + () => + optionsLocation.find( + (opt) => String(opt.value) === filterState.location_id + ) || null, + [optionsLocation, filterState.location_id] + ); + const selectedSupplier = useMemo( + () => + optionsSupplier.find( + (opt) => String(opt.value) === filterState.supplier_id + ) || null, + [optionsSupplier, filterState.supplier_id] + ); + const selectedKandang = useMemo( + () => + optionsKandang.find( + (opt) => String(opt.value) === filterState.kandang_id + ) || null, + [optionsKandang, filterState.kandang_id] + ); + const selectedNonstock = useMemo( + () => + optionsNonstock.find( + (opt) => String(opt.value) === filterState.nonstock_id + ) || null, + [optionsNonstock, filterState.nonstock_id] + ); + const selectedCategory = useMemo( + () => + categoryOptions.find((opt) => opt.value === filterState.category) || null, + [categoryOptions, filterState.category] + ); + + // ===== FILTER CHANGE HANDLERS ===== + const locationChangeHandler = useCallback( + (val: OptionType | OptionType[] | null) => { + const option = val as OptionType; + updateFilter('location_id', option ? String(option.value) : ''); + updateFilter('kandang_id', ''); + setIsSubmitted(false); + }, + [updateFilter] + ); + + const kandangChangeHandler = useCallback( + (val: OptionType | OptionType[] | null) => { + const option = val as OptionType; + updateFilter('kandang_id', option ? String(option.value) : ''); + setIsSubmitted(false); + }, + [updateFilter] + ); + + const supplierChangeHandler = useCallback( + (val: OptionType | OptionType[] | null) => { + const option = val as OptionType; + updateFilter('supplier_id', option ? String(option.value) : ''); + setIsSubmitted(false); + }, + [updateFilter] + ); + + const nonstockChangeHandler = useCallback( + (val: OptionType | OptionType[] | null) => { + const option = val as OptionType; + updateFilter('nonstock_id', option ? String(option.value) : ''); + setIsSubmitted(false); + }, + [updateFilter] + ); + + const categoryChangeHandler = useCallback( + (val: OptionType | OptionType[] | null) => { + const option = val as OptionType; + updateFilter('category', option ? String(option.value) : ''); + setIsSubmitted(false); + }, + [updateFilter] + ); + + const realizationDateChangeHandler = useCallback< + ChangeEventHandler + >( + (e) => { + updateFilter('realization_date', e.target.value || ''); + setIsSubmitted(false); + }, + [updateFilter] + ); + + const searchChangeHandler = useCallback( + (e: React.ChangeEvent) => { + updateFilter('search', e.target.value); + setIsSubmitted(false); + }, + [updateFilter] + ); + + // ===== RESET FILTERS ===== + const resetFilters = useCallback(() => { + resetFilterState(); + setIsSubmitted(false); + }, [resetFilterState]); + + // ===== SUBMIT HANDLER ===== + const handleSubmit = useCallback(() => { + setIsSubmitted(true); + setPage(1); + }, [setPage]); + + // ===== DATA FETCHING FOR TABLE ===== + const { data: reportExpenseResponse, isLoading } = useSWR( + isSubmitted + ? () => { + return ['report-expense', toQueryString()]; + } + : null, + ([, query]) => { + const endpoint = `${ReportExpenseApi.basePath}${query}`; + return ReportExpenseApi.getAllFetcher(endpoint); + } + ); + + const data: ReportExpense[] = useMemo( + () => + isResponseSuccess(reportExpenseResponse) + ? (reportExpenseResponse?.data as ReportExpense[]) || [] + : [], + [reportExpenseResponse] + ); + + const meta = useMemo( + () => + isResponseSuccess(reportExpenseResponse) && reportExpenseResponse.meta + ? reportExpenseResponse.meta + : null, + [reportExpenseResponse] + ); + + // ===== EXPORT DATA FETCHER ===== + const reportExpenseExport = useCallback(async (): Promise< + ReportExpense[] | null + > => { + const params = new URLSearchParams(toQueryString().replace('?', '')); + params.set('limit', 'limit'); + params.set('page', '1'); + + const endpoint = `${ReportExpenseApi.basePath}?${params.toString()}`; + const response = await ReportExpenseApi.getAllFetcher(endpoint); + + return isResponseSuccess(response) ? response.data : null; + }, [toQueryString]); + + // ===== EXPORT HANDLERS ===== + const handleExportPdf = useCallback(async () => { + if (isPdfExportLoading) return; + setIsPdfExportLoading(true); + setPdfProgress(0); + + await new Promise((resolve) => + requestAnimationFrame(() => resolve(undefined)) + ); + + try { + // Stage 1: Fetching data (0-20%) + setPdfProgress(10); + await new Promise((resolve) => setTimeout(resolve, 50)); + + const allData = await reportExpenseExport(); + if (!allData || allData.length === 0) { + toast.error('Tidak ada data untuk diekspor.'); + setIsPdfExportLoading(false); + setPdfProgress(0); + return; + } + + // Stage 2: Data fetched - langsung loncat ke progress tinggi + setPdfProgress(30); + await new Promise((resolve) => setTimeout(resolve, 50)); + const progressInterval = setInterval(() => { + setPdfProgress((prev) => { + // Increment kecil dan random antara 0.5-2% + const increment = Math.random() * 1.5 + 0.5; + const newProgress = Math.min(prev + increment, 50); + return newProgress; + }); + }, 300); // Update setiap 300ms + + const pdfParams = { + location_name: selectedLocation?.label, + supplier_name: selectedSupplier?.label, + kandang_name: selectedKandang?.label, + nonstock_name: selectedNonstock?.label, + category: selectedCategory?.label, + realization_date: filterState.realization_date, + search: filterState.search, + }; + + setDropdownOpen(false); + + // Stage 3: Langsung loncat ke 80-85% untuk menghindari stuck + const baseProgress = 80 + Math.floor(Math.random() * 16); // Random 80-85% + setPdfProgress(baseProgress); + await new Promise((resolve) => setTimeout(resolve, 100)); + + // Stage 4: Berikan jeda untuk UI update + await new Promise((resolve) => + requestAnimationFrame(() => resolve(undefined)) + ); + + // Proses PDF yang sebenarnya + await generateReportExpensePDF(allData, pdfParams); + + clearInterval(progressInterval); + + // Stage 5: Finalizing (98-100%) + setPdfProgress(99); + await new Promise((resolve) => setTimeout(resolve, 100)); + + setPdfProgress(100); + toast.success('PDF berhasil dibuat dan diunduh.'); + + // Reset progress setelah selesai + setTimeout(() => setPdfProgress(0), 500); + } catch (error) { + console.error('PDF Export Error:', error); + toast.error('Gagal membuat PDF. Silakan coba lagi.'); + setPdfProgress(0); + } finally { + setIsPdfExportLoading(false); + } + }, [ + reportExpenseExport, + selectedLocation, + selectedSupplier, + selectedKandang, + selectedNonstock, + selectedCategory, + filterState.realization_date, + filterState.search, + ]); + + const handleExportExcel = useCallback(async () => { + if (isExcelExportLoading) return; + setIsExcelExportLoading(true); + setExcelProgress(0); + setDropdownOpen(false); + + await new Promise((resolve) => + requestAnimationFrame(() => resolve(undefined)) + ); + + try { + // Stage 1: Fetching data (0-20%) + setExcelProgress(15); + await new Promise((resolve) => setTimeout(resolve, 50)); + + const allDataForExport = await reportExpenseExport(); + + if (!allDataForExport || allDataForExport.length === 0) { + toast.error('Tidak ada data untuk diekspor.'); + setIsExcelExportLoading(false); + setExcelProgress(0); + return; + } + + // Stage 2: Data fetched (20-40%) + setExcelProgress(30); + await new Promise((resolve) => setTimeout(resolve, 50)); + + // Stage 3: Grouping data (40-60%) + setExcelProgress(50); + const groupedBySupplier: Record = {}; + allDataForExport.forEach((item) => { + const supplierName = item.supplier?.name || 'Unknown Supplier'; + if (!groupedBySupplier[supplierName]) { + groupedBySupplier[supplierName] = []; + } + groupedBySupplier[supplierName].push(item); + }); + + await new Promise((resolve) => setTimeout(resolve, 50)); + + // Stage 4: Creating workbook (60-80%) + setExcelProgress(70); + const workbook = XLSX.utils.book_new(); + + const supplierEntries = Object.entries(groupedBySupplier); + const totalSuppliers = supplierEntries.length; + + for (let i = 0; i < supplierEntries.length; i++) { + const [supplierName, supplierData] = supplierEntries[i]; + + // Update progress per supplier + const progressIncrement = (20 / totalSuppliers) * (i + 1); + setExcelProgress(70 + progressIncrement); + + const totals = supplierData.reduce( + (acc, item) => ({ + qty_pengajuan: acc.qty_pengajuan + (item.pengajuan?.qty || 0), + total_pengajuan: + acc.total_pengajuan + + (item.pengajuan?.qty || 0) * (item.pengajuan?.price || 0), + qty_realisasi: acc.qty_realisasi + (item.realisasi?.qty || 0), + total_realisasi: + acc.total_realisasi + + (item.realisasi?.qty || 0) * (item.realisasi?.price || 0), + }), + { + qty_pengajuan: 0, + total_pengajuan: 0, + qty_realisasi: 0, + total_realisasi: 0, + } + ); + + const excelData = supplierData.map((item, index) => ({ + No: index + 1, + 'No. PO': item.po_number || '', + 'No. Referensi': item.reference_number || '', + 'Tanggal Realisasi': item.realization_date + ? formatDate(item.realization_date, 'DD MMM YYYY') + : '', + 'Tanggal Transaksi': item.transaction_date + ? formatDate(item.transaction_date, 'DD MMM YYYY') + : '', + Kategori: item.category || '', + Produk: item.pengajuan?.nonstock?.name || '', + Lokasi: item.kandang?.location?.name || '', + Kandang: item.kandang?.name || '', + 'Qty Pengajuan': item.pengajuan?.qty || 0, + 'Harga Pengajuan': item.pengajuan?.price || 0, + 'Total Pengajuan': + (item.pengajuan?.qty || 0) * (item.pengajuan?.price || 0), + 'Qty Realisasi': item.realisasi?.qty || 0, + 'Harga Realisasi': item.realisasi?.price || 0, + 'Total Realisasi': + (item.realisasi?.qty || 0) * (item.realisasi?.price || 0), + 'Status Pencairan': item.latest_approval?.step_name || '', + })); + + excelData.push({ + No: 'Total' as unknown as number, + 'No. PO': '', + 'No. Referensi': '', + 'Tanggal Realisasi': '', + 'Tanggal Transaksi': '', + Kategori: '', + Produk: '', + Lokasi: '', + Kandang: '', + 'Qty Pengajuan': totals.qty_pengajuan, + 'Harga Pengajuan': 0, + 'Total Pengajuan': totals.total_pengajuan, + 'Qty Realisasi': totals.qty_realisasi, + 'Harga Realisasi': 0, + 'Total Realisasi': totals.total_realisasi, + 'Status Pencairan': '', + }); + + const worksheet = XLSX.utils.json_to_sheet(excelData); + const colWidths = [ + { wch: 5 }, // No + { wch: 20 }, // No. PO + { wch: 20 }, // No. Referensi + { wch: 15 }, // Tanggal Realisasi + { wch: 15 }, // Tanggal Transaksi + { wch: 15 }, // Kategori + { wch: 30 }, // Produk + { wch: 20 }, // Lokasi + { wch: 15 }, // Kandang + { wch: 15 }, // Qty Pengajuan + { wch: 15 }, // Harga Pengajuan + { wch: 20 }, // Total Pengajuan + { wch: 15 }, // Qty Realisasi + { wch: 15 }, // Harga Realisasi + { wch: 20 }, // Total Realisasi + { wch: 20 }, // Status Pencairan + ]; + worksheet['!cols'] = colWidths; + + const sheetName = supplierName.slice(0, 31); + XLSX.utils.book_append_sheet(workbook, worksheet, sheetName); + + // Small delay to allow UI update + if (i < supplierEntries.length - 1) { + await new Promise((resolve) => setTimeout(resolve, 10)); + } + } + + // Stage 5: Writing file (90-100%) + setExcelProgress(95); + await new Promise((resolve) => setTimeout(resolve, 50)); + + const filename = `Laporan-BOP-${formatDate(new Date(), 'YYYY-MM-DD-HHmm')}.xlsx`; + XLSX.writeFile(workbook, filename); + + setExcelProgress(100); + toast.success('Excel berhasil dibuat dan diunduh.'); + + // Reset progress + setTimeout(() => setExcelProgress(0), 500); + } catch (error) { + console.error('Excel Export Error:', error); + toast.error('Gagal membuat Excel. Silakan coba lagi.'); + setExcelProgress(0); + } finally { + setIsExcelExportLoading(false); + } + }, [isExcelExportLoading, reportExpenseExport]); + + // ===== PAGINATION HANDLERS ===== + const handlePageChange = (page: number) => { + setPage(page); + }; + + const handleRowChange = (pageSize: number) => { + setPageSize(pageSize); + }; + + const handleNextPage = () => { + if (meta && filterState.page < meta.total_pages) { + setPage(filterState.page + 1); + } + }; + + const handlePrevPage = () => { + if (filterState.page > 1) { + setPage(filterState.page - 1); + } + }; + + // ===== TABLE COLUMNS DEFINITION ===== const columns = useMemo((): ColumnDef[] => { return [ { header: 'No', - accessorFn: (_, index) => index + 1, + accessorFn: (_, index) => + (filterState.page - 1) * filterState.pageSize + index + 1, }, { header: 'No. PO', @@ -75,14 +537,14 @@ const ReportExpenseTable = ({ header: 'Tanggal Realisasi', accessorKey: 'realization_date', cell: ({ row }) => { - return formatDate(row.original.realization_date, 'DD MMM, YYYY'); + return formatDate(row.original?.realization_date, 'DD MMM, YYYY'); }, }, { header: 'Tanggal Transaksi', accessorKey: 'transaction_date', cell: ({ row }) => { - return formatDate(row.original.transaction_date, 'DD MMM, YYYY'); + return formatDate(row.original?.transaction_date, 'DD MMM, YYYY'); }, }, { @@ -91,19 +553,19 @@ const ReportExpenseTable = ({ }, { header: 'Produk', - accessorFn: (row) => row.pengajuan.nonstock.name, + accessorFn: (row) => row.pengajuan?.nonstock?.name, }, { header: 'Supplier', - accessorFn: (row) => row.supplier.name, + accessorFn: (row) => row.supplier?.name, }, { header: 'Lokasi', - accessorFn: (row) => row.kandang.location.name, + accessorFn: (row) => row.kandang?.location?.name, }, { header: 'Kandang', - accessorFn: (row) => row.kandang.name, + accessorFn: (row) => row.kandang?.name, }, { header: 'Pengajuan', @@ -111,23 +573,26 @@ const ReportExpenseTable = ({ { header: 'Qty', id: 'qty_pengajuan', - accessorFn: (row) => row.pengajuan.qty, + accessorFn: (row) => row.pengajuan?.qty, cell: ({ row }) => - row.original.pengajuan.qty.toLocaleString('id-ID'), + row.original.pengajuan?.qty?.toLocaleString('id-ID') || '0', }, { header: 'Harga', id: 'harga_pengajuan', - accessorFn: (row) => row.pengajuan.price, - cell: ({ row }) => formatCurrency(row.original.pengajuan.price), + accessorFn: (row) => row.pengajuan?.price, + cell: ({ row }) => + formatCurrency(row.original.pengajuan?.price || 0), }, { header: 'Total', id: 'total_pengajuan', - accessorFn: (row) => row.pengajuan.qty * row.pengajuan.price, + accessorFn: (row) => + (row.pengajuan?.qty || 0) * (row.pengajuan?.price || 0), cell: ({ row }) => { const total = - row.original.pengajuan.qty * row.original.pengajuan.price; + (row.original.pengajuan?.qty || 0) * + (row.original.pengajuan?.price || 0); return formatCurrency(total); }, }, @@ -139,23 +604,26 @@ const ReportExpenseTable = ({ { header: 'Qty', id: 'qty_realisasi', - accessorFn: (row) => row.realisasi.qty, + accessorFn: (row) => row.realisasi?.qty, cell: ({ row }) => - row.original.realisasi.qty.toLocaleString('id-ID'), + row.original.realisasi?.qty?.toLocaleString('id-ID') || '0', }, { header: 'Harga', id: 'harga_realisasi', - accessorFn: (row) => row.realisasi.price, - cell: ({ row }) => formatCurrency(row.original.realisasi.price), + accessorFn: (row) => row.realisasi?.price, + cell: ({ row }) => + formatCurrency(row.original.realisasi?.price || 0), }, { header: 'Total', id: 'total_realisasi', - accessorFn: (row) => row.realisasi.qty * row.realisasi.price, + accessorFn: (row) => + (row.realisasi?.qty || 0) * (row.realisasi?.price || 0), cell: ({ row }) => { const total = - row.original.realisasi.qty * row.original.realisasi.price; + (row.original.realisasi?.qty || 0) * + (row.original.realisasi?.price || 0); return formatCurrency(total); }, }, @@ -165,55 +633,76 @@ const ReportExpenseTable = ({ header: 'Status Pencairan', cell: (props) => ( ), }, { header: 'Status BOP', cell: (props) => ( - + ), }, ]; - }, []); - - // Handle Search - const handleSearch = () => { - onSearch({ - search, - realizationDate, - locationId: selectedLocation?.value.toString() ?? '', - kandangId: selectedKandang?.value.toString() ?? '', - nonstockId: selectedNonstock?.value.toString() ?? '', - supplierId: selectedSupplier?.value.toString() ?? '', - category: selectedCategory?.value.toString() ?? '', - }); - }; - const handleSearchInput = (e: React.ChangeEvent) => { - setSearch(e.target.value); - }; - const handleReset = () => { - setSearch(''); - setRealizationDate(''); - setSelectedLocation(null); - setSelectedKandang(null); - setSelectedNonstock(null); - setSelectedSupplier(null); - setSelectedCategory(null); - onSearch({ - search: '', - realizationDate: '', - locationId: '', - kandangId: '', - nonstockId: '', - supplierId: '', - category: '', - }); - }; + }, [filterState.page, filterState.pageSize]); + // ===== RENDER ===== return (
    + {isAnyExportLoading && ( +
    + + {((isPdfExportLoading && pdfProgress > 0) || + (isExcelExportLoading && excelProgress > 0)) && ( +
    +
    + {(() => { + const currentProgress = isPdfExportLoading + ? pdfProgress + : excelProgress; + const exportType = isPdfExportLoading ? 'PDF' : 'Excel'; + + if (currentProgress < 20) + return 'Mengambil data dari server...'; + if (currentProgress < 30) return 'Memproses data laporan...'; + if (currentProgress < 40) + return `Menyiapkan struktur dokumen ${exportType}...`; + if (currentProgress < 50) + return 'Mengelompokkan data per supplier...'; + if (currentProgress < 70) + return 'Merender tabel dan kalkulasi...'; + if (currentProgress < 96) + return `Memformat dokumen ${exportType}...`; + if (currentProgress < 100) + return 'Menyelesaikan dan mengunduh...'; + return 'Selesai!'; + })()}{' '} + {Math.round(isPdfExportLoading ? pdfProgress : excelProgress)}% +
    + {((isPdfExportLoading && pdfProgress >= 35 && pdfProgress < 90) || + (isExcelExportLoading && + excelProgress >= 35 && + excelProgress < 90)) && ( +
    + {(isPdfExportLoading ? pdfProgress : excelProgress) < 96 + ? 'Proses ini membutuhkan waktu lebih lama untuk data dalam jumlah besar. Mohon bersabar...' + : 'Sedang memproses baris data. Hampir selesai...'} +
    + )} +
    + )} +
    + )} -
    - -
    -
    - - +
    +
    +
    + + +
    +
    + { + setDropdownOpen(!dropdownOpen); + }} + > + Export + + } + align='end' + direction='bottom' + open={dropdownOpen} + > + + + + + +
    } @@ -248,10 +760,7 @@ const ReportExpenseTable = ({ isLoading={isLoadingLocation} placeholder='Lokasi' value={selectedLocation} - onChange={(option) => { - setSelectedLocation(option as OptionType); - setSelectedKandang(null); - }} + onChange={locationChangeHandler} /> setSelectedKandang(option as OptionType)} + onChange={kandangChangeHandler} /> setSelectedSupplier(option as OptionType)} + onChange={supplierChangeHandler} /> setSelectedNonstock(option as OptionType)} + onChange={nonstockChangeHandler} /> setSelectedCategory(option as OptionType)} + onChange={categoryChangeHandler} /> setRealizationDate(e.target.value)} + value={filterState.realization_date} + onChange={realizationDateChangeHandler} name='realization_date' placeholder='Tanggal Realisasi' /> } />
    - - columns={columns} - data={reportExpenses} - className={{ - headerRowClassName: cn(TABLE_DEFAULT_STYLING, 'whitespace-nowrap'), - bodyRowClassName: cn(TABLE_DEFAULT_STYLING, 'whitespace-nowrap'), - }} - /> + + {/* ===== TABLE CONTENT ===== */} + {!isSubmitted ? ( +
    + Silakan pilih filter dan klik tombol Cari untuk menampilkan data. +
    + ) : isLoading ? ( +
    + +
    + ) : data.length === 0 ? ( +
    + Tidak ada data yang dapat ditampilkan... +
    + ) : ( + <> + + columns={columns} + data={data} + pageSize={10} + className={{ + containerClassName: 'mb-0', + headerRowClassName: cn( + TABLE_DEFAULT_STYLING, + 'whitespace-nowrap' + ), + bodyRowClassName: cn(TABLE_DEFAULT_STYLING, 'whitespace-nowrap'), + paginationClassName: 'hidden', + }} + /> + {meta && ( +
    + +
    + )} + + )}
    ); }; diff --git a/src/components/pages/report/expense/pdf/ReportExpenseExport.tsx b/src/components/pages/report/expense/pdf/ReportExpenseExport.tsx index b1d850e6..3aa46fc2 100644 --- a/src/components/pages/report/expense/pdf/ReportExpenseExport.tsx +++ b/src/components/pages/report/expense/pdf/ReportExpenseExport.tsx @@ -1,88 +1,64 @@ -import Button from '@/components/Button'; import { ReportExpense } from '@/types/api/report/report-expense'; -import { Icon } from '@iconify/react'; import { Document, Image, Page, pdf, Text, View } from '@react-pdf/renderer'; -import { useMemo, useState } from 'react'; import { formatCurrency, formatDate } from '@/lib/helper'; import pdfStyles from '@/components/pages/report/expense/pdf/styles/ReportExpenseStyles'; import toast from 'react-hot-toast'; -import ExpenseStatusBadge from '@/components/pages/expense/ExpenseStatusBadge'; -interface ReportExpenseExportProps { - data: ReportExpense[]; - className?: string; +export interface PDFParams { + location_name?: string; + supplier_name?: string; + kandang_name?: string; + nonstock_name?: string; + category?: string; + realization_date?: string; + search?: string; } -const ReportExpenseExport = ({ data }: ReportExpenseExportProps) => { - const [isGeneratingPDF, setIsGeneratingPDF] = useState(false); - - const handleDownloadPDF = async () => { - if (!data || data.length === 0) { - toast.error('No report expense data available'); - return; - } - setIsGeneratingPDF(true); - try { - const blob = await pdf().toBlob(); - const url = URL.createObjectURL(blob); - const link = document.createElement('a'); - link.href = url; - link.download = `Laporan-BOP-${formatDate(new Date(), 'DD-MMM-YYYY')}.pdf`; - document.body.appendChild(link); - link.click(); - document.body.removeChild(link); - URL.revokeObjectURL(url); - } catch (error) { - toast.error('Failed to generate PDF. Please try again.'); - return error; - } finally { - setIsGeneratingPDF(false); - } - }; - - return ( - - ); +const getStatusStyle = (action?: string) => { + switch (action) { + case 'APPROVED': + return { backgroundColor: '#dcfce7' }; + case 'REJECTED': + return { backgroundColor: '#fee2e2' }; + default: + return { backgroundColor: '#fef3c7' }; + } }; -export default ReportExpenseExport; - -const PDFDocument = ({ data }: { data: ReportExpense[] }) => { +const PDFDocument = ({ + data, + params, +}: { + data: ReportExpense[]; + params: PDFParams; +}) => { // Group data by supplier - const groupedBySupplier = useMemo(() => { + const groupedBySupplier = (() => { const groups: Record = {}; data.forEach((item) => { - const supplierName = item.supplier.name; + const supplierName = item.supplier?.name || 'Unknown Supplier'; if (!groups[supplierName]) { groups[supplierName] = []; } groups[supplierName].push(item); }); return groups; - }, [data]); + })(); // Calculate grand totals - const grandTotals = useMemo(() => { - return data.reduce( - (acc, item) => { - const pengajuanTotal = item.pengajuan.qty * item.pengajuan.price; - const realisasiTotal = item.realisasi.qty * item.realisasi.price; - return { - pengajuan: acc.pengajuan + pengajuanTotal, - realisasi: acc.realisasi + realisasiTotal, - }; - }, - { pengajuan: 0, realisasi: 0 } - ); - }, [data]); + const grandTotals = data.reduce( + (acc, item) => { + const pengajuanTotal = + (item.pengajuan?.qty || 0) * (item.pengajuan?.price || 0); + const realisasiTotal = + (item.realisasi?.qty || 0) * (item.realisasi?.price || 0); + return { + pengajuan: acc.pengajuan + pengajuanTotal, + realisasi: acc.realisasi + realisasiTotal, + }; + }, + { pengajuan: 0, realisasi: 0 } + ); return ( @@ -111,15 +87,35 @@ const PDFDocument = ({ data }: { data: ReportExpense[] }) => { + {/* Filters Info if any */} + {(params.location_name || + params.supplier_name || + params.realization_date) && ( + + {params.location_name && ( + Lokasi: {params.location_name} + )} + {params.supplier_name && ( + Supplier: {params.supplier_name} + )} + {params.realization_date && ( + + Tanggal Realisasi:{' '} + {formatDate(params.realization_date, 'DD MMM YYYY')} + + )} + + )} + {/* Grouped Tables by Supplier */} {Object.entries(groupedBySupplier).map( ([supplierName, items], groupIndex) => { const supplierTotals = items.reduce( (acc, item) => { const pengajuanTotal = - item.pengajuan.qty * item.pengajuan.price; + (item.pengajuan?.qty || 0) * (item.pengajuan?.price || 0); const realisasiTotal = - item.realisasi.qty * item.realisasi.price; + (item.realisasi?.qty || 0) * (item.realisasi?.price || 0); return { pengajuan: acc.pengajuan + pengajuanTotal, realisasi: acc.realisasi + realisasiTotal, @@ -210,7 +206,7 @@ const PDFDocument = ({ data }: { data: ReportExpense[] }) => { Kandang - {/* Pengajuan Group - spans 3 columns: XSmall + Medium + Medium */} + {/* Pengajuan Group */} { - {/* Realisasi Group - spans 3 columns: XSmall + Medium + Medium */} + {/* Realisasi Group */} { {/* Table Body */} {items.map((item, index) => { const pengajuanTotal = - item.pengajuan.qty * item.pengajuan.price; + (item.pengajuan?.qty || 0) * (item.pengajuan?.price || 0); const realisasiTotal = - item.realisasi.qty * item.realisasi.price; + (item.realisasi?.qty || 0) * (item.realisasi?.price || 0); return ( @@ -350,10 +346,10 @@ const PDFDocument = ({ data }: { data: ReportExpense[] }) => { {index + 1} - {item.po_number} + {item.po_number || '-'} - {item.reference_number} + {item.reference_number || '-'} @@ -366,54 +362,53 @@ const PDFDocument = ({ data }: { data: ReportExpense[] }) => { - {item.category.split('-').join(' ')} + + {item.category?.split('-').join(' ') || '-'} + - {item.pengajuan.nonstock.name} + {item.pengajuan?.nonstock?.name || '-'} - {item.kandang.location.name} + {item.kandang?.location?.name || '-'} - {item.kandang.name} + {item.kandang?.name || '-'} - {item.pengajuan.qty.toLocaleString('id-ID')} + {(item.pengajuan?.qty || 0).toLocaleString('id-ID')} - {formatCurrency(item.pengajuan.price)} + + {formatCurrency(item.pengajuan?.price || 0)} + {formatCurrency(pengajuanTotal)} - {item.realisasi.qty.toLocaleString('id-ID')} + {(item.realisasi?.qty || 0).toLocaleString('id-ID')} - {formatCurrency(item.realisasi.price)} + + {formatCurrency(item.realisasi?.price || 0)} + {formatCurrency(realisasiTotal)} - {item.latest_approval.step_name} + {item.latest_approval?.step_name || '-'} @@ -422,7 +417,6 @@ const PDFDocument = ({ data }: { data: ReportExpense[] }) => { {/* Supplier Subtotal Row */} - {/* Empty cells for columns before subtotal */} { - {/* Empty cell for Status BOP */} @@ -540,17 +533,15 @@ const PDFDocument = ({ data }: { data: ReportExpense[] }) => { {/* Grand Total Section */} @@ -589,3 +580,23 @@ const PDFDocument = ({ data }: { data: ReportExpense[] }) => { ); }; + +export const generateReportExpensePDF = async ( + data: ReportExpense[], + params: PDFParams +): Promise => { + try { + const doc = ; + const blob = await pdf(doc).toBlob(); + const url = URL.createObjectURL(blob); + const link = document.createElement('a'); + link.href = url; + link.download = `Laporan-BOP-${formatDate(new Date(), 'YYYY-MM-DD-HHmm')}.pdf`; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + URL.revokeObjectURL(url); + } catch (error) { + throw error; + } +}; diff --git a/src/config/constant.ts b/src/config/constant.ts index 844b0d62..38077309 100644 --- a/src/config/constant.ts +++ b/src/config/constant.ts @@ -6,17 +6,6 @@ export const MAIN_DRAWER_LINKS: SidebarMenuItem[] = [ link: '/dashboard', icon: 'heroicons-outline:chart-bar-square', }, - { - text: 'Laporan', - link: '/report', - icon: 'heroicons-outline:clipboard', - submenu: [ - { - text: 'Biaya Operasional', - link: '/report/expense', - }, - ], - }, { text: 'Produksi', link: '/production', @@ -56,6 +45,22 @@ export const MAIN_DRAWER_LINKS: SidebarMenuItem[] = [ link: '/closing', icon: 'heroicons-outline:presentation-chart-bar', }, + { + text: 'Laporan', + link: '/report', + icon: 'mdi:chart-box-outline', + submenu: [ + { + text: 'Logistik & Persediaan', + link: '/report/logistic-stock', + }, + { + text: 'Biaya Operasional', + link: '/report/expense', + }, + ], + }, + { text: 'Persediaan', link: '/inventory', diff --git a/src/dummy/reports-expense.dummy.json b/src/dummy/reports-expense.dummy.json new file mode 100644 index 00000000..36dbdc22 --- /dev/null +++ b/src/dummy/reports-expense.dummy.json @@ -0,0 +1,69334 @@ +[ + { + "id": 622, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 112, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 931, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 505, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 267, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 734, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 670, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 386, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 701, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 563, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 954, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 175, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 203, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 8, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 36, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 468, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 960, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 146, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 191, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 802, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 541, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 781, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 18, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 958, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 29, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 765, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 892, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 656, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 205, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 344, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 51, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 15, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 152, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 616, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 959, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 602, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 934, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 85, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 634, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 268, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 674, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 597, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 102, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 645, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 841, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 554, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 860, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 436, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 20, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 686, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 692, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 771, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 763, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 819, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 19, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 159, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 279, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 514, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 697, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 956, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 107, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 326, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 216, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 651, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 173, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 376, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 113, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 442, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 835, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 37, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 377, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 547, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 185, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 731, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 719, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 54, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 797, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 527, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 296, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 943, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 322, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 517, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 586, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 739, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 502, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 905, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 624, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 909, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 680, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 1001, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 53, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 13, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 109, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 864, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 923, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 914, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 227, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 228, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 155, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 96, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 447, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 997, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 142, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 63, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 688, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 81, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 506, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 294, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 796, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 432, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 724, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 92, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 612, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 355, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 332, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 515, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 246, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 986, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 158, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 611, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 815, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 504, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 921, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 705, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 464, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 694, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 538, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 995, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 735, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 578, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 70, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 84, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 540, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 274, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 417, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 861, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 390, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 48, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 298, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 317, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 493, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 474, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 195, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 406, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 565, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 756, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 215, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 316, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 632, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 11, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 62, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 286, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 503, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 784, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 939, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 818, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 820, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 520, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 741, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 749, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 5, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 329, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 77, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 896, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 809, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 681, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 623, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 627, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 179, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 779, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 941, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 303, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 230, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 832, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 902, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 431, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 537, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 648, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 872, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 202, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 876, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 434, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 201, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 413, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 793, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 524, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 451, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 288, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 713, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 384, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 816, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 856, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 187, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 621, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 501, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 99, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 71, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 115, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 110, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 379, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 550, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 357, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 251, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 946, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 866, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 608, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 906, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 783, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 97, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 407, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 970, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 287, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 716, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 643, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 562, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 469, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 747, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 423, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 183, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 190, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 519, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 352, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 334, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 167, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 535, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 61, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 237, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 650, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 144, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 672, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 460, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 518, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 421, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 290, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 368, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 244, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 149, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 261, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 313, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 593, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 659, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 59, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 880, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 157, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 822, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 119, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 987, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 628, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 751, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 729, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 999, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 82, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 405, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 50, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 543, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 402, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 186, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 455, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 754, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 977, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 859, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 665, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 722, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 806, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 589, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 30, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 938, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 755, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 894, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 753, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 762, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 56, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 358, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 509, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 530, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 293, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 373, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 871, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 657, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 531, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 687, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 226, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 55, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 243, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 393, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 927, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 69, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 798, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 52, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 975, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 312, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 566, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 936, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 387, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 271, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 794, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 528, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 475, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 912, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 890, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 571, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 12, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 95, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 895, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 424, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 136, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 466, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 32, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 834, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 874, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 836, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 349, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 897, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 209, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 799, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 3, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 235, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 389, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 351, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 299, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 585, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 372, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 653, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 176, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 489, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 683, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 898, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 131, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 140, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 427, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 404, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 301, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 459, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 829, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 240, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 804, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 388, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 266, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 73, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 904, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 949, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 584, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 163, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 328, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 590, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 853, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 845, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 675, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 994, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 553, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 924, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 638, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 811, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 615, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 875, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 693, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 204, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 60, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 34, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 361, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 16, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 4, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 25, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 868, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 488, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 786, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 903, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 993, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 72, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 619, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 962, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 248, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 473, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 706, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 901, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 122, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 649, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 160, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 133, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 682, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 831, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 513, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 613, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 561, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 292, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 721, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 416, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 304, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 125, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 111, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 420, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 785, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 385, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 974, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 877, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 992, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 214, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 218, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 66, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 452, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 305, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 788, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 338, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 973, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 285, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 838, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 324, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 922, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 704, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 75, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 545, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 443, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 480, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 439, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 177, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 677, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 998, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 437, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 166, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 101, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 487, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 737, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 830, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 370, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 458, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 684, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 348, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 857, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 270, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 281, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 758, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 148, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 138, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 275, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 9, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 789, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 984, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 486, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 926, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 885, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 881, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 976, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 260, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 363, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 321, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 546, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 64, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 28, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 291, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 826, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 343, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 438, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 569, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 996, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 918, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 7, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 981, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 583, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 383, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 863, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 239, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 398, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 410, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 557, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 629, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 555, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 471, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 952, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 433, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 770, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 745, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 241, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 250, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 899, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 522, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 217, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 533, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 381, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 219, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 300, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 862, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 695, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 913, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 581, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 277, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 707, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 768, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 302, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 534, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 2, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 601, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 529, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 640, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 238, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 596, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 843, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 35, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 810, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 359, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 42, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 360, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 985, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 197, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 450, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 418, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 605, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 808, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 375, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 245, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 153, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 430, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 702, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 378, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 774, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 854, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 603, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 497, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 848, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 483, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 145, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 91, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 844, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 576, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 971, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 307, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 539, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 121, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 654, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 428, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 453, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 308, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 429, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 382, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 456, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 587, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 824, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 401, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 411, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 635, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 444, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 199, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 143, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 964, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 482, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 170, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 362, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 481, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 900, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 673, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 134, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 14, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 103, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 703, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 200, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 728, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 354, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 636, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 17, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 667, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 663, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 942, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 953, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 499, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 886, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 120, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 283, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 957, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 888, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 441, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 526, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 315, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 132, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 181, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 685, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 850, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 945, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 124, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 236, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 165, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 548, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 306, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 414, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 94, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 24, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 320, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 730, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 67, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 744, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 365, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 257, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 884, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 88, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 598, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 933, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 491, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 631, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 591, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 746, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 803, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 930, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 151, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 147, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 879, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 507, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 817, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 710, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 318, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 356, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 457, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 907, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 544, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 690, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 445, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 232, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 980, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 178, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 988, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 162, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 712, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 678, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 309, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 727, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 211, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 965, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 346, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 778, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 269, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 419, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 207, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 839, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 916, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 45, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 210, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 574, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 272, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 462, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 929, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 265, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 174, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 169, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 660, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 792, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 65, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 759, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 932, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 220, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 93, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 595, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 325, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 594, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 842, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 225, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 717, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 777, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 391, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 618, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 47, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 966, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 990, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 920, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 172, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 972, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 733, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 669, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 500, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 188, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 425, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 668, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 560, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 891, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 620, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 44, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 549, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 224, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 600, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 127, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 208, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 347, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 126, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 336, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 625, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 661, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 87, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 461, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 525, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 341, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 196, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 508, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 345, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 289, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 104, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 825, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 249, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 742, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 198, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 213, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 642, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 295, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 940, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 814, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 676, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 98, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 951, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 919, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 258, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 889, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 415, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 805, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 435, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 161, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 780, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 327, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 558, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 123, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 478, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 449, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 229, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 339, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 311, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 937, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 117, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 114, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 409, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 536, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 696, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 967, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 314, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 671, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 139, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 394, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 262, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 105, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 511, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 58, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 498, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 367, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 521, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 641, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 397, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 233, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 588, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 917, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 882, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 319, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 168, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 40, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 164, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 679, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 330, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 76, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 1000, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 380, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 46, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 78, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 646, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 86, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 39, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 592, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 463, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 369, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 399, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 846, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 496, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 222, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 935, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 10, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 750, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 568, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 284, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 580, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 350, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 446, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 928, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 609, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 791, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 908, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 532, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 440, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 476, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 700, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 259, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 849, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 979, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 564, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 773, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 978, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 74, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 408, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 968, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 255, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 633, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 57, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 813, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 761, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 154, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 484, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 570, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 130, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 396, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 80, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 171, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 828, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 873, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 767, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 374, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 194, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 910, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 83, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 100, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 6, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 699, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 652, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 723, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 644, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 273, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 108, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 775, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 575, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 837, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 748, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 223, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 150, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 969, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 310, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 31, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 542, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 840, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 90, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 870, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 757, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 118, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 494, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 454, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 371, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 711, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 915, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 752, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 948, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 743, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 472, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 572, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 41, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 242, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 833, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 479, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 847, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 331, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 709, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 485, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 182, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 156, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 944, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 807, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 254, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 725, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 637, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 400, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 878, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 516, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 551, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 617, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 135, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 559, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 955, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 760, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 821, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 599, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 582, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 477, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 234, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 323, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 89, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 366, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 422, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 639, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 263, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 858, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 795, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 412, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 23, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 740, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 689, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 212, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 614, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 950, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 280, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 855, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 989, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 865, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 827, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 720, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 630, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 26, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 787, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 552, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 812, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 991, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 340, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 708, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 510, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 403, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 726, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 983, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 342, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 278, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 79, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 495, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 337, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 193, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 801, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 128, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 790, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 43, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 772, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 852, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 256, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 21, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 869, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 883, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 691, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 49, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 426, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 823, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 732, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 297, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 141, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 982, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 647, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 282, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 655, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 335, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 276, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 106, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 252, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 664, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 738, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 715, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 116, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 38, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 718, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 192, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 465, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 604, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 567, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 766, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 887, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 776, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 851, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 395, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 364, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 353, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 333, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 947, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 626, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 963, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 221, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 22, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 27, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 180, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 556, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 867, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 782, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 800, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 231, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 490, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 467, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 764, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 137, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 392, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 129, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 577, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 206, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 512, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 607, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 68, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 492, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 448, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 769, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 698, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 662, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 573, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 523, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 893, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 184, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 189, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 666, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 606, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 736, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 911, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 5, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "ewfwe", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 5, + "expense_nonstock_id": 5, + "qty": 2000, + "price": 1500, + "notes": "ewfew", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 264, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 961, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 247, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 714, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 1, + "expense_id": 1, + "project_flock_kandang_id": 1, + "qty": 200, + "price": 14000, + "notes": "121", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 1, + "expense_nonstock_id": 1, + "qty": 200, + "price": 14000, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 2800000, + "total_realisasi": 2800000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 33, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 579, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 4, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "sjhbcv", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 4, + "expense_nonstock_id": 4, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 253, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + }, + { + "id": 470, + "reference_number": "BOP-LTI-00002", + "po_number": "PO-BOP-LTI-00002", + "category": "NON-BOP", + "supplier": { + "id": 2, + "name": "BOP Vendor", + "alias": "BOP", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-15T08:15:06.565459Z", + "updated_at": "2025-12-15T08:16:54.42286Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 3, + "expense_id": 2, + "qty": 20, + "price": 14000, + "notes": "cata", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:15:06.55969Z" + }, + "realisasi": { + "id": 3, + "expense_nonstock_id": 3, + "qty": 20, + "price": 14000, + "notes": "", + "nonstock": { + "id": 2, + "name": "Solar", + "flags": [] + }, + "created_at": "2025-12-15T08:16:54.417829Z" + }, + "total_pengajuan": 280000, + "total_realisasi": 280000, + "latest_approval": { + "id": 24, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:54.425725Z" + } + }, + { + "id": 610, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 658, + "reference_number": "BOP-LTI-00003", + "po_number": "PO-BOP-LTI-00003", + "category": "NON-BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-15T00:00:00Z", + "transaction_date": "2025-12-09T00:00:00Z", + "created_at": "2025-12-15T08:16:07.086353Z", + "updated_at": "2025-12-15T08:16:38.612526Z", + "kandang": { + "id": 1, + "name": "Singaparna 1", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 6, + "expense_id": 3, + "qty": 2000, + "price": 1500, + "notes": "jdhfbvier", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:07.085177Z" + }, + "realisasi": { + "id": 6, + "expense_nonstock_id": 6, + "qty": 2000, + "price": 1500, + "notes": "ewf", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T08:16:38.607738Z" + }, + "total_pengajuan": 3000000, + "total_realisasi": 3000000, + "latest_approval": { + "id": 23, + "step_number": 4, + "step_name": "Realisasi", + "action": "CREATED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T08:16:38.613723Z" + } + }, + { + "id": 925, + "reference_number": "BOP-LTI-00001", + "po_number": "PO-BOP-LTI-00001", + "category": "BOP", + "supplier": { + "id": 3, + "name": "Ekspedisi", + "alias": "EKS", + "category": "BOP" + }, + "realization_date": "2025-12-08T00:00:00Z", + "transaction_date": "2025-12-10T00:00:00Z", + "created_at": "2025-12-11T09:46:06.835614Z", + "updated_at": "2025-12-15T06:31:30.779245Z", + "kandang": { + "id": 2, + "name": "Singaparna 2", + "status": "ACTIVE", + "capacity": 0, + "location": { + "id": 1, + "name": "Singaparna", + "address": "Tasik" + } + }, + "pengajuan": { + "id": 2, + "expense_id": 1, + "project_flock_kandang_id": 2, + "qty": 2000, + "price": 200, + "notes": "12321", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-11T09:46:06.833808Z" + }, + "realisasi": { + "id": 2, + "expense_nonstock_id": 2, + "qty": 2000, + "price": 200, + "notes": "", + "nonstock": { + "id": 1, + "name": "Expedisi DOC", + "flags": [] + }, + "created_at": "2025-12-15T06:31:30.770535Z" + }, + "total_pengajuan": 400000, + "total_realisasi": 400000, + "latest_approval": { + "id": 9, + "step_number": 5, + "step_name": "Selesai", + "action": "APPROVED", + "notes": null, + "action_by": { + "id": 1, + "id_user": 1, + "email": "admin@mbugroup.id", + "name": "Super Admin" + }, + "action_at": "2025-12-15T06:31:37.601162Z" + } + } +] \ No newline at end of file diff --git a/src/dummy/reports-expense.dummy.ts b/src/dummy/reports-expense.dummy.ts new file mode 100644 index 00000000..1bd0f9bc --- /dev/null +++ b/src/dummy/reports-expense.dummy.ts @@ -0,0 +1,29 @@ +/** + * Dummy data for ReportExpense[] + * Generated from: report-expense.json + * + * This file is auto-generated. Do not edit manually. + */ + +import { BaseApiResponse } from '@/types/api/api-general'; +import dummyData from './reports-expense.dummy.json'; +import { ReportExpense } from '@/types/api/report/report-expense'; + +/** + * Get dummy ReportExpense[] data + * @returns Promise with BaseApiResponse containing ReportExpense[] + */ +export async function getDummyExpense(): Promise< + BaseApiResponse +> { + return new Promise((resolve) => { + setTimeout(() => { + resolve({ + code: 200, + status: 'success', + message: 'Data retrieved successfully', + data: dummyData as unknown as ReportExpense[], + }); + }, 500); + }); +} diff --git a/src/services/api/report.ts b/src/services/api/report.ts index ffaef831..6bb13151 100644 --- a/src/services/api/report.ts +++ b/src/services/api/report.ts @@ -17,8 +17,8 @@ export class ReportExpenseApiService extends BaseApiService< endpoint: string ): Promise> { // TODO: Remove this block when backend is ready - // const { dummyGetAllFetcher } = await import('@/dummy/report/expense.dummy'); - // return await dummyGetAllFetcher(); + // const { getDummyExpense } = await import('@/dummy/reports-expense.dummy'); + // return await getDummyExpense(); // Uncomment this when backend is ready return await httpClientFetcher>(endpoint); From 11bf6ad760560262350a5bc3ea3b1a1d5f3ac5e1 Mon Sep 17 00:00:00 2001 From: randy-ar Date: Thu, 18 Dec 2025 18:14:56 +0700 Subject: [PATCH 60/89] feat(FE): adding xlsx package --- package.json | 2 +- src/dummy/reports-expense.dummy.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index ac561885..d0b99b80 100644 --- a/package.json +++ b/package.json @@ -48,4 +48,4 @@ "tailwindcss": "^4", "typescript": "^5" } -} \ No newline at end of file +} diff --git a/src/dummy/reports-expense.dummy.json b/src/dummy/reports-expense.dummy.json index 36dbdc22..e0a88f9e 100644 --- a/src/dummy/reports-expense.dummy.json +++ b/src/dummy/reports-expense.dummy.json @@ -69331,4 +69331,4 @@ "action_at": "2025-12-15T06:31:37.601162Z" } } -] \ No newline at end of file +] From 096a8d394ef31976ae5d88b48c2ae8110f0eae71 Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Thu, 18 Dec 2025 18:50:22 +0700 Subject: [PATCH 61/89] Merge branch 'development' into feat/FE/US-335/production-data-report --- .gitignore | 3 + .gitlab-ci.yml | 33 +- next.config.ts | 1 + package-lock.json | 2 +- package.json | 2 +- src/app/closing/detail/page.tsx | 19 +- src/app/globals.css | 53 +- src/app/inventory/adjustment/detail/page.tsx | 5 - .../product/detail}/layout.tsx | 0 src/app/inventory/product/detail/page.tsx | 50 + src/app/inventory/product/page.tsx | 11 + src/app/marketing/page.tsx | 1 + src/app/page.tsx | 32 +- src/app/production/project-flock/add/page.tsx | 10 +- .../chickin/add/kandang/page.tsx | 2 +- .../project-flock/chickin/add/page.tsx | 2 +- .../production/project-flock/chickin/page.tsx | 2 +- .../project-flock/closing/layout.tsx | 11 + .../production/project-flock/closing/page.tsx | 63 + .../project-flock/detail/edit/page.tsx | 2 +- .../production/project-flock/detail/page.tsx | 15 +- src/app/production/project-flock/layout.tsx | 60 + src/app/production/project-flock/page.tsx | 2 +- .../production/recording/detail/edit/page.tsx | 2 +- src/app/production/recording/detail/page.tsx | 2 +- .../production/recording/grading/add/page.tsx | 49 - .../recording/grading/detail/edit/page.tsx | 53 - .../recording/grading/detail/page.tsx | 52 - src/components/Card.tsx | 2 +- src/components/Drawer.tsx | 111 +- src/components/FloatingActionsButton.tsx | 141 ++ src/components/Navbar.tsx | 25 +- src/components/Table.tsx | 162 ++- src/components/dropdown/Dropdown.tsx | 116 ++ src/components/helper/RequireAuth.tsx | 67 +- src/components/helper/drawer/DrawerHeader.tsx | 104 ++ src/components/input/DateInput.tsx | 4 +- src/components/input/RadioInput.tsx | 249 ++-- src/components/pages/ApprovalSteps.tsx | 66 +- .../pages/closing/ClosingDetail.tsx | 21 +- .../closing/ClosingOverheadTabContent.tsx | 19 + .../pages/closing/ClosingOverheadTable.tsx | 162 +++ .../ClosingSapronakCalculationTabContent.tsx | 25 + .../ClosingSapronakCalculationTable.tsx | 221 ++++ .../pages/closing/sale/SalesReportTable.tsx | 285 +++++ .../expense/ExpenseRealizationContent.tsx | 8 +- .../pages/expense/ExpenseRequestContent.tsx | 13 +- .../pages/expense/ExpensesTable.tsx | 6 +- .../form/ExpenseRealizationForm.schema.ts | 8 +- .../expense/form/ExpenseRealizationForm.tsx | 9 +- ...ExpenseRealizationKandangDetailExpense.tsx | 12 +- .../expense/form/ExpenseRequestForm.schema.ts | 16 +- .../pages/expense/form/ExpenseRequestForm.tsx | 53 +- .../ExpenseRequestKandangDetailExpense.tsx | 49 +- .../pages/expense/pdf/ExpensePDF.tsx | 14 +- .../adjustment/InventoryAdjustmentTable.tsx | 6 +- .../form/InventoryAdjustmentForm.tsx | 10 +- .../product/InventoryProductTable.tsx | 233 ++++ .../product/detail/InventoryProductDetail.tsx | 118 ++ .../product/detail/StockLogTable.tsx | 81 ++ .../detail/StockProductWarehouseTable.tsx | 65 + .../marketing/form/MarketingForm.schema.ts | 2 +- .../pages/marketing/form/MarketingForm.tsx | 32 +- .../delivery-order/DeliverOrderProduct.tsx | 2 +- .../marketing/pdf/DeliveryOrderExport.tsx | 2 +- .../pages/marketing/pdf/SalesOrderExport.tsx | 2 +- .../supplier/form/SupplierForm.tsx | 1 - .../production/chickin/form/ChickinForm.tsx | 239 ++-- .../chickin/form/tabs/ChickLogsView.tsx | 212 +-- .../chickin/form/tabs/ChickinFormView.tsx | 213 ++-- .../project-flock/ProjectFlockTable.tsx | 250 ++-- .../chickin/ProjectFlockChickinDetail.tsx | 301 ++++- .../closing/ProjectFlockClosingForm.tsx | 305 +++++ .../detail/ProjectFlockDetail.tsx | 476 +++++++ .../form/ProjectFlockForm.schema.ts | 156 ++- .../project-flock/form/ProjectFlockForm.tsx | 1007 +++++++++------ .../form/ProjectFlockKandangTable.tsx | 259 ++-- .../production/recording/RecordingTable.tsx | 144 +-- .../recording/form/RecordingForm.schema.ts | 61 +- .../recording/form/RecordingForm.tsx | 331 ++--- .../recording/grading/form/GradingForm.tsx | 1051 --------------- .../form/TransferToLayingForm.schema.ts | 4 +- .../pages/purchase/PurchaseTable.tsx | 15 +- .../order/PurchaseOrderAcceptApprovalForm.tsx | 73 +- .../form/order/PurchaseOrderForm.schema.ts | 32 +- .../order/PurchaseOrderStaffApprovalForm.tsx | 50 +- .../request/PurchaseRequestForm.schema.ts | 8 +- .../form/request/PurchaseRequestForm.tsx | 3 +- .../purchase/order/PurchaseOrderDetail.tsx | 153 ++- .../purchase/order/PurchaseOrderInvoice.tsx | 8 +- src/config/approval-line.ts | 39 +- src/config/constant.ts | 10 +- src/dummy/closing.dummy.ts | 1136 +++++++++++++++++ src/lib/auth-helper.ts | 25 + src/lib/helper.ts | 8 + src/services/api/closing.ts | 157 ++- src/services/api/expense.ts | 8 +- src/services/api/inventory.ts | 9 +- src/services/api/production.ts | 26 +- .../api/production/project-flock-kandang.ts | 181 ++- src/services/api/production/project-flock.ts | 32 + src/services/http/client.ts | 5 +- src/stores/ui/slices/drawer.slice.ts | 40 + src/stores/ui/ui.store.ts | 2 + src/types/api/closing.d.ts | 94 +- src/types/api/expense.d.ts | 34 +- src/types/api/inventory/product.d.ts | 48 + .../api/production/project-flock-kandang.d.ts | 40 + src/types/api/production/project-flock.d.ts | 12 + src/types/api/production/recording.d.ts | 48 +- src/types/api/purchase/purchase.d.ts | 19 +- src/types/stores.d.ts | 11 +- 112 files changed, 7158 insertions(+), 3238 deletions(-) rename src/app/{production/recording/grading => inventory/product/detail}/layout.tsx (100%) create mode 100644 src/app/inventory/product/detail/page.tsx create mode 100644 src/app/inventory/product/page.tsx create mode 100644 src/app/production/project-flock/closing/layout.tsx create mode 100644 src/app/production/project-flock/closing/page.tsx create mode 100644 src/app/production/project-flock/layout.tsx delete mode 100644 src/app/production/recording/grading/add/page.tsx delete mode 100644 src/app/production/recording/grading/detail/edit/page.tsx delete mode 100644 src/app/production/recording/grading/detail/page.tsx create mode 100644 src/components/FloatingActionsButton.tsx create mode 100644 src/components/dropdown/Dropdown.tsx create mode 100644 src/components/helper/drawer/DrawerHeader.tsx create mode 100644 src/components/pages/closing/ClosingOverheadTabContent.tsx create mode 100644 src/components/pages/closing/ClosingOverheadTable.tsx create mode 100644 src/components/pages/closing/ClosingSapronakCalculationTabContent.tsx create mode 100644 src/components/pages/closing/ClosingSapronakCalculationTable.tsx create mode 100644 src/components/pages/closing/sale/SalesReportTable.tsx create mode 100644 src/components/pages/inventory/product/InventoryProductTable.tsx create mode 100644 src/components/pages/inventory/product/detail/InventoryProductDetail.tsx create mode 100644 src/components/pages/inventory/product/detail/StockLogTable.tsx create mode 100644 src/components/pages/inventory/product/detail/StockProductWarehouseTable.tsx create mode 100644 src/components/pages/production/project-flock/closing/ProjectFlockClosingForm.tsx create mode 100644 src/components/pages/production/project-flock/detail/ProjectFlockDetail.tsx delete mode 100644 src/components/pages/production/recording/grading/form/GradingForm.tsx create mode 100644 src/dummy/closing.dummy.ts create mode 100644 src/lib/auth-helper.ts create mode 100644 src/stores/ui/slices/drawer.slice.ts create mode 100644 src/types/api/inventory/product.d.ts diff --git a/.gitignore b/.gitignore index d86875dd..e47b8ec3 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,6 @@ next-env.d.ts # idea .idea + +# claude +.claude diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c37bfd35..935cac46 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -73,8 +73,8 @@ stages: if [ "$CI_COMMIT_BRANCH" = "development" ]; then ENVIRONMENT_NAME="WEB-LTI-DEV" - elif [ "$CI_COMMIT_BRANCH" = "master" ]; then - ENVIRONMENT_NAME="WEB-LTI-PROD" + elif [ "$CI_COMMIT_BRANCH" = "staging" ]; then + ENVIRONMENT_NAME="WEB-LTI-STAGING" else ENVIRONMENT_NAME="UNKNOWN" fi @@ -122,11 +122,10 @@ build:dev: environment: name: development variables: - # NEXT_PUBLIC_API_BASE_URL: 'https://dev-api-lti.mbugroup.id' - # NEXT_PUBLIC_SSO_LOGIN_URL: 'https://dev-api-sso.mbugroup.id' NEXT_PUBLIC_LTI_URL: 'https://dev-lti-erp.mbugroup.id' NEXT_PUBLIC_SSO_LOGIN_URL: 'https://dev-auth-erp.mbugroup.id' NEXT_PUBLIC_API_BASE_URL: 'https://dev-api-lti.mbugroup.id/api' + NEXT_PUBLIC_CLIENT_ID: 'Lumbung-Telur-Indonesia' deploy:dev: <<: *deploy_template @@ -140,6 +139,32 @@ deploy:dev: environment: name: development url: https://dev-lti-erp.mbugroup.id + +# ====== STAGING (Branch staging) ====== +build:staging: + <<: *build_template + rules: + - if: '$CI_COMMIT_BRANCH == "staging"' + environment: + name: staging + variables: + NEXT_PUBLIC_LTI_URL: 'https://stg-lti-erp.mbugroup.id' + NEXT_PUBLIC_SSO_LOGIN_URL: 'https://stg-auth-erp.mbugroup.id' + NEXT_PUBLIC_API_BASE_URL: 'https://stg-api-lti.mbugroup.id/api' + NEXT_PUBLIC_CLIENT_ID: 'Lumbung-Telur-Indonesia' + +deploy:staging: + <<: *deploy_template + needs: ['build:staging'] + rules: + - if: '$CI_COMMIT_BRANCH == "staging"' + variables: + S3_BUCKET: 'stg-lti-erp.mbugroup.id' + AWS_REGION: 'ap-southeast-3' + CLOUDFRONT_DISTRIBUTION_ID: 'E2V6PPO1AUIU7H' + environment: + name: staging + url: https://stg-lti-erp.mbugroup.id # ====== PRODUCTION ====== # build:production: # <<: *build_template diff --git a/next.config.ts b/next.config.ts index c781a8ac..b2d25eb6 100644 --- a/next.config.ts +++ b/next.config.ts @@ -3,6 +3,7 @@ import type { NextConfig } from 'next'; const nextConfig: NextConfig = { output: 'export', images: { unoptimized: true }, + trailingSlash: true, }; export default nextConfig; diff --git a/package-lock.json b/package-lock.json index 01bff9ef..f0212474 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "clsx": "^2.1.1", "formik": "^2.4.6", "moment": "^2.30.1", - "next": "^15.5.7", + "next": "15.5.7", "react": "19.1.0", "react-day-picker": "^9.11.1", "react-dom": "19.1.0", diff --git a/package.json b/package.json index e1f92aaf..52fc6ce2 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "clsx": "^2.1.1", "formik": "^2.4.6", "moment": "^2.30.1", - "next": "^15.5.7", + "next": "15.5.7", "react": "19.1.0", "react-day-picker": "^9.11.1", "react-dom": "19.1.0", diff --git a/src/app/closing/detail/page.tsx b/src/app/closing/detail/page.tsx index 6225b8dd..1b4ebc45 100644 --- a/src/app/closing/detail/page.tsx +++ b/src/app/closing/detail/page.tsx @@ -19,6 +19,11 @@ const ClosingDetailPage = () => { (id: number) => ClosingApi.getGeneralInfo(id) ); + const { data: salesData, isLoading: isLoadingSales } = useSWR( + closingId ? `sales-${closingId}` : null, + () => ClosingApi.getPenjualan(Number(closingId)) + ); + if (!closingId) { router.back(); @@ -34,14 +39,18 @@ const ClosingDetailPage = () => { return; } + const isLoading = isLoadingClosing || isLoadingSales; + return (
    - {isLoadingClosing && ( - - )} + {isLoading && } - {!isLoadingClosing && isResponseSuccess(closing) && ( - + {!isLoading && isResponseSuccess(closing) && ( + )}
    ); diff --git a/src/app/globals.css b/src/app/globals.css index 3fe7db88..10b48ad5 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -7,26 +7,39 @@ default: false; prefersdark: false; color-scheme: 'light'; - --color-base-100: oklch(98% 0.001 106.423); - --color-base-200: oklch(97% 0.001 106.424); - --color-base-300: oklch(92% 0.003 48.717); - --color-base-content: oklch(22.389% 0.031 278.072); - --color-primary: oklch(60% 0.126 221.723); - --color-primary-content: oklch(100% 0 0); - --color-secondary: oklch(52% 0.105 223.128); - --color-secondary-content: oklch(100% 0 0); - --color-accent: oklch(45% 0.085 224.283); - --color-accent-content: oklch(100% 0 0); - --color-neutral: oklch(39% 0.07 227.392); - --color-neutral-content: oklch(100% 0 0); - --color-info: oklch(58% 0.158 241.966); - --color-info-content: oklch(100% 0 0); - --color-success: oklch(62% 0.194 149.214); - --color-success-content: oklch(100% 0 0); - --color-warning: oklch(85% 0.199 91.936); - --color-warning-content: oklch(0% 0 0); - --color-error: oklch(57% 0.245 27.325); - --color-error-content: oklch(100% 0 0); + + /* Primary Colors */ + --color-primary: oklch(39.4% 0.177 301.9); + --color-primary-content: oklch(87.5% 0.038 274.5); + + /* Secondary Colors */ + --color-secondary: oklch(60.1% 0.258 335.7); + --color-secondary-content: oklch(99.4% 0.007 337.8); + + /* Accent Colors */ + --color-accent: oklch(76.2% 0.155 170.8); + --color-accent-content: oklch(7.2% 0.007 167.6); + + /* Neutral Colors */ + --color-neutral: oklch(22.4% 0.032 258.8); + --color-neutral-content: oklch(87.7% 0.016 257); + + /* Base Colors */ + --color-base-100: oklch(100% 0 0); /* #ffffff */ + --color-base-200: oklch(97.2% 0 0); /* #f2f2f2 */ + --color-base-300: oklch(93.1% 0.002 249.7); /* #e5e6e6 */ + --color-base-content: oklch(18.6% 0.024 257.7); /* #1f2937 */ + + /* Status/Utility Colors */ + --color-info: oklch(67.4% 0.176 238.9); + --color-info-content: oklch(0% 0 0); /* #000000 */ + --color-success: oklch(62.3% 0.147 149); + --color-success-content: oklch(100% 0 0); /* #ffffff */ + --color-warning: oklch(82.2% 0.165 91.9); + --color-warning-content: oklch(0% 0 0); /* #000000 */ + --color-error: oklch(61.8% 0.203 27.8); + --color-error-content: oklch(100% 0 0); /* #fffffff */ + --radius-selector: 0rem; --radius-field: 0.25rem; --radius-box: 0.25rem; diff --git a/src/app/inventory/adjustment/detail/page.tsx b/src/app/inventory/adjustment/detail/page.tsx index acb9f8db..eb13647d 100644 --- a/src/app/inventory/adjustment/detail/page.tsx +++ b/src/app/inventory/adjustment/detail/page.tsx @@ -12,8 +12,6 @@ const DetailInventoryAdjustment = () => { // Ambil data dari router state useEffect(() => { - console.log('Router State'); - console.log(window.history.state); const state = window.history.state?.usr as | { inventoryAdjustment?: InventoryAdjustment } | undefined; @@ -26,9 +24,6 @@ const DetailInventoryAdjustment = () => { const finalData = inventoryAdjustment; - console.log('Final Data'); - console.log(finalData); - if (!finalData) { return (
    diff --git a/src/app/production/recording/grading/layout.tsx b/src/app/inventory/product/detail/layout.tsx similarity index 100% rename from src/app/production/recording/grading/layout.tsx rename to src/app/inventory/product/detail/layout.tsx diff --git a/src/app/inventory/product/detail/page.tsx b/src/app/inventory/product/detail/page.tsx new file mode 100644 index 00000000..6daa7a86 --- /dev/null +++ b/src/app/inventory/product/detail/page.tsx @@ -0,0 +1,50 @@ +'use client'; + +import InventoryProductDetail from '@/components/pages/inventory/product/detail/InventoryProductDetail'; +import { isResponseError, isResponseSuccess } from '@/lib/api-helper'; +import { InventoryProductApi } from '@/services/api/inventory'; +import { useRouter, useSearchParams } from 'next/navigation'; +import useSWR from 'swr'; + +const InventoryProductDetailPage = () => { + const router = useRouter(); + const searchParams = useSearchParams(); + + const inventoryProductId = searchParams.get('inventoryProductId'); + + const { data: inventoryProduct, isLoading: isLoadingInventoryProduct } = + useSWR(inventoryProductId, (id: number) => + InventoryProductApi.getSingle(id) + ); + + if (!inventoryProductId) { + router.back(); + + return ( +
    + +
    + ); + } + + if ( + !isLoadingInventoryProduct && + (!inventoryProduct || isResponseError(inventoryProduct)) + ) { + router.replace('/404'); + return; + } + + return ( +
    + {isLoadingInventoryProduct && ( + + )} + {!isLoadingInventoryProduct && isResponseSuccess(inventoryProduct) && ( + + )} +
    + ); +}; + +export default InventoryProductDetailPage; diff --git a/src/app/inventory/product/page.tsx b/src/app/inventory/product/page.tsx new file mode 100644 index 00000000..4815b8a1 --- /dev/null +++ b/src/app/inventory/product/page.tsx @@ -0,0 +1,11 @@ +import InventoryProductTable from '@/components/pages/inventory/product/InventoryProductTable'; + +const InventoryProductPage = () => { + return ( +
    + +
    + ); +}; + +export default InventoryProductPage; diff --git a/src/app/marketing/page.tsx b/src/app/marketing/page.tsx index 99a80b64..c30ee501 100644 --- a/src/app/marketing/page.tsx +++ b/src/app/marketing/page.tsx @@ -7,4 +7,5 @@ const Marketing = () => {
    ); }; + export default Marketing; diff --git a/src/app/page.tsx b/src/app/page.tsx index db9638df..9cc0177d 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,11 +1,29 @@ -import { redirect } from 'next/navigation'; +'use client'; + +import { useEffect } from 'react'; +import { usePathname, useRouter } from 'next/navigation'; +import { useAuth } from '@/services/hooks/useAuth'; +import { redirectToSSO } from '@/lib/auth-helper'; export default function Home() { - redirect('/dashboard'); + const { user, isLoadingUser } = useAuth(); - return ( -
    -

    LTI ERP

    -
    - ); + const router = useRouter(); + const pathname = usePathname(); + + useEffect(() => { + if (pathname === '/') { + router.replace('/dashboard'); + } + }, [pathname]); + + if (isLoadingUser) { + return ( +
    + +
    + ); + } + + return <>Loading...; } diff --git a/src/app/production/project-flock/add/page.tsx b/src/app/production/project-flock/add/page.tsx index b323b5f3..2eb2c090 100644 --- a/src/app/production/project-flock/add/page.tsx +++ b/src/app/production/project-flock/add/page.tsx @@ -1,10 +1,18 @@ 'use client'; import ProjectFlockForm from '@/components/pages/production/project-flock/form/ProjectFlockForm'; +import React, { useImperativeHandle } from 'react'; +import toast from 'react-hot-toast'; const AddProjectFlock = () => { + // useImperativeHandle(ref, () => ({ + // validate() { + // toast.success('Validating'); + // return false; + // }, + // })); return ( -
    +
    ); diff --git a/src/app/production/project-flock/chickin/add/kandang/page.tsx b/src/app/production/project-flock/chickin/add/kandang/page.tsx index a22039d1..c3a93a80 100644 --- a/src/app/production/project-flock/chickin/add/kandang/page.tsx +++ b/src/app/production/project-flock/chickin/add/kandang/page.tsx @@ -44,7 +44,7 @@ export default function AddChickinKandang() { return ( <> -
    +
    {isLoading && } {!isLoading && isResponseSuccess(projectFlockKandang) && diff --git a/src/app/production/project-flock/chickin/add/page.tsx b/src/app/production/project-flock/chickin/add/page.tsx index bcb4d612..831979cb 100644 --- a/src/app/production/project-flock/chickin/add/page.tsx +++ b/src/app/production/project-flock/chickin/add/page.tsx @@ -10,7 +10,7 @@ const AddChickin = () => { return ( <> -
    +
    diff --git a/src/app/production/project-flock/chickin/page.tsx b/src/app/production/project-flock/chickin/page.tsx index 5d105aab..d40c39a3 100644 --- a/src/app/production/project-flock/chickin/page.tsx +++ b/src/app/production/project-flock/chickin/page.tsx @@ -2,7 +2,7 @@ import ChickinTable from '@/components/pages/production/chickin/ChickinTable'; const Chickin = () => { return ( -
    +
    ); diff --git a/src/app/production/project-flock/closing/layout.tsx b/src/app/production/project-flock/closing/layout.tsx new file mode 100644 index 00000000..7220dfa1 --- /dev/null +++ b/src/app/production/project-flock/closing/layout.tsx @@ -0,0 +1,11 @@ +import SuspenseHelper from '@/components/helper/SuspenseHelper'; + +const Layout = ({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) => { + return {children}; +}; + +export default Layout; diff --git a/src/app/production/project-flock/closing/page.tsx b/src/app/production/project-flock/closing/page.tsx new file mode 100644 index 00000000..d10bdfa2 --- /dev/null +++ b/src/app/production/project-flock/closing/page.tsx @@ -0,0 +1,63 @@ +'use client'; +import ProjectFlockClosingForm from '@/components/pages/production/project-flock/closing/ProjectFlockClosingForm'; +import { isResponseError, isResponseSuccess } from '@/lib/api-helper'; +import { ProjectFlockKandangApi } from '@/services/api/production'; +import { ProjectFlockApi } from '@/services/api/production/project-flock'; +import { useRouter, useSearchParams } from 'next/navigation'; +import useSWR from 'swr'; + +const ProjectFlockClosingPage = () => { + const router = useRouter(); + const searchParams = useSearchParams(); + + const projectFlockId = searchParams.get('projectFlockId'); + const projectFlockKandangId = searchParams.get('projectFlockKandangId'); + + const { data: projectFlockKandang, isLoading: isLoadingProjectFlockKandang } = + useSWR(`get-flock-kandang-id/${projectFlockKandangId}`, () => + ProjectFlockKandangApi.getSingle(parseInt(projectFlockKandangId ?? '')) + ); + + const { data: projectFlock, isLoading: isLoadingProjectFlock } = useSWR( + `get-flock-id/${projectFlockId}`, + () => ProjectFlockApi.getSingle(parseInt(projectFlockId ?? '')) + ); + + if (!projectFlockId || !projectFlockKandangId) { + router.back(); + + return ( +
    + +
    + ); + } + + if ( + !isLoadingProjectFlock && + (!projectFlock || isResponseError(projectFlock)) && + !isLoadingProjectFlockKandang && + (!projectFlockKandang || isResponseError(projectFlockKandang)) + ) { + router.replace('/404'); + return; + } + + return ( +
    + {isLoadingProjectFlock || + (isLoadingProjectFlockKandang && ( + + ))} + {isResponseSuccess(projectFlock) && + isResponseSuccess(projectFlockKandang) && ( + + )} +
    + ); +}; + +export default ProjectFlockClosingPage; diff --git a/src/app/production/project-flock/detail/edit/page.tsx b/src/app/production/project-flock/detail/edit/page.tsx index f55ce601..e5f88f19 100644 --- a/src/app/production/project-flock/detail/edit/page.tsx +++ b/src/app/production/project-flock/detail/edit/page.tsx @@ -37,7 +37,7 @@ const ProjectFlockEdit = () => { } return ( -
    +
    {isLoadingProjectFlock && ( )} diff --git a/src/app/production/project-flock/detail/page.tsx b/src/app/production/project-flock/detail/page.tsx index 91d4dfd5..29a078dd 100644 --- a/src/app/production/project-flock/detail/page.tsx +++ b/src/app/production/project-flock/detail/page.tsx @@ -1,12 +1,13 @@ 'use client'; +import ProjectFlockDetail from '@/components/pages/production/project-flock/detail/ProjectFlockDetail'; import ProjectFlockForm from '@/components/pages/production/project-flock/form/ProjectFlockForm'; import { isResponseError, isResponseSuccess } from '@/lib/api-helper'; import { ProjectFlockApi } from '@/services/api/production/project-flock'; import { useRouter, useSearchParams } from 'next/navigation'; import useSWR from 'swr'; -const ProjectFlockDetail = () => { +const ProjectFlockDetailPage = () => { const router = useRouter(); const searchParams = useSearchParams(); @@ -37,19 +38,17 @@ const ProjectFlockDetail = () => { } return ( -
    +
    {isLoadingProjectFlock && ( )} {isResponseSuccess(projectFlock) && ( - + )}
    ); }; -export default ProjectFlockDetail; +export default ProjectFlockDetailPage; +ProjectFlockDetail; +ProjectFlockDetail; diff --git a/src/app/production/project-flock/layout.tsx b/src/app/production/project-flock/layout.tsx new file mode 100644 index 00000000..3e9a65b7 --- /dev/null +++ b/src/app/production/project-flock/layout.tsx @@ -0,0 +1,60 @@ +'use client'; + +import { usePathname, useRouter } from 'next/navigation'; +import Drawer from '@/components/Drawer'; +import React, { ReactNode } from 'react'; +import ProjectFlockTable from '@/components/pages/production/project-flock/ProjectFlockTable'; +import { useUiStore } from '@/stores/ui/ui.store'; + +export default function ProjectFlockLayout({ + children, +}: { + children: ReactNode; +}) { + const pathname = usePathname(); + const router = useRouter(); + const toggleValidate = useUiStore((s) => s.toggleValidate); + + const isAdd = pathname.includes('/add'); + const isEdit = pathname.includes('/detail/edit'); + const isDetail = pathname.includes('/detail'); + const isChickin = pathname.includes('/chickin/add/kandang'); + const isClosing = pathname.includes('/closing'); + + const isOpen = isAdd || isEdit || isDetail || isChickin || isClosing; + + const handleBackdropClick = () => { + const unsub = useUiStore.getState().subscribeIsValid((isValid) => { + if (isValid) { + unsub(); // berhenti listen + router.push('/production/project-flock'); + } + }); + + toggleValidate(); + }; + + return ( + <> + {/* List page always rendered */} +
    + !isOpen && router.push('/production/project-flock')} + /> +
    + + {/* Render Drawer only on /add */} + { + if (!v) router.push('/production/project-flock'); + }} + closeOnBackdropClick={isDetail ? true : false} + onBackdropClick={handleBackdropClick} + variant='right' + zIndex='99999' + sidebarContent={isOpen &&
    {children}
    } + /> + + ); +} diff --git a/src/app/production/project-flock/page.tsx b/src/app/production/project-flock/page.tsx index 79feb41f..e93c6bc4 100644 --- a/src/app/production/project-flock/page.tsx +++ b/src/app/production/project-flock/page.tsx @@ -2,7 +2,7 @@ import ProjectFlockTable from '@/components/pages/production/project-flock/Proje const ProjectFlock = () => { return ( -
    +
    ); diff --git a/src/app/production/recording/detail/edit/page.tsx b/src/app/production/recording/detail/edit/page.tsx index de53a354..ad6c6a9a 100644 --- a/src/app/production/recording/detail/edit/page.tsx +++ b/src/app/production/recording/detail/edit/page.tsx @@ -14,7 +14,7 @@ const RecordingEdit = () => { const { data: recording, isLoading: isLoadingRecording } = useSWR( recordingId, - (id: number) => RecordingApi.getSingle(id) // Gunakan RecordingApi + (id: string) => RecordingApi.getSingle(parseInt(id)) ); if (!recordingId) { diff --git a/src/app/production/recording/detail/page.tsx b/src/app/production/recording/detail/page.tsx index 77b82a68..194365a3 100644 --- a/src/app/production/recording/detail/page.tsx +++ b/src/app/production/recording/detail/page.tsx @@ -14,7 +14,7 @@ const RecordingDetail = () => { const { data: recording, isLoading: isLoadingRecording } = useSWR( recordingId, - (id: number) => RecordingApi.getSingle(id) + (id: string) => RecordingApi.getSingle(parseInt(id)) ); if (!recordingId) { diff --git a/src/app/production/recording/grading/add/page.tsx b/src/app/production/recording/grading/add/page.tsx deleted file mode 100644 index 9b918d98..00000000 --- a/src/app/production/recording/grading/add/page.tsx +++ /dev/null @@ -1,49 +0,0 @@ -'use client'; - -import { useRouter, useSearchParams } from 'next/navigation'; -import useSWR from 'swr'; -import GradingForm from '@/components/pages/production/recording/grading/form/GradingForm'; -import { RecordingApi } from '@/services/api/production'; -import { isResponseSuccess } from '@/lib/api-helper'; - -const AddGrading = () => { - const router = useRouter(); - const searchParams = useSearchParams(); - - const recordingId = searchParams.get('recording_id'); - - const { data: recording, isLoading: isLoadingRecording } = useSWR( - recordingId && recordingId !== 'new' ? [recordingId] : null, - ([id]) => RecordingApi.getSingle(parseInt(id)) - ); - - if ( - recordingId && - recordingId !== 'new' && - !isLoadingRecording && - (!recording || !isResponseSuccess(recording)) - ) { - router.replace('/404'); - return; - } - - return ( -
    - {recordingId && recordingId !== 'new' && isLoadingRecording && ( - - )} - {(!recordingId || - recordingId === 'new' || - (!isLoadingRecording && recording && isResponseSuccess(recording))) && ( - - )} -
    - ); -}; - -export default AddGrading; diff --git a/src/app/production/recording/grading/detail/edit/page.tsx b/src/app/production/recording/grading/detail/edit/page.tsx deleted file mode 100644 index 0a65f528..00000000 --- a/src/app/production/recording/grading/detail/edit/page.tsx +++ /dev/null @@ -1,53 +0,0 @@ -'use client'; - -import { useRouter, useSearchParams } from 'next/navigation'; -import useSWR from 'swr'; -import GradingForm from '@/components/pages/production/recording/grading/form/GradingForm'; -import { RecordingApi } from '@/services/api/production'; -import { isResponseSuccess } from '@/lib/api-helper'; - -const EditGrading = () => { - const router = useRouter(); - const searchParams = useSearchParams(); - - const recordingId = searchParams.get('recordingId'); - const gradingId = searchParams.get('gradingId'); - - const { data: recording, isLoading: isLoadingRecording } = useSWR( - recordingId ? [recordingId] : null, - ([id]) => RecordingApi.getSingle(parseInt(id)) - ); - - if (!recordingId) { - router.back(); - - return ( -
    - -
    - ); - } - - if (!isLoadingRecording && (!recording || !isResponseSuccess(recording))) { - router.replace('/404'); - return; - } - - return ( -
    - {isLoadingRecording && ( - - )} - {!isLoadingRecording && recording && isResponseSuccess(recording) && ( - egg.id === parseInt(gradingId || '0') - )} - /> - )} -
    - ); -}; - -export default EditGrading; diff --git a/src/app/production/recording/grading/detail/page.tsx b/src/app/production/recording/grading/detail/page.tsx deleted file mode 100644 index 6a5fbcba..00000000 --- a/src/app/production/recording/grading/detail/page.tsx +++ /dev/null @@ -1,52 +0,0 @@ -'use client'; - -import { useRouter, useSearchParams } from 'next/navigation'; -import useSWR from 'swr'; -import GradingForm from '@/components/pages/production/recording/grading/form/GradingForm'; -import { RecordingApi } from '@/services/api/production'; -import { isResponseSuccess } from '@/lib/api-helper'; - -const DetailGrading = () => { - const router = useRouter(); - const searchParams = useSearchParams(); - - const gradingId = searchParams.get('gradingId'); - - const { data: grading, isLoading: isLoadingGrading } = useSWR( - gradingId ? [gradingId] : null, - ([id]) => RecordingApi.getSingle(parseInt(id)) - ); - - if (!gradingId) { - router.back(); - - return ( -
    - -
    - ); - } - - if (!isLoadingGrading && (!grading || !isResponseSuccess(grading))) { - router.replace('/404'); - return; - } - - return ( -
    - {isLoadingGrading && ( - - )} - {!isLoadingGrading && grading && isResponseSuccess(grading) && ( - egg.id === parseInt(gradingId) - )} - /> - )} -
    - ); -}; - -export default DetailGrading; diff --git a/src/components/Card.tsx b/src/components/Card.tsx index d3ff80b1..ff4c35f2 100644 --- a/src/components/Card.tsx +++ b/src/components/Card.tsx @@ -4,7 +4,7 @@ import { HTMLAttributes, ReactNode, useState } from 'react'; import { cn } from '@/lib/helper'; import Image from 'next/image'; -import Collapse from './Collapse'; +import Collapse from '@/components/Collapse'; import { Icon } from '@iconify/react'; export interface CardProps diff --git a/src/components/Drawer.tsx b/src/components/Drawer.tsx index f0efb417..17b8a56f 100644 --- a/src/components/Drawer.tsx +++ b/src/components/Drawer.tsx @@ -10,28 +10,102 @@ interface DrawerProps { open: boolean; setOpen: (newOpenState: boolean) => void; openOnLarge?: boolean; + variant?: 'sidebar' | 'left' | 'right'; + zIndex?: string; + className?: DrawerClassName; + onBackdropClick?: () => void; + closeOnBackdropClick?: boolean; } +type DrawerClassName = { + drawer?: string; + drawerContent?: string; + drawerSide?: string; + drawerOverlay?: string; + drawerSidebarContent?: string; +}; + const Drawer = ({ children, sidebarContent, open, setOpen, openOnLarge, + variant = 'sidebar', + zIndex = '20', + className, + onBackdropClick, + closeOnBackdropClick = true, }: DrawerProps) => { + const getDrawerClassNames = (): DrawerClassName => { + const baseClassNames = { + drawer: 'drawer', + drawerContent: 'drawer-content', + drawerSide: 'drawer-side', + drawerOverlay: 'drawer-overlay', + drawerSidebarContent: 'min-h-full bg-base-100', + }; + + if (variant === 'sidebar') { + return { + ...baseClassNames, + drawerSidebarContent: cn( + baseClassNames.drawerSidebarContent, + 'w-full max-w-[300px] lg:w-[300px]' + ), + }; + } else if (variant === 'right') { + return { + ...baseClassNames, + drawer: cn(baseClassNames.drawer, 'drawer-end'), + drawerSide: cn( + baseClassNames.drawerSide, + 'border-l border-solid border-gray-200 drawer-side w-screen top-0 right-0 fixed z-21' + ), + drawerSidebarContent: cn( + baseClassNames.drawerSidebarContent, + 'w-full min-w-120 sm:w-fit' + ), + }; + } else if (variant === 'left') { + return { + ...baseClassNames, + drawerSide: cn( + baseClassNames.drawerSide, + 'border-l border-solid border-gray-200 drawer-side w-screen top-0 right-0 fixed z-21' + ), + drawerSidebarContent: cn( + baseClassNames.drawerSidebarContent, + 'w-full min-w-120 sm:w-fit' + ), + }; + } + return baseClassNames; // Fallback for default or unknown variant + }; + + const varianClassName = getDrawerClassNames(); + const toggleDrawer = () => { setOpen(!open); }; const closeDrawer = () => { - setOpen(false); + if (closeOnBackdropClick) { + setOpen(false); + } + onBackdropClick && onBackdropClick(); }; return (
    -
    {children}
    + {/* Drawer Content */} +
    + {children} +
    -
    + {/* Drawer Side */} +
    -
    -
    -
    - + +
    + +
    -
    - - + } + contentClassName='w-52 mt-3' + > + -
    +
    ); diff --git a/src/components/Table.tsx b/src/components/Table.tsx index 970c5bc1..9feb33e2 100644 --- a/src/components/Table.tsx +++ b/src/components/Table.tsx @@ -14,6 +14,7 @@ import { SortingState, OnChangeFn, Row, + HeaderContext, } from '@tanstack/react-table'; import { rankItem } from '@tanstack/match-sorter-utils'; import { Icon } from '@iconify/react'; @@ -31,6 +32,9 @@ interface TableClassNames { tableBodyClassName?: string; bodyRowClassName?: string; bodyColumnClassName?: string; + tableFooterClassName?: string; + footerRowClassName?: string; + footerColumnClassName?: string; paginationClassName?: string; } @@ -53,6 +57,7 @@ export interface TableProps { rowSelection?: Record; setRowSelection?: OnChangeFn>; enableRowSelection?: boolean | ((row: Row) => boolean); + renderFooter?: boolean; withCheckbox?: boolean; rowOptions?: number[]; } @@ -67,18 +72,22 @@ const emptyContentDefaultValue = (
    ); -const TABLE_DEFAULT_STYLING = { +export const TABLE_DEFAULT_STYLING = { containerClassName: 'w-full mb-20', tableWrapperClassName: 'overflow-x-auto border border-solid border-base-content/10 rounded-lg', tableClassName: 'font-inter w-full table-auto text-sm font-medium', tableHeaderClassName: '', headerRowClassName: '', - headerColumnClassName: 'px-4 py-3 text-base-content/50', + headerColumnClassName: + 'px-4 py-3 border-base-content/10 text-base-content/50', tableBodyClassName: '', - bodyRowClassName: 'border-t border-t-base-content/10', + bodyRowClassName: 'border-t border-base-content/10', bodyColumnClassName: 'px-4 py-3 text-base-content', paginationClassName: '', + tableFooterClassName: 'font-semibold border-base-content/10', + footerRowClassName: 'bg-base-200 border-t-2 border-base-content/10', + footerColumnClassName: 'p-4 text-base-content whitespace-nowrap', }; const Table = ({ @@ -100,6 +109,7 @@ const Table = ({ rowSelection, setRowSelection, enableRowSelection, + renderFooter = false, withCheckbox = false, rowOptions = [10, 20, 50, 100], }: TableProps) => { @@ -214,58 +224,82 @@ const Table = ({ key={headerGroup.id} className={tableClassNames.headerRowClassName} > - {headerGroup.headers.map((header) => ( -
    - ))} + {header.column.getCanSort() && ( +
    + + +
    + )} + + + ); + })} ))} @@ -290,6 +324,28 @@ const Table = ({ ))} + + {renderFooter && ( + + {table.getAllLeafColumns().map((column) => ( + + ))} + + )} +
    +
    + {formatTitleCase(rowData.group_name ?? '-')} +
    +
    - {formatTitleCase(rowData.group_name ?? '-')} + {formatCurrency(rowData.rp_per_bird ?? 0)} +
    +
    +
    + {formatCurrency(rowData.rp_per_kg ?? 0)} +
    +
    +
    + {formatCurrency(rowData.amount ?? 0)}
    -
    - {formatTitleCase(rowData.label ?? '-')} -
    -
    -
    - {formatCurrency(rowData.rp_per_bird ?? 0)} -
    -
    -
    - {formatCurrency(rowData.rp_per_kg ?? 0)} -
    -
    -
    - {formatCurrency(rowData.amount ?? 0)} -
    -
    - -
    - {formatTitleCase(rowData.group_name ?? '-')} -
    -
    -
    - {flexRender( - header.column.columnDef.header, - header.getContext() + {headerGroup.headers.map((header) => { + const columnRelativeDepth = + header.depth - header.column.depth; + if ( + !header.isPlaceholder && + columnRelativeDepth > 1 && + header.id === header.column.id + ) { + return null; + } + let rowSpan = 1; + if (header.isPlaceholder) { + const leafs = header.getLeafHeaders(); + rowSpan = leafs[leafs.length - 1].depth - header.depth; + } + return ( +
    1, + }, + tableClassNames.headerColumnClassName )} + > +
    1, + })} + > + {flexRender( + header.column.columnDef.header, + header.getContext() + )} - {header.column.getCanSort() && ( -
    - - -
    - )} -
    -
    + {column.columnDef.footer && + flexRender(column.columnDef.footer, { + column, + header: column.columnDef, + table, + } as HeaderContext)} +
    diff --git a/src/components/dropdown/Dropdown.tsx b/src/components/dropdown/Dropdown.tsx new file mode 100644 index 00000000..4489231d --- /dev/null +++ b/src/components/dropdown/Dropdown.tsx @@ -0,0 +1,116 @@ +'use client'; + +import { ReactNode, useRef, useEffect, useState } from 'react'; +import { cn } from '@/lib/helper'; + +interface DropdownProps { + trigger: ReactNode; + children: ReactNode; + position?: + | 'top' + | 'bottom' + | 'left' + | 'right' + | 'top-start' + | 'top-end' + | 'bottom-start' + | 'bottom-end' + | 'left-start' + | 'left-end' + | 'right-start' + | 'right-end'; + align?: 'start' | 'center' | 'end'; + hover?: boolean; + className?: string; + contentClassName?: string; +} + +const Dropdown = ({ + trigger, + children, + position = 'bottom', + align = 'start', + hover = false, + className, + contentClassName, +}: DropdownProps) => { + const [isOpen, setIsOpen] = useState(false); + const dropdownRef = useRef(null); + + // Handle click outside to close dropdown + useEffect(() => { + const handleClickOutside = (event: MouseEvent) => { + if ( + dropdownRef.current && + !dropdownRef.current.contains(event.target as Node) + ) { + setIsOpen(false); + } + }; + + if (isOpen) { + document.addEventListener('mousedown', handleClickOutside); + } + + return () => { + document.removeEventListener('mousedown', handleClickOutside); + }; + }, [isOpen]); + + // Build position classes + const getPositionClasses = () => { + const classes: string[] = []; + + // Handle combined positions like 'top-start' + if (position.includes('-')) { + const [pos, al] = position.split('-'); + classes.push(`dropdown-${pos}`); + classes.push(`dropdown-${al}`); + } else { + classes.push(`dropdown-${position}`); + if (align !== 'start') { + classes.push(`dropdown-${align}`); + } + } + + return classes.join(' '); + }; + + const handleToggle = (e: React.MouseEvent) => { + e.preventDefault(); + e.stopPropagation(); + // alert('clicked'); + setIsOpen(!isOpen); + }; + + return ( +
    + {/* Trigger Button */} +
    + {trigger} +
    + + {/* Dropdown Content - Only render when open */} + {isOpen && ( +
    setIsOpen(false)} // Close on item click + > + {children} +
    + )} +
    + ); +}; + +export default Dropdown; diff --git a/src/components/helper/RequireAuth.tsx b/src/components/helper/RequireAuth.tsx index 119d74cb..65adf48c 100644 --- a/src/components/helper/RequireAuth.tsx +++ b/src/components/helper/RequireAuth.tsx @@ -1,56 +1,61 @@ 'use client'; import { ReactNode, useEffect } from 'react'; -import { useRouter } from 'next/navigation'; -import useSWRImmutable from 'swr/immutable'; +import useSWR from 'swr'; import { useAuth } from '@/services/hooks/useAuth'; import { httpClientFetcher, SWRHttpKey } from '@/services/http/client'; import { isResponseError, isResponseSuccess } from '@/lib/api-helper'; import { BaseApiResponse, GetMeResponse } from '@/types/api/api-general'; import { AxiosError } from 'axios'; +import { redirectToSSO } from '@/lib/auth-helper'; interface RequireAuthProps { children?: ReactNode; } const RequireAuth = ({ children }: RequireAuthProps) => { - const router = useRouter(); - const { setUser, setIsLoadingUser } = useAuth(); + const { user, setUser, setIsLoadingUser } = useAuth(); const { data: userResponse, isLoading: isLoadingUserResponse, error: userErrorResponse, - } = useSWRImmutable< + } = useSWR< GetMeResponse & { ok?: boolean }, AxiosError, SWRHttpKey >('/sso/userinfo', httpClientFetcher, { shouldRetryOnError: false, - revalidateOnFocus: false, - revalidateOnReconnect: false, - refreshInterval: 0, }); - useEffect(() => { - setIsLoadingUser(isLoadingUserResponse); - }, [isLoadingUserResponse, setIsLoadingUser]); - useEffect(() => { if (isResponseSuccess(userResponse)) { setUser(userResponse.data); - } else if ( - isResponseError(userErrorResponse?.response?.data) && - typeof window !== 'undefined' - ) { - router.replace( - `${process.env.NEXT_PUBLIC_SSO_LOGIN_URL as string}?redirect_url=${window.location.href}` - ); } - }, [userResponse, userErrorResponse, setIsLoadingUser, setUser]); + }, [userResponse, setUser]); - if (isLoadingUserResponse && !userResponse && !userErrorResponse) { + // Explicitly handle 401 redirect from the component level + useEffect(() => { + if ( + isResponseError(userResponse) && + userErrorResponse?.response?.status === 401 + ) { + // Clear cache to prevent stale data from rendering children + // mutate('/sso/userinfo', undefined, { revalidate: false }); // Optional: if using global mutate + setUser(undefined); + redirectToSSO(); + } + }, [userErrorResponse, setUser, userResponse]); + + useEffect(() => { + setIsLoadingUser(isLoadingUserResponse); + }, [isLoadingUserResponse]); + + if ( + (isLoadingUserResponse && !userResponse && !userErrorResponse) || + (!userResponse && !userErrorResponse) + ) { return (
    @@ -58,7 +63,25 @@ const RequireAuth = ({ children }: RequireAuthProps) => { ); } - return <>{isResponseSuccess(userResponse) && children}; + if (userErrorResponse) { + return ( +
    +

    Authentication Failed

    +

    + Please try refreshing the page or contact support if the problem + persists. +

    + +
    + ); + } + + return <>{isResponseSuccess(userResponse) && user && children}; }; export default RequireAuth; diff --git a/src/components/helper/drawer/DrawerHeader.tsx b/src/components/helper/drawer/DrawerHeader.tsx new file mode 100644 index 00000000..f9d70a04 --- /dev/null +++ b/src/components/helper/drawer/DrawerHeader.tsx @@ -0,0 +1,104 @@ +'use client'; + +import { Icon } from '@iconify/react'; +import Link from 'next/link'; +import { ReactNode } from 'react'; +import { cn } from '@/lib/helper'; + +export interface DrawerHeaderProps { + // Left side props + leftIcon?: string; + leftIconSize?: number; + leftIconHref?: string; + leftIconOnClick?: () => void; + leftIconClassName?: string; + + // Subtitle/label props + subtitle?: string | ReactNode; + subtitleClassName?: string; + + // Right side actions (children) + children?: ReactNode; + + // Container props + className?: string; + showDivider?: boolean; +} + +const DrawerHeader = ({ + leftIcon = 'mdi:close', + leftIconSize = 24, + leftIconHref, + leftIconOnClick, + leftIconClassName, + subtitle, + subtitleClassName, + children, + className, + showDivider = true, +}: DrawerHeaderProps) => { + const renderLeftIcon = () => { + const iconElement = ( + + ); + + if (leftIconHref) { + return ( + + {iconElement} + + ); + } + + if (leftIconOnClick) { + return ( + + ); + } + + return iconElement; + }; + + return ( +
    + {/* Left Side */} +
    + {renderLeftIcon()} + + {showDivider && subtitle && ( +
    + )} + + {subtitle && ( +
    + {subtitle} +
    + )} +
    + + {/* Right Side Actions */} + {children && ( +
    + {children} +
    + )} +
    + ); +}; + +export default DrawerHeader; diff --git a/src/components/input/DateInput.tsx b/src/components/input/DateInput.tsx index 77267090..2d55fe6d 100644 --- a/src/components/input/DateInput.tsx +++ b/src/components/input/DateInput.tsx @@ -7,11 +7,11 @@ import { useState, } from 'react'; import { cn, formatDate } from '@/lib/helper'; -import Modal, { useModal } from '../Modal'; import { DateRange, DayPicker, Matcher } from 'react-day-picker'; import 'react-day-picker/dist/style.css'; -import Button from '../Button'; import { Icon } from '@iconify/react'; +import Modal, { useModal } from '@/components/Modal'; +import Button from '@/components/Button'; export interface DateInputProps { label?: string; diff --git a/src/components/input/RadioInput.tsx b/src/components/input/RadioInput.tsx index 71a731aa..e508e7ba 100644 --- a/src/components/input/RadioInput.tsx +++ b/src/components/input/RadioInput.tsx @@ -1,6 +1,11 @@ 'use client'; -import { ChangeEventHandler, ReactNode } from 'react'; +import { + ChangeEventHandler, + ReactNode, + createContext, + useContext, +} from 'react'; import { cn } from '@/lib/helper'; export interface RadioOption { @@ -8,37 +13,74 @@ export interface RadioOption { value: string; } -export interface RadioInputProps { - label?: string; - bottomLabel?: string; +// DaisyUI Radio Colors +export type RadioColor = + | 'neutral' + | 'primary' + | 'secondary' + | 'accent' + | 'success' + | 'warning' + | 'info' + | 'error'; + +// DaisyUI Radio Sizes +export type RadioSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl'; + +// Context untuk RadioGroup +interface RadioGroupContextValue { name: string; value?: string; - options: RadioOption[]; - variant?: string; - className?: { - wrapper?: string; - label?: string; - radioWrapper?: string; - radio?: string; - }; - isError?: boolean; - isValid?: boolean; - errorMessage?: string; - required?: boolean; + color?: RadioColor; + size?: RadioSize; disabled?: boolean; - startAdornment?: ReactNode; - endAdornment?: ReactNode; onChange?: ChangeEventHandler; onBlur?: (e: React.FocusEvent) => void; } -const RadioInput = ({ +const RadioGroupContext = createContext( + undefined +); + +const useRadioGroup = () => { + const context = useContext(RadioGroupContext); + if (!context) { + throw new Error('RadioGroupItem must be used within RadioGroup'); + } + return context; +}; + +// RadioGroup Component +export interface RadioGroupProps { + label?: string; + bottomLabel?: string; + name: string; + value?: string; + options?: RadioOption[]; + color?: RadioColor; + size?: RadioSize; + className?: { + wrapper?: string; + label?: string; + radioWrapper?: string; + }; + isError?: boolean; + errorMessage?: string; + required?: boolean; + disabled?: boolean; + onChange?: ChangeEventHandler; + onBlur?: (e: React.FocusEvent) => void; + children?: ReactNode; +} + +export const RadioGroup = ({ label, bottomLabel, name, value, options, - variant = 'radio-primary', + color = 'primary', + size = 'md', className, isError, errorMessage, @@ -46,68 +88,125 @@ const RadioInput = ({ disabled = false, onChange, onBlur, -}: RadioInputProps) => { - return ( -
    - {/* Label atas */} - {label && ( - - )} + children, +}: RadioGroupProps) => { + const contextValue: RadioGroupContextValue = { + name, + value, + color, + size, + disabled, + onChange, + onBlur, + }; - {/* Daftar opsi radio */} -
    - {options.map((option) => ( + return ( + +
    + {/* Label atas */} + {label && ( - ))} + )} + + {/* Daftar opsi radio */} +
    + {/* Jika options diberikan, render otomatis */} + {options && + options.map((option) => ( + + ))} + + {/* Atau gunakan children untuk custom rendering */} + {children} +
    + + {/* Label bawah */} + {!isError && bottomLabel && ( +

    {bottomLabel}

    + )} + + {/* Pesan error */} + {isError && errorMessage && ( +

    {errorMessage}

    + )}
    - - {/* Label bawah */} - {!isError && bottomLabel && ( -

    {bottomLabel}

    - )} - - {/* Pesan error */} - {isError && errorMessage && ( -

    {errorMessage}

    - )} -
    + ); }; -export default RadioInput; +// RadioGroupItem Component +export interface RadioGroupItemProps { + value: string; + label?: string; + className?: string; + disabled?: boolean; + color?: RadioColor; + size?: RadioSize; +} + +export const RadioGroupItem = ({ + value, + label, + className, + disabled: itemDisabled, + color: itemColor, + size: itemSize, +}: RadioGroupItemProps) => { + const { + name, + value: groupValue, + color: groupColor, + size: groupSize, + disabled: groupDisabled, + onChange, + onBlur, + } = useRadioGroup(); + + const isDisabled = itemDisabled ?? groupDisabled; + const radioColor = itemColor ?? groupColor; + const radioSize = itemSize ?? groupSize; + + return ( + + ); +}; diff --git a/src/components/pages/ApprovalSteps.tsx b/src/components/pages/ApprovalSteps.tsx index d5dcabc0..6ae7c13a 100644 --- a/src/components/pages/ApprovalSteps.tsx +++ b/src/components/pages/ApprovalSteps.tsx @@ -144,33 +144,45 @@ const ApprovalSteps = ({ approvals }: ApprovalStepsProps) => { export const formatGroupedApprovalsToApprovalSteps = ( approvalLine: ApprovalLine, - groupedApprovals: BaseGroupedApproval[], - latestApproval: BaseApproval + groupedApprovals: BaseGroupedApproval[] | undefined, + latestApproval: BaseApproval | undefined ): ApprovalStepsProps['approvals'] => { const formattedApprovalSteps: ApprovalStepsProps['approvals'] = approvalLine.map((approvalLineItem) => { - const approvalGroup = groupedApprovals.find( + const approvalGroup = groupedApprovals?.find( (approvalGroupItem) => approvalGroupItem.step_number === approvalLineItem.step_number ); const currentStepNumber = approvalLineItem.step_number; const lastStepNumber = - groupedApprovals[groupedApprovals.length - 1]?.step_number; + groupedApprovals?.[groupedApprovals.length - 1]?.step_number; - const isLatestApprovalRejected = latestApproval.action === 'REJECTED'; + const isLatestApprovalRejected = latestApproval?.action === 'REJECTED'; - if (!approvalGroup && currentStepNumber <= lastStepNumber) { - throw new Error( - `Approval dengan ${approvalLineItem.step_name} tidak ditemukan!` - ); + // Only throw error if we have a valid lastStepNumber to compare against + if ( + !approvalGroup && + lastStepNumber !== undefined && + currentStepNumber <= lastStepNumber + ) { + // throw new Error( + // `Approval dengan ${approvalLineItem.step_name} tidak ditemukan!` + // ); } if (!approvalGroup) { - const isWaiting = currentStepNumber === latestApproval.step_number + 1; + // Check if this step is waiting (only if we have latestApproval) + const isWaiting = + latestApproval?.step_number !== undefined && + currentStepNumber === latestApproval.step_number + 1; + + // Check if previous approval was rejected const isPreviousApprovalRejected = - groupedApprovals[groupedApprovals.length - 1].approvals[0].action === - 'REJECTED'; + groupedApprovals && + groupedApprovals.length > 0 && + groupedApprovals[groupedApprovals.length - 1]?.approvals?.[0] + ?.action === 'REJECTED'; return { name: approvalLineItem.step_name, @@ -184,7 +196,11 @@ export const formatGroupedApprovalsToApprovalSteps = ( let approvalStatus: ApprovalStepStatus = 'IDLE'; - if (approvalGroup.step_number <= latestApproval.step_number) { + // Only compare if latestApproval and its step_number exist + if ( + latestApproval?.step_number !== undefined && + approvalGroup.step_number <= latestApproval.step_number + ) { if (approvalGroup.approvals) { switch (approvalGroup?.approvals[0]?.action) { case 'CREATED': @@ -203,6 +219,7 @@ export const formatGroupedApprovalsToApprovalSteps = ( } } } else if ( + latestApproval?.step_number !== undefined && approvalGroup.step_number === latestApproval.step_number + 1 && !isLatestApprovalRejected ) { @@ -353,14 +370,33 @@ const useApprovalSteps = ({ // Formatting Akhir const approvals = useMemo(() => { - if (isLoading || !approvalLines.length || !latestApproval) { + if (isLoading || !approvalLines.length) { return []; } + + // Try to derive latestApproval from groupedApprovals if not provided + let effectiveLatestApproval = latestApproval; + + if (!effectiveLatestApproval && groupedApprovals.length > 0) { + // Get all approvals from grouped data + const allApprovals = groupedApprovals.flatMap((group) => group.approvals); + + if (allApprovals.length > 0) { + // Use the most recent approval (last in array) + effectiveLatestApproval = allApprovals[allApprovals.length - 1]; + } + } + + // If still no latestApproval, return empty + if (!effectiveLatestApproval) { + return []; + } + try { return formatGroupedApprovalsToApprovalSteps( approvalLines, groupedApprovals, - latestApproval + effectiveLatestApproval ); } catch (error) { console.warn('Gagal memformat approval steps:', error); diff --git a/src/components/pages/closing/ClosingDetail.tsx b/src/components/pages/closing/ClosingDetail.tsx index f917cfd8..b814986b 100644 --- a/src/components/pages/closing/ClosingDetail.tsx +++ b/src/components/pages/closing/ClosingDetail.tsx @@ -9,14 +9,25 @@ import ClosingGeneralInformationTable from '@/components/pages/closing/ClosingGe import ClosingSapronakTabContent from '@/components/pages/closing/ClosingSapronakTabContent'; import ClosingProductionDataTabContent from '@/components/pages/closing/ClosingProductionDataTabContent'; -import { ClosingGeneralInformation } from '@/types/api/closing'; +import { + ClosingGeneralInformation, + BaseClosingSales, +} from '@/types/api/closing'; +import ClosingSapronakCalculationTabContent from '@/components/pages/closing/ClosingSapronakCalculationTabContent'; +import ClosingOverheadTabContent from '@/components/pages/closing/ClosingOverheadTabContent'; +import SalesReportTable from '@/components/pages/closing/sale/SalesReportTable'; interface ClosingDetailProps { id: number; initialValue?: ClosingGeneralInformation; + salesData?: BaseClosingSales; } -const ClosingDetail: React.FC = ({ id, initialValue }) => { +const ClosingDetail: React.FC = ({ + id, + initialValue, + salesData, +}) => { const [activeTab, setActiveTab] = useState('sapronak'); const closingDetailTabs = useMemo(() => { @@ -29,17 +40,17 @@ const ClosingDetail: React.FC = ({ id, initialValue }) => { { id: 'perhitunganSapronak', label: 'Perhitungan Sapronak', - content: 'Perhitungan Sapronak', + content: , }, { id: 'penjualan', label: 'Penjualan', - content: 'Penjualan', + content: , }, { id: 'overhead', label: 'Overhead', - content: 'Overhead', + content: , }, { id: 'hppEkspedisi', diff --git a/src/components/pages/closing/ClosingOverheadTabContent.tsx b/src/components/pages/closing/ClosingOverheadTabContent.tsx new file mode 100644 index 00000000..458cff0f --- /dev/null +++ b/src/components/pages/closing/ClosingOverheadTabContent.tsx @@ -0,0 +1,19 @@ +import ClosingOverheadTable from '@/components/pages/closing/ClosingOverheadTable'; + +interface ClosingOverheadTabContentProps { + projectFlockId: number; +} + +const ClosingOverheadTabContent = ({ + projectFlockId, +}: ClosingOverheadTabContentProps) => { + return ( +
    + {projectFlockId && ( + + )} +
    + ); +}; + +export default ClosingOverheadTabContent; diff --git a/src/components/pages/closing/ClosingOverheadTable.tsx b/src/components/pages/closing/ClosingOverheadTable.tsx new file mode 100644 index 00000000..3df0844d --- /dev/null +++ b/src/components/pages/closing/ClosingOverheadTable.tsx @@ -0,0 +1,162 @@ +import Card from '@/components/Card'; +import Table, { TABLE_DEFAULT_STYLING } from '@/components/Table'; +import { isResponseSuccess } from '@/lib/api-helper'; +import { cn, formatCurrency, formatDate, formatNumber } from '@/lib/helper'; +import { ClosingApi } from '@/services/api/closing'; +import { Overhead, OverheadTotal } from '@/types/api/closing'; +import { ColumnDef } from '@tanstack/react-table'; +import { useMemo } from 'react'; +import useSWR from 'swr'; + +interface ClosingOverheadTableProps { + type?: 'detail'; + projectFlockId: number; +} + +const ClosingOverheadTable = ({ + type, + projectFlockId, +}: ClosingOverheadTableProps) => { + const { data: overhead, isLoading: isLoadingOverhead } = useSWR( + `${ClosingApi.basePath}/${projectFlockId}/overhead`, + () => ClosingApi.getOverhead(projectFlockId), + { + keepPreviousData: true, + } + ); + + // Helper function to create columns with footer support + const createColumns = (total?: OverheadTotal): ColumnDef[] => [ + // Group untuk kolom tanpa footer + { + header: 'Nama Item', + accessorFn: (props) => props.item_name, + footer: 'Total Pengeluaran Overhead', + }, + { + header: 'Satuan', + accessorFn: (props) => props.uom_name, + }, + { + header: 'Budget Pengajuan', + footer: '', + columns: [ + { + id: 'budget_quantity', + header: 'Jumlah', + accessorFn: (props) => + props.budget_quantity ? formatNumber(props.budget_quantity) : '-', + footer: total ? () => formatNumber(total.budget_quantity) : '', + }, + { + id: 'budget_unit_price', + header: 'Harga Satuan', + accessorFn: (props) => + props.budget_unit_price + ? formatCurrency(props.budget_unit_price) + : '-', + footer: '', + }, + { + id: 'budget_total_amount', + header: 'Total', + accessorFn: (props) => + props.budget_total_amount + ? formatCurrency(props.budget_total_amount) + : '-', + footer: total ? () => formatCurrency(total.budget_total_amount) : '', + }, + ], + }, + { + header: 'Realisasi', + footer: '', + columns: [ + { + id: 'actual_date', + header: 'Tanggal', + accessorFn: (props) => + props.actual_date + ? formatDate(props.actual_date, 'DD MMM, YYYY') + : '-', + footer: '', + }, + { + id: 'actual_quantity', + header: 'Jumlah', + accessorFn: (props) => + props.actual_quantity ? formatNumber(props.actual_quantity) : '-', + footer: total ? () => formatNumber(total.actual_quantity) : '', + }, + { + id: 'actual_unit_price', + header: 'Harga Satuan', + accessorFn: (props) => + props.actual_unit_price + ? formatCurrency(props.actual_unit_price) + : '-', + footer: '', + }, + { + id: 'actual_total_amount', + header: 'Total', + accessorFn: (props) => + props.actual_total_amount + ? formatCurrency(props.actual_total_amount) + : '-', + footer: total ? () => formatCurrency(total.actual_total_amount) : '', + }, + ], + }, + { + id: 'cost_per_bird', + header: 'Rp/Ekor', + accessorFn: (props) => + props.cost_per_bird ? formatCurrency(props.cost_per_bird) : '-', + footer: total ? () => formatCurrency(total.cost_per_bird) : '', + }, + ]; + + const columns = useMemo( + () => + isResponseSuccess(overhead) + ? createColumns(overhead.data?.total) + : createColumns(), + [overhead] + ); + + return ( + <> + + + data={ + isResponseSuccess(overhead) ? (overhead.data?.overheads ?? []) : [] + } + columns={columns} + className={{ + containerClassName: 'my-4', + headerColumnClassName: cn( + TABLE_DEFAULT_STYLING.headerColumnClassName, + 'whitespace-nowrap' + ), + }} + renderFooter={ + isResponseSuccess(overhead) + ? overhead.data?.overheads.length > 0 + : false + } + /> + + + ); +}; + +export default ClosingOverheadTable; diff --git a/src/components/pages/closing/ClosingSapronakCalculationTabContent.tsx b/src/components/pages/closing/ClosingSapronakCalculationTabContent.tsx new file mode 100644 index 00000000..15e43bbc --- /dev/null +++ b/src/components/pages/closing/ClosingSapronakCalculationTabContent.tsx @@ -0,0 +1,25 @@ +'use client'; + +import ClosingIncomingSapronaksTable from '@/components/pages/closing/ClosingIncomingSapronaksTable'; +import ClosingOutgoingSapronaksTable from '@/components/pages/closing/ClosingOutgoingSapronaksTable'; +import ClosingSapronakCalculationTable from '@/components/pages/closing/ClosingSapronakCalculationTable'; + +interface ClosingSapronakCalculationTabContentProps { + projectFlockId?: number; +} + +const ClosingSapronakCalculationTabContent = ({ + projectFlockId, +}: ClosingSapronakCalculationTabContentProps) => { + return ( +
    + {projectFlockId && ( + <> + + + )} +
    + ); +}; + +export default ClosingSapronakCalculationTabContent; diff --git a/src/components/pages/closing/ClosingSapronakCalculationTable.tsx b/src/components/pages/closing/ClosingSapronakCalculationTable.tsx new file mode 100644 index 00000000..445b7d8c --- /dev/null +++ b/src/components/pages/closing/ClosingSapronakCalculationTable.tsx @@ -0,0 +1,221 @@ +'use client'; + +import Card from '@/components/Card'; + +import Table from '@/components/Table'; +import { cn, formatCurrency, formatNumber } from '@/lib/helper'; +import { + RowSapronakCalculation, + TotalSapronakCalculation, +} from '@/types/api/closing'; +import { ColumnDef } from '@tanstack/react-table'; +import { useMemo } from 'react'; +import useSWR from 'swr'; +import { ClosingApi } from '@/services/api/closing'; +import { isResponseSuccess } from '@/lib/api-helper'; + +interface ClosingSapronakCalculationTableProps { + type?: 'detail'; + projectFlockId: number; +} + +const ClosingSapronakCalculationTable = ({ + type, + projectFlockId, +}: ClosingSapronakCalculationTableProps) => { + const { data: sapronakCalculation, isLoading } = useSWR( + `/closing/sapronak-calculation/${projectFlockId}`, + () => ClosingApi.getPerhitunganSapronak(projectFlockId), + { + keepPreviousData: true, + } + ); + + // Helper function to create columns with footer support + const createColumns = ( + total?: TotalSapronakCalculation + ): ColumnDef[] => [ + { + header: 'Tanggal', + accessorKey: 'tanggal', + cell: (props) => (props.getValue() as string) || '-', + footer: 'Total', + }, + { + header: 'No. Referensi', + accessorKey: 'no_referensi', + cell: (props) => (props.getValue() as string) || '-', + footer: '', + }, + { + header: 'QTY Masuk', + accessorKey: 'qty_masuk', + cell: (props) => formatNumber(props.getValue() as number), + footer: total + ? () => ( +
    + {formatNumber(total.qty_masuk)} +
    + ) + : '', + }, + { + header: 'QTY Keluar', + accessorKey: 'qty_keluar', + cell: (props) => formatNumber(props.getValue() as number), + footer: total + ? () => ( +
    + {formatNumber(total.qty_keluar)} +
    + ) + : '', + }, + { + header: 'QTY Pakai', + accessorKey: 'qty_pakai', + cell: (props) => formatNumber(props.getValue() as number), + footer: total + ? () => ( +
    + {formatNumber(total.qty_pakai)} +
    + ) + : '', + }, + { + header: 'Uraian', + accessorKey: 'uraian', + cell: (props) => (props.getValue() as string) || '-', + footer: '', + }, + { + header: 'Kategori Produk', + accessorKey: 'kategori_produk', + cell: (props) => (props.getValue() as string) || '-', + footer: '', + }, + { + header: 'Harga Beli/Qty (Rp)', + accessorKey: 'harga_beli_per_qty', + cell: (props) => formatCurrency(props.getValue() as number), + footer: total + ? () => ( +
    + {formatCurrency(total.harga_beli_per_qty)} +
    + ) + : '', + }, + { + header: 'Total Harga (Rp)', + accessorKey: 'total_harga', + cell: (props) => formatCurrency(props.getValue() as number), + footer: total + ? () => ( +
    + {formatCurrency(total.total_harga)} +
    + ) + : '', + }, + { + header: 'Keterangan', + accessorKey: 'keterangan', + cell: (props) => (props.getValue() as string) || '-', + footer: '', + }, + ]; + + // Memoize columns untuk setiap kategori + const docBroilerColumns = useMemo( + () => + isResponseSuccess(sapronakCalculation) + ? createColumns(sapronakCalculation.data?.doc_broiler.total) + : createColumns(), + [sapronakCalculation] + ); + + const ovkColumns = useMemo( + () => + isResponseSuccess(sapronakCalculation) + ? createColumns(sapronakCalculation.data?.ovk.total) + : createColumns(), + [sapronakCalculation] + ); + + const pakanColumns = useMemo( + () => + isResponseSuccess(sapronakCalculation) + ? createColumns(sapronakCalculation.data?.pakan.total) + : createColumns(), + [sapronakCalculation] + ); + + return ( +
    + {isResponseSuccess(sapronakCalculation) && ( + <> + + + data={sapronakCalculation.data?.doc_broiler.rows ?? []} + columns={docBroilerColumns} + className={{ + containerClassName: 'my-4', + }} + renderFooter + /> + + + + + data={sapronakCalculation.data?.ovk.rows ?? []} + columns={ovkColumns} + className={{ + containerClassName: 'my-4', + }} + renderFooter + /> + + + + + data={sapronakCalculation.data?.pakan.rows ?? []} + columns={pakanColumns} + className={{ + containerClassName: 'my-4', + }} + renderFooter + /> + + + )} +
    + ); +}; + +export default ClosingSapronakCalculationTable; diff --git a/src/components/pages/closing/sale/SalesReportTable.tsx b/src/components/pages/closing/sale/SalesReportTable.tsx new file mode 100644 index 00000000..89cb6615 --- /dev/null +++ b/src/components/pages/closing/sale/SalesReportTable.tsx @@ -0,0 +1,285 @@ +'use client'; + +import React, { useMemo } from 'react'; +import { ColumnDef } from '@tanstack/react-table'; +import Table from '@/components/Table'; +import Card from '@/components/Card'; +import Badge from '@/components/Badge'; +import { formatCurrency, formatNumber, formatDate } from '@/lib/helper'; +import { BaseClosingSales, BaseSales } from '@/types/api/closing'; +import { Product } from '@/types/api/master-data/product'; +import { Customer } from '@/types/api/master-data/customer'; +import { Kandang } from '@/types/api/master-data/kandang'; + +interface SalesReportTableProps { + type?: 'detail'; + initialValues?: BaseClosingSales; +} + +const SalesReportTable = ({ + type = 'detail', + initialValues, +}: SalesReportTableProps) => { + const salesData: BaseSales[] = useMemo(() => { + return initialValues?.sales || []; + }, [initialValues]); + + const totals = useMemo(() => { + if (salesData.length === 0) { + return { + totalQuantity: 0, + totalWeight: 0, + avgWeight: 0, + avgPricePartner: 0, + totalPartner: 0, + }; + } + + const totalQuantity = salesData.reduce( + (sum, item) => sum + (item.qty || 0), + 0 + ); + const totalWeight = salesData.reduce( + (sum, item) => sum + (item.weight || 0), + 0 + ); + const avgWeight = totalQuantity > 0 ? totalWeight / totalQuantity : 0; + + const validPriceItems = salesData.filter( + (item) => item.price != null && item.price > 0 + ); + const avgPricePartner = + validPriceItems.length > 0 + ? validPriceItems.reduce((sum, item) => sum + item.price, 0) / + validPriceItems.length + : 0; + + const totalPartner = salesData.reduce( + (sum, item) => sum + (item.total_price || 0), + 0 + ); + + return { + totalQuantity, + totalWeight, + avgWeight, + avgPricePartner, + totalPartner, + }; + }, [salesData]); + + const salesColumns: ColumnDef[] = useMemo( + () => [ + { + id: 'realization_date', + accessorKey: 'realization_date', + header: 'Tanggal Realisasi', + cell: (props) => { + const date = props.row.original.realization_date; + return date ? formatDate(date, 'DD MMM YYYY') : '-'; + }, + footer: () => ( +
    Total Penjualan
    + ), + }, + { + id: 'age', + accessorKey: 'age', + header: 'Umur', + cell: (props) => props.getValue() || '-', + }, + { + id: 'do_number', + accessorKey: 'do_number', + header: 'No. DO', + cell: (props) => props.getValue() || '-', + }, + { + id: 'product', + accessorKey: 'product', + header: 'Produk', + cell: (props) => { + const product = props.getValue() as Product; + return product?.name || '-'; + }, + }, + { + id: 'customer', + accessorKey: 'customer', + header: 'Customer', + cell: (props) => { + const customer = props.getValue() as Customer; + return customer?.name || '-'; + }, + }, + { + id: 'jumlah', + header: 'Jumlah', + columns: [ + { + id: 'qty', + accessorKey: 'qty', + header: 'Kuantitas', + cell: (props) => { + const value = props.getValue() as number; + return
    {formatNumber(value)}
    ; + }, + footer: () => ( +
    + {formatNumber(totals.totalQuantity)} +
    + ), + }, + { + id: 'weight', + accessorKey: 'weight', + header: 'Kg', + cell: (props) => { + const value = props.getValue() as number; + return
    {formatNumber(value)}
    ; + }, + footer: () => ( +
    + {formatNumber(totals.totalWeight)} +
    + ), + }, + ], + }, + { + id: 'avg_weight', + accessorKey: 'avg_weight', + header: 'AVG (Kg)', + cell: (props) => { + const value = props.getValue() as number; + return
    {formatNumber(value)}
    ; + }, + footer: () => ( +
    + {formatNumber(totals.avgWeight)} +
    + ), + }, + { + id: 'price_partner', + accessorKey: 'price', + header: 'Harga Mitra (Rp)', + cell: (props) => { + const value = props.getValue() as number; + return
    {formatCurrency(value)}
    ; + }, + footer: () => ( +
    + {formatCurrency(totals.avgPricePartner)} +
    + ), + }, + { + id: 'total_mitra', + accessorKey: 'total_price', + header: 'Total Mitra (Rp)', + cell: (props) => { + const value = props.getValue() as number; + return
    {formatCurrency(value)}
    ; + }, + footer: () => ( +
    + {formatCurrency(totals.totalPartner)} +
    + ), + }, + { + id: 'price_act', + accessorKey: 'price', + header: 'Harga Act (Rp)', + cell: (props) => { + const value = props.getValue() as number; + return
    {formatCurrency(value)}
    ; + }, + }, + { + id: 'total_act', + accessorKey: 'total_price', + header: 'Total Act (Rp)', + cell: (props) => { + const value = props.getValue() as number; + return
    {formatCurrency(value)}
    ; + }, + }, + { + id: 'kandang', + accessorKey: 'kandang', + header: 'Kandang', + cell: (props) => { + const kandang = props.getValue() as Kandang; + return kandang?.name || '-'; + }, + }, + { + id: 'payment_status', + accessorKey: 'payment_status', + header: 'Status Pembayaran', + cell: (props) => { + const status = props.getValue() as string; + const getStatusColor = (status: string) => { + if (!status) return 'neutral'; + switch (status.toLowerCase()) { + case 'paid': + return 'success'; + case 'tempo': + return 'warning'; + default: + return 'neutral'; + } + }; + + return ( + + {status || '-'} + + ); + }, + }, + ], + [] + ); + + return ( + <> +
    +
    +

    Penjualan

    + + 0} + className={{ + tableWrapperClassName: 'overflow-x-auto', + tableClassName: 'w-full table-auto text-sm', + headerColumnClassName: + 'px-4 py-3 text-xs font-semibold text-gray-500 whitespace-nowrap border-l border-l-gray-200 border-r border-r-gray-200 border-t border-t-gray-200 border-gray-200 border-b-0', + bodyRowClassName: + 'hover:bg-gray-50 transition-colors border-b border-gray-200 first:border-t first:border-t-gray-200 border-l border-l-gray-200 border-r border-r-gray-200', + bodyColumnClassName: + 'px-4 py-3 text-xs text-gray-900 whitespace-nowrap', + tableFooterClassName: + 'bg-gray-100 font-semibold border border-gray-200', + footerRowClassName: 'border-t-2 border-gray-300', + footerColumnClassName: + 'px-4 py-3 text-xs text-gray-900 whitespace-nowrap', + }} + /> + + + + + ); +}; + +export default SalesReportTable; diff --git a/src/components/pages/expense/ExpenseRealizationContent.tsx b/src/components/pages/expense/ExpenseRealizationContent.tsx index 478cdadf..2b5b0a0a 100644 --- a/src/components/pages/expense/ExpenseRealizationContent.tsx +++ b/src/components/pages/expense/ExpenseRealizationContent.tsx @@ -207,7 +207,7 @@ const ExpenseRealizationContent = ({ let expenseGrandTotal = 0; kandangExpense.pengajuans?.forEach( - (item) => (expenseGrandTotal += item.total_price) + (item) => (expenseGrandTotal += item.price) ); return ( @@ -238,7 +238,7 @@ const ExpenseRealizationContent = ({ - + ) @@ -269,7 +269,7 @@ const ExpenseRealizationContent = ({ let expenseGrandTotal = 0; kandangExpense.realisasi?.forEach( - (item) => (expenseGrandTotal += item.total_price) + (item) => (expenseGrandTotal += item.price) ); return ( @@ -300,7 +300,7 @@ const ExpenseRealizationContent = ({ - + ) diff --git a/src/components/pages/expense/ExpenseRequestContent.tsx b/src/components/pages/expense/ExpenseRequestContent.tsx index af8ceddc..0d7d959d 100644 --- a/src/components/pages/expense/ExpenseRequestContent.tsx +++ b/src/components/pages/expense/ExpenseRequestContent.tsx @@ -402,7 +402,10 @@ const ExpenseRequestContent = ({ @@ -529,7 +532,7 @@ const ExpenseRequestContent = ({ let expenseGrandTotal = 0; kandangExpense.pengajuans?.forEach( - (item) => (expenseGrandTotal += item.total_price) + (item) => (expenseGrandTotal += item.price) ); return ( @@ -550,7 +553,7 @@ const ExpenseRequestContent = ({ - + @@ -560,9 +563,7 @@ const ExpenseRequestContent = ({ - + diff --git a/src/components/pages/expense/ExpensesTable.tsx b/src/components/pages/expense/ExpensesTable.tsx index 3a50f233..bbcb6c4e 100644 --- a/src/components/pages/expense/ExpensesTable.tsx +++ b/src/components/pages/expense/ExpensesTable.tsx @@ -263,11 +263,11 @@ const ExpensesTable = () => { }, }, { - accessorKey: 'expense_date', + accessorKey: 'transaction_date', header: 'Tanggal Pengajuan', cell: (props) => - props.row.original.expense_date - ? formatDate(props.row.original.expense_date, 'DD MMM YYYY') + props.row.original.transaction_date + ? formatDate(props.row.original.transaction_date, 'DD MMM YYYY') : '-', }, { diff --git a/src/components/pages/expense/form/ExpenseRealizationForm.schema.ts b/src/components/pages/expense/form/ExpenseRealizationForm.schema.ts index 863238b9..77db761c 100644 --- a/src/components/pages/expense/form/ExpenseRealizationForm.schema.ts +++ b/src/components/pages/expense/form/ExpenseRealizationForm.schema.ts @@ -27,7 +27,7 @@ type ExpenseRealizationFormSchemaType = { label: string; }; quantity?: number; - total_cost?: number; + price?: number; notes?: string; }[]; }[]; @@ -82,7 +82,7 @@ export const ExpenseRealizationFormSchema: Yup.ObjectSchema { realization.cost_items.forEach((costItem) => { - const unitPrice = - parseFloat(String(costItem.total_cost)) / - parseFloat(String(costItem.quantity)); - const realizationItem = { expense_nonstock_id: costItem.nonstock?.value as number, qty: parseFloat(String(costItem.quantity)) as number, - unit_price: unitPrice, - total_price: parseFloat(String(costItem.total_cost)) as number, + price: parseFloat(String(costItem.price)) as number, notes: costItem.notes ?? '', }; @@ -177,7 +172,7 @@ const ExpenseRealizationForm = ({ { nonstock: undefined, quantity: undefined, - total_cost: undefined, + price: undefined, notes: '', }, ], diff --git a/src/components/pages/expense/form/ExpenseRealizationKandangDetailExpense.tsx b/src/components/pages/expense/form/ExpenseRealizationKandangDetailExpense.tsx index 8b889c5b..017a733e 100644 --- a/src/components/pages/expense/form/ExpenseRealizationKandangDetailExpense.tsx +++ b/src/components/pages/expense/form/ExpenseRealizationKandangDetailExpense.tsx @@ -48,7 +48,7 @@ const ExpenseRealizationKandangDetailExpense: React.FC< }; const isExpenseRepeaterInputError = ( - column: 'nonstock' | 'quantity' | 'total_cost' | 'notes', + column: 'nonstock' | 'quantity' | 'price' | 'notes', kandangExpenseIdx: number, expenseIdx: number ) => { @@ -112,7 +112,7 @@ const ExpenseRealizationKandangDetailExpense: React.FC< - + @@ -163,17 +163,17 @@ const ExpenseRealizationKandangDetailExpense: React.FC< - + {type !== 'detail' && } @@ -178,10 +178,10 @@ const ExpenseRequestKandangDetailExpense: React.FC< {(type as 'add' | 'edit' | 'detail') !== 'detail' && ( - {(type as 'add' | 'edit' | 'detail') !== 'detail' && ( - {(type as 'add' | 'edit' | 'detail') !== 'detail' && ( - {(type as 'add' | 'edit' | 'detail') !== 'detail' && ( )} @@ -2597,7 +2525,7 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => { (egg, idx) => ( {(type as 'add' | 'edit' | 'detail') !== 'detail' && ( - + {(type as 'add' | 'edit' | 'detail') !== 'detail' && ( @@ -657,37 +630,6 @@ const PurchaseOrderAcceptApprovalForm = ({ }} /> - ); })} @@ -732,7 +674,8 @@ const PurchaseOrderAcceptApprovalForm = ({ disabled={ !formik.isValid || formik.isSubmitting || - hasQuantityExceededErrors + hasQuantityExceededErrors || + isRejected } > Submit diff --git a/src/components/pages/purchase/form/order/PurchaseOrderForm.schema.ts b/src/components/pages/purchase/form/order/PurchaseOrderForm.schema.ts index 96836bc6..c7da956d 100644 --- a/src/components/pages/purchase/form/order/PurchaseOrderForm.schema.ts +++ b/src/components/pages/purchase/form/order/PurchaseOrderForm.schema.ts @@ -23,10 +23,12 @@ type PurchaseRequestStaffApprovalFormSchemaType = { }; type PurchaseRequestManagerApprovalFormSchemaType = { + action: 'APPROVED' | 'REJECTED'; notes: string | null; }; type PurchaseRequestAcceptApprovalFormSchemaType = { + action: 'APPROVED' | 'REJECTED'; notes: string | null; items: { purchase_item?: { @@ -45,7 +47,6 @@ type PurchaseRequestAcceptApprovalFormSchemaType = { expedition_vendor_id: number; received_qty: number | string; transport_per_item: number | string; - transport_total: number | string; }[]; }; @@ -83,7 +84,6 @@ export type PurchaseAcceptApprovalItemSchema = { expedition_vendor_id: number; received_qty: number | string; transport_per_item: number | string; - transport_total: number | string; }; export type PurchaseDeleteItemsSchema = { @@ -152,6 +152,10 @@ const PurchaseStaffApprovalItemObjectSchema: Yup.ObjectSchema = Yup.object({ + action: Yup.mixed<'APPROVED' | 'REJECTED'>() + .oneOf(['APPROVED', 'REJECTED'], 'Action harus APPROVED atau REJECTED') + .required('Action wajib diisi!') + .default('APPROVED'), notes: Yup.string().nullable().default(null), }); @@ -230,20 +234,6 @@ const PurchaseAcceptApprovalItemObjectSchema: Yup.ObjectSchema() - .required('Total biaya transport wajib diisi!') - .test( - 'is-valid-transport-total', - 'Total biaya transport harus berupa angka lebih dari atau sama dengan 0!', - function (value) { - if (value === '' || value === null || value === undefined) - return false; - const numValue = - typeof value === 'string' ? parseFloat(value) : value; - return !isNaN(numValue) && numValue >= 0; - } - ) - .typeError('Total biaya transport harus berupa angka!'), }); export const PurchaseRequestStaffApprovalFormSchema: Yup.ObjectSchema = @@ -368,6 +358,7 @@ export const PurchaseRequestManagerApprovalFormDefaultValues = ( purchase?: Purchase ): PurchaseRequestManagerApprovalFormSchemaType => { return { + action: 'APPROVED', notes: purchase?.notes ?? null, }; }; @@ -378,6 +369,10 @@ export type PurchaseRequestManagerApprovalFormValues = Yup.InferType< export const PurchaseRequestAcceptApprovalFormSchema: Yup.ObjectSchema = Yup.object({ + action: Yup.mixed<'APPROVED' | 'REJECTED'>() + .oneOf(['APPROVED', 'REJECTED'], 'Action harus APPROVED atau REJECTED') + .required('Action wajib diisi!') + .default('APPROVED'), notes: Yup.string().nullable().default(null), items: Yup.array() .of(PurchaseAcceptApprovalItemObjectSchema) @@ -388,6 +383,7 @@ export const PurchaseRequestAcceptApprovalFormSchema: Yup.ObjectSchema { return { + action: 'APPROVED', notes: purchase?.notes ?? null, items: purchase?.items ? purchase.items.map((item) => ({ @@ -419,7 +415,6 @@ export const PurchaseRequestAcceptApprovalFormDefaultValues = ( expedition_vendor_id: 0, received_qty: '', transport_per_item: '', - transport_total: '', })) : [ { @@ -431,7 +426,6 @@ export const PurchaseRequestAcceptApprovalFormDefaultValues = ( expedition_vendor_id: 0, received_qty: '', transport_per_item: '', - transport_total: '', }, ], }; diff --git a/src/components/pages/purchase/form/order/PurchaseOrderStaffApprovalForm.tsx b/src/components/pages/purchase/form/order/PurchaseOrderStaffApprovalForm.tsx index 63756ad9..1fcd7a94 100644 --- a/src/components/pages/purchase/form/order/PurchaseOrderStaffApprovalForm.tsx +++ b/src/components/pages/purchase/form/order/PurchaseOrderStaffApprovalForm.tsx @@ -21,7 +21,7 @@ import { PurchaseRequestStaffApprovalFormInitialValues, PurchaseRequestStaffApprovalFormSchema, PurchaseStaffApprovalItemSchema, -} from './PurchaseOrderForm.schema'; +} from '@/components/pages/purchase/form/order/PurchaseOrderForm.schema'; import { isResponseError } from '@/lib/api-helper'; import { formatNumber } from '@/lib/helper'; import { PurchaseApi } from '@/services/api/purchase'; @@ -61,7 +61,7 @@ const PurchaseOrderStaffApprovalForm = ({ return 'add'; } - const currentStep = initialValues?.approval?.step_number || 1; + const currentStep = initialValues?.latest_approval?.step_number || 1; switch (currentStep) { case 1: @@ -77,7 +77,9 @@ const PurchaseOrderStaffApprovalForm = ({ // Step 4+ (Penerimaan Barang dan selesai), tidak boleh edit kalau sudah disetujui return 'edit'; } - }, [rawDataApprovals, propType, initialValues?.approval?.step_number]); + }, [rawDataApprovals, propType, initialValues?.latest_approval?.step_number]); + + const isRejected = initialValues?.latest_approval?.action === 'REJECTED'; const router = useRouter(); const searchParams = useSearchParams(); @@ -93,16 +95,16 @@ const PurchaseOrderStaffApprovalForm = ({ // ===== UTILITY FUNCTIONS ===== const canUpdatePurchaseItems = useMemo(() => { - if (!initialValues?.approval) return false; + if (!initialValues?.latest_approval) return false; - const currentStep = initialValues.approval.step_number; + const currentStep = initialValues.latest_approval.step_number; return currentStep >= 3; - }, [initialValues?.approval]); + }, [initialValues?.latest_approval]); const canShowDeleteAddButtons = useMemo(() => { - if (!initialValues?.approval) return false; + if (!initialValues?.latest_approval) return false; - const currentStep = initialValues.approval.step_number; + const currentStep = initialValues.latest_approval.step_number; // Step 2 (Staff Purchase) dengan mode 'add' tidak boleh add/delete items // User hanya boleh input harga dan total harga untuk items yang sudah ada @@ -112,7 +114,7 @@ const PurchaseOrderStaffApprovalForm = ({ // Step 3 (Manager Purchase) boleh add/delete items return currentStep === 3; - }, [initialValues?.approval, type]); + }, [initialValues?.latest_approval, type]); const isRepeaterInputError = ( idx: number, @@ -241,9 +243,8 @@ const PurchaseOrderStaffApprovalForm = ({ ); formik.setFieldValue('items', updatedPurchaseItems); } - } catch (error) { + } catch { toast.error('Terjadi kesalahan saat menghapus item pembelian'); - console.error('Delete item error:', error); } }, [ initialValues?.id, @@ -313,7 +314,9 @@ const PurchaseOrderStaffApprovalForm = ({ const isNewItemForm = !formItem.purchase_item_id || formItem.purchase_item_id === 0; - let cleanPayload: UpdateStaffApprovalRequestPayload['items'][0]; + let cleanPayload: NonNullable< + UpdateStaffApprovalRequestPayload['items'] + >[0]; if (isNewItemForm) { cleanPayload = { @@ -361,7 +364,9 @@ const PurchaseOrderStaffApprovalForm = ({ const isNewItemForm = !formItem.purchase_item_id || formItem.purchase_item_id === 0; - let cleanPayload: UpdateStaffApprovalRequestPayload['items'][0]; + let cleanPayload: NonNullable< + UpdateStaffApprovalRequestPayload['items'] + >[0]; if (isNewItemForm) { cleanPayload = { @@ -720,7 +725,10 @@ const PurchaseOrderStaffApprovalForm = ({ 'min-w-52 md:min-w-72 lg:min-w-80', }} bottomLabel={ - 'Previous: ' + purchaseItem.product.name + type === 'edit' + ? 'Previous: ' + + purchaseItem.product.name + : undefined } /> @@ -820,7 +828,11 @@ const PurchaseOrderStaffApprovalForm = ({ thousandSeparator=',' decimalSeparator='.' inputPrefix={'Rp'} - bottomLabel={`Previous: Rp${formatNumber(initialValues?.items?.find((item) => item.id === purchaseItem.id)?.price || 0, 'id-ID', 2, 2)}`} + bottomLabel={ + type === 'edit' + ? `Previous: Rp${formatNumber(initialValues?.items?.find((item) => item.id === purchaseItem.id)?.price || 0, 'id-ID', 2, 2)}` + : undefined + } isError={ isRepeaterInputError( formItemIndex, @@ -858,7 +870,11 @@ const PurchaseOrderStaffApprovalForm = ({ thousandSeparator=',' decimalSeparator='.' inputPrefix={'Rp'} - bottomLabel={`Previous: Rp${formatNumber(initialValues?.items?.find((item) => item.id === purchaseItem.id)?.total_price || 0, 'id-ID', 2, 2)}`} + bottomLabel={ + type === 'edit' + ? `Previous: Rp${formatNumber(initialValues?.items?.find((item) => item.id === purchaseItem.id)?.total_price || 0, 'id-ID', 2, 2)}` + : undefined + } isError={ isRepeaterInputError( formItemIndex, @@ -1132,7 +1148,7 @@ const PurchaseOrderStaffApprovalForm = ({ color='primary' className='px-4' isLoading={formik.isSubmitting} - disabled={!formik.isValid || formik.isSubmitting} + disabled={!formik.isValid || formik.isSubmitting || isRejected} > Submit diff --git a/src/components/pages/purchase/form/request/PurchaseRequestForm.schema.ts b/src/components/pages/purchase/form/request/PurchaseRequestForm.schema.ts index 414371c3..67a694bc 100644 --- a/src/components/pages/purchase/form/request/PurchaseRequestForm.schema.ts +++ b/src/components/pages/purchase/form/request/PurchaseRequestForm.schema.ts @@ -78,14 +78,14 @@ export const PurchaseRequestFormSchema: Yup.ObjectSchema { - if (!initialValues?.approval) return null; - return initialValues.approval.step_number; - }, [initialValues?.approval]); + if (!initialValues?.latest_approval) return null; + return initialValues.latest_approval.step_number; + }, [initialValues?.latest_approval]); const { approvals, @@ -166,7 +169,7 @@ const PurchaseOrderDetail = ({ rawDataApprovals, refresh: refreshApprovals, } = useApprovalSteps({ - latestApproval: initialValues?.approval, + latestApproval: initialValues?.latest_approval, approvalLines: PURCHASE_ORDER_APPROVAL_LINE, moduleName: 'PURCHASES', moduleId: initialValues?.id?.toString() ?? '', @@ -177,19 +180,22 @@ const PurchaseOrderDetail = ({ }); const showApprovalButton = - approvalStep !== null && approvalStep >= 1 && approvalStep <= 3; + approvalStep !== null && + approvalStep >= 1 && + approvalStep <= 3 && + initialValues?.latest_approval?.action !== 'REJECTED'; const canDeleteItems = useMemo(() => { - if (!initialValues?.approval) return false; + if (!initialValues?.latest_approval) return false; - const currentStep = initialValues.approval.step_number; + const currentStep = initialValues.latest_approval.step_number; const hasReachedStep5 = rawDataApprovals?.some( (approval) => approval.step_number === 5 ); return currentStep === 3 && !hasReachedStep5; - }, [initialValues?.approval, rawDataApprovals]); + }, [initialValues?.latest_approval, rawDataApprovals]); const handleApprovalClick = () => { if (!approvalStep) return; @@ -216,24 +222,30 @@ const PurchaseOrderDetail = ({ case 1: staffRejectionModal.openModal(); break; + case 2: + managerRejectionModal.openModal(); + break; + case 3: + acceptRejectionModal.openModal(); + break; default: break; } }; const canShowPurchaseOrderInvoice = useMemo(() => { - if (!initialValues?.approval) return false; + if (!initialValues?.latest_approval) return false; - const currentStep = initialValues.approval.step_number; + const currentStep = initialValues.latest_approval.step_number; return currentStep >= 3; - }, [initialValues?.approval]); + }, [initialValues?.latest_approval]); const canShowPenerimaanBarang = useMemo(() => { - if (!initialValues?.approval) return false; + if (!initialValues?.latest_approval) return false; - const currentStep = initialValues.approval.step_number; + const currentStep = initialValues.latest_approval.step_number; return currentStep === 5; - }, [initialValues?.approval]); + }, [initialValues?.latest_approval]); const totalBeforeTax = useMemo(() => { return purchaseOrderItems.reduce( @@ -296,6 +308,33 @@ const PurchaseOrderDetail = ({ [initialValues?.id, searchParams, refetchData] ); + const createAcceptApprovalHandler = useCallback( + async (payload: CreateAcceptApprovalRequestPayload) => { + const purchaseRequestId = searchParams.get('purchaseId') + ? parseInt(searchParams.get('purchaseId')!) + : initialValues?.id || 1; + + if (!purchaseRequestId) { + toast.error('Purchase Request ID is required'); + return; + } + + const res = await PurchaseApi.acceptApproval.create( + purchaseRequestId, + payload + ); + + if (isResponseError(res)) { + toast.error(res.message); + return; + } + toast.success(res?.message as string); + refreshApprovals(); + refetchData?.(); + }, + [initialValues?.id, searchParams, refreshApprovals, refetchData] + ); + // ===== MODAL HANDLERS ===== const handleStaffApprovalModalClose = useCallback(() => { refreshApprovals(); @@ -544,11 +583,6 @@ const PurchaseOrderDetail = ({ accessorKey: 'transport_per_item', cell: (props) => formatCurrency(props.getValue() as number), }, - { - header: 'Transport Total', - accessorKey: 'transport_total', - cell: (props) => formatCurrency(props.getValue() as number), - }, ]; const summaryData = [ @@ -647,7 +681,7 @@ const PurchaseOrderDetail = ({
    - + Area @@ -657,7 +691,7 @@ const PurchaseOrderDetail = ({
    - + Lokasi @@ -671,7 +705,7 @@ const PurchaseOrderDetail = ({
    - + Gudang @@ -685,7 +719,7 @@ const PurchaseOrderDetail = ({
    - + Nama Vendor @@ -696,7 +730,7 @@ const PurchaseOrderDetail = ({
    - + Kategori Vendor @@ -706,18 +740,7 @@ const PurchaseOrderDetail = ({
    - - Tgl. Jatuh Tempo - - - : {formatDate(purchaseData.due_date, 'D MMM YYYY')} ( - {purchaseData.credit_term} hari) - -
    -
    -
    -
    - + Nomor @@ -727,7 +750,7 @@ const PurchaseOrderDetail = ({
    - + Nomor PO
    @@ -925,6 +948,7 @@ const PurchaseOrderDetail = ({ color: 'success', onClick: async (notes) => { const payload: CreateManagerApprovalRequestPayload = { + action: 'APPROVED', notes: notes || null, }; @@ -1028,7 +1052,6 @@ const PurchaseOrderDetail = ({ const payload: CreateStaffApprovalRequestPayload = { action: 'REJECTED', notes: notes || null, - items: [], }; await createStaffApprovalHandler(payload); @@ -1041,6 +1064,60 @@ const PurchaseOrderDetail = ({ }} /> + {/* Accept Rejection Modal */} + { + const payload: CreateAcceptApprovalRequestPayload = { + action: 'REJECTED', + notes: notes || null, + }; + + await createAcceptApprovalHandler(payload); + await refetchData?.(); + acceptRejectionModal.closeModal(); + }, + }} + secondaryButton={{ + text: 'Batal', + }} + /> + + {/* Manager Rejection Modal */} + { + const payload: CreateManagerApprovalRequestPayload = { + action: 'REJECTED', + notes: notes || null, + }; + + await createManagerApprovalHandler(payload); + await refetchData?.(); + managerRejectionModal.closeModal(); + }, + }} + secondaryButton={{ + text: 'Batal', + }} + /> + {/* Delete Confirmation Modal */} { const handleDownloadPDF = async () => { if (!purchaseData) { - alert('No purchase order data available'); + toast.error('No purchase order data available'); return; } @@ -502,9 +503,8 @@ const PurchaseOrderInvoice = ({ data }: PurchaseOrderInvoiceProps) => { link.click(); document.body.removeChild(link); URL.revokeObjectURL(url); - } catch (error) { - console.error('Error generating PDF:', error); - alert('Failed to generate PDF. Please try again.'); + } catch { + toast.error('Failed to generate PDF. Please try again.'); } finally { setIsGeneratingPDF(false); } diff --git a/src/config/approval-line.ts b/src/config/approval-line.ts index 3af866c6..5333c016 100644 --- a/src/config/approval-line.ts +++ b/src/config/approval-line.ts @@ -9,9 +9,28 @@ export const PROJECT_FLOCK_APPROVAL_LINE: ApprovalLine = [ step_number: 2, step_name: 'Aktif', }, + { + step_number: 3, + step_name: 'Selesai', + }, ] as const; -export const PROJECT_FLOCK_KANDANG_APPROVAL_LINE: ApprovalLine = [ +export const PROJECT_FLOCK_KANDANGS_APPROVAL_LINE: ApprovalLine = [ + { + step_number: 1, + step_name: 'Pengajuan', + }, + { + step_number: 2, + step_name: 'Disetujui', + }, + { + step_number: 3, + step_name: 'Selesai', + }, +] as const; + +export const CHICKINS_APPROVAL_LINE: ApprovalLine = [ { step_number: 1, step_name: 'Pengajuan', @@ -51,14 +70,10 @@ export const MARKETING_APPROVAL_LINE: ApprovalLine = [ export const RECORDING_APPROVAL_LINE: ApprovalLine = [ { step_number: 1, - step_name: 'Grading-Telur', - }, - { - step_number: 2, step_name: 'Pengajuan', }, { - step_number: 3, + step_number: 2, step_name: 'Disetujui', }, ] as const; @@ -66,14 +81,10 @@ export const RECORDING_APPROVAL_LINE: ApprovalLine = [ export const GROWING_RECORDING_APPROVAL_LINE: ApprovalLine = [ { step_number: 1, - step_name: 'Grading-Telur', - }, - { - step_number: 2, step_name: 'Pengajuan', }, { - step_number: 3, + step_number: 2, step_name: 'Disetujui', }, ] as const; @@ -81,14 +92,10 @@ export const GROWING_RECORDING_APPROVAL_LINE: ApprovalLine = [ export const LAYING_RECORDING_APPROVAL_LINE: ApprovalLine = [ { step_number: 1, - step_name: 'Grading-Telur', - }, - { - step_number: 2, step_name: 'Pengajuan', }, { - step_number: 3, + step_number: 2, step_name: 'Disetujui', }, ] as const; diff --git a/src/config/constant.ts b/src/config/constant.ts index bad4a802..96fc8401 100644 --- a/src/config/constant.ts +++ b/src/config/constant.ts @@ -50,6 +50,10 @@ export const MAIN_DRAWER_LINKS: SidebarMenuItem[] = [ link: '/inventory', icon: 'heroicons-outline:folder', submenu: [ + { + text: 'Produk', + link: '/inventory/product', + }, { text: 'Penyesuaian Stok', link: '/inventory/adjustment', @@ -229,14 +233,10 @@ export const APPROVAL_WORKFLOWS = [ steps: [ { step_number: 1, - step_name: 'Grading-Telur', - }, - { - step_number: 2, step_name: 'Pengajuan', }, { - step_number: 3, + step_number: 2, step_name: 'Disetujui', }, ], diff --git a/src/dummy/closing.dummy.ts b/src/dummy/closing.dummy.ts new file mode 100644 index 00000000..3a20cdaf --- /dev/null +++ b/src/dummy/closing.dummy.ts @@ -0,0 +1,1136 @@ +/** + * Dummy Data untuk Closing API + * + * File ini berisi dummy data untuk testing API Closing sebelum backend siap. + * + * Struktur data mengikuti tipe yang didefinisikan di @/types/api/closing.d.ts + * + * @example + * // 1. Menggunakan getAllFetcher dengan SWR: + * import useSWR from 'swr'; + * import { ClosingApi } from '@/services/api/closing'; + * + * const { data, error, isLoading } = useSWR( + * '/closings', + * ClosingApi.getAllFetcher.bind(ClosingApi) + * ); + * + * if (data?.status === 'success') { + * console.log(data.data); // Array of Closing objects + * } + * + * @example + * // 2. Menggunakan getSingle: + * import { ClosingApi } from '@/services/api/closing'; + * + * const response = await ClosingApi.getSingle(1); + * if (response?.status === 'success') { + * console.log(response.data); // Single Closing object + * } else if (response?.status === 'error') { + * console.error(response.message); // Error message + * } + * + * @example + * // 3. Menggunakan getGeneralInfo dengan SWR: + * import useSWR from 'swr'; + * import { ClosingApi } from '@/services/api/closing'; + * + * const closingId = 1; + * const { data, error, isLoading } = useSWR( + * closingId, + * (id: number) => ClosingApi.getGeneralInfo(id) + * ); + * + * if (data?.status === 'success') { + * console.log(data.data); // ClosingGeneralInformation object + * } + * + * @example + * // 4. Menggunakan getAllIncomingSapronakFetcher dengan SWR: + * import useSWR from 'swr'; + * import { ClosingApi } from '@/services/api/closing'; + * + * const { data, error, isLoading } = useSWR( + * `${ClosingApi.basePath}/1/sapronak/incoming`, + * ClosingApi.getAllIncomingSapronakFetcher.bind(ClosingApi) + * ); + * + * if (data?.status === 'success') { + * console.log(data.data); // Array of ClosingIncomingSapronak + * } + * + * @example + * // 5. Menggunakan getAllOutgoingSapronakFetcher dengan SWR: + * import useSWR from 'swr'; + * import { ClosingApi } from '@/services/api/closing'; + * + * const { data, error, isLoading } = useSWR( + * `${ClosingApi.basePath}/1/sapronak/outgoing`, + * ClosingApi.getAllOutgoingSapronakFetcher.bind(ClosingApi) + * ); + * + * if (data?.status === 'success') { + * console.log(data.data); // Array of ClosingOutgoingSapronak + * } + * + * @see {@link /home/sweetpotet/Documents/projects/lti-web-client/src/types/api/closing.d.ts} + */ + +import { format } from 'date-fns'; +import { + Closing, + ClosingGeneralInformation, + ClosingIncomingSapronak, + ClosingOutgoingSapronak, + ClosingOverhead, + ClosingSapronakCalculation, +} from '@/types/api/closing'; +import { CreatedUser, BaseApiResponse } from '@/types/api/api-general'; + +// Waktu saat ini untuk created_at/updated_at +const now = format(new Date(), 'yyyy-MM-dd HH:mm:ss'); +const today = format(new Date(), 'yyyy-MM-dd'); +const yesterday = format( + new Date().setDate(new Date().getDate() - 1), + 'yyyy-MM-dd' +); +const lastWeek = format( + new Date().setDate(new Date().getDate() - 7), + 'yyyy-MM-dd' +); +const lastMonth = format( + new Date().setMonth(new Date().getMonth() - 1), + 'yyyy-MM-dd' +); + +// ====================== +// 👤 Created User +// ====================== +export const createdUser: CreatedUser = { + id: 1, + id_user: 1, + email: 'admin@example.com', + name: 'Admin Utama', +}; + +// ====================== +// 📊 Closing Dummy Data +// ====================== +export const dummyClosings: Closing[] = [ + // 1. Closing dengan status Pengajuan - GROWING + { + id: 1, + location_id: 1, + location_name: 'Farm Sukajadi', + project_category: 'GROWING', + period: 1, + closing_date: today, + shed_label: 'Kandang A1, A2, A3', + shed_count: 3, + sales_paid_amount: 150000000, + sales_remaining_amount: 50000000, + sales_payment_status: 'Sebagian Lunas', + project_status: 'Pengajuan', + created_user: createdUser, + created_at: now, + updated_at: now, + }, + + // 2. Closing dengan status Aktif - LAYING + { + id: 2, + location_id: 2, + location_name: 'Farm Cihampelas', + project_category: 'LAYING', + period: 2, + closing_date: yesterday, + shed_label: 'Kandang B1, B2', + shed_count: 2, + sales_paid_amount: 200000000, + sales_remaining_amount: 0, + sales_payment_status: 'Lunas', + project_status: 'Aktif', + created_user: createdUser, + created_at: lastWeek, + updated_at: yesterday, + }, + + // 3. Closing dengan status Selesai - GROWING + { + id: 3, + location_id: 3, + location_name: 'Farm Pasteur', + project_category: 'GROWING', + period: 3, + closing_date: lastWeek, + shed_label: 'Kandang C1, C2, C3, C4', + shed_count: 4, + sales_paid_amount: 300000000, + sales_remaining_amount: 25000000, + sales_payment_status: 'Sebagian Lunas', + project_status: 'Selesai', + created_user: createdUser, + created_at: lastMonth, + updated_at: lastWeek, + }, + + // 4. Closing dengan status Aktif - LAYING + { + id: 4, + location_id: 4, + location_name: 'Farm Setiabudi', + project_category: 'LAYING', + period: 1, + closing_date: today, + shed_label: 'Kandang D1', + shed_count: 1, + sales_paid_amount: 75000000, + sales_remaining_amount: 75000000, + sales_payment_status: 'Belum Lunas', + project_status: 'Aktif', + created_user: createdUser, + created_at: yesterday, + updated_at: now, + }, + + // 5. Closing dengan status Selesai - GROWING + { + id: 5, + location_id: 5, + location_name: 'Farm Dago', + project_category: 'GROWING', + period: 4, + closing_date: lastMonth, + shed_label: 'Kandang E1, E2, E3, E4, E5', + shed_count: 5, + sales_paid_amount: 500000000, + sales_remaining_amount: 0, + sales_payment_status: 'Lunas', + project_status: 'Selesai', + created_user: createdUser, + created_at: lastMonth, + updated_at: lastMonth, + }, + + // 6. Closing dengan status Pengajuan - LAYING + { + id: 6, + location_id: 6, + location_name: 'Farm Lembang', + project_category: 'LAYING', + period: 2, + closing_date: undefined, // Belum ada tanggal closing + shed_label: 'Kandang F1, F2', + shed_count: 2, + sales_paid_amount: 0, + sales_remaining_amount: 180000000, + sales_payment_status: 'Belum Lunas', + project_status: 'Pengajuan', + created_user: createdUser, + created_at: now, + updated_at: now, + }, + + // 7. Closing dengan status Aktif - GROWING + { + id: 7, + location_id: 7, + location_name: 'Farm Ciwidey', + project_category: 'GROWING', + period: 1, + closing_date: yesterday, + shed_label: 'Kandang G1, G2, G3', + shed_count: 3, + sales_paid_amount: 120000000, + sales_remaining_amount: 30000000, + sales_payment_status: 'Sebagian Lunas', + project_status: 'Aktif', + created_user: createdUser, + created_at: lastWeek, + updated_at: yesterday, + }, + + // 8. Closing dengan status Selesai - LAYING + { + id: 8, + location_id: 8, + location_name: 'Farm Bandung Timur', + project_category: 'LAYING', + period: 3, + closing_date: lastMonth, + shed_label: 'Kandang H1, H2, H3, H4, H5, H6', + shed_count: 6, + sales_paid_amount: 600000000, + sales_remaining_amount: 0, + sales_payment_status: 'Lunas', + project_status: 'Selesai', + created_user: createdUser, + created_at: lastMonth, + updated_at: lastMonth, + }, +]; + +// ====================== +// 📊 Closing General Information Dummy Data +// ====================== +export const dummyClosingGeneralInformations: ClosingGeneralInformation[] = [ + // 1. General Info - GROWING - Pengajuan + { + id: 1, + location_id: 1, + location_name: 'Farm Sukajadi', + project_category: 'GROWING', + period: 1, + closing_date: today, + shed_label: 'Kandang A1, A2, A3', + shed_count: 3, + sales_paid_amount: 150000000, + sales_remaining_amount: 50000000, + sales_payment_status: 'Sebagian Lunas', + project_status: 'Pengajuan', + flock_id: 101, + project_type: 'GROWING', + population: 15000, + active_house_count: 3, + closing_status: 'Draft', + created_user: createdUser, + created_at: now, + updated_at: now, + }, + + // 2. General Info - LAYING - Aktif + { + id: 2, + location_id: 2, + location_name: 'Farm Cihampelas', + project_category: 'LAYING', + period: 2, + closing_date: yesterday, + shed_label: 'Kandang B1, B2', + shed_count: 2, + sales_paid_amount: 200000000, + sales_remaining_amount: 0, + sales_payment_status: 'Lunas', + project_status: 'Aktif', + flock_id: 102, + project_type: 'LAYING', + population: 10000, + active_house_count: 2, + closing_status: 'In Progress', + created_user: createdUser, + created_at: lastWeek, + updated_at: yesterday, + }, + + // 3. General Info - GROWING - Selesai + { + id: 3, + location_id: 3, + location_name: 'Farm Pasteur', + project_category: 'GROWING', + period: 3, + closing_date: lastWeek, + shed_label: 'Kandang C1, C2, C3, C4', + shed_count: 4, + sales_paid_amount: 300000000, + sales_remaining_amount: 25000000, + sales_payment_status: 'Sebagian Lunas', + project_status: 'Selesai', + flock_id: 103, + project_type: 'GROWING', + population: 20000, + active_house_count: 4, + closing_status: 'Completed', + created_user: createdUser, + created_at: lastMonth, + updated_at: lastWeek, + }, + + // 4. General Info - LAYING - Aktif + { + id: 4, + location_id: 4, + location_name: 'Farm Setiabudi', + project_category: 'LAYING', + period: 1, + closing_date: today, + shed_label: 'Kandang D1', + shed_count: 1, + sales_paid_amount: 75000000, + sales_remaining_amount: 75000000, + sales_payment_status: 'Belum Lunas', + project_status: 'Aktif', + flock_id: 104, + project_type: 'LAYING', + population: 5000, + active_house_count: 1, + closing_status: 'In Progress', + created_user: createdUser, + created_at: yesterday, + updated_at: now, + }, + + // 5. General Info - GROWING - Selesai + { + id: 5, + location_id: 5, + location_name: 'Farm Dago', + project_category: 'GROWING', + period: 4, + closing_date: lastMonth, + shed_label: 'Kandang E1, E2, E3, E4, E5', + shed_count: 5, + sales_paid_amount: 500000000, + sales_remaining_amount: 0, + sales_payment_status: 'Lunas', + project_status: 'Selesai', + flock_id: 105, + project_type: 'GROWING', + population: 25000, + active_house_count: 5, + closing_status: 'Completed', + created_user: createdUser, + created_at: lastMonth, + updated_at: lastMonth, + }, + + // 6. General Info - LAYING - Pengajuan + { + id: 6, + location_id: 6, + location_name: 'Farm Lembang', + project_category: 'LAYING', + period: 2, + closing_date: undefined, + shed_label: 'Kandang F1, F2', + shed_count: 2, + sales_paid_amount: 0, + sales_remaining_amount: 180000000, + sales_payment_status: 'Belum Lunas', + project_status: 'Pengajuan', + flock_id: 106, + project_type: 'LAYING', + population: 12000, + active_house_count: 2, + closing_status: 'Draft', + created_user: createdUser, + created_at: now, + updated_at: now, + }, + + // 7. General Info - GROWING - Aktif + { + id: 7, + location_id: 7, + location_name: 'Farm Ciwidey', + project_category: 'GROWING', + period: 1, + closing_date: yesterday, + shed_label: 'Kandang G1, G2, G3', + shed_count: 3, + sales_paid_amount: 120000000, + sales_remaining_amount: 30000000, + sales_payment_status: 'Sebagian Lunas', + project_status: 'Aktif', + flock_id: 107, + project_type: 'GROWING', + population: 18000, + active_house_count: 3, + closing_status: 'In Progress', + created_user: createdUser, + created_at: lastWeek, + updated_at: yesterday, + }, + + // 8. General Info - LAYING - Selesai + { + id: 8, + location_id: 8, + location_name: 'Farm Bandung Timur', + project_category: 'LAYING', + period: 3, + closing_date: lastMonth, + shed_label: 'Kandang H1, H2, H3, H4, H5, H6', + shed_count: 6, + sales_paid_amount: 600000000, + sales_remaining_amount: 0, + sales_payment_status: 'Lunas', + project_status: 'Selesai', + flock_id: 108, + project_type: 'LAYING', + population: 30000, + active_house_count: 6, + closing_status: 'Completed', + created_user: createdUser, + created_at: lastMonth, + updated_at: lastMonth, + }, +]; + +// ====================== +// 📦 Incoming Sapronak Dummy Data +// ====================== +export const dummyIncomingSapronaks: ClosingIncomingSapronak[] = [ + { + id: 1, + date: today, + reference_number: 'IN-2025-001', + transaction_type: 'Pembelian', + product_name: 'DOC Broiler Cobb 500', + product_category: 'DOC', + product_sub_category: 'DOC Broiler', + source_warehouse: 'Gudang Pusat', + destination_warehouse: 'Kandang A1', + quantity: 5000, + unit: 'Ekor', + formatted_quantity: '5,000 Ekor', + notes: 'DOC berkualitas tinggi dari supplier terpercaya', + }, + { + id: 2, + date: yesterday, + reference_number: 'IN-2025-002', + transaction_type: 'Transfer Masuk', + product_name: 'Pakan Starter BR-1', + product_category: 'Pakan', + product_sub_category: 'Starter', + source_warehouse: 'Gudang Area Bandung', + destination_warehouse: 'Kandang B1', + quantity: 100, + unit: 'Sak', + formatted_quantity: '100 Sak (5,000 Kg)', + notes: 'Pakan starter untuk periode awal', + }, + { + id: 3, + date: lastWeek, + reference_number: 'IN-2025-003', + transaction_type: 'Pembelian', + product_name: 'Vitamin B Complex', + product_category: 'OVK', + product_sub_category: 'Vitamin', + source_warehouse: 'Supplier Medion', + destination_warehouse: 'Gudang Farmasi', + quantity: 50, + unit: 'Botol', + formatted_quantity: '50 Botol', + notes: 'Vitamin untuk meningkatkan daya tahan tubuh', + }, + { + id: 4, + date: today, + reference_number: 'IN-2025-004', + transaction_type: 'Pembelian', + product_name: 'Pakan Finisher BR-2', + product_category: 'Pakan', + product_sub_category: 'Finisher', + source_warehouse: 'Gudang Pusat', + destination_warehouse: 'Kandang C1', + quantity: 200, + unit: 'Sak', + formatted_quantity: '200 Sak (10,000 Kg)', + notes: 'Pakan finisher untuk periode akhir', + }, + { + id: 5, + date: yesterday, + reference_number: 'IN-2025-005', + transaction_type: 'Transfer Masuk', + product_name: 'Antibiotik Enrofloxacin', + product_category: 'OVK', + product_sub_category: 'Obat', + source_warehouse: 'Gudang Area Jakarta', + destination_warehouse: 'Gudang Farmasi', + quantity: 30, + unit: 'Box', + formatted_quantity: '30 Box', + notes: 'Antibiotik untuk pencegahan penyakit', + }, +]; + +// ====================== +// 📤 Outgoing Sapronak Dummy Data +// ====================== +export const dummyOutgoingSapronaks: ClosingOutgoingSapronak[] = [ + { + id: 1, + date: today, + reference_number: 'OUT-2025-001', + transaction_type: 'Pemakaian', + product_name: 'Pakan Starter BR-1', + product_category: 'Pakan', + product_sub_category: 'Starter', + source_warehouse: 'Kandang A1', + destination_warehouse: 'Konsumsi Kandang A1', + quantity: 50, + unit: 'Sak', + formatted_quantity: '50 Sak (2,500 Kg)', + notes: 'Pemakaian pakan harian periode starter', + }, + { + id: 2, + date: yesterday, + reference_number: 'OUT-2025-002', + transaction_type: 'Transfer Keluar', + product_name: 'DOC Broiler Cobb 500', + product_category: 'DOC', + product_sub_category: 'DOC Broiler', + source_warehouse: 'Kandang B1', + destination_warehouse: 'Kandang B2', + quantity: 1000, + unit: 'Ekor', + formatted_quantity: '1,000 Ekor', + notes: 'Transfer DOC ke kandang baru', + }, + { + id: 3, + date: lastWeek, + reference_number: 'OUT-2025-003', + transaction_type: 'Pemakaian', + product_name: 'Vitamin B Complex', + product_category: 'OVK', + product_sub_category: 'Vitamin', + source_warehouse: 'Gudang Farmasi', + destination_warehouse: 'Konsumsi Kandang C1', + quantity: 10, + unit: 'Botol', + formatted_quantity: '10 Botol', + notes: 'Pemberian vitamin untuk meningkatkan kesehatan', + }, + { + id: 4, + date: today, + reference_number: 'OUT-2025-004', + transaction_type: 'Pemakaian', + product_name: 'Pakan Finisher BR-2', + product_category: 'Pakan', + product_sub_category: 'Finisher', + source_warehouse: 'Kandang C1', + destination_warehouse: 'Konsumsi Kandang C1', + quantity: 80, + unit: 'Sak', + formatted_quantity: '80 Sak (4,000 Kg)', + notes: 'Pemakaian pakan harian periode finisher', + }, + { + id: 5, + date: yesterday, + reference_number: 'OUT-2025-005', + transaction_type: 'Pemakaian', + product_name: 'Antibiotik Enrofloxacin', + product_category: 'OVK', + product_sub_category: 'Obat', + source_warehouse: 'Gudang Farmasi', + destination_warehouse: 'Konsumsi Kandang D1', + quantity: 5, + unit: 'Box', + formatted_quantity: '5 Box', + notes: 'Pengobatan untuk ayam yang sakit', + }, + { + id: 6, + date: lastWeek, + reference_number: 'OUT-2025-006', + transaction_type: 'Transfer Keluar', + product_name: 'Pakan Starter BR-1', + product_category: 'Pakan', + product_sub_category: 'Starter', + source_warehouse: 'Kandang E1', + destination_warehouse: 'Kandang E2', + quantity: 30, + unit: 'Sak', + formatted_quantity: '30 Sak (1,500 Kg)', + notes: 'Transfer pakan antar kandang', + }, +]; + +// ====================== +// 📊 Perhitungan Sapronak Dummy Data +// ====================== +export const dummySapronakCalculation: ClosingSapronakCalculation = { + // DOC Broiler Calculation + doc_broiler: { + rows: [ + { + id: 1, + tanggal: today, + no_referensi: 'IN-2025-001', + qty_masuk: 5000, + qty_keluar: 0, + qty_pakai: 0, + uraian: 'DOC Broiler Cobb 500', + kategori_produk: 'DOC Broiler', + harga_beli_per_qty: 8000, + total_harga: 40000000, + keterangan: 'Pembelian DOC dari supplier', + }, + { + id: 2, + tanggal: yesterday, + no_referensi: 'OUT-2025-002', + qty_masuk: 0, + qty_keluar: 1000, + qty_pakai: 0, + uraian: 'DOC Broiler Cobb 500', + kategori_produk: 'DOC Broiler', + harga_beli_per_qty: 8000, + total_harga: 8000000, + keterangan: 'Transfer DOC ke kandang lain', + }, + { + id: 3, + tanggal: lastWeek, + no_referensi: 'USE-2025-001', + qty_masuk: 0, + qty_keluar: 0, + qty_pakai: 50, + uraian: 'DOC Broiler Cobb 500', + kategori_produk: 'DOC Broiler', + harga_beli_per_qty: 8000, + total_harga: 400000, + keterangan: 'Mortalitas DOC', + }, + ], + total: { + label: 'Total DOC Broiler', + qty_masuk: 5000, + qty_keluar: 1000, + qty_pakai: 50, + harga_beli_per_qty: 8000, + total_harga: 48400000, + }, + }, + + // OVK Calculation + ovk: { + rows: [ + { + id: 1, + tanggal: today, + no_referensi: 'IN-2025-003', + qty_masuk: 50, + qty_keluar: 0, + qty_pakai: 0, + uraian: 'Vitamin B Complex', + kategori_produk: 'Vitamin', + harga_beli_per_qty: 150000, + total_harga: 7500000, + keterangan: 'Pembelian vitamin', + }, + { + id: 2, + tanggal: yesterday, + no_referensi: 'IN-2025-005', + qty_masuk: 30, + qty_keluar: 0, + qty_pakai: 0, + uraian: 'Antibiotik Enrofloxacin', + kategori_produk: 'Obat', + harga_beli_per_qty: 250000, + total_harga: 7500000, + keterangan: 'Pembelian antibiotik', + }, + { + id: 3, + tanggal: lastWeek, + no_referensi: 'OUT-2025-003', + qty_masuk: 0, + qty_keluar: 0, + qty_pakai: 10, + uraian: 'Vitamin B Complex', + kategori_produk: 'Vitamin', + harga_beli_per_qty: 150000, + total_harga: 1500000, + keterangan: 'Pemakaian vitamin', + }, + { + id: 4, + tanggal: yesterday, + no_referensi: 'OUT-2025-005', + qty_masuk: 0, + qty_keluar: 0, + qty_pakai: 5, + uraian: 'Antibiotik Enrofloxacin', + kategori_produk: 'Obat', + harga_beli_per_qty: 250000, + total_harga: 1250000, + keterangan: 'Pemakaian antibiotik', + }, + ], + total: { + label: 'Total OVK', + qty_masuk: 80, + qty_keluar: 0, + qty_pakai: 15, + harga_beli_per_qty: 200000, + total_harga: 17750000, + }, + }, + + // Pakan Calculation + pakan: { + rows: [ + { + id: 1, + tanggal: yesterday, + no_referensi: 'IN-2025-002', + qty_masuk: 100, + qty_keluar: 0, + qty_pakai: 0, + uraian: 'Pakan Starter BR-1', + kategori_produk: 'Starter', + harga_beli_per_qty: 450000, + total_harga: 45000000, + keterangan: 'Pembelian pakan starter', + }, + { + id: 2, + tanggal: today, + no_referensi: 'IN-2025-004', + qty_masuk: 200, + qty_keluar: 0, + qty_pakai: 0, + uraian: 'Pakan Finisher BR-2', + kategori_produk: 'Finisher', + harga_beli_per_qty: 480000, + total_harga: 96000000, + keterangan: 'Pembelian pakan finisher', + }, + { + id: 3, + tanggal: today, + no_referensi: 'OUT-2025-001', + qty_masuk: 0, + qty_keluar: 0, + qty_pakai: 50, + uraian: 'Pakan Starter BR-1', + kategori_produk: 'Starter', + harga_beli_per_qty: 450000, + total_harga: 22500000, + keterangan: 'Pemakaian pakan starter', + }, + { + id: 4, + tanggal: today, + no_referensi: 'OUT-2025-004', + qty_masuk: 0, + qty_keluar: 0, + qty_pakai: 80, + uraian: 'Pakan Finisher BR-2', + kategori_produk: 'Finisher', + harga_beli_per_qty: 480000, + total_harga: 38400000, + keterangan: 'Pemakaian pakan finisher', + }, + { + id: 5, + tanggal: lastWeek, + no_referensi: 'OUT-2025-006', + qty_masuk: 0, + qty_keluar: 30, + qty_pakai: 0, + uraian: 'Pakan Starter BR-1', + kategori_produk: 'Starter', + harga_beli_per_qty: 450000, + total_harga: 13500000, + keterangan: 'Transfer pakan ke kandang lain', + }, + ], + total: { + label: 'Total Pakan', + qty_masuk: 300, + qty_keluar: 30, + qty_pakai: 130, + harga_beli_per_qty: 465000, + total_harga: 215400000, + }, + }, +}; + +// ====================== +// 💰 Overhead Dummy Data +// ====================== +export const dummyOverhead: ClosingOverhead = { + overheads: [ + { + item_name: 'Expedisi DOC', + uom_name: 'Ekor', + budget_quantity: 500, + budget_unit_price: 8000, + budget_total_amount: 4000000, + actual_date: '', + actual_quantity: 0, + actual_unit_price: 0, + actual_total_amount: 0, + cost_per_bird: 0, + }, + { + item_name: 'Solar', + uom_name: 'Liter', + budget_quantity: 0, + budget_unit_price: 0, + budget_total_amount: 0, + actual_date: today, + actual_quantity: 20, + actual_unit_price: 10000, + actual_total_amount: 200000, + cost_per_bird: 200, + }, + { + item_name: 'Gaji Karyawan Kandang', + uom_name: 'Orang', + budget_quantity: 3, + budget_unit_price: 3000000, + budget_total_amount: 9000000, + actual_date: today, + actual_quantity: 3, + actual_unit_price: 3200000, + actual_total_amount: 9600000, + cost_per_bird: 640, + }, + { + item_name: 'Listrik Kandang', + uom_name: 'Bulan', + budget_quantity: 1, + budget_unit_price: 2500000, + budget_total_amount: 2500000, + actual_date: today, + actual_quantity: 1, + actual_unit_price: 2800000, + actual_total_amount: 2800000, + cost_per_bird: 187, + }, + { + item_name: 'Air Bersih', + uom_name: 'Bulan', + budget_quantity: 1, + budget_unit_price: 500000, + budget_total_amount: 500000, + actual_date: today, + actual_quantity: 1, + actual_unit_price: 450000, + actual_total_amount: 450000, + cost_per_bird: 30, + }, + { + item_name: 'Perbaikan Kandang', + uom_name: 'Paket', + budget_quantity: 1, + budget_unit_price: 3000000, + budget_total_amount: 3000000, + actual_date: yesterday, + actual_quantity: 1, + actual_unit_price: 3500000, + actual_total_amount: 3500000, + cost_per_bird: 233, + }, + { + item_name: 'Service Peralatan', + uom_name: 'Kali', + budget_quantity: 2, + budget_unit_price: 500000, + budget_total_amount: 1000000, + actual_date: lastWeek, + actual_quantity: 2, + actual_unit_price: 550000, + actual_total_amount: 1100000, + cost_per_bird: 73, + }, + { + item_name: 'ATK & Supplies', + uom_name: 'Paket', + budget_quantity: 1, + budget_unit_price: 500000, + budget_total_amount: 500000, + actual_date: today, + actual_quantity: 1, + actual_unit_price: 450000, + actual_total_amount: 450000, + cost_per_bird: 30, + }, + { + item_name: 'Biaya Komunikasi', + uom_name: 'Bulan', + budget_quantity: 1, + budget_unit_price: 300000, + budget_total_amount: 300000, + actual_date: today, + actual_quantity: 1, + actual_unit_price: 320000, + actual_total_amount: 320000, + cost_per_bird: 21, + }, + { + item_name: 'BBM Kendaraan Operasional', + uom_name: 'Liter', + budget_quantity: 200, + budget_unit_price: 10000, + budget_total_amount: 2000000, + actual_date: today, + actual_quantity: 220, + actual_unit_price: 10500, + actual_total_amount: 2310000, + cost_per_bird: 154, + }, + ], + total: { + budget_quantity: 710, + budget_total_amount: 23300000, + actual_quantity: 250, + actual_total_amount: 24530000, + cost_per_bird: 1568, + }, +}; + +// ====================== +// 🔧 Dummy API Response Functions +// ====================== + +/** + * Dummy implementation for getAllFetcher + * Returns all closing records + */ +export const dummyGetAllFetcher = async (): Promise<{ + code: number; + status: 'success'; + message: string; + data: Closing[]; +}> => { + await new Promise((resolve) => setTimeout(resolve, 500)); + return { + code: 200, + status: 'success', + message: 'Data closing berhasil diambil', + data: dummyClosings, + }; +}; + +/** + * Dummy implementation for getSingle + * Returns a single closing by ID + */ +export const dummyGetSingle = async ( + id: number +): Promise | undefined> => { + await new Promise((resolve) => setTimeout(resolve, 300)); + const closing = dummyClosings.find((c) => c.id === id); + + if (!closing) { + return { + code: 404, + status: 'error', + message: `Closing dengan ID ${id} tidak ditemukan`, + }; + } + + return { + code: 200, + status: 'success', + message: 'Data closing berhasil diambil', + data: closing, + }; +}; + +/** + * Dummy implementation for getAllIncomingSapronakFetcher + * Returns all incoming sapronak records + */ +export const dummyGetAllIncomingSapronakFetcher = async (): Promise<{ + code: number; + status: 'success'; + message: string; + data: ClosingIncomingSapronak[]; +}> => { + await new Promise((resolve) => setTimeout(resolve, 400)); + return { + code: 200, + status: 'success', + message: 'Data sapronak masuk berhasil diambil', + data: dummyIncomingSapronaks, + }; +}; + +/** + * Dummy implementation for getAllOutgoingSapronakFetcher + * Returns all outgoing sapronak records + */ +export const dummyGetAllOutgoingSapronakFetcher = async (): Promise<{ + code: number; + status: 'success'; + message: string; + data: ClosingOutgoingSapronak[]; +}> => { + await new Promise((resolve) => setTimeout(resolve, 400)); + return { + code: 200, + status: 'success', + message: 'Data sapronak keluar berhasil diambil', + data: dummyOutgoingSapronaks, + }; +}; + +/** + * Dummy implementation for getGeneralInfo + * Returns closing general information by ID + */ +export const dummyGetGeneralInfo = async ( + id: number +): Promise | undefined> => { + await new Promise((resolve) => setTimeout(resolve, 300)); + const closingInfo = dummyClosingGeneralInformations.find((c) => c.id == id); + + if (!closingInfo) { + return { + code: 404, + status: 'error', + message: `Closing general information dengan ID ${id} tidak ditemukan`, + }; + } + + return { + code: 200, + status: 'success', + message: 'Data closing general information berhasil diambil', + data: closingInfo, + }; +}; + +/** + * Dummy implementation for getPerhitunganSapronak + * Returns sapronak calculation data + */ +export const dummyGetPerhitunganSapronak = async ( + id: number +): Promise< + | { + code: number; + status: 'success'; + message: string; + data: ClosingSapronakCalculation; + } + | undefined +> => { + await new Promise((resolve) => setTimeout(resolve, 400)); + return { + code: 200, + status: 'success', + message: 'Data perhitungan sapronak berhasil diambil', + data: dummySapronakCalculation, + }; +}; + +/** + * Dummy implementation for getOverhead + * Returns overhead data + */ +export const dummyGetOverhead = async ( + id: number +): Promise | undefined> => { + await new Promise((resolve) => setTimeout(resolve, 400)); + return { + code: 200, + status: 'success', + message: 'Data overhead berhasil diambil', + data: dummyOverhead, + }; +}; diff --git a/src/lib/auth-helper.ts b/src/lib/auth-helper.ts new file mode 100644 index 00000000..bf05b70e --- /dev/null +++ b/src/lib/auth-helper.ts @@ -0,0 +1,25 @@ +/** + * Redirects the user to the SSO login page with loop protection. + * + * This function checks a session storage timestamp to ensure that redirects + * do not happen too frequently (blocking infinite redirect loops). + */ +export const redirectToSSO = () => { + if (typeof window === 'undefined') return; + + const lastRedirect = sessionStorage.getItem('auth_redirect_timestamp'); + const now = Date.now(); + + // Loop protection: allow redirect only if last one was > 5 seconds ago + // or if no redirect has happened yet. + if (!lastRedirect || now - parseInt(lastRedirect, 10) > 5000) { + sessionStorage.setItem('auth_redirect_timestamp', now.toString()); + // const ssoLoginUrl = `${process.env.NEXT_PUBLIC_SSO_LOGIN_URL as string}?redirect_url=${window.location.href}`; + + const ltiSsoStart = `${process.env.NEXT_PUBLIC_API_BASE_URL as string}/sso/start?client_id=${process.env.NEXT_PUBLIC_CLIENT_ID as string}&redirect_url=${window.location.href}`; + const ssoLoginUrl = `${process.env.NEXT_PUBLIC_SSO_LOGIN_URL as string}?redirect_url=${ltiSsoStart}`; + window.location.href = ssoLoginUrl; + } else { + console.error('Redirect loop detected. Aborting redirect.'); + } +}; diff --git a/src/lib/helper.ts b/src/lib/helper.ts index fe67afef..c69f610f 100644 --- a/src/lib/helper.ts +++ b/src/lib/helper.ts @@ -31,6 +31,14 @@ export const formatNumber = ( }).format(value); }; +export const formatTitleCase = (value: string) => { + return value + .toLowerCase() + .split(' ') + .map((word) => word.charAt(0).toUpperCase() + word.slice(1)) + .join(' '); +}; + export function formatVechicleNumber(value: string): string { let result = ''; for (let i = 0; i < (value?.length ?? 0); i++) { diff --git a/src/services/api/closing.ts b/src/services/api/closing.ts index e2c604cc..f85e5331 100644 --- a/src/services/api/closing.ts +++ b/src/services/api/closing.ts @@ -6,19 +6,85 @@ import { ClosingGeneralInformation, ClosingIncomingSapronak, ClosingOutgoingSapronak, + ClosingOverhead, + ClosingSapronakCalculation, ClosingProductionData, } from '@/types/api/closing'; -import { httpClient, httpClientFetcher } from '@/services/http/client'; import { BaseApiResponse } from '@/types/api/api-general'; +import { + dummyGetAllFetcher, + dummyGetSingle, + dummyGetAllIncomingSapronakFetcher, + dummyGetAllOutgoingSapronakFetcher, + dummyGetGeneralInfo, + dummyGetPerhitunganSapronak, + dummyGetOverhead, +} from '@/dummy/closing.dummy'; +import { httpClient, httpClientFetcher } from '@/services/http/client'; +import { ClosingSales } from '@/types/api/closing'; export class ClosingApiService extends BaseApiService { constructor(basePath: string) { super(basePath); } + async getAllFetcher(endpoint: string): Promise> { + // TODO: Remove this block when backend is ready + // return await dummyGetAllFetcher(); + + // Uncomment this when backend is ready + return await httpClientFetcher>(endpoint); + } + + async getSingle(id: number): Promise | undefined> { + // TODO: Remove this block when backend is ready + // try { + // return await dummyGetSingle(id); + // } catch (error) { + // if (axios.isAxiosError>(error)) { + // return error.response?.data; + // } + // return undefined; + // } + + // Uncomment this when backend is ready + try { + const getSinglePath = `${this.basePath}/${id}`; + const getSingleRes = + await httpClient>(getSinglePath); + return getSingleRes; + } catch (error) { + if (axios.isAxiosError>(error)) { + return error.response?.data; + } + return undefined; + } + } + + async getPenjualan( + id: number + ): Promise | undefined> { + try { + const getPenjualanPath = `${this.basePath}/${id}/penjualan`; + const getPenjualanRes = + await httpClient>(getPenjualanPath); + + return getPenjualanRes; + } catch (error) { + if (axios.isAxiosError>(error)) { + return error.response?.data; + } + return undefined; + } + } + async getAllIncomingSapronakFetcher( endpoint: string ): Promise> { + // TODO: Remove this block when backend is ready + // return await dummyGetAllIncomingSapronakFetcher(); + + // Uncomment this when backend is ready return await httpClientFetcher>( endpoint ); @@ -27,19 +93,37 @@ export class ClosingApiService extends BaseApiService { async getAllOutgoingSapronakFetcher( endpoint: string ): Promise> { - return await httpClientFetcher>( - endpoint - ); + // TODO: Remove this block when backend is ready + return await dummyGetAllOutgoingSapronakFetcher(); + + // Uncomment this when backend is ready + // return await httpClientFetcher>( + // endpoint + // ); } - async getGeneralInfo(id: number) { + async getGeneralInfo( + id: number + ): Promise | undefined> { + // TODO: Remove this block when backend is ready + // try { + // return await dummyGetGeneralInfo(id); + // } catch (error) { + // if ( + // axios.isAxiosError>(error) + // ) { + // return error.response?.data; + // } + // return undefined; + // } + + // Uncomment this when backend is ready try { const getGeneralInfoPath = `${this.basePath}/${id}`; const getGeneralInfoRes = await httpClient>( getGeneralInfoPath ); - return getGeneralInfoRes; } catch (error) { if ( @@ -66,6 +150,67 @@ export class ClosingApiService extends BaseApiService { return undefined; } } + + async getPerhitunganSapronak( + id: number + ): Promise | undefined> { + // TODO: Remove this block when backend is ready + // try { + // return await dummyGetPerhitunganSapronak(id); + // } catch (error) { + // if ( + // axios.isAxiosError>(error) + // ) { + // return error.response?.data; + // } + // return undefined; + // } + + // Uncomment this when backend is ready + try { + const path = `${this.basePath}/${id}/perhitungan_sapronak`; + return await httpClient>( + path, + { + method: 'GET', + } + ); + } catch (error) { + if ( + axios.isAxiosError>(error) + ) { + return error.response?.data; + } + return undefined; + } + } + + async getOverhead( + id: number + ): Promise | undefined> { + // TODO: Remove this block when backend is ready + // try { + // return await dummyGetOverhead(id); + // } catch (error) { + // if (axios.isAxiosError>(error)) { + // return error.response?.data; + // } + // return undefined; + // } + + // Uncomment this when backend is ready + try { + const path = `${this.basePath}/${id}/overhead`; + return await httpClient>(path, { + method: 'GET', + }); + } catch (error) { + if (axios.isAxiosError>(error)) { + return error.response?.data; + } + return undefined; + } + } } export const ClosingApi = new ClosingApiService('/closings'); diff --git a/src/services/api/expense.ts b/src/services/api/expense.ts index 337730e6..44a855f4 100644 --- a/src/services/api/expense.ts +++ b/src/services/api/expense.ts @@ -492,8 +492,8 @@ export class ExpenseApiService extends BaseApiService< }); formData.append( - 'cost_per_kandangs', - JSON.stringify(payload.cost_per_kandangs) + 'expense_nonstocks', + JSON.stringify(payload.expense_nonstocks) ); return formData; @@ -514,8 +514,8 @@ export class ExpenseApiService extends BaseApiService< }); formData.append( - 'cost_per_kandang', - JSON.stringify(payload.cost_per_kandang) + 'expense_nonstocks', + JSON.stringify(payload.expense_nonstocks) ); return formData; diff --git a/src/services/api/inventory.ts b/src/services/api/inventory.ts index e5d3adfc..fa406917 100644 --- a/src/services/api/inventory.ts +++ b/src/services/api/inventory.ts @@ -12,6 +12,7 @@ import { CreateInventoryAdjustmentPayload, InventoryAdjustment, } from '@/types/api/inventory/adjustment'; +import { InventoryProduct } from '@/types/api/inventory/product'; export const ProductWarehouseApi = new BaseApiService< ProductWarehouse, @@ -25,8 +26,14 @@ export const MovementApi = new BaseApiService< unknown >('/inventory/transfers'); -export const inventoryAdjustmentApi = new BaseApiService< +export const InventoryAdjustmentApi = new BaseApiService< InventoryAdjustment, CreateInventoryAdjustmentPayload, unknown >('/inventory/adjustments'); + +export const InventoryProductApi = new BaseApiService< + InventoryProduct, + unknown, + unknown +>('/inventory/product-stocks'); diff --git a/src/services/api/production.ts b/src/services/api/production.ts index 4266f6b7..8e66d57e 100644 --- a/src/services/api/production.ts +++ b/src/services/api/production.ts @@ -1,4 +1,4 @@ -import { BaseApiService } from './base'; +import { BaseApiService } from '@/services/api/base'; import { BaseApiResponse } from '@/types/api/api-general'; import { CreateProjectFlockPayload, @@ -9,8 +9,6 @@ import { CreateRecordingPayload, Recording, UpdateRecordingPayload, - CreateGradingPayload, - UpdateGradingPayload, NextDayRecording, } from '@/types/api/production/recording'; import { ProjectFlockKandang } from '@/types/api/production/project-flock-kandang'; @@ -64,28 +62,6 @@ export class RecordingService extends BaseApiService< }); } - async createGrading( - payload: CreateGradingPayload - ): Promise | undefined> { - return await this.customRequest>('gradings', { - method: 'POST', - payload, - }); - } - - async updateGrading( - gradingId: number, - payload: UpdateGradingPayload - ): Promise | undefined> { - return await this.customRequest>( - `gradings/${gradingId}`, - { - method: 'PUT', - payload, - } - ); - } - async deleteGrading( gradingId: number ): Promise | undefined> { diff --git a/src/services/api/production/project-flock-kandang.ts b/src/services/api/production/project-flock-kandang.ts index b7729325..f4887e68 100644 --- a/src/services/api/production/project-flock-kandang.ts +++ b/src/services/api/production/project-flock-kandang.ts @@ -2,10 +2,187 @@ import { BaseApiService } from '@/services/api/base'; import { BaseProjectFlockKandang, ProjectFlockKandang, + ClosingProjectFlockKandangPayload, + CheckClosingResponse, } from '@/types/api/production/project-flock-kandang'; +import { BaseApiResponse } from '@/types/api/api-general'; +import { httpClient } from '@/services/http/client'; +import axios from 'axios'; -export const ProjectFlockKandangApi = new BaseApiService< +export class ProjectFlockKandangService extends BaseApiService< BaseProjectFlockKandang, ProjectFlockKandang, unknown ->('project-flock-kandang'); +> { + constructor(basePath: string = '') { + super(basePath); + } + + /** + * Close or Unclose Project Flock Kandang + */ + async closing( + id: number, + payload: ClosingProjectFlockKandangPayload + ): Promise | undefined> { + try { + const path = `${this.basePath}/${id}/closing`; + + const headers = { + 'Content-Type': 'application/json', + ...(this.header ?? {}), + }; + + return await httpClient>(path, { + method: 'POST', + body: payload, + headers, + }); + } catch (error: unknown) { + if (axios.isAxiosError>(error)) { + return error.response?.data; + } + return undefined; + } + } + + /** + * Check Closing Requirements for Project Flock Kandang + * TODO: Replace with actual API call when backend is ready + */ + async checkClosing( + id: number + ): Promise | undefined> { + // Dummy data - replace with actual API call when backend is ready + // return new Promise((resolve) => { + // setTimeout(() => { + // resolve({ + // code: 200, + // status: 'success', + // message: 'Cek persyaratan closing kandang', + // data: { + // unfinished_expenses: id % 2 === 1 ? 2 : 0, + // stock_remaining: [ + // { + // id: 1, + // product_id: 1, + // warehouse_id: 1, + // quantity: id % 2 === 1 ? 100 : 0, + // product: { + // id: 1, + // name: 'Pakan Starter', + // brand: 'Brand A', + // sku: 'PKN-STR-001', + // product_price: 15000, + // selling_price: 17000, + // tax: 0, + // expiry_period: 365, + // flags: ['active'], + // uom: { + // id: 1, + // name: 'Kg', + // created_user: { + // id: 1, + // id_user: 1, + // email: 'admin@example.com', + // name: 'Admin User', + // }, + // created_at: '2024-01-01', + // updated_at: '2024-01-01', + // }, + // product_category: { + // id: 1, + // name: 'Pakan', + // code: 'PKN', + // created_user: { + // id: 1, + // id_user: 1, + // email: 'admin@example.com', + // name: 'Admin User', + // }, + // created_at: '2024-01-01', + // updated_at: '2024-01-01', + // }, + // suppliers: [], + // created_user: { + // id: 1, + // id_user: 1, + // email: 'admin@example.com', + // name: 'Admin User', + // }, + // created_at: '2024-01-01', + // updated_at: '2024-01-01', + // }, + // warehouse: { + // id: 1, + // name: 'Gudang Utama', + // type: 'AREA', + // area: { + // id: 1, + // name: 'Area 1', + // }, + // created_user: { + // id: 1, + // id_user: 1, + // email: 'admin@example.com', + // name: 'Admin User', + // }, + // created_at: '2024-01-01', + // updated_at: '2024-01-01', + // }, + // created_user: { + // id: 1, + // id_user: 1, + // email: 'admin@example.com', + // name: 'Admin User', + // }, + // created_at: '2025-01-01', + // updated_at: '2025-01-01', + // }, + // ], + // expenses: [ + // { + // id: 1, + // po_number: 'PO-BOP-LTI-00001', + // category: 'NON-BOP', + // total: 110000, + // status: id % 2 === 1 ? 'PENGAJUAN' : 'SELESAI', + // step_name: id % 2 === 1 ? 'Approval Finance' : 'Selesai', + // step: id % 2 === 1 ? 1 : 5, + // reference_number: 'BOP-LTI-00001', + // }, + // { + // id: 3, + // po_number: 'PO-BOP-LTI-00003', + // category: 'BOP', + // total: 110000, + // status: id % 2 === 1 ? 'PENGAJUAN' : 'SELESAI', + // step_name: id % 2 === 1 ? 'Approval Finance' : 'Selesai', + // step: id % 2 === 1 ? 1 : 5, + // reference_number: 'BOP-LTI-00003', + // }, + // ], + // }, + // }); + // }, 500); // Simulate network delay + // }); + + // Original API call - uncomment when backend is ready + try { + const path = `${this.basePath}/${id}/closing/check`; + + return await httpClient>(path, { + method: 'GET', + }); + } catch (error: unknown) { + if (axios.isAxiosError>(error)) { + return error.response?.data; + } + return undefined; + } + } +} + +export const ProjectFlockKandangApi = new ProjectFlockKandangService( + '/production/project-flock-kandangs' +); diff --git a/src/services/api/production/project-flock.ts b/src/services/api/production/project-flock.ts index ea0ef12e..d92881f6 100644 --- a/src/services/api/production/project-flock.ts +++ b/src/services/api/production/project-flock.ts @@ -141,6 +141,38 @@ export class ProjectFlockService extends BaseApiService< } } + /** + * Resubmit Project Flock + */ + async resubmit( + id: number, + payload: UpdateProjectFlockPayload + ): Promise | undefined> { + try { + const updatePath = `${this.basePath}/${id}/resubmit`; + + const headers = { + 'Content-Type': 'application/json', + ...(this.header ?? {}), + }; + + const updateRes = await httpClient>( + updatePath, + { + method: 'PUT', + body: payload, + headers, + } + ); + return updateRes; + } catch (error: unknown) { + if (axios.isAxiosError>(error)) { + return error.response?.data; + } + return undefined; + } + } + /** * Approve single Project Flock */ diff --git a/src/services/http/client.ts b/src/services/http/client.ts index f9389a16..68b5282a 100644 --- a/src/services/http/client.ts +++ b/src/services/http/client.ts @@ -2,6 +2,8 @@ import axios from 'axios'; import type { AxiosError, AxiosRequestConfig } from 'axios'; import { RequestOptions } from '@/services/http/base'; +import { redirectToSSO } from '@/lib/auth-helper'; + const BASE_URL = process.env.NEXT_PUBLIC_API_BASE_URL ?? ''; const axiosClient = axios.create({ baseURL: BASE_URL, timeout: 10_000 }); @@ -9,8 +11,7 @@ axiosClient.interceptors.response.use( (response) => response, (error: AxiosError) => { if (error.response?.status === 401) { - const ssoLoginUrl = `${process.env.NEXT_PUBLIC_SSO_LOGIN_URL as string}?redirect_url=${window.location.href}`; - window.location.href = ssoLoginUrl; + redirectToSSO(); } return Promise.reject(error); diff --git a/src/stores/ui/slices/drawer.slice.ts b/src/stores/ui/slices/drawer.slice.ts new file mode 100644 index 00000000..b92b60c3 --- /dev/null +++ b/src/stores/ui/slices/drawer.slice.ts @@ -0,0 +1,40 @@ +import { DrawerUISlice } from '@/types/stores'; +import { StateCreator } from 'zustand'; + +export const createDrawerUISlice: StateCreator< + DrawerUISlice, + [], + [], + DrawerUISlice +> = (set, get, api) => ({ + // event flag untuk memicu formik validate + triggerValidate: false, + + // dibalik untuk memicu event + toggleValidate: () => { + const current = get().triggerValidate; + set({ triggerValidate: !current }); + }, + + // sistem subscriber sederhana agar form bisa listen perubahan flag + subscribeValidate: (callback: () => void) => { + let prev = get().triggerValidate; + + const unsub = api.subscribe((state) => { + if (state.triggerValidate !== prev) { + prev = state.triggerValidate; + callback(); + } + }); + + return unsub; + }, + + isValid: false, + setIsValid: (isValid: boolean) => set({ isValid }), + subscribeIsValid: (callback: (isValid: boolean) => void) => { + return api.subscribe((state) => { + callback(Boolean(state.isValid)); + }); + }, +}); diff --git a/src/stores/ui/ui.store.ts b/src/stores/ui/ui.store.ts index 49554bc9..cbc5785d 100644 --- a/src/stores/ui/ui.store.ts +++ b/src/stores/ui/ui.store.ts @@ -5,11 +5,13 @@ import { devtools } from 'zustand/middleware'; import { UIStore } from '@/types/stores'; import { createMainUiSlice } from '@/stores/ui/slices/main.slice'; +import { createDrawerUISlice } from '@/stores/ui/slices/drawer.slice'; export const useUiStore = create()( devtools( (...args) => ({ ...createMainUiSlice(...args), + ...createDrawerUISlice(...args), }), { name: 'UIStore', diff --git a/src/types/api/closing.d.ts b/src/types/api/closing.d.ts index f5ea7047..1389f786 100644 --- a/src/types/api/closing.d.ts +++ b/src/types/api/closing.d.ts @@ -1,9 +1,34 @@ import { Area } from '@/types/api/master-data/area'; import { Fcr } from '@/types/api/master-data/fcr'; import { Flock } from '@/types/api/master-data/flock'; -import { Kandang } from '@/types/api/master-data/kandang'; import { Location } from '@/types/api/master-data/location'; -import { BaseApproval, BaseMetadata } from '@/types/api/api-general'; +import { Kandang } from '@/types/api/master-data/kandang'; +import { Product } from '@type/api/master-data/product'; +import { Customer } from '@type/api/master-data/customer'; +import { BaseMetadata } from '@/types/api/api-general'; + +export type BaseSales = { + id: number; + realization_date: string; + age: number; + do_number: string; + product: Product; + customer: Customer; + qty: number; + weight: number; + avg_weight: number; + price: number; + total_price: number; + kandang: Kandang; + payment_status: string; +}; + +export type BaseClosingSales = { + project_type: string; + flock_id: number; + period: number; + sales: BaseSales[]; +}; export type BaseClosing = { id: number; @@ -88,3 +113,68 @@ export type ClosingProductionData = { variance_feed_kg: number; }; }; + +// ====== PERHITUNGAN SAPRONAK ====== + +export type RowSapronakCalculation = { + id: number; + tanggal: string; + no_referensi: string; + qty_masuk: number; + qty_keluar: number; + qty_pakai: number; + uraian: string; + kategori_produk: string; + harga_beli_per_qty: number; + total_harga: number; + keterangan: string; +}; + +export type TotalSapronakCalculation = { + label: string; + qty_masuk: number; + qty_keluar: number; + qty_pakai: number; + harga_beli_per_qty: number; + total_harga: number; +}; + +export type ClosingSapronakCalculationItem = { + rows: RowSapronakCalculation[]; + total: TotalSapronakCalculation; +}; + +export type ClosingSapronakCalculation = { + doc_broiler: ClosingSapronakCalculationItem; + ovk: ClosingSapronakCalculationItem; + pakan: ClosingSapronakCalculationItem; +}; + +// ====== OVERHEAD ====== +export type ClosingOverhead = { + overheads: Overhead[]; + total: OverheadTotal; +}; + +export type Overhead = { + item_name: string; + uom_name: string; + budget_quantity: number; + budget_unit_price: number; + budget_total_amount: number; + actual_date: string; + actual_quantity: number; + actual_unit_price: number; + actual_total_amount: number; + cost_per_bird: number; +}; + +export type OverheadTotal = { + budget_quantity: number; + budget_total_amount: number; + actual_quantity: number; + actual_total_amount: number; + cost_per_bird: number; +}; + +export type ClosingSales = BaseMetadata & BaseClosingSales; diff --git a/src/types/api/expense.d.ts b/src/types/api/expense.d.ts index 71863503..a62066ba 100644 --- a/src/types/api/expense.d.ts +++ b/src/types/api/expense.d.ts @@ -18,7 +18,7 @@ export type BaseExpense = { id: number; path: string; }[]; - expense_date: string; + transaction_date: string; realization_date?: string; grand_total: number; location: BaseLocation; @@ -29,28 +29,23 @@ export type BaseExpense = { name: string; pengajuans?: { id: number; + expense_id: number; + kandang_id: number; + nonstock_id: number; qty: number; - unit_price: number; - total_price: number; + price: number; note?: string; nonstock: Pick; - project_flock_kandang: { - id: number; - kandang_id: number; - }; + created_at: string; }[]; realisasi?: { id: number; + expense_nonstock_id: number; qty: number; - unit_price: number; - total_price: number; - date: string; + price: number; note?: string; nonstock: Pick; - project_flock_kandang: { - id: number; - kandang_id: number; - }; + created_at: string; }[]; }[]; total_pengajuan: number; @@ -65,12 +60,12 @@ export type CreateExpensePayload = { transaction_date: string; supplier_id: number; documents: File[]; - cost_per_kandangs: { + expense_nonstocks: { kandang_id: number; cost_items: { nonstock_id: number; quantity: number; - total_cost: number; + price: number; notes: string; }[]; }[]; @@ -81,12 +76,12 @@ export type UpdateExpensePayload = { transaction_date: string; supplier_id: number; documents: File[]; - cost_per_kandang: { + expense_nonstocks: { kandang_id: number; cost_items: { nonstock_id: number; quantity: number; - total_cost: number; + price: number; notes: string; }[]; }[]; @@ -98,8 +93,7 @@ export type CreateExpenseRealizationPayload = { realizations: { expense_nonstock_id: number; qty: number; - unit_price: number; - total_price: number; + price: number; notes: string; }[]; }; diff --git a/src/types/api/inventory/product.d.ts b/src/types/api/inventory/product.d.ts new file mode 100644 index 00000000..cb8f98a1 --- /dev/null +++ b/src/types/api/inventory/product.d.ts @@ -0,0 +1,48 @@ +import { BaseMetadata, CreatedUser } from '@/types/api/api-general'; +import { ProductWarehouse } from '@/types/api/inventory/product-warehouse'; +import { ProductCategory } from '@/types/api/master-data/product-category'; +import { Supplier } from '@/types/api/master-data/supplier'; +import { Uom } from '@/types/api/master-data/uom'; +import { Location } from '@/types/api/master-data/location'; + +export type BaseInventoryProduct = { + id: number; + name: string; + brand: string; + sku: string; + product_price: number; + selling_price?: number; + tax?: number; + expiry_period?: number; + uom: Uom; + product_category: ProductCategory; + suppliers: Supplier[]; + flags: string[]; + product_warehouses?: ProductWarehouseStock[]; + total_stock?: number; +}; + +export type ProductWarehouseStock = { + id: number; + product_id: number; + warehouse_id: number; + warehouse_name: string; + location: Location | null; + current_stock: number; + stock_logs: StockLog[]; +}; + +export type StockLog = { + id: number; + increase: number; + decrease: number; + loggable_type: string; + loggable_id: number; + notes: string; + product_warehouse_id: number; + created_by: number; + created_user: CreatedUser; + created_at: string; +}; + +export type InventoryProduct = BaseInventoryProduct & BaseMetadata; diff --git a/src/types/api/production/project-flock-kandang.d.ts b/src/types/api/production/project-flock-kandang.d.ts index b7b22b99..3a98a6e8 100644 --- a/src/types/api/production/project-flock-kandang.d.ts +++ b/src/types/api/production/project-flock-kandang.d.ts @@ -39,3 +39,43 @@ export type LookupProjectFlockKandangPayload = { project_flock_id: number; kandang_id: number; }; + +export type ClosingProjectFlockKandangPayload = { + action: 'close' | 'unclose'; + closed_date?: string; // YYYY-MM-DD, DD-MM-YYYY, or RFC3339 +}; + +export type ClosingExpense = { + id: number; + po_number: string; + category: string; + total: number; + status: string; + step_name: string; + step: number; + reference_number: string; +}; + +// "flag_name": "PAKAN", +// "product_warehouse_id": 14, +// "product_id": 8, +// "product_name": "281 SPECIAL STARTER", +// "product_category": "Bahan Baku", +// "uom": "Kilogram", +// "quantity": 1100 + +export type StockItem = { + flag_name: string; + product_warehouse_id: number; + product_id: number; + product_name: string; + product_category: string; + uom: string; + quantity: number; +}; + +export type CheckClosingResponse = { + unfinished_expenses: number; + stock_remaining: StockItem[]; + expenses: ClosingExpense[]; +}; diff --git a/src/types/api/production/project-flock.d.ts b/src/types/api/production/project-flock.d.ts index c5b0aaf8..35c42c38 100644 --- a/src/types/api/production/project-flock.d.ts +++ b/src/types/api/production/project-flock.d.ts @@ -4,6 +4,7 @@ import { Flock } from '@/types/api/master-data/flock'; import { Kandang } from '@/types/api/master-data/kandang'; import { Location } from '@/types/api/master-data/location'; import { BaseApproval, BaseMetadata } from '@/types/api/api-general'; +import { Nonstock } from '@/types/api/master-data/nonstock'; export type BaseProjectFlock = { id: number; @@ -22,6 +23,7 @@ export type BaseProjectFlock = { kandangs: (Kandang & { project_flock_kandang_id: number; })[]; + project_budgets?: ProjectFlockBudget[]; approval: BaseApproval; }; @@ -30,6 +32,15 @@ export type PeriodFlock = { next_period: number; }; +export type ProjectFlockBudget = { + id?: number; + project_flock_id?: number; + nonstock_id: number; + nonstock?: Nonstock; + qty: number; + price: number; +}; + export type ProjectFlock = BaseMetadata & BaseProjectFlock; export type CreateProjectFlockPayload = { @@ -39,6 +50,7 @@ export type CreateProjectFlockPayload = { fcr_id: number; location_id: number; kandang_ids: number[]; + project_budgets?: ProjectFlockBudget[]; }; export type UpdateProjectFlockPayload = CreateProjectFlockPayload; diff --git a/src/types/api/production/recording.d.ts b/src/types/api/production/recording.d.ts index e7b28f47..9bed7685 100644 --- a/src/types/api/production/recording.d.ts +++ b/src/types/api/production/recording.d.ts @@ -9,8 +9,7 @@ export type ProductionMetrics = { cum_intake: number; fcr_value: number; total_chick_qty: number; - daily_depletion_rate?: number; - cum_depletion?: number; + cum_depletion: number; }; export type BaseRecording = { @@ -18,42 +17,33 @@ export type BaseRecording = { project_flock_kandang_id: number; record_datetime: string; day: number; - created_by: User; + project_flock_category?: 'GROWING' | 'LAYING'; } & ProductionMetrics; export type RecordingBW = { - id: number; - recording_id: number; avg_weight: number; qty: number; total_weight: number; }; export type RecordingDepletion = { - id: number; - recording_id: number; product_warehouse_id: number; qty: number; product_warehouse: ProductWarehouse; }; export type RecordingStock = { - id: number; - recording_id: number; product_warehouse_id: number; usage_amount?: number; - usage_qty: number; - qty: number; pending_qty: number; product_warehouse: ProductWarehouse; }; export type RecordingEgg = { id: number; - recording_id: number; product_warehouse_id: number; qty: number; - created_by: User; + weight: number; product_warehouse: ProductWarehouse; gradings?: { grade: string; @@ -71,19 +61,12 @@ export type GradingEgg = { export type Recording = BaseMetadata & BaseRecording & { - project_flock_category?: 'GROWING' | 'LAYING'; approval?: BaseApproval; - egg_grading_status?: string | null; - egg_grading_pending_qty?: number | null; - egg_grading_completed_qty?: number | null; + created_user: User; body_weights?: RecordingBW[]; depletions?: RecordingDepletion[]; stocks?: RecordingStock[]; eggs?: RecordingEgg[]; - recording_bws?: RecordingBW[]; - recording_depletions?: RecordingDepletion[]; - recording_stocks?: RecordingStock[]; - recording_eggs?: RecordingEgg[]; grading_eggs?: GradingEgg[]; }; @@ -108,27 +91,10 @@ export type CreateGrowingRecordingPayload = { }[]; }; -export type CreateGradingPayload = { - eggs_grading: { - recording_egg_id: number; - grade: string; - qty: number; - }[]; -}; - -export type UpdateGradingPayload = CreateGradingPayload; - -export type CreateGradingRecordingPayload = { - eggs_grading: { - recording_egg_id: number; - grade: string; - qty: number; - }[]; -}; - export type CreateEggPayload = { product_warehouse_id: number; qty: number; + weight: number; }; export type CreateLayingRecordingPayload = CreateGrowingRecordingPayload & { @@ -137,11 +103,9 @@ export type CreateLayingRecordingPayload = CreateGrowingRecordingPayload & { export type CreateRecordingPayload = | CreateGrowingRecordingPayload - | CreateLayingRecordingPayload - | CreateGradingRecordingPayload; + | CreateLayingRecordingPayload; export type UpdateGrowingRecordingPayload = CreateGrowingRecordingPayload; export type UpdateLayingRecordingPayload = CreateLayingRecordingPayload; -export type UpdateGradingRecordingPayload = CreateGradingRecordingPayload; export type UpdateRecordingPayload = CreateRecordingPayload; diff --git a/src/types/api/purchase/purchase.d.ts b/src/types/api/purchase/purchase.d.ts index 56cbd810..e4de565b 100644 --- a/src/types/api/purchase/purchase.d.ts +++ b/src/types/api/purchase/purchase.d.ts @@ -42,7 +42,6 @@ export type PurchaseItem = { expedition_vendor_name?: string | null; received_qty?: number | null; transport_per_item?: number | null; - transport_total?: number | null; }; export type BasePurchase = { @@ -52,9 +51,8 @@ export type BasePurchase = { po_document_path?: string | null; po_date: string; supplier: Supplier; - credit_term: number; + credit_term?: number; due_date: string; - grand_total: number; notes?: string | null; deleted_at?: string | null; created_by: number; @@ -62,7 +60,7 @@ export type BasePurchase = { location?: Location; warehouse?: Warehouse; items?: PurchaseItem[]; - approval?: BaseApproval; + latest_approval?: BaseApproval; }; export type Purchase = BaseMetadata & BasePurchase; @@ -71,7 +69,7 @@ export type CreatePurchaseRequestPayload = { supplier_id: number; credit_term: number; notes?: string | null; - items: { + items?: { warehouse_id: number; product_id: number; qty: number; @@ -81,7 +79,7 @@ export type CreatePurchaseRequestPayload = { export type CreateStaffApprovalRequestPayload = { action: 'APPROVED' | 'REJECTED'; notes?: string | null; - items: { + items?: { purchase_item_id: number; qty: number; price: number; @@ -92,7 +90,7 @@ export type CreateStaffApprovalRequestPayload = { export type UpdateStaffApprovalRequestPayload = { action: 'APPROVED' | 'REJECTED'; notes?: string | null; - items: Array<{ + items?: Array<{ purchase_item_id?: number; product_id?: number; warehouse_id?: number; @@ -103,12 +101,14 @@ export type UpdateStaffApprovalRequestPayload = { }; export type CreateManagerApprovalRequestPayload = { + action: 'APPROVED' | 'REJECTED'; notes?: string | null; }; export type CreateAcceptApprovalRequestPayload = { - notes?: string; - items: { + action: 'APPROVED' | 'REJECTED'; + notes?: string | null; + items?: { purchase_item_id: number; received_date: string; travel_number: string; @@ -117,7 +117,6 @@ export type CreateAcceptApprovalRequestPayload = { expedition_vendor_id: number; received_qty: number; transport_per_item: number; - transport_total: number; }[]; }; diff --git a/src/types/stores.d.ts b/src/types/stores.d.ts index 1a3046ae..37b252fe 100644 --- a/src/types/stores.d.ts +++ b/src/types/stores.d.ts @@ -3,4 +3,13 @@ type MainUiSlice = { setMainDrawerOpen: (open: boolean) => void; }; -export type UIStore = MainUiSlice; +type DrawerUISlice = { + triggerValidate: boolean; + toggleValidate: () => void; + subscribeValidate: (callback: () => void) => void; + isValid: boolean; + setIsValid: (v: boolean) => void; + subscribeIsValid: (callback: (isValid: boolean) => void) => () => void; +}; + +export type UIStore = MainUiSlice & DrawerUISlice; From 83224e046b519d85060c190928b8689bc6e64700 Mon Sep 17 00:00:00 2001 From: randy-ar Date: Thu, 18 Dec 2025 19:00:30 +0700 Subject: [PATCH 62/89] fix(FE): fix submenu stock product name --- src/config/constant.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config/constant.ts b/src/config/constant.ts index 38077309..5c629c73 100644 --- a/src/config/constant.ts +++ b/src/config/constant.ts @@ -67,7 +67,7 @@ export const MAIN_DRAWER_LINKS: SidebarMenuItem[] = [ icon: 'heroicons-outline:folder', submenu: [ { - text: 'Produk', + text: 'Stok Produk', link: '/inventory/product', }, { From 00e0126e42f48a94ace2bb0394f9f9ea80eda5fa Mon Sep 17 00:00:00 2001 From: rstubryan Date: Thu, 18 Dec 2025 20:35:47 +0700 Subject: [PATCH 63/89] refactor(FE-357): Use string weights and parse floats for filters --- .../report/sale/tab/HppPerKandangTab.tsx | 20 ++++++------------- src/services/api/report/marketing-sale.ts | 4 ++-- 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index c9456a8c..7c9847c8 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -117,7 +117,7 @@ const HppPerKandangTab = () => { >( (e) => { const val = e.target.value; - updateFilter('weight_min', val ? String(parseInt(val, 10)) : ''); + updateFilter('weight_min', val ? String(parseFloat(val) || 0) : ''); setIsSubmitted(false); }, [updateFilter] @@ -128,7 +128,7 @@ const HppPerKandangTab = () => { >( (e) => { const val = e.target.value; - updateFilter('weight_max', val ? String(parseInt(val, 10)) : ''); + updateFilter('weight_max', val ? String(parseFloat(val) || 0) : ''); setIsSubmitted(false); }, [updateFilter] @@ -189,12 +189,8 @@ const HppPerKandangTab = () => { tableFilterState.kandang_id.length > 0 ? tableFilterState.kandang_id.join(',') : undefined, - weight_min: tableFilterState.weight_min - ? Number(tableFilterState.weight_min) - : undefined, - weight_max: tableFilterState.weight_max - ? Number(tableFilterState.weight_max) - : undefined, + weight_min: tableFilterState.weight_min || undefined, + weight_max: tableFilterState.weight_max || undefined, period: tableFilterState.period || undefined, sort_by: tableFilterState.sort_by || undefined, show_unrecorded: tableFilterState.show_unrecorded, @@ -250,12 +246,8 @@ const HppPerKandangTab = () => { tableFilterState.kandang_id.length > 0 ? tableFilterState.kandang_id.join(',') : undefined, - weight_min: tableFilterState.weight_min - ? Number(tableFilterState.weight_min) - : undefined, - weight_max: tableFilterState.weight_max - ? Number(tableFilterState.weight_max) - : undefined, + weight_min: tableFilterState.weight_min || undefined, + weight_max: tableFilterState.weight_max || undefined, period: tableFilterState.period || undefined, sort_by: tableFilterState.sort_by || undefined, show_unrecorded: tableFilterState.show_unrecorded, diff --git a/src/services/api/report/marketing-sale.ts b/src/services/api/report/marketing-sale.ts index 4422957e..bb9c1f49 100644 --- a/src/services/api/report/marketing-sale.ts +++ b/src/services/api/report/marketing-sale.ts @@ -15,8 +15,8 @@ export class MarketingSaleReportService extends BaseApiService< area_id?: string, location_id?: string, kandang_id?: string, - weight_min?: number, - weight_max?: number, + weight_min?: string, + weight_max?: string, period?: string, sort_by?: string, show_unrecorded?: boolean, From 5a21a3b44c0726b022333599d2dcff2f90af5522 Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Fri, 19 Dec 2025 09:38:39 +0700 Subject: [PATCH 64/89] chore(FE-347): adjust UI based on updated ClosingProductionData type --- .../ClosingProductionDataTabContent.tsx | 165 +++++++----------- 1 file changed, 66 insertions(+), 99 deletions(-) diff --git a/src/components/pages/closing/ClosingProductionDataTabContent.tsx b/src/components/pages/closing/ClosingProductionDataTabContent.tsx index ba8a12ed..bffe1707 100644 --- a/src/components/pages/closing/ClosingProductionDataTabContent.tsx +++ b/src/components/pages/closing/ClosingProductionDataTabContent.tsx @@ -33,7 +33,7 @@ const ClosingProductionDataTabContent = ({ ); } - const { purchase, sales, performance, variance } = productionData.data; + const { purchase, sales, performance } = productionData.data; // Helper for consistent row styling const DataRow = ({ @@ -58,39 +58,6 @@ const ClosingProductionDataTabContent = ({
    ); - // Helper for rows with two values (e.g., Deplesi: Ekor & %) - const DoubleDataRow = ({ - label, - value1, - unit1, - value2, - unit2, - value1ClassName = 'font-bold text-gray-800', - value2ClassName = 'font-bold text-blue-500', - }: { - label: string; - value1: string | number; - unit1: string; - value2: string | number; - unit2: string; - value1ClassName?: string; - value2ClassName?: string; - }) => ( -
    - {label} -
    -
    - {value1} - {unit1} -
    -
    - {value2} - {unit2} -
    -
    -
    - ); - return (

    Data Produksi

    @@ -121,17 +88,17 @@ const ClosingProductionDataTabContent = ({ />
    @@ -142,27 +109,61 @@ const ClosingProductionDataTabContent = ({

    Penjualan

    -
    - - - - +
    + {/* Chicken Sales */} +
    + + + + +
    + + {/* Egg Sales (if available) */} + {sales.egg && ( + <> +
    +
    + + + + +
    + + )}
    @@ -178,24 +179,20 @@ const ClosingProductionDataTabContent = ({ Performance
    - - -
    - - - {/* Variance Section (Pushed to bottom) */} -
    -

    Selisih

    -
    - - -
    From a6a6ff9f7219faeaa386e4790284aff2b9ee2382 Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Fri, 19 Dec 2025 09:38:57 +0700 Subject: [PATCH 65/89] feat: create dummyClosingProductionData --- src/dummy/closing.dummy.ts | 39 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/dummy/closing.dummy.ts b/src/dummy/closing.dummy.ts index 3a20cdaf..3b9a9a7b 100644 --- a/src/dummy/closing.dummy.ts +++ b/src/dummy/closing.dummy.ts @@ -83,6 +83,7 @@ import { ClosingIncomingSapronak, ClosingOutgoingSapronak, ClosingOverhead, + ClosingProductionData, ClosingSapronakCalculation, } from '@/types/api/closing'; import { CreatedUser, BaseApiResponse } from '@/types/api/api-general'; @@ -1134,3 +1135,41 @@ export const dummyGetOverhead = async ( data: dummyOverhead, }; }; + +export const dummyClosingProductionData: ClosingProductionData = { + purchase: { + initial_population: 12000, + claim_culling: 150, + final_population: 11850, + feed_in: 24000, + feed_used: 22500, + feed_used_per_head: 1.9, + }, + + sales: { + chicken: { + sales_population: 10500, + sales_weight: 21000, + average_weight: 2.0, + chicken_average_selling_price: 28500, + }, + egg: { + egg_pieces: 185000, + egg_mass_kg: 9250, + average_egg_weight_kg: 0.05, + egg_average_selling_price: 1800, + }, + }, + + performance: { + depletion: 150, + age_day: 35, + mortality_std: 3.5, + mortality_act: 4.2, + deff_mortality: 0.7, + fcr_std: 1.6, + fcr_act: 1.72, + deff_fcr: 0.12, + awg: 60, + }, +}; From d66eaf08c01b1444aacc8210c9372ffccc4d3f17 Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Fri, 19 Dec 2025 09:39:43 +0700 Subject: [PATCH 66/89] chore(FE-347): set return type for getProductionData method --- src/services/api/closing.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/services/api/closing.ts b/src/services/api/closing.ts index f85e5331..5e6ced3a 100644 --- a/src/services/api/closing.ts +++ b/src/services/api/closing.ts @@ -11,6 +11,8 @@ import { ClosingProductionData, } from '@/types/api/closing'; import { BaseApiResponse } from '@/types/api/api-general'; + +// TODO: delete these dummy data later import { dummyGetAllFetcher, dummyGetSingle, @@ -19,6 +21,7 @@ import { dummyGetGeneralInfo, dummyGetPerhitunganSapronak, dummyGetOverhead, + dummyClosingProductionData, } from '@/dummy/closing.dummy'; import { httpClient, httpClientFetcher } from '@/services/http/client'; import { ClosingSales } from '@/types/api/closing'; @@ -135,7 +138,9 @@ export class ClosingApiService extends BaseApiService { } } - async getProductionData(id: number) { + async getProductionData( + id: number + ): Promise | undefined> { try { const getProductionDataPath = `${this.basePath}/${id}/production-data`; const getProductionDataRes = await httpClient< From faaa10b74b833bcc306f74b28f554a29ea4375ec Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Fri, 19 Dec 2025 09:39:56 +0700 Subject: [PATCH 67/89] chore(FE-347): update ClosingProductionData type --- src/types/api/closing.d.ts | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/src/types/api/closing.d.ts b/src/types/api/closing.d.ts index cfafa7f6..6fc8ac71 100644 --- a/src/types/api/closing.d.ts +++ b/src/types/api/closing.d.ts @@ -111,33 +111,36 @@ export type ClosingProductionData = { initial_population: number; claim_culling: number; final_population: number; - feed_in_kg: number; - feed_used_kg: number; - feed_used_per_head_kg: number; + feed_in: number; + feed_used: number; + feed_used_per_head: number; }; + sales: { - sales_kg: number; - sales_head: number; - average_weight_kg: number; - average_price_per_kg: number; + chicken: { + sales_population: number; + sales_weight: number; + average_weight: number; + chicken_average_selling_price: number; + }; + egg?: { + egg_pieces: number; + egg_mass_kg: number; + average_egg_weight_kg: number; + egg_average_selling_price: number; + }; }; + performance: { - depletion_head: number; - depletion_percentage: number; - age_days: number; + depletion: number; + age_day: number; mortality_std: number; mortality_act: number; deff_mortality: number; fcr_std: number; fcr_act: number; deff_fcr: number; - adg: number; - ip: number; - }; - variance: { - variance_head: number; - variance_head_percentage: number; - variance_feed_kg: number; + awg: number; }; }; From 7f694c72988a6b80e88927ca235053c685443dd0 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Fri, 19 Dec 2025 10:17:08 +0700 Subject: [PATCH 68/89] chore(FE): Bump Next.js to 15.5.9 --- package-lock.json | 28 +++++++++++++++++++--------- package.json | 2 +- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index f0212474..c0bf87aa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "clsx": "^2.1.1", "formik": "^2.4.6", "moment": "^2.30.1", - "next": "15.5.7", + "next": "15.5.9", "react": "19.1.0", "react-day-picker": "^9.11.1", "react-dom": "19.1.0", @@ -1082,9 +1082,9 @@ } }, "node_modules/@next/env": { - "version": "15.5.7", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.7.tgz", - "integrity": "sha512-4h6Y2NyEkIEN7Z8YxkA27pq6zTkS09bUSYC0xjd0NpwFxjnIKeZEeH591o5WECSmjpUhLn3H2QLJcDye3Uzcvg==", + "version": "15.5.9", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.9.tgz", + "integrity": "sha512-4GlTZ+EJM7WaW2HEZcyU317tIQDjkQIyENDLxYJfSWlfqguN+dHkZgyQTV/7ykvobU7yEH5gKvreNrH4B6QgIg==", "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { @@ -1855,6 +1855,7 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.2.tgz", "integrity": "sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA==", "license": "MIT", + "peer": true, "dependencies": { "csstype": "^3.0.2" } @@ -1924,6 +1925,7 @@ "integrity": "sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.46.2", "@typescript-eslint/types": "8.46.2", @@ -2447,6 +2449,7 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -3060,7 +3063,8 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/daisyui": { "version": "5.5.8", @@ -3516,6 +3520,7 @@ "integrity": "sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -3689,6 +3694,7 @@ "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", @@ -5654,12 +5660,12 @@ "license": "MIT" }, "node_modules/next": { - "version": "15.5.7", - "resolved": "https://registry.npmjs.org/next/-/next-15.5.7.tgz", - "integrity": "sha512-+t2/0jIJ48kUpGKkdlhgkv+zPTEOoXyr60qXe68eB/pl3CMJaLeIGjzp5D6Oqt25hCBiBTt8wEeeAzfJvUKnPQ==", + "version": "15.5.9", + "resolved": "https://registry.npmjs.org/next/-/next-15.5.9.tgz", + "integrity": "sha512-agNLK89seZEtC5zUHwtut0+tNrc0Xw4FT/Dg+B/VLEo9pAcS9rtTKpek3V6kVcVwsB2YlqMaHdfZL4eLEVYuCg==", "license": "MIT", "dependencies": { - "@next/env": "15.5.7", + "@next/env": "15.5.9", "@swc/helpers": "0.5.15", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", @@ -6167,6 +6173,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -6197,6 +6204,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", "license": "MIT", + "peer": true, "dependencies": { "scheduler": "^0.26.0" }, @@ -7083,6 +7091,7 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -7250,6 +7259,7 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" diff --git a/package.json b/package.json index 52fc6ce2..f5bd2d0f 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "clsx": "^2.1.1", "formik": "^2.4.6", "moment": "^2.30.1", - "next": "15.5.7", + "next": "15.5.9", "react": "19.1.0", "react-day-picker": "^9.11.1", "react-dom": "19.1.0", From d7b828cb47c2eb2ebbd6dd06e06551ac19a71cae Mon Sep 17 00:00:00 2001 From: rstubryan Date: Fri, 19 Dec 2025 10:24:16 +0700 Subject: [PATCH 69/89] chore(FE): Add xlsx@0.20.3 from SheetJS CDN --- package-lock.json | 13 +++++++++++++ package.json | 1 + 2 files changed, 14 insertions(+) diff --git a/package-lock.json b/package-lock.json index c0bf87aa..0c0c75ed 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,6 +26,7 @@ "swr": "^2.3.6", "tailwind-merge": "^3.3.1", "use-debounce": "^10.0.6", + "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz", "yup": "^1.7.0", "zustand": "^5.0.8" }, @@ -7535,6 +7536,18 @@ "node": ">=0.10.0" } }, + "node_modules/xlsx": { + "version": "0.20.3", + "resolved": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz", + "integrity": "sha512-oLDq3jw7AcLqKWH2AhCpVTZl8mf6X2YReP+Neh0SJUzV/BdZYjth94tG5toiMB1PPrYtxOCfaoUCkvtuH+3AJA==", + "license": "Apache-2.0", + "bin": { + "xlsx": "bin/xlsx.njs" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", diff --git a/package.json b/package.json index f5bd2d0f..d0b99b80 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "swr": "^2.3.6", "tailwind-merge": "^3.3.1", "use-debounce": "^10.0.6", + "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz", "yup": "^1.7.0", "zustand": "^5.0.8" }, From 7259de8b1492fd1d2c251b7a3d8f3125271804fb Mon Sep 17 00:00:00 2001 From: rstubryan Date: Fri, 19 Dec 2025 12:56:25 +0700 Subject: [PATCH 70/89] feat(FE): Add renderCustomRow prop to Table --- src/components/Table.tsx | 52 +++++++++++++++++++++++++++------------- 1 file changed, 35 insertions(+), 17 deletions(-) diff --git a/src/components/Table.tsx b/src/components/Table.tsx index 9feb33e2..9791dd59 100644 --- a/src/components/Table.tsx +++ b/src/components/Table.tsx @@ -60,6 +60,12 @@ export interface TableProps { renderFooter?: boolean; withCheckbox?: boolean; rowOptions?: number[]; + /** + * Custom row renderer. Should return a complete
    element or null. + * This gives full control over the row structure including colspan. + * Return null to render the default row. + */ + renderCustomRow?: (row: Row) => ReactNode | null; } const DUMMY_SKELETON_DATA = [{}, {}, {}, {}, {}]; @@ -112,6 +118,7 @@ const Table = ({ renderFooter = false, withCheckbox = false, rowOptions = [10, 20, 50, 100], + renderCustomRow, }: TableProps) => { const isServerSideTable = totalItems !== undefined && @@ -305,24 +312,35 @@ const Table = ({ - {table.getRowModel().rows.map((row) => ( - - {row.getVisibleCells().map((cell) => ( - - ))} - - ))} + if (customRowContent) { + return renderCustomRow?.(row); + } + + return ( + + {row.getVisibleCells().map((cell) => ( + + ))} + + ); + })} {renderFooter && ( From c36d1ee1538516dad313852d391dff2c52037adf Mon Sep 17 00:00:00 2001 From: rstubryan Date: Fri, 19 Dec 2025 13:40:41 +0700 Subject: [PATCH 71/89] feat(FE-355): Add custom row renderer to HppPerKandangTab --- .../report/sale/tab/HppPerKandangTab.tsx | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index 7c9847c8..cc1b3945 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -13,8 +13,8 @@ import { LocationApi } from '@/services/api/master-data'; import { KandangApi } from '@/services/api/master-data'; import { SaleReportApi } from '@/services/api/report/marketing-sale'; import Table from '@/components/Table'; -import { ColumnDef } from '@tanstack/react-table'; -import { formatCurrency, formatDate, formatNumber } from '@/lib/helper'; +import { ColumnDef, Row } from '@tanstack/react-table'; +import { formatCurrency, formatNumber } from '@/lib/helper'; import { HppPerKandangReport } from '@/types/api/report/hpp-per-kandang'; import { isResponseSuccess } from '@/lib/api-helper'; import { useTableFilter } from '@/services/hooks/useTableFilter'; @@ -684,6 +684,27 @@ const HppPerKandangTab = () => { return tableColumns; }; + // ===== CUSTOM ROW RENDERER ===== + const renderCustomRow = useCallback( + (row: Row) => { + if (row.index === data.length - 1) { + return ( + + + + ); + } + + return null; + }, + [data] + ); + return (
    { data={data} columns={getTableColumns()} renderFooter={data.length > 0} + renderCustomRow={renderCustomRow} className={{ containerClassName: 'w-full mt-6', tableWrapperClassName: 'overflow-x-auto mt-4', From da5a577fde3b83c33fe151f3f38516977e118396 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Fri, 19 Dec 2025 13:46:02 +0700 Subject: [PATCH 72/89] refactor(FE-357): Add key to summary table row --- src/components/pages/report/sale/tab/HppPerKandangTab.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index cc1b3945..e7081f84 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -689,7 +689,10 @@ const HppPerKandangTab = () => { (row: Row) => { if (row.index === data.length - 1) { return ( -
    + diff --git a/src/components/pages/production/project-flock/detail/ProjectFlockDetail.tsx b/src/components/pages/production/project-flock/detail/ProjectFlockDetail.tsx index 92510a8d..41b511c9 100644 --- a/src/components/pages/production/project-flock/detail/ProjectFlockDetail.tsx +++ b/src/components/pages/production/project-flock/detail/ProjectFlockDetail.tsx @@ -68,7 +68,7 @@ const ProjectFlockDetail = ({ latestApproval: projectFlock?.approval, approvalLines: PROJECT_FLOCK_APPROVAL_LINE, moduleName: 'PROJECT_FLOCKS', - moduleId: projectFlock?.id.toString() ?? '', + moduleId: projectFlock?.id?.toString() ?? '', }); const { approvals: kandangApprovals, isLoading: kandangApprovalsLoading } = diff --git a/src/components/pages/production/project-flock/form/ProjectFlockForm.tsx b/src/components/pages/production/project-flock/form/ProjectFlockForm.tsx index 9e5eaeef..5ce62733 100644 --- a/src/components/pages/production/project-flock/form/ProjectFlockForm.tsx +++ b/src/components/pages/production/project-flock/form/ProjectFlockForm.tsx @@ -47,9 +47,7 @@ import Card from '@/components/Card'; import ProjectFlockKandangTable from '@/components/pages/production/project-flock/form/ProjectFlockKandangTable'; import { Nonstock } from '@/types/api/master-data/nonstock'; import { useUiStore } from '@/stores/ui/ui.store'; -import Link from 'next/link'; import DrawerHeader from '@/components/helper/drawer/DrawerHeader'; -import { formatDate } from '@/lib/helper'; interface ProjectFlockFormProps { formType?: 'add' | 'edit' | 'detail'; @@ -260,7 +258,9 @@ const ProjectFlockForm = ({ const categoryChangeHandler = (val: OptionType | OptionType[] | null) => { formik.setFieldValue('category', (val as OptionType)?.value); formik.setFieldValue('category_option', val); - formik.setFieldTouched('category', true); + if (val == null) { + formik.setFieldTouched('category', true); + } }; // Submit Handler @@ -788,7 +788,7 @@ const ProjectFlockForm = ({ } errorMessage={formik.errors.area_id as string} isClearable - isDisabled={formType === 'detail'} + isDisabled={formType != 'add'} /> { +const getStatusColor = (action?: string): [number, number, number] => { switch (action) { case 'APPROVED': - return { backgroundColor: '#dcfce7' }; + case 'Selesai': // Berdasarkan data sumber + return [220, 252, 231]; // Hijau muda (#dcfce7) case 'REJECTED': - return { backgroundColor: '#fee2e2' }; + return [254, 226, 226]; // Merah muda (#fee2e2) + case 'Realisasi': // Berdasarkan data sumber + return [254, 243, 199]; // Kuning/Amber muda (#fef3c7) default: - return { backgroundColor: '#fef3c7' }; + return [255, 255, 255]; // Putih } }; -const PDFDocument = ({ - data, - params, -}: { - data: ReportExpense[]; - params: PDFParams; -}) => { - // Group data by supplier - const groupedBySupplier = (() => { - const groups: Record = {}; - data.forEach((item) => { - const supplierName = item.supplier?.name || 'Unknown Supplier'; - if (!groups[supplierName]) { - groups[supplierName] = []; - } - groups[supplierName].push(item); - }); - return groups; - })(); - - // Calculate grand totals - const grandTotals = data.reduce( - (acc, item) => { - const pengajuanTotal = - (item.pengajuan?.qty || 0) * (item.pengajuan?.price || 0); - const realisasiTotal = - (item.realisasi?.qty || 0) * (item.realisasi?.price || 0); - return { - pengajuan: acc.pengajuan + pengajuanTotal, - realisasi: acc.realisasi + realisasiTotal, - }; - }, - { pengajuan: 0, realisasi: 0 } - ); - - return ( - - - {/* Header Section */} - - - PT LUMBUNG TELUR INDONESIA - - SOHO Building Lt.3 (Paris Van Java), Jalan Karang Tinggal, Kel. - Cipedes, Kec. Sukajadi, Kota Bandung 40162 - - - - - {/* Report Title */} - - LAPORAN BIAYA OPERASIONAL - - Tanggal Cetak: {formatDate(new Date(), 'DD MMM YYYY')} - Total Data: {data.length} transaksi - - - - {/* Filters Info if any */} - {(params.location_name || - params.supplier_name || - params.realization_date) && ( - - {params.location_name && ( - Lokasi: {params.location_name} - )} - {params.supplier_name && ( - Supplier: {params.supplier_name} - )} - {params.realization_date && ( - - Tanggal Realisasi:{' '} - {formatDate(params.realization_date, 'DD MMM YYYY')} - - )} - - )} - - {/* Grouped Tables by Supplier */} - {Object.entries(groupedBySupplier).map( - ([supplierName, items], groupIndex) => { - const supplierTotals = items.reduce( - (acc, item) => { - const pengajuanTotal = - (item.pengajuan?.qty || 0) * (item.pengajuan?.price || 0); - const realisasiTotal = - (item.realisasi?.qty || 0) * (item.realisasi?.price || 0); - return { - pengajuan: acc.pengajuan + pengajuanTotal, - realisasi: acc.realisasi + realisasiTotal, - }; - }, - { pengajuan: 0, realisasi: 0 } - ); - - return ( - - {/* Supplier Header */} - {supplierName} - - {/* Table */} - - {/* Header Row 1: Group Headers */} - - - No - - - No. PO - - - No. Referensi - - - Tgl Realisasi - - - Tgl Transaksi - - - Kategori - - - Produk - - - Lokasi - - - Kandang - - - {/* Pengajuan Group */} - - - - - Pengajuan - - - - - - {/* Realisasi Group */} - - - - - Realisasi - - - - - - - Status BOP - - - - {/* Header Row 2: Sub Headers */} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {/* Pengajuan sub-headers */} - - Qty - - - Harga - - - Total - - - {/* Realisasi sub-headers */} - - Qty - - - Harga - - - Total - - - - - - - - {/* Table Body */} - {items.map((item, index) => { - const pengajuanTotal = - (item.pengajuan?.qty || 0) * (item.pengajuan?.price || 0); - const realisasiTotal = - (item.realisasi?.qty || 0) * (item.realisasi?.price || 0); - - return ( - - - {index + 1} - - - {item.po_number || '-'} - - - {item.reference_number || '-'} - - - - {formatDate(item.realization_date, 'DD MMM YY')} - - - - - {formatDate(item.transaction_date, 'DD MMM YY')} - - - - - {item.category?.split('-').join(' ') || '-'} - - - - {item.pengajuan?.nonstock?.name || '-'} - - - {item.kandang?.location?.name || '-'} - - - {item.kandang?.name || '-'} - - - - {(item.pengajuan?.qty || 0).toLocaleString('id-ID')} - - - - - {formatCurrency(item.pengajuan?.price || 0)} - - - - {formatCurrency(pengajuanTotal)} - - - - {(item.realisasi?.qty || 0).toLocaleString('id-ID')} - - - - - {formatCurrency(item.realisasi?.price || 0)} - - - - {formatCurrency(realisasiTotal)} - - - - {item.latest_approval?.step_name || '-'} - - - - ); - })} - - {/* Supplier Subtotal Row */} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {/* Pengajuan Subtotal */} - - - - - Subtotal - - - - {formatCurrency(supplierTotals.pengajuan)} - - - - {/* Realisasi Subtotal */} - - - - - Subtotal - - - - {formatCurrency(supplierTotals.realisasi)} - - - - - - - - - - ); - } - )} - - {/* Grand Total Section */} - - - - - - GRAND TOTAL PENGAJUAN - - - - - {formatCurrency(grandTotals.pengajuan)} - - - - - - - GRAND TOTAL REALISASI - - - - - {formatCurrency(grandTotals.realisasi)} - - - - - - - {/* Footer */} - - - PT LUMBUNG TELUR INDONESIA - - - - - ); -}; - export const generateReportExpensePDF = async ( data: ReportExpense[], params: PDFParams ): Promise => { - try { - const doc = ; - const blob = await pdf(doc).toBlob(); - const url = URL.createObjectURL(blob); - const link = document.createElement('a'); - link.href = url; - link.download = `Laporan-BOP-${formatDate(new Date(), 'YYYY-MM-DD-HHmm')}.pdf`; - document.body.appendChild(link); - link.click(); - document.body.removeChild(link); - URL.revokeObjectURL(url); - } catch (error) { - throw error; + // Inisialisasi dokumen dengan tipe yang sudah diekstensi + const doc = new jsPDF('l', 'mm', 'a4') as jsPDFWithAutoTable; + const pageWidth: number = doc.internal.pageSize.getWidth(); + const marginX: number = 14; + + // --- HEADER SECTION --- + doc.setFont('helvetica', 'bold'); + doc.setFontSize(18); + doc.setTextColor(31, 116, 191); // #1f74bf sesuai style + doc.text('PT LUMBUNG TELUR INDONESIA', marginX, 20); + + doc.setFont('helvetica', 'normal'); + doc.setFontSize(7); + doc.setTextColor(102, 102, 102); + doc.text( + 'SOHO Building Lt.3 (Paris Van Java), Jalan Karang Tinggal, Kel. Cipedes, Kec. Sukajadi, Kota Bandung 40162', + marginX, + 25 + ); + + doc.setDrawColor(0); + doc.line(marginX, 28, pageWidth - marginX, 28); + + // --- TITLE & INFO SECTION --- + doc.setFontSize(18); + doc.setTextColor(31, 116, 191); + doc.text('LAPORAN BIAYA OPERASIONAL', marginX, 38); + + doc.setFontSize(7); + doc.setTextColor(0); + const infoX: number = pageWidth - marginX; + doc.text( + `Tanggal Cetak: ${formatDate(new Date(), 'DD MMM YYYY')}`, + infoX, + 35, + { align: 'right' } + ); + doc.text(`Total Data: ${data.length} transaksi`, infoX, 40, { + align: 'right', + }); + + // --- GROUPING LOGIC --- + const groupedBySupplier = data.reduce( + (acc, item) => { + const supplierName: string = item.supplier?.name || 'Unknown Supplier'; + if (!acc[supplierName]) acc[supplierName] = []; + acc[supplierName].push(item); + return acc; + }, + {} as Record + ); + + let currentY: number = 50; + + // --- RENDER TABLES PER SUPPLIER --- + Object.entries(groupedBySupplier).forEach(([supplierName, items]) => { + // Cek sisa ruang halaman sebelum cetak judul supplier + if (currentY > 180) { + doc.addPage(); + currentY = 20; + } + + doc.setFontSize(14); + doc.setTextColor(31, 116, 191); + doc.text(supplierName, marginX, currentY); + currentY += 5; + + const tableOptions: UserOptions = { + startY: currentY, + head: [ + [ + { content: 'No', rowSpan: 2 }, + { content: 'No. PO', rowSpan: 2 }, + { content: 'No. Referensi', rowSpan: 2 }, + { content: 'Tgl Realisasi', rowSpan: 2 }, + { content: 'Tgl Transaksi', rowSpan: 2 }, + { content: 'Kategori', rowSpan: 2 }, + { content: 'Produk', rowSpan: 2 }, + { content: 'Lokasi', rowSpan: 2 }, + { content: 'Kandang', rowSpan: 2 }, + { content: 'Pengajuan', colSpan: 3, styles: { halign: 'center' } }, + { content: 'Realisasi', colSpan: 3, styles: { halign: 'center' } }, + { content: 'Status BOP', rowSpan: 2 }, + ], + ['Qty', 'Harga', 'Total', 'Qty', 'Harga', 'Total'], + ], + body: items.map((item, index) => { + const pQty: number = item.pengajuan?.qty || 0; + const pPrice: number = item.pengajuan?.price || 0; + const rQty: number = item.realisasi?.qty || 0; + const rPrice: number = item.realisasi?.price || 0; + + return [ + index + 1, + item.po_number || '-', + item.reference_number || '-', + formatDate(item.realization_date, 'DD MMM YY'), + formatDate(item.transaction_date, 'DD MMM YY'), + item.category?.replace('-', ' ') || '-', + item.pengajuan?.nonstock?.name || '-', + item.kandang?.location?.name || '-', + item.kandang?.name || '-', + pQty.toLocaleString('id-ID'), + formatCurrency(pPrice), + formatCurrency(pQty * pPrice), + rQty.toLocaleString('id-ID'), + formatCurrency(rPrice), + formatCurrency(rQty * rPrice), + item.latest_approval?.step_name || '-', + ]; + }), + theme: 'grid', + styles: { fontSize: 6, cellPadding: 1.5, overflow: 'linebreak' }, + headStyles: { + fillColor: [245, 245, 245], + textColor: 0, + fontStyle: 'bold', + lineWidth: 0.1, + }, + // HOOK UNTUK BADGE: + didParseCell: (dataCell) => { + // Index kolom 15 adalah Status BOP (berdasarkan array di atas) + if (dataCell.section === 'body' && dataCell.column.index === 15) { + const statusText = dataCell.cell.raw as string; + + // Berikan warna latar belakang sel sesuai status + dataCell.cell.styles.fillColor = getStatusColor(statusText); + dataCell.cell.styles.textColor = [0, 0, 0]; // Teks hitam agar terbaca + dataCell.cell.styles.fontStyle = 'bold'; + dataCell.cell.styles.halign = 'center'; + } + }, + margin: { left: marginX, right: marginX }, + }; + + autoTable(doc, tableOptions); + currentY = doc.lastAutoTable.finalY + 10; + }); + + // --- GRAND TOTAL SECTION --- + const grandTotals = data.reduce( + (acc, item) => { + const pTotal = (item.pengajuan?.qty || 0) * (item.pengajuan?.price || 0); + const rTotal = (item.realisasi?.qty || 0) * (item.realisasi?.price || 0); + return { + pengajuan: acc.pengajuan + pTotal, + realisasi: acc.realisasi + rTotal, + }; + }, + { pengajuan: 0, realisasi: 0 } + ); + + if (currentY > 250) { + doc.addPage(); + currentY = 20; } + + autoTable(doc, { + startY: currentY, + body: [ + ['GRAND TOTAL PENGAJUAN', formatCurrency(grandTotals.pengajuan)], + ['GRAND TOTAL REALISASI', formatCurrency(grandTotals.realisasi)], + ], + styles: { fontSize: 8, fontStyle: 'bold' }, + columnStyles: { + 0: { cellWidth: 50, fillColor: [245, 245, 245] }, + 1: { cellWidth: 50 }, + }, + theme: 'grid', + margin: { left: marginX }, + }); + + // --- FOOTER --- + const finalY: number = doc.lastAutoTable.finalY + 20; + doc.setFontSize(14); + doc.setTextColor(31, 116, 191); + doc.text('PT LUMBUNG TELUR INDONESIA', pageWidth - marginX, finalY, { + align: 'right', + }); + + // Download File + const fileName: string = `Laporan-BOP-${formatDate(new Date(), 'YYYY-MM-DD-HHmm')}.pdf`; + doc.save(fileName); }; diff --git a/src/dummy/reports-expense.dummy.json b/src/dummy/reports-expense.dummy.json deleted file mode 100644 index e0a88f9e..00000000 --- a/src/dummy/reports-expense.dummy.json +++ /dev/null @@ -1,69334 +0,0 @@ -[ - { - "id": 622, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 112, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 931, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 505, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 267, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 734, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 670, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 386, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 701, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 563, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 954, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 175, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 203, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 8, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 36, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 468, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 960, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 146, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 191, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 802, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 541, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 781, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 18, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 958, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 29, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 765, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 892, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 656, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 205, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 344, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 51, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 15, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 152, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 616, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 959, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 602, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 934, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 85, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 634, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 268, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 674, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 597, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 102, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 645, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 841, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 554, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 860, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 436, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 20, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 686, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 692, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 771, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 763, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 819, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 19, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 159, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 279, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 514, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 697, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 956, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 107, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 326, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 216, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 651, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 173, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 376, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 113, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 442, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 835, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 37, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 377, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 547, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 185, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 731, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 719, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 54, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 797, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 527, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 296, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 943, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 322, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 517, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 586, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 739, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 502, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 905, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 624, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 909, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 680, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 1001, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 53, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 13, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 109, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 864, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 923, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 914, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 227, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 228, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 155, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 96, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 447, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 997, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 142, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 63, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 688, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 81, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 506, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 294, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 796, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 432, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 724, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 92, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 612, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 355, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 332, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 515, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 246, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 986, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 158, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 611, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 815, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 504, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 921, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 705, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 464, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 694, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 538, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 995, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 735, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 578, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 70, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 84, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 540, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 274, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 417, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 861, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 390, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 48, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 298, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 317, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 493, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 474, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 195, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 406, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 565, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 756, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 215, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 316, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 632, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 11, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 62, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 286, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 503, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 784, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 939, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 818, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 820, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 520, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 741, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 749, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 5, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 329, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 77, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 896, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 809, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 681, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 623, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 627, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 179, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 779, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 941, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 303, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 230, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 832, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 902, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 431, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 537, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 648, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 872, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 202, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 876, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 434, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 201, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 413, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 793, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 524, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 451, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 288, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 713, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 384, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 816, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 856, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 187, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 621, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 501, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 99, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 71, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 115, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 110, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 379, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 550, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 357, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 251, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 946, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 866, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 608, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 906, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 783, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 97, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 407, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 970, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 287, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 716, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 643, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 562, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 469, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 747, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 423, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 183, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 190, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 519, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 352, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 334, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 167, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 535, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 61, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 237, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 650, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 144, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 672, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 460, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 518, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 421, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 290, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 368, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 244, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 149, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 261, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 313, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 593, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 659, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 59, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 880, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 157, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 822, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 119, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 987, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 628, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 751, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 729, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 999, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 82, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 405, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 50, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 543, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 402, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 186, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 455, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 754, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 977, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 859, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 665, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 722, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 806, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 589, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 30, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 938, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 755, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 894, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 753, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 762, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 56, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 358, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 509, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 530, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 293, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 373, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 871, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 657, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 531, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 687, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 226, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 55, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 243, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 393, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 927, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 69, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 798, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 52, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 975, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 312, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 566, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 936, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 387, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 271, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 794, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 528, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 475, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 912, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 890, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 571, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 12, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 95, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 895, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 424, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 136, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 466, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 32, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 834, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 874, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 836, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 349, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 897, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 209, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 799, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 3, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 235, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 389, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 351, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 299, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 585, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 372, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 653, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 176, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 489, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 683, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 898, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 131, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 140, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 427, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 404, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 301, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 459, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 829, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 240, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 804, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 388, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 266, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 73, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 904, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 949, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 584, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 163, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 328, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 590, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 853, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 845, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 675, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 994, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 553, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 924, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 638, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 811, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 615, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 875, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 693, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 204, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 60, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 34, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 361, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 16, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 4, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 25, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 868, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 488, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 786, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 903, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 993, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 72, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 619, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 962, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 248, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 473, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 706, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 901, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 122, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 649, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 160, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 133, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 682, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 831, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 513, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 613, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 561, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 292, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 721, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 416, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 304, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 125, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 111, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 420, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 785, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 385, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 974, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 877, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 992, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 214, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 218, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 66, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 452, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 305, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 788, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 338, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 973, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 285, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 838, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 324, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 922, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 704, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 75, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 545, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 443, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 480, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 439, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 177, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 677, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 998, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 437, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 166, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 101, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 487, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 737, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 830, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 370, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 458, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 684, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 348, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 857, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 270, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 281, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 758, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 148, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 138, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 275, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 9, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 789, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 984, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 486, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 926, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 885, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 881, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 976, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 260, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 363, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 321, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 546, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 64, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 28, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 291, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 826, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 343, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 438, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 569, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 996, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 918, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 7, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 981, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 583, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 383, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 863, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 239, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 398, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 410, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 557, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 629, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 555, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 471, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 952, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 433, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 770, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 745, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 241, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 250, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 899, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 522, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 217, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 533, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 381, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 219, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 300, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 862, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 695, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 913, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 581, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 277, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 707, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 768, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 302, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 534, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 2, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 601, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 529, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 640, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 238, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 596, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 843, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 35, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 810, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 359, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 42, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 360, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 985, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 197, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 450, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 418, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 605, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 808, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 375, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 245, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 153, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 430, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 702, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 378, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 774, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 854, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 603, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 497, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 848, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 483, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 145, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 91, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 844, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 576, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 971, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 307, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 539, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 121, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 654, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 428, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 453, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 308, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 429, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 382, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 456, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 587, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 824, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 401, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 411, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 635, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 444, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 199, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 143, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 964, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 482, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 170, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 362, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 481, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 900, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 673, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 134, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 14, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 103, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 703, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 200, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 728, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 354, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 636, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 17, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 667, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 663, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 942, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 953, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 499, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 886, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 120, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 283, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 957, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 888, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 441, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 526, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 315, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 132, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 181, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 685, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 850, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 945, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 124, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 236, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 165, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 548, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 306, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 414, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 94, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 24, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 320, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 730, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 67, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 744, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 365, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 257, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 884, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 88, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 598, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 933, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 491, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 631, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 591, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 746, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 803, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 930, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 151, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 147, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 879, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 507, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 817, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 710, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 318, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 356, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 457, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 907, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 544, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 690, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 445, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 232, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 980, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 178, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 988, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 162, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 712, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 678, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 309, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 727, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 211, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 965, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 346, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 778, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 269, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 419, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 207, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 839, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 916, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 45, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 210, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 574, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 272, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 462, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 929, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 265, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 174, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 169, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 660, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 792, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 65, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 759, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 932, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 220, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 93, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 595, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 325, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 594, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 842, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 225, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 717, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 777, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 391, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 618, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 47, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 966, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 990, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 920, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 172, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 972, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 733, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 669, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 500, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 188, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 425, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 668, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 560, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 891, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 620, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 44, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 549, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 224, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 600, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 127, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 208, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 347, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 126, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 336, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 625, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 661, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 87, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 461, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 525, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 341, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 196, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 508, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 345, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 289, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 104, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 825, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 249, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 742, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 198, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 213, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 642, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 295, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 940, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 814, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 676, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 98, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 951, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 919, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 258, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 889, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 415, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 805, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 435, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 161, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 780, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 327, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 558, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 123, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 478, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 449, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 229, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 339, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 311, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 937, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 117, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 114, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 409, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 536, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 696, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 967, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 314, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 671, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 139, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 394, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 262, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 105, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 511, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 58, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 498, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 367, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 521, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 641, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 397, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 233, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 588, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 917, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 882, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 319, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 168, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 40, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 164, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 679, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 330, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 76, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 1000, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 380, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 46, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 78, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 646, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 86, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 39, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 592, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 463, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 369, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 399, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 846, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 496, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 222, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 935, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 10, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 750, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 568, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 284, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 580, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 350, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 446, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 928, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 609, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 791, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 908, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 532, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 440, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 476, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 700, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 259, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 849, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 979, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 564, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 773, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 978, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 74, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 408, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 968, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 255, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 633, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 57, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 813, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 761, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 154, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 484, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 570, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 130, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 396, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 80, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 171, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 828, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 873, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 767, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 374, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 194, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 910, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 83, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 100, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 6, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 699, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 652, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 723, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 644, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 273, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 108, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 775, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 575, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 837, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 748, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 223, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 150, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 969, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 310, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 31, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 542, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 840, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 90, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 870, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 757, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 118, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 494, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 454, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 371, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 711, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 915, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 752, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 948, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 743, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 472, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 572, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 41, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 242, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 833, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 479, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 847, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 331, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 709, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 485, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 182, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 156, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 944, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 807, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 254, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 725, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 637, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 400, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 878, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 516, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 551, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 617, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 135, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 559, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 955, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 760, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 821, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 599, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 582, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 477, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 234, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 323, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 89, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 366, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 422, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 639, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 263, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 858, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 795, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 412, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 23, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 740, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 689, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 212, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 614, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 950, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 280, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 855, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 989, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 865, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 827, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 720, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 630, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 26, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 787, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 552, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 812, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 991, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 340, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 708, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 510, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 403, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 726, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 983, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 342, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 278, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 79, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 495, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 337, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 193, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 801, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 128, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 790, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 43, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 772, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 852, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 256, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 21, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 869, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 883, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 691, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 49, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 426, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 823, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 732, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 297, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 141, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 982, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 647, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 282, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 655, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 335, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 276, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 106, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 252, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 664, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 738, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 715, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 116, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 38, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 718, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 192, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 465, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 604, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 567, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 766, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 887, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 776, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 851, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 395, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 364, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 353, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 333, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 947, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 626, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 963, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 221, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 22, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 27, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 180, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 556, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 867, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 782, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 800, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 231, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 490, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 467, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 764, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 137, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 392, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 129, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 577, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 206, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 512, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 607, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 68, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 492, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 448, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 769, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 698, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 662, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 573, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 523, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 893, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 184, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 189, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 666, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 606, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 736, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 911, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 5, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "ewfwe", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 5, - "expense_nonstock_id": 5, - "qty": 2000, - "price": 1500, - "notes": "ewfew", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 264, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 961, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 247, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 714, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 1, - "expense_id": 1, - "project_flock_kandang_id": 1, - "qty": 200, - "price": 14000, - "notes": "121", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 1, - "expense_nonstock_id": 1, - "qty": 200, - "price": 14000, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 2800000, - "total_realisasi": 2800000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 33, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 579, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 4, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "sjhbcv", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 4, - "expense_nonstock_id": 4, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 253, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - }, - { - "id": 470, - "reference_number": "BOP-LTI-00002", - "po_number": "PO-BOP-LTI-00002", - "category": "NON-BOP", - "supplier": { - "id": 2, - "name": "BOP Vendor", - "alias": "BOP", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-15T08:15:06.565459Z", - "updated_at": "2025-12-15T08:16:54.42286Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 3, - "expense_id": 2, - "qty": 20, - "price": 14000, - "notes": "cata", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:15:06.55969Z" - }, - "realisasi": { - "id": 3, - "expense_nonstock_id": 3, - "qty": 20, - "price": 14000, - "notes": "", - "nonstock": { - "id": 2, - "name": "Solar", - "flags": [] - }, - "created_at": "2025-12-15T08:16:54.417829Z" - }, - "total_pengajuan": 280000, - "total_realisasi": 280000, - "latest_approval": { - "id": 24, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:54.425725Z" - } - }, - { - "id": 610, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 658, - "reference_number": "BOP-LTI-00003", - "po_number": "PO-BOP-LTI-00003", - "category": "NON-BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-15T00:00:00Z", - "transaction_date": "2025-12-09T00:00:00Z", - "created_at": "2025-12-15T08:16:07.086353Z", - "updated_at": "2025-12-15T08:16:38.612526Z", - "kandang": { - "id": 1, - "name": "Singaparna 1", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 6, - "expense_id": 3, - "qty": 2000, - "price": 1500, - "notes": "jdhfbvier", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:07.085177Z" - }, - "realisasi": { - "id": 6, - "expense_nonstock_id": 6, - "qty": 2000, - "price": 1500, - "notes": "ewf", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T08:16:38.607738Z" - }, - "total_pengajuan": 3000000, - "total_realisasi": 3000000, - "latest_approval": { - "id": 23, - "step_number": 4, - "step_name": "Realisasi", - "action": "CREATED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T08:16:38.613723Z" - } - }, - { - "id": 925, - "reference_number": "BOP-LTI-00001", - "po_number": "PO-BOP-LTI-00001", - "category": "BOP", - "supplier": { - "id": 3, - "name": "Ekspedisi", - "alias": "EKS", - "category": "BOP" - }, - "realization_date": "2025-12-08T00:00:00Z", - "transaction_date": "2025-12-10T00:00:00Z", - "created_at": "2025-12-11T09:46:06.835614Z", - "updated_at": "2025-12-15T06:31:30.779245Z", - "kandang": { - "id": 2, - "name": "Singaparna 2", - "status": "ACTIVE", - "capacity": 0, - "location": { - "id": 1, - "name": "Singaparna", - "address": "Tasik" - } - }, - "pengajuan": { - "id": 2, - "expense_id": 1, - "project_flock_kandang_id": 2, - "qty": 2000, - "price": 200, - "notes": "12321", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-11T09:46:06.833808Z" - }, - "realisasi": { - "id": 2, - "expense_nonstock_id": 2, - "qty": 2000, - "price": 200, - "notes": "", - "nonstock": { - "id": 1, - "name": "Expedisi DOC", - "flags": [] - }, - "created_at": "2025-12-15T06:31:30.770535Z" - }, - "total_pengajuan": 400000, - "total_realisasi": 400000, - "latest_approval": { - "id": 9, - "step_number": 5, - "step_name": "Selesai", - "action": "APPROVED", - "notes": null, - "action_by": { - "id": 1, - "id_user": 1, - "email": "admin@mbugroup.id", - "name": "Super Admin" - }, - "action_at": "2025-12-15T06:31:37.601162Z" - } - } -] diff --git a/src/dummy/reports-expense.dummy.ts b/src/dummy/reports-expense.dummy.ts deleted file mode 100644 index 1bd0f9bc..00000000 --- a/src/dummy/reports-expense.dummy.ts +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Dummy data for ReportExpense[] - * Generated from: report-expense.json - * - * This file is auto-generated. Do not edit manually. - */ - -import { BaseApiResponse } from '@/types/api/api-general'; -import dummyData from './reports-expense.dummy.json'; -import { ReportExpense } from '@/types/api/report/report-expense'; - -/** - * Get dummy ReportExpense[] data - * @returns Promise with BaseApiResponse containing ReportExpense[] - */ -export async function getDummyExpense(): Promise< - BaseApiResponse -> { - return new Promise((resolve) => { - setTimeout(() => { - resolve({ - code: 200, - status: 'success', - message: 'Data retrieved successfully', - data: dummyData as unknown as ReportExpense[], - }); - }, 500); - }); -} diff --git a/src/services/api/report.ts b/src/services/api/report.ts index 6bb13151..d5061d33 100644 --- a/src/services/api/report.ts +++ b/src/services/api/report.ts @@ -16,11 +16,6 @@ export class ReportExpenseApiService extends BaseApiService< async getAllFetcher( endpoint: string ): Promise> { - // TODO: Remove this block when backend is ready - // const { getDummyExpense } = await import('@/dummy/reports-expense.dummy'); - // return await getDummyExpense(); - - // Uncomment this when backend is ready return await httpClientFetcher>(endpoint); } } From c230c8000bfde80331d4447692356fa2c62a7451 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Sat, 20 Dec 2025 08:52:34 +0700 Subject: [PATCH 75/89] refactor(FE-355,356,257): Use API summary per_weight_range for HPP reports --- .../sale/export/HppPerkandangExport.tsx | 226 +++++++----------- .../report/sale/tab/HppPerKandangTab.tsx | 96 ++++++-- 2 files changed, 162 insertions(+), 160 deletions(-) diff --git a/src/components/pages/report/sale/export/HppPerkandangExport.tsx b/src/components/pages/report/sale/export/HppPerkandangExport.tsx index 72e7cbaa..790efef7 100644 --- a/src/components/pages/report/sale/export/HppPerkandangExport.tsx +++ b/src/components/pages/report/sale/export/HppPerkandangExport.tsx @@ -9,7 +9,11 @@ import { Font, pdf, } from '@react-pdf/renderer'; -import { HppPerKandangReport } from '@/types/api/report/hpp-per-kandang'; +import { + HppPerKandangReport, + HppPerKandangRow, + HppPerKandangPerWeightRange, +} from '@/types/api/report/hpp-per-kandang'; import { formatDate, formatNumber, formatCurrency } from '@/lib/helper'; Font.register({ @@ -148,74 +152,6 @@ interface HppPerKandangExportParams { }; } -const rekapitulasiData = (data: HppPerKandangReport['rows']) => { - const groups: { [key: string]: HppPerKandangReport['rows'] } = {}; - - data.forEach((item) => { - const key = `${item.weight_range.weight_min}-${item.weight_range.weight_max}`; - if (!groups[key]) { - groups[key] = []; - } - groups[key].push(item); - }); - - return Object.entries(groups) - .map(([key, items]) => ({ - weight_min: items[0].weight_range.weight_min, - weight_max: items[0].weight_range.weight_max, - items, - total_remaining_chicken_birds: items.reduce( - (sum, item) => sum + item.remaining_chicken_birds, - 0 - ), - total_remaining_chicken_weight_kg: items.reduce( - (sum, item) => sum + item.remaining_chicken_weight_kg, - 0 - ), - average_weight_kg: - items.reduce((sum, item) => sum + item.remaining_chicken_weight_kg, 0) / - items.reduce((sum, item) => sum + item.remaining_chicken_birds, 0), - total_hpp_rp: items.reduce((sum, item) => sum + item.hpp_rp, 0), - total_remaining_value_rp: items.reduce( - (sum, item) => sum + item.remaining_value_rp, - 0 - ), - total_egg_production_pieces: items.reduce( - (sum, item) => sum + (item.egg_production_pieces || 0), - 0 - ), - total_egg_production_kg: items.reduce( - (sum, item) => sum + (item.egg_production_kg || 0), - 0 - ), - total_egg_value_rp: items.reduce( - (sum, item) => sum + (item.egg_value_rp || 0), - 0 - ), - average_egg_hpp_rp_per_kg: - items.reduce((sum, item) => sum + (item.egg_hpp_rp_per_kg || 0), 0) / - items.length, - average_doc_price_rp: - items.reduce((sum, item) => sum + item.average_doc_price_rp, 0) / - items.length, - all_feed_suppliers: [ - ...new Set( - items.flatMap( - (item) => item.feed_suppliers?.map((s) => s.alias || s.name) || [] - ) - ), - ], - all_doc_suppliers: [ - ...new Set( - items.flatMap( - (item) => item.doc_suppliers?.map((s) => s.alias || s.name) || [] - ) - ), - ], - })) - .sort((a, b) => a.weight_min - b.weight_min); -}; - const getParameterText = (params: HppPerKandangExportParams['params']) => { const paramsText = []; @@ -260,7 +196,7 @@ const createPDFDocument = ( data: HppPerKandangExportParams['data'], params: HppPerKandangExportParams['params'] ) => { - const rekapitulasiByWeightRange = rekapitulasiData(data.rows); + const rekapitulasiByWeightRange = data.summary?.per_weight_range || []; return ( @@ -328,71 +264,81 @@ const createPDFDocument = ( {/* Table Body - Rekapitulasi */} - {rekapitulasiByWeightRange.map((group, index) => ( - - - - {group.weight_min.toFixed(2)} -{' '} - {group.weight_max.toFixed(2)} - + {rekapitulasiByWeightRange.map( + (group: HppPerKandangPerWeightRange, index: number) => ( + + + {group.label} + + + {formatNumber(group.remaining_chicken_birds)} + + + + {formatNumber(group.remaining_chicken_weight_kg)} + + + + {formatNumber(group.avg_weight_kg)} + + + - + + + - + + + + {group.feed_suppliers + ?.map( + (s: { alias?: string; name: string }) => + s.alias || s.name + ) + .join(' | ') || '-'} + + + + + {group.doc_suppliers + ?.map( + (s: { alias?: string; name: string }) => + s.alias || s.name + ) + .join(' | ') || '-'} + + + + {formatCurrency(group.average_doc_price_rp)} + + + - + + + + {formatCurrency( + group.remaining_chicken_birds > 0 + ? group.hpp_rp / group.remaining_chicken_birds + : 0 + )} + + + + - + + + {formatCurrency(group.remaining_value_rp)} + - - - {formatNumber(group.total_remaining_chicken_birds)} - - - - - {formatNumber(group.total_remaining_chicken_weight_kg)} - - - - {formatNumber(group.average_weight_kg)} - - - {formatNumber(group.total_egg_production_pieces)} - - - {formatNumber(group.total_egg_production_kg)} - - - {group.all_feed_suppliers.join(' | ')} - - - {group.all_doc_suppliers.join(' | ')} - - - {formatCurrency(group.average_doc_price_rp)} - - - {formatCurrency(group.total_egg_value_rp)} - - - - {formatCurrency( - group.total_remaining_chicken_birds > 0 - ? group.total_hpp_rp / - group.total_remaining_chicken_birds - : 0 - )} - - - - {formatCurrency(group.average_egg_hpp_rp_per_kg)} - - - {formatCurrency(group.total_remaining_value_rp)} - - - ))} + ) + )} @@ -451,7 +397,7 @@ const createPDFDocument = ( {/* Table Body - Detail Per Kandang */} - {data.rows.map((item, index) => ( + {data.rows.map((item: HppPerKandangRow, index: number) => ( {item.feed_suppliers - ?.map((s) => s.alias || s.name) + ?.map( + (s: { alias?: string; name: string }) => + s.alias || s.name + ) .join(' | ')} {item.doc_suppliers - ?.map((s) => s.alias || s.name) + ?.map( + (s: { alias?: string; name: string }) => + s.alias || s.name + ) .join(' | ')} diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index e7081f84..7da3ff36 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -15,7 +15,11 @@ import { SaleReportApi } from '@/services/api/report/marketing-sale'; import Table from '@/components/Table'; import { ColumnDef, Row } from '@tanstack/react-table'; import { formatCurrency, formatNumber } from '@/lib/helper'; -import { HppPerKandangReport } from '@/types/api/report/hpp-per-kandang'; +import { + HppPerKandangReport, + HppPerKandangRow, + HppPerKandangPerWeightRange, +} from '@/types/api/report/hpp-per-kandang'; import { isResponseSuccess } from '@/lib/api-helper'; import { useTableFilter } from '@/services/hooks/useTableFilter'; import Button from '@/components/Button'; @@ -225,6 +229,17 @@ const HppPerKandangTab = () => { ? hppPerKandang.data.summary : undefined; + const summaryTotal = + isResponseSuccess(hppPerKandang) && hppPerKandang?.data?.summary?.total + ? hppPerKandang.data.summary.total + : undefined; + + const perWeightRangeSummary = + isResponseSuccess(hppPerKandang) && + hppPerKandang?.data?.summary?.per_weight_range + ? hppPerKandang.data.summary.per_weight_range + : []; + const period = isResponseSuccess(hppPerKandang) && hppPerKandang?.data?.period ? hppPerKandang.data.period @@ -271,25 +286,49 @@ const HppPerKandangTab = () => { // ===== TABLE COLUMNS DEFINITION ===== const totals: Totals = useMemo(() => { + if (summaryTotal && perWeightRangeSummary.length > 0) { + const totalAverageDocPrice = + perWeightRangeSummary.reduce( + (acc: number, item: HppPerKandangPerWeightRange) => + acc + (item.average_doc_price_rp || 0), + 0 + ) / perWeightRangeSummary.length; + + return { + total_hpp_rp: perWeightRangeSummary.reduce( + (acc: number, item: HppPerKandangPerWeightRange) => + acc + (item.hpp_rp || 0), + 0 + ), + total_average_doc_price_rp: totalAverageDocPrice, + }; + } + + if (data.length > 0) { + return { + total_hpp_rp: data.reduce( + (acc: number, item: HppPerKandangRow) => acc + (item.hpp_rp || 0), + 0 + ), + total_average_doc_price_rp: + data.reduce( + (acc: number, item: HppPerKandangRow) => + acc + (item.average_doc_price_rp || 0), + 0 + ) / data.length, + }; + } + return { - total_hpp_rp: - data.length > 0 - ? data.reduce((acc, item) => acc + (item.hpp_rp || 0), 0) - : 0, - total_average_doc_price_rp: - data.length > 0 - ? data.reduce( - (acc, item) => acc + (item.average_doc_price_rp || 0), - 0 - ) / data.length - : 0, + total_hpp_rp: 0, + total_average_doc_price_rp: 0, }; - }, [summary]); + }, [summaryTotal, perWeightRangeSummary, data]); const allFeedSuppliers = useMemo(() => { const suppliers = new Set(); - data.forEach((item) => { - item.feed_suppliers?.forEach((s) => { + data.forEach((item: HppPerKandangRow) => { + item.feed_suppliers?.forEach((s: { alias?: string; name: string }) => { suppliers.add(s.alias || s.name); }); }); @@ -298,8 +337,8 @@ const HppPerKandangTab = () => { const allDocSuppliers = useMemo(() => { const suppliers = new Set(); - data.forEach((item) => { - item.doc_suppliers?.forEach((s) => { + data.forEach((item: HppPerKandangRow) => { + item.doc_suppliers?.forEach((s: { alias?: string; name: string }) => { suppliers.add(s.alias || s.name); }); }); @@ -327,7 +366,7 @@ const HppPerKandangTab = () => { const summary = allDataForExport.summary; const excelData: { [key: string]: string | number }[] = allExportData.map( - (item, index) => ({ + (item: HppPerKandangRow, index: number) => ({ No: index + 1, Kandang: item.kandang?.name || '', 'Rentang Bobot': item.weight_range @@ -339,10 +378,13 @@ const HppPerKandangTab = () => { 'Produksi Telur (Butir)': item.egg_production_pieces || 0, 'Produksi Telur (KG)': item.egg_production_kg || 0, 'Feed (Supplier)': - item.feed_suppliers?.map((s) => s.alias || s.name).join(' | ') || - '', + item.feed_suppliers + ?.map((s: { alias?: string; name: string }) => s.alias || s.name) + .join(' | ') || '', 'DOC (Supplier)': - item.doc_suppliers?.map((s) => s.alias || s.name).join(' | ') || '', + item.doc_suppliers + ?.map((s: { alias?: string; name: string }) => s.alias || s.name) + .join(' | ') || '', 'Rata-Rata Harga DOC (RP)': item.average_doc_price_rp || 0, 'Nilai Nominal Telur (RP)': item.egg_value_rp || 0, 'HPP Ayam (RP)': item.hpp_rp || 0, @@ -588,7 +630,11 @@ const HppPerKandangTab = () => { accessorKey: 'feed_suppliers', cell: (props) => { const suppliers = props.row.original.feed_suppliers; - return suppliers?.map((s) => s.alias || s.name).join(' | ') || '-'; + return ( + suppliers + ?.map((s: { alias?: string; name: string }) => s.alias || s.name) + .join(' | ') || '-' + ); }, footer: () => (
    @@ -602,7 +648,11 @@ const HppPerKandangTab = () => { accessorKey: 'doc_suppliers', cell: (props) => { const suppliers = props.row.original.doc_suppliers; - return suppliers?.map((s) => s.alias || s.name).join(' | ') || '-'; + return ( + suppliers + ?.map((s: { alias?: string; name: string }) => s.alias || s.name) + .join(' | ') || '-' + ); }, footer: () => (
    From c8effe447364448115fc603216dfed5c7254c4c2 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Sat, 20 Dec 2025 09:17:31 +0700 Subject: [PATCH 76/89] feat(FE-355,357): Render per-weight-range summary rows --- .../report/sale/tab/HppPerKandangTab.tsx | 73 ++++++++++++++++++- 1 file changed, 69 insertions(+), 4 deletions(-) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index 7da3ff36..f7e92e71 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -29,6 +29,7 @@ import Menu from '@/components/menu/Menu'; import { generateHppPerKandangPDF } from '../export/HppPerkandangExport'; import toast from 'react-hot-toast'; import * as XLSX from 'xlsx'; +import { Supplier } from '@/types/api/master-data/supplier'; interface Totals { total_hpp_rp: number; @@ -738,7 +739,7 @@ const HppPerKandangTab = () => { const renderCustomRow = useCallback( (row: Row) => { if (row.index === data.length - 1) { - return ( + const rows = [
    { > Rekapitulasi per rentang bobot - - ); + , + ]; + + if (perWeightRangeSummary.length > 0) { + rows.push( + + + + ); + } + + return rows; } return null; }, - [data] + [data, perWeightRangeSummary] ); return ( From 1ac35691ff1fa3716c75397e59b0d3e5999b5ea3 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Sat, 20 Dec 2025 09:32:35 +0700 Subject: [PATCH 77/89] refactor(FE-355): Move td classes into tr with [&_td] utilities --- .../report/sale/tab/HppPerKandangTab.tsx | 33 +++++++++---------- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index f7e92e71..ff35eb45 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -766,43 +766,40 @@ const HppPerKandangTab = () => { (item: HppPerKandangPerWeightRange, index = 0) => ( - - - - + + + - - - + + - - - - + From a0e63ea2d461400a3e59a3d8f1e9b0dc98cb88d5 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Sat, 20 Dec 2025 09:37:42 +0700 Subject: [PATCH 78/89] refactor(FE-355): Use flexRender and prepend default row in table --- .../report/sale/tab/HppPerKandangTab.tsx | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index ff35eb45..5248521f 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -13,7 +13,7 @@ import { LocationApi } from '@/services/api/master-data'; import { KandangApi } from '@/services/api/master-data'; import { SaleReportApi } from '@/services/api/report/marketing-sale'; import Table from '@/components/Table'; -import { ColumnDef, Row } from '@tanstack/react-table'; +import { ColumnDef, Row, flexRender } from '@tanstack/react-table'; import { formatCurrency, formatNumber } from '@/lib/helper'; import { HppPerKandangReport, @@ -739,7 +739,23 @@ const HppPerKandangTab = () => { const renderCustomRow = useCallback( (row: Row) => { if (row.index === data.length - 1) { - const rows = [ + const defaultRow = ( + + {row.getVisibleCells().map((cell) => ( + + ))} + + ); + + const customRows = [ { ]; if (perWeightRangeSummary.length > 0) { - rows.push( + customRows.push( @@ -770,61 +770,49 @@ const HppPerKandangTab = () => { ]; if (perWeightRangeSummary.length > 0) { - customRows.push( - - - + perWeightRangeSummary.forEach( + (item: HppPerKandangPerWeightRange, index = 0) => { + customRows.push( + + + + + + + + + + + + + + + + + + ); + } ); } From 18ca7d8a594d89ece2ea6e50b683ed8107961089 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Sat, 20 Dec 2025 09:50:19 +0700 Subject: [PATCH 80/89] refactor(FE-357): Reference summary.total in footers --- .../report/sale/tab/HppPerKandangTab.tsx | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index 1748a6c7..ef8ac107 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -29,7 +29,6 @@ import Menu from '@/components/menu/Menu'; import { generateHppPerKandangPDF } from '../export/HppPerkandangExport'; import toast from 'react-hot-toast'; import * as XLSX from 'xlsx'; -import { Supplier } from '@/types/api/master-data/supplier'; interface Totals { total_hpp_rp: number; @@ -565,7 +564,7 @@ const HppPerKandangTab = () => { }, footer: () => (
    - {formatNumber(summary?.average_weight_kg || 0)} + {formatNumber(summary?.total?.average_weight_kg || 0)}
    ), }, @@ -579,7 +578,7 @@ const HppPerKandangTab = () => { }, footer: () => (
    - {formatNumber(summary?.total_remaining_chicken_birds || 0)} + {formatNumber(summary?.total?.total_remaining_chicken_birds || 0)}
    ), }, @@ -593,7 +592,9 @@ const HppPerKandangTab = () => { }, footer: () => (
    - {formatNumber(summary?.total_remaining_chicken_weight_kg || 0)} + {formatNumber( + summary?.total?.total_remaining_chicken_weight_kg || 0 + )}
    ), }, @@ -607,7 +608,7 @@ const HppPerKandangTab = () => { }, footer: () => (
    - {formatNumber(summary?.total_egg_production_pieces || 0)} + {formatNumber(summary?.total?.total_egg_production_pieces || 0)}
    ), }, @@ -621,7 +622,9 @@ const HppPerKandangTab = () => { }, footer: () => (
    - {formatNumber(summary?.total_remaining_chicken_weight_kg || 0)} + {formatNumber( + summary?.total?.total_remaining_chicken_weight_kg || 0 + )}
    ), }, @@ -685,7 +688,7 @@ const HppPerKandangTab = () => { }, footer: () => (
    - {formatCurrency(summary?.total_egg_value_rp || 0)} + {formatCurrency(summary?.total?.total_egg_value_rp || 0)}
    ), }, @@ -713,7 +716,7 @@ const HppPerKandangTab = () => { }, footer: () => (
    - {formatCurrency(summary?.average_egg_hpp_rp_per_kg || 0)} + {formatCurrency(summary?.total?.average_egg_hpp_rp_per_kg || 0)}
    ), }, @@ -727,7 +730,7 @@ const HppPerKandangTab = () => { }, footer: () => (
    - {formatCurrency(summary?.total_remaining_value_rp || 0)} + {formatCurrency(summary?.total?.total_remaining_value_rp || 0)}
    ), }, From 9e0631a41597e8909bf9f1eed44b5729328df007 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Sat, 20 Dec 2025 10:13:48 +0700 Subject: [PATCH 81/89] feat(FE-355,357): Use summary totals and show egg metrics --- .../report/sale/tab/HppPerKandangTab.tsx | 69 +++++-------------- src/types/api/report/hpp-per-kandang.d.ts | 6 ++ 2 files changed, 22 insertions(+), 53 deletions(-) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index ef8ac107..cf6f100f 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -30,11 +30,6 @@ import { generateHppPerKandangPDF } from '../export/HppPerkandangExport'; import toast from 'react-hot-toast'; import * as XLSX from 'xlsx'; -interface Totals { - total_hpp_rp: number; - total_average_doc_price_rp: number; -} - const HppPerKandangTab = () => { // ===== STATE MANAGEMENT ===== const [isPdfExportLoading, setIsPdfExportLoading] = useState(false); @@ -285,46 +280,6 @@ const HppPerKandangTab = () => { }, [tableFilterState]); // ===== TABLE COLUMNS DEFINITION ===== - const totals: Totals = useMemo(() => { - if (summaryTotal && perWeightRangeSummary.length > 0) { - const totalAverageDocPrice = - perWeightRangeSummary.reduce( - (acc: number, item: HppPerKandangPerWeightRange) => - acc + (item.average_doc_price_rp || 0), - 0 - ) / perWeightRangeSummary.length; - - return { - total_hpp_rp: perWeightRangeSummary.reduce( - (acc: number, item: HppPerKandangPerWeightRange) => - acc + (item.hpp_rp || 0), - 0 - ), - total_average_doc_price_rp: totalAverageDocPrice, - }; - } - - if (data.length > 0) { - return { - total_hpp_rp: data.reduce( - (acc: number, item: HppPerKandangRow) => acc + (item.hpp_rp || 0), - 0 - ), - total_average_doc_price_rp: - data.reduce( - (acc: number, item: HppPerKandangRow) => - acc + (item.average_doc_price_rp || 0), - 0 - ) / data.length, - }; - } - - return { - total_hpp_rp: 0, - total_average_doc_price_rp: 0, - }; - }, [summaryTotal, perWeightRangeSummary, data]); - const allFeedSuppliers = useMemo(() => { const suppliers = new Set(); data.forEach((item: HppPerKandangRow) => { @@ -404,9 +359,9 @@ const HppPerKandangTab = () => { 'Produksi Telur (KG)': summary?.total_egg_production_kg || 0, 'Feed (Supplier)': allFeedSuppliers, 'DOC (Supplier)': allDocSuppliers, - 'Rata-Rata Harga DOC (RP)': totals?.total_average_doc_price_rp || 0, + 'Rata-Rata Harga DOC (RP)': summary?.total_average_doc_price_rp || 0, 'Nilai Nominal Telur (RP)': summary?.total_egg_value_rp || 0, - 'HPP Ayam (RP)': totals?.total_hpp_rp || 0, + 'HPP Ayam (RP)': summary?.total_hpp_rp || 0, 'HPP Telur (RP/KG)': summary?.average_egg_hpp_rp_per_kg || 0, 'Nilai Nominal Sisa Ayam (RP)': summary?.total_remaining_value_rp || 0, }); @@ -674,7 +629,7 @@ const HppPerKandangTab = () => { }, footer: () => (
    - {formatCurrency(totals?.total_average_doc_price_rp || 0)} + {formatCurrency(summary?.total?.total_average_doc_price_rp || 0)}
    ), }, @@ -702,7 +657,7 @@ const HppPerKandangTab = () => { }, footer: () => (
    - {formatCurrency(totals?.total_hpp_rp || 0)} + {formatCurrency(summary?.total?.total_hpp_rp || 0)}
    ), }, @@ -792,8 +747,12 @@ const HppPerKandangTab = () => {
    - - + + - + - + diff --git a/src/types/api/report/hpp-per-kandang.d.ts b/src/types/api/report/hpp-per-kandang.d.ts index ad3f4e0e..824a3837 100644 --- a/src/types/api/report/hpp-per-kandang.d.ts +++ b/src/types/api/report/hpp-per-kandang.d.ts @@ -32,6 +32,8 @@ export type HppPerKandangSummaryTotal = { total_egg_production_kg: number; average_egg_hpp_rp_per_kg: number; total_egg_value_rp: number; + total_hpp_rp: number; + total_average_doc_price_rp: number; }; export type HppPerKandangPerWeightRange = { @@ -44,6 +46,10 @@ export type HppPerKandangPerWeightRange = { remaining_chicken_birds: number; remaining_chicken_weight_kg: number; avg_weight_kg: number; + egg_production_pieces: number; + egg_production_kg: number; + egg_hpp_rp_per_kg: number; + egg_value_rp: number; feed_suppliers: Supplier[]; doc_suppliers: Supplier[]; average_doc_price_rp: number; From 478e9eb541d64e8c5a21cd85a4afb65a0f41ca5c Mon Sep 17 00:00:00 2001 From: rstubryan Date: Sat, 20 Dec 2025 10:18:50 +0700 Subject: [PATCH 82/89] refactor(FE-356): Use summaryTotal and memoize per-weight summary --- .../report/sale/tab/HppPerKandangTab.tsx | 67 +++++++++---------- 1 file changed, 32 insertions(+), 35 deletions(-) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index cf6f100f..330cfd8f 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -219,21 +219,19 @@ const HppPerKandangTab = () => { [hppPerKandang] ); - const summary = - isResponseSuccess(hppPerKandang) && hppPerKandang?.data?.summary - ? hppPerKandang.data.summary - : undefined; - const summaryTotal = isResponseSuccess(hppPerKandang) && hppPerKandang?.data?.summary?.total ? hppPerKandang.data.summary.total : undefined; - const perWeightRangeSummary = - isResponseSuccess(hppPerKandang) && - hppPerKandang?.data?.summary?.per_weight_range - ? hppPerKandang.data.summary.per_weight_range - : []; + const perWeightRangeSummary = useMemo( + () => + isResponseSuccess(hppPerKandang) && + hppPerKandang?.data?.summary?.per_weight_range + ? hppPerKandang.data.summary.per_weight_range + : [], + [hppPerKandang] + ); const period = isResponseSuccess(hppPerKandang) && hppPerKandang?.data?.period @@ -318,7 +316,7 @@ const HppPerKandangTab = () => { const allExportData = allDataForExport.rows as HppPerKandangReport['rows']; - const summary = allDataForExport.summary; + const summaryTotal = allDataForExport.summary.total; const excelData: { [key: string]: string | number }[] = allExportData.map( (item: HppPerKandangRow, index: number) => ({ @@ -352,18 +350,21 @@ const HppPerKandangTab = () => { No: 'TOTAL', Kandang: 'ALL', 'Rentang Bobot': '-', - 'Rata-Rata Bobot (KG)': summary?.average_weight_kg || 0, - 'Sisa Ayam (Ekor)': summary?.total_remaining_chicken_birds || 0, - 'Sisa Ayam (KG)': summary?.total_remaining_chicken_weight_kg || 0, - 'Produksi Telur (Butir)': summary?.total_egg_production_pieces || 0, - 'Produksi Telur (KG)': summary?.total_egg_production_kg || 0, + 'Rata-Rata Bobot (KG)': summaryTotal?.average_weight_kg || 0, + 'Sisa Ayam (Ekor)': summaryTotal?.total_remaining_chicken_birds || 0, + 'Sisa Ayam (KG)': summaryTotal?.total_remaining_chicken_weight_kg || 0, + 'Produksi Telur (Butir)': + summaryTotal?.total_egg_production_pieces || 0, + 'Produksi Telur (KG)': summaryTotal?.total_egg_production_kg || 0, 'Feed (Supplier)': allFeedSuppliers, 'DOC (Supplier)': allDocSuppliers, - 'Rata-Rata Harga DOC (RP)': summary?.total_average_doc_price_rp || 0, - 'Nilai Nominal Telur (RP)': summary?.total_egg_value_rp || 0, - 'HPP Ayam (RP)': summary?.total_hpp_rp || 0, - 'HPP Telur (RP/KG)': summary?.average_egg_hpp_rp_per_kg || 0, - 'Nilai Nominal Sisa Ayam (RP)': summary?.total_remaining_value_rp || 0, + 'Rata-Rata Harga DOC (RP)': + summaryTotal?.total_average_doc_price_rp || 0, + 'Nilai Nominal Telur (RP)': summaryTotal?.total_egg_value_rp || 0, + 'HPP Ayam (RP)': summaryTotal?.total_hpp_rp || 0, + 'HPP Telur (RP/KG)': summaryTotal?.average_egg_hpp_rp_per_kg || 0, + 'Nilai Nominal Sisa Ayam (RP)': + summaryTotal?.total_remaining_value_rp || 0, }); const worksheet = XLSX.utils.json_to_sheet(excelData); @@ -519,7 +520,7 @@ const HppPerKandangTab = () => { }, footer: () => (
    - {formatNumber(summary?.total?.average_weight_kg || 0)} + {formatNumber(summaryTotal?.average_weight_kg || 0)}
    ), }, @@ -533,7 +534,7 @@ const HppPerKandangTab = () => { }, footer: () => (
    - {formatNumber(summary?.total?.total_remaining_chicken_birds || 0)} + {formatNumber(summaryTotal?.total_remaining_chicken_birds || 0)}
    ), }, @@ -547,9 +548,7 @@ const HppPerKandangTab = () => { }, footer: () => (
    - {formatNumber( - summary?.total?.total_remaining_chicken_weight_kg || 0 - )} + {formatNumber(summaryTotal?.total_remaining_chicken_weight_kg || 0)}
    ), }, @@ -563,7 +562,7 @@ const HppPerKandangTab = () => { }, footer: () => (
    - {formatNumber(summary?.total?.total_egg_production_pieces || 0)} + {formatNumber(summaryTotal?.total_egg_production_pieces || 0)}
    ), }, @@ -577,9 +576,7 @@ const HppPerKandangTab = () => { }, footer: () => (
    - {formatNumber( - summary?.total?.total_remaining_chicken_weight_kg || 0 - )} + {formatNumber(summaryTotal?.total_remaining_chicken_weight_kg || 0)}
    ), }, @@ -629,7 +626,7 @@ const HppPerKandangTab = () => { }, footer: () => (
    - {formatCurrency(summary?.total?.total_average_doc_price_rp || 0)} + {formatCurrency(summaryTotal?.total_average_doc_price_rp || 0)}
    ), }, @@ -643,7 +640,7 @@ const HppPerKandangTab = () => { }, footer: () => (
    - {formatCurrency(summary?.total?.total_egg_value_rp || 0)} + {formatCurrency(summaryTotal?.total_egg_value_rp || 0)}
    ), }, @@ -657,7 +654,7 @@ const HppPerKandangTab = () => { }, footer: () => (
    - {formatCurrency(summary?.total?.total_hpp_rp || 0)} + {formatCurrency(summaryTotal?.total_hpp_rp || 0)}
    ), }, @@ -671,7 +668,7 @@ const HppPerKandangTab = () => { }, footer: () => (
    - {formatCurrency(summary?.total?.average_egg_hpp_rp_per_kg || 0)} + {formatCurrency(summaryTotal?.average_egg_hpp_rp_per_kg || 0)}
    ), }, @@ -685,7 +682,7 @@ const HppPerKandangTab = () => { }, footer: () => (
    - {formatCurrency(summary?.total?.total_remaining_value_rp || 0)} + {formatCurrency(summaryTotal?.total_remaining_value_rp || 0)}
    ), }, From 982a5d0d11c0d140dbab81418736a7f8ec257478 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Sat, 20 Dec 2025 10:25:40 +0700 Subject: [PATCH 83/89] feat(FE-356): Display egg production and HPP in PDF export --- .../report/sale/export/HppPerkandangExport.tsx | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/components/pages/report/sale/export/HppPerkandangExport.tsx b/src/components/pages/report/sale/export/HppPerkandangExport.tsx index 790efef7..6575dd50 100644 --- a/src/components/pages/report/sale/export/HppPerkandangExport.tsx +++ b/src/components/pages/report/sale/export/HppPerkandangExport.tsx @@ -290,10 +290,10 @@ const createPDFDocument = ( {formatNumber(group.avg_weight_kg)} - - + {formatNumber(group.egg_production_pieces)} - - + {formatNumber(group.egg_production_kg)} @@ -322,16 +322,10 @@ const createPDFDocument = ( - - - {formatCurrency( - group.remaining_chicken_birds > 0 - ? group.hpp_rp / group.remaining_chicken_birds - : 0 - )} - + {formatCurrency(group.hpp_rp)} - - + {formatCurrency(group.egg_hpp_rp_per_kg)} {formatCurrency(group.remaining_value_rp)} From 804aa700d32d0616ebbdc0e456be54e708af4800 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Sat, 20 Dec 2025 10:26:18 +0700 Subject: [PATCH 84/89] feat(FE-356): Display egg production and HPP in PDF export --- src/components/pages/report/sale/export/HppPerkandangExport.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/pages/report/sale/export/HppPerkandangExport.tsx b/src/components/pages/report/sale/export/HppPerkandangExport.tsx index 6575dd50..30f08b68 100644 --- a/src/components/pages/report/sale/export/HppPerkandangExport.tsx +++ b/src/components/pages/report/sale/export/HppPerkandangExport.tsx @@ -319,7 +319,7 @@ const createPDFDocument = ( {formatCurrency(group.average_doc_price_rp)} - - + {formatCurrency(group.egg_value_rp)} {formatCurrency(group.hpp_rp)} From a5e79570c5b2d7d98858ee46df13f3b394a8f4a5 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Sat, 20 Dec 2025 10:30:11 +0700 Subject: [PATCH 85/89] refactor(FE-356): Clarify 'Sisa Kg' label to specify Ayam --- src/components/pages/report/sale/export/HppPerkandangExport.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/pages/report/sale/export/HppPerkandangExport.tsx b/src/components/pages/report/sale/export/HppPerkandangExport.tsx index 30f08b68..0a712a6c 100644 --- a/src/components/pages/report/sale/export/HppPerkandangExport.tsx +++ b/src/components/pages/report/sale/export/HppPerkandangExport.tsx @@ -359,7 +359,7 @@ const createPDFDocument = ( Sisa Ekor - Sisa Kg + Sisa Kg (Ayam) Produksi Telur (Butir) From 206d6c0b4e451135aa29e5384b28108ed1d2ffff Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Mon, 22 Dec 2025 15:15:04 +0700 Subject: [PATCH 86/89] Merge branch 'development' into feat/FE/US-335/production-data-report --- package-lock.json | 120 +++- package.json | 3 +- src/app/report/marketing/page.tsx | 11 + src/components/Navbar.tsx | 9 +- src/components/Tabs.tsx | 19 +- src/components/dropdown/Dropdown.tsx | 166 +++--- src/components/helper/RequireAuth.tsx | 3 + src/components/menu/MenuItem.tsx | 17 +- .../report/DailyMarketingReportContent.tsx | 413 +++++++++++++ .../pages/report/DailyMarketingReportPDF.tsx | 550 ++++++++++++++++++ .../pages/report/DailyMarketingsTable.tsx | 255 ++++++++ .../pages/report/MarketingReportContent.tsx | 44 ++ src/config/constant.ts | 37 ++ src/dummy/report/marketing-report.dummy.ts | 139 +++++ src/services/api/closing.ts | 1 + src/services/api/report/marketing-report.ts | 75 +++ src/types/api/master-data/kandang.d.ts | 1 - src/types/api/report/marketing.d.ts | 61 ++ 18 files changed, 1819 insertions(+), 105 deletions(-) create mode 100644 src/app/report/marketing/page.tsx create mode 100644 src/components/pages/report/DailyMarketingReportContent.tsx create mode 100644 src/components/pages/report/DailyMarketingReportPDF.tsx create mode 100644 src/components/pages/report/DailyMarketingsTable.tsx create mode 100644 src/components/pages/report/MarketingReportContent.tsx create mode 100644 src/dummy/report/marketing-report.dummy.ts create mode 100644 src/services/api/report/marketing-report.ts create mode 100644 src/types/api/report/marketing.d.ts diff --git a/package-lock.json b/package-lock.json index f0212474..1e8f3fd8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "clsx": "^2.1.1", "formik": "^2.4.6", "moment": "^2.30.1", - "next": "15.5.7", + "next": "^15.5.9", "react": "19.1.0", "react-day-picker": "^9.11.1", "react-dom": "19.1.0", @@ -26,6 +26,7 @@ "swr": "^2.3.6", "tailwind-merge": "^3.3.1", "use-debounce": "^10.0.6", + "xlsx": "^0.18.5", "yup": "^1.7.0", "zustand": "^5.0.8" }, @@ -1082,9 +1083,9 @@ } }, "node_modules/@next/env": { - "version": "15.5.7", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.7.tgz", - "integrity": "sha512-4h6Y2NyEkIEN7Z8YxkA27pq6zTkS09bUSYC0xjd0NpwFxjnIKeZEeH591o5WECSmjpUhLn3H2QLJcDye3Uzcvg==", + "version": "15.5.9", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.9.tgz", + "integrity": "sha512-4GlTZ+EJM7WaW2HEZcyU317tIQDjkQIyENDLxYJfSWlfqguN+dHkZgyQTV/7ykvobU7yEH5gKvreNrH4B6QgIg==", "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { @@ -2464,6 +2465,15 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/adler-32": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", + "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -2924,6 +2934,19 @@ ], "license": "CC-BY-4.0" }, + "node_modules/cfb": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz", + "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==", + "license": "Apache-2.0", + "dependencies": { + "adler-32": "~1.3.0", + "crc-32": "~1.2.0" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -2965,6 +2988,15 @@ "node": ">=6" } }, + "node_modules/codepage": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", + "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -3035,6 +3067,18 @@ "node": ">=10" } }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "license": "Apache-2.0", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -4180,6 +4224,15 @@ "react": ">=16.8.0" } }, + "node_modules/frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -5654,12 +5707,12 @@ "license": "MIT" }, "node_modules/next": { - "version": "15.5.7", - "resolved": "https://registry.npmjs.org/next/-/next-15.5.7.tgz", - "integrity": "sha512-+t2/0jIJ48kUpGKkdlhgkv+zPTEOoXyr60qXe68eB/pl3CMJaLeIGjzp5D6Oqt25hCBiBTt8wEeeAzfJvUKnPQ==", + "version": "15.5.9", + "resolved": "https://registry.npmjs.org/next/-/next-15.5.9.tgz", + "integrity": "sha512-agNLK89seZEtC5zUHwtut0+tNrc0Xw4FT/Dg+B/VLEo9pAcS9rtTKpek3V6kVcVwsB2YlqMaHdfZL4eLEVYuCg==", "license": "MIT", "dependencies": { - "@next/env": "15.5.7", + "@next/env": "15.5.9", "@swc/helpers": "0.5.15", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", @@ -6754,6 +6807,18 @@ "node": ">=0.10.0" } }, + "node_modules/ssf": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", + "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", + "license": "Apache-2.0", + "dependencies": { + "frac": "~1.1.2" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/stable-hash": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", @@ -7515,6 +7580,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/wmf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/word": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz", + "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -7525,6 +7608,27 @@ "node": ">=0.10.0" } }, + "node_modules/xlsx": { + "version": "0.18.5", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz", + "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==", + "license": "Apache-2.0", + "dependencies": { + "adler-32": "~1.3.0", + "cfb": "~1.2.1", + "codepage": "~1.15.0", + "crc-32": "~1.2.1", + "ssf": "~0.11.2", + "wmf": "~1.0.1", + "word": "~0.3.0" + }, + "bin": { + "xlsx": "bin/xlsx.njs" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", diff --git a/package.json b/package.json index 52fc6ce2..aa26b7bf 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "clsx": "^2.1.1", "formik": "^2.4.6", "moment": "^2.30.1", - "next": "15.5.7", + "next": "^15.5.9", "react": "19.1.0", "react-day-picker": "^9.11.1", "react-dom": "19.1.0", @@ -29,6 +29,7 @@ "swr": "^2.3.6", "tailwind-merge": "^3.3.1", "use-debounce": "^10.0.6", + "xlsx": "^0.18.5", "yup": "^1.7.0", "zustand": "^5.0.8" }, diff --git a/src/app/report/marketing/page.tsx b/src/app/report/marketing/page.tsx new file mode 100644 index 00000000..52a3d4dd --- /dev/null +++ b/src/app/report/marketing/page.tsx @@ -0,0 +1,11 @@ +import MarketingReportContent from '@/components/pages/report/MarketingReportContent'; + +const MarketingReportPage = () => { + return ( +
    + +
    + ); +}; + +export default MarketingReportPage; diff --git a/src/components/Navbar.tsx b/src/components/Navbar.tsx index bee92a57..0d5b9bc8 100644 --- a/src/components/Navbar.tsx +++ b/src/components/Navbar.tsx @@ -54,7 +54,8 @@ const Navbar = ({ title, toggleSidebar }: NavbarProps) => {
    @@ -62,9 +63,11 @@ const Navbar = ({ title, toggleSidebar }: NavbarProps) => {
    } - contentClassName='w-52 mt-3' + className={{ + content: 'w-52 mt-3', + }} > - + diff --git a/src/components/Tabs.tsx b/src/components/Tabs.tsx index 2ad2477d..8f685452 100644 --- a/src/components/Tabs.tsx +++ b/src/components/Tabs.tsx @@ -21,6 +21,7 @@ export interface TabsProps className?: | string | { + container?: string; wrapper?: string; tab?: string; content?: string; @@ -53,10 +54,14 @@ const Tabs = ({ onTabChange?.(tabId); }; - const { wrapper: wrapperClassName, tab: tabClassName } = - typeof className === 'object' - ? className - : { wrapper: className, tab: undefined }; + const { + container: containerClassName, + wrapper: wrapperClassName, + tab: tabClassName, + content: contentClassName, + } = typeof className === 'object' + ? className + : { wrapper: className, tab: undefined }; const getTabsClasses = () => { const variantClasses: Record = { @@ -104,7 +109,7 @@ const Tabs = ({ {...props} className={cn( 'w-full', - typeof className === 'string' ? className : undefined + typeof className === 'string' ? className : containerClassName )} >
    @@ -121,7 +126,9 @@ const Tabs = ({ ))}
    - {activeContent &&
    {activeContent}
    } + {activeContent && ( +
    {activeContent}
    + )} ); }; diff --git a/src/components/dropdown/Dropdown.tsx b/src/components/dropdown/Dropdown.tsx index 4489231d..5bfa7a7d 100644 --- a/src/components/dropdown/Dropdown.tsx +++ b/src/components/dropdown/Dropdown.tsx @@ -1,111 +1,109 @@ -'use client'; +import React, { ReactNode, useState, useRef } from 'react'; -import { ReactNode, useRef, useEffect, useState } from 'react'; import { cn } from '@/lib/helper'; -interface DropdownProps { +export interface DropdownProps { trigger: ReactNode; children: ReactNode; - position?: - | 'top' - | 'bottom' - | 'left' - | 'right' - | 'top-start' - | 'top-end' - | 'bottom-start' - | 'bottom-end' - | 'left-start' - | 'left-end' - | 'right-start' - | 'right-end'; + className?: { + wrapper?: string; + trigger?: string; + content?: string; + }; align?: 'start' | 'center' | 'end'; + direction?: 'top' | 'bottom' | 'left' | 'right'; hover?: boolean; - className?: string; - contentClassName?: string; + defaultOpen?: boolean; + open?: boolean; + close?: boolean; + controlled?: boolean; } const Dropdown = ({ trigger, children, - position = 'bottom', - align = 'start', - hover = false, className, - contentClassName, + align, + direction, + hover, + defaultOpen = false, + open, + close, + controlled = false, }: DropdownProps) => { - const [isOpen, setIsOpen] = useState(false); + const [isOpen, setIsOpen] = useState(defaultOpen); const dropdownRef = useRef(null); - // Handle click outside to close dropdown - useEffect(() => { - const handleClickOutside = (event: MouseEvent) => { - if ( - dropdownRef.current && - !dropdownRef.current.contains(event.target as Node) - ) { - setIsOpen(false); - } - }; - - if (isOpen) { - document.addEventListener('mousedown', handleClickOutside); + const toggleDropdown = () => { + if (!controlled) { + const newState = !isOpen; + setIsOpen(newState); } - - return () => { - document.removeEventListener('mousedown', handleClickOutside); - }; - }, [isOpen]); - - // Build position classes - const getPositionClasses = () => { - const classes: string[] = []; - - // Handle combined positions like 'top-start' - if (position.includes('-')) { - const [pos, al] = position.split('-'); - classes.push(`dropdown-${pos}`); - classes.push(`dropdown-${al}`); - } else { - classes.push(`dropdown-${position}`); - if (align !== 'start') { - classes.push(`dropdown-${align}`); - } - } - - return classes.join(' '); }; - const handleToggle = (e: React.MouseEvent) => { - e.preventDefault(); - e.stopPropagation(); - // alert('clicked'); - setIsOpen(!isOpen); + const getWrapperClasses = () => { + const openState = controlled ? open : isOpen; + + return cn( + 'dropdown', + { + 'dropdown-start': align === 'start', + 'dropdown-center': align === 'center', + 'dropdown-end': align === 'end', + 'dropdown-top': direction === 'top', + 'dropdown-bottom': direction === 'bottom', + 'dropdown-left': direction === 'left', + 'dropdown-right': direction === 'right', + 'dropdown-hover': hover, + 'dropdown-open': openState && !close, + 'dropdown-close': close, + }, + className?.wrapper + ); }; + const getTriggerClasses = () => { + return cn(className?.trigger); + }; + + const getContentClasses = () => { + return cn( + 'dropdown-content z-[9999] shadow-sm bg-base-100 rounded-box', + className?.content + ); + }; + + if (controlled) { + return ( +
    + {trigger} + {open && !close && ( +
    + {children} +
    + )} +
    + ); + } + return ( -
    - {/* Trigger Button */} -
    +
    +
    { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + toggleDropdown(); + } + }} + > {trigger}
    - - {/* Dropdown Content - Only render when open */} - {isOpen && ( -
    setIsOpen(false)} // Close on item click - > + {!close && ( +
    {children}
    )} diff --git a/src/components/helper/RequireAuth.tsx b/src/components/helper/RequireAuth.tsx index 65adf48c..9dbd2557 100644 --- a/src/components/helper/RequireAuth.tsx +++ b/src/components/helper/RequireAuth.tsx @@ -27,6 +27,9 @@ const RequireAuth = ({ children }: RequireAuthProps) => { SWRHttpKey >('/sso/userinfo', httpClientFetcher, { shouldRetryOnError: false, + + // refresh every 13 minutes + refreshInterval: 13 * 60 * 1000, }); useEffect(() => { diff --git a/src/components/menu/MenuItem.tsx b/src/components/menu/MenuItem.tsx index dce81dac..61af4b04 100644 --- a/src/components/menu/MenuItem.tsx +++ b/src/components/menu/MenuItem.tsx @@ -8,6 +8,7 @@ interface MenuItemProps { href?: string; icon?: string; active?: boolean; + isLoading?: boolean; onClick?: () => void; className?: string; } @@ -17,6 +18,7 @@ const MenuItem = ({ href, icon, active = false, + isLoading = false, className, onClick, }: MenuItemProps) => { @@ -50,17 +52,28 @@ const MenuItem = ({ return (
  • - {href && ( + {!isLoading && href && ( {menuItemContent} )} - {!href && ( + {!isLoading && !href && ( )} + + {isLoading && ( + + )}
  • ); }; diff --git a/src/components/pages/report/DailyMarketingReportContent.tsx b/src/components/pages/report/DailyMarketingReportContent.tsx new file mode 100644 index 00000000..1eba4ea3 --- /dev/null +++ b/src/components/pages/report/DailyMarketingReportContent.tsx @@ -0,0 +1,413 @@ +'use client'; + +import { ChangeEventHandler, useState } from 'react'; +import { pdf } from '@react-pdf/renderer'; +import toast from 'react-hot-toast'; + +import { Icon } from '@iconify/react'; +import Button from '@/components/Button'; +import Dropdown from '@/components/dropdown/Dropdown'; +import DateInput from '@/components/input/DateInput'; +import SelectInput, { + OptionType, + useSelect, +} from '@/components/input/SelectInput'; +import Menu from '@/components/menu/Menu'; +import MenuItem from '@/components/menu/MenuItem'; +import DailyMarketingsTable from '@/components/pages/report/DailyMarketingsTable'; +import { useTableFilter } from '@/services/hooks/useTableFilter'; +import DailyMarketingReportPDF from '@/components/pages/report/DailyMarketingReportPDF'; + +import { Area } from '@/types/api/master-data/area'; +import { + AreaApi, + CustomerApi, + LocationApi, + WarehouseApi, +} from '@/services/api/master-data'; +import { Warehouse } from '@/types/api/master-data/warehouse'; +import { Customer } from '@/types/api/master-data/customer'; +import { MarketingReportApi } from '@/services/api/report/marketing-report'; +import { MARKETING_TYPE_OPTIONS } from '@/config/constant'; +import { httpClient } from '@/services/http/client'; +import { BaseApiResponse } from '@/types/api/api-general'; +import { DailyMarketingReport } from '@/types/api/report/marketing'; +import { isResponseError } from '@/lib/api-helper'; + +const DailyMarketingReportContent = () => { + const { + state: tableFilterState, + updateFilter, + setPage, + setPageSize, + toQueryString: getTableFilterQueryString, + reset: resetFilter, + } = useTableFilter({ + initial: { + search: '', + area_id: '', + location_id: '', + warehouse_id: '', + customer_id: '', + start_date: '', + end_date: '', + marketing_type: '', + filter_by: '', + sort_by: '', + }, + paramMap: { + page: 'page', + pageSize: 'limit', + area_id: 'area_id', + location_id: 'location_id', + warehouse_id: 'warehouse_id', + customer_id: 'customer_id', + start_date: 'start_date', + end_date: 'end_date', + marketing_type: 'marketing_type', + filter_by: 'filter_by', + sort_by: 'sort_by', + }, + }); + + const dailyMarketingsReportUrl = `${MarketingReportApi.basePath}${getTableFilterQueryString()}`; + + const [isLoadingExportingToExcel, setIsLoadingExportingToExcel] = + useState(false); + const [isLoadingExportingToPdf, setIsLoadingExportingToPdf] = useState(false); + + const [selectedArea, setSelectedArea] = useState(null); + const { + setInputValue: setAreaInputValue, + options: areaOptions, + isLoadingOptions: isLoadingAreaOptions, + } = useSelect(AreaApi.basePath, 'id', 'name'); + + const areaChangeHandler = (val: OptionType | OptionType[] | null) => { + setSelectedArea(val as OptionType); + updateFilter('area_id', val ? ((val as OptionType).value as string) : ''); + }; + + const [selectedLocation, setSelectedLocation] = useState( + null + ); + const { + setInputValue: setLocationInputValue, + options: locationOptions, + isLoadingOptions: isLoadingLocationOptions, + } = useSelect(LocationApi.basePath, 'id', 'name'); + + const locationChangeHandler = (val: OptionType | OptionType[] | null) => { + setSelectedLocation(val as OptionType); + updateFilter( + 'location_id', + val ? ((val as OptionType).value as string) : '' + ); + }; + + const [selectedWarehouse, setSelectedWarehouse] = useState( + null + ); + const { + setInputValue: setWarehouseInputValue, + options: warehouseOptions, + isLoadingOptions: isLoadingWarehouseOptions, + } = useSelect(WarehouseApi.basePath, 'id', 'name'); + + const warehouseChangeHandler = (val: OptionType | OptionType[] | null) => { + setSelectedWarehouse(val as OptionType); + updateFilter( + 'warehouse_id', + val ? ((val as OptionType).value as string) : '' + ); + }; + + const [selectedCustomer, setSelectedCustomer] = useState( + null + ); + const { + setInputValue: setCustomerInputValue, + options: customerOptions, + isLoadingOptions: isLoadingCustomerOptions, + } = useSelect(CustomerApi.basePath, 'id', 'name'); + + const customerChangeHandler = (val: OptionType | OptionType[] | null) => { + setSelectedCustomer(val as OptionType); + updateFilter( + 'customer_id', + val ? ((val as OptionType).value as string) : '' + ); + }; + + const startDateChangeHandler = (e: React.ChangeEvent) => { + updateFilter('start_date', e.target.value ? e.target.value : ''); + }; + + const endDateChangeHandler = (e: React.ChangeEvent) => { + updateFilter('end_date', e.target.value ? e.target.value : ''); + }; + + const [selectedMarketingType, setSelectedMarketingType] = + useState(null); + const marketingTypeChangeHandler = ( + val: OptionType | OptionType[] | null + ) => { + setSelectedMarketingType(val as OptionType); + updateFilter( + 'marketing_type', + val ? ((val as OptionType).value as string) : '' + ); + }; + + const searchChangeHandler: ChangeEventHandler = (e) => { + updateFilter('search', e.target.value); + }; + + const filterByChangeHandler = (filterBy: string) => { + updateFilter('filter_by', filterBy); + }; + + const sortByChangeHandler = (sort: 'asc' | 'desc' | '') => { + updateFilter('sort_by', sort); + }; + + const exportToExcelHandler = async () => { + setIsLoadingExportingToExcel(true); + + await MarketingReportApi.exportDailyMarketingToExcel( + getTableFilterQueryString() + ); + + setIsLoadingExportingToExcel(false); + }; + + const exportToPdfHandler = async () => { + setIsLoadingExportingToPdf(true); + + const params = new URLSearchParams(getTableFilterQueryString()); + + params.set('limit', '9999999'); + + const queryString = `?${params.toString()}`; + + try { + const dailyMarketingsReport = await httpClient< + BaseApiResponse + >(`${MarketingReportApi.basePath}${queryString}`); + + if (isResponseError(dailyMarketingsReport)) { + toast.error('Gagal melakukan export penjualan harian! Coba lagi.'); + return; + } + + const openPdf = async () => { + const dailyMarketingReportPdfBlob = await pdf( + + ).toBlob(); + + const dailyMarketingReportPdfUrl = URL.createObjectURL( + dailyMarketingReportPdfBlob + ); + window.open(dailyMarketingReportPdfUrl, '_blank'); + }; + + const downloadPdf = async () => { + const blob = await pdf( + + ).toBlob(); + const url = URL.createObjectURL(blob); + + const link = document.createElement('a'); + link.href = url; + link.download = 'laporan-penjualan-harian.pdf'; + link.click(); + + URL.revokeObjectURL(url); + }; + + await openPdf(); + } catch (error) { + toast.error('Gagal melakukan export penjualan harian! Coba lagi.'); + } + + setIsLoadingExportingToPdf(false); + }; + + const handleReset = () => { + setSelectedArea(null); + setSelectedLocation(null); + setSelectedWarehouse(null); + setSelectedCustomer(null); + setSelectedMarketingType(null); + resetFilter(); + }; + + return ( +
    +
    +

    Penjualan Harian

    +
    + + {/* Filters */} +
    +
    + + + + + + + + + + + +
    + +
    + + +
    + + + + + + Export{' '} + + + } + > + + + + + +
    +
    +
    + + +
    + ); +}; + +export default DailyMarketingReportContent; diff --git a/src/components/pages/report/DailyMarketingReportPDF.tsx b/src/components/pages/report/DailyMarketingReportPDF.tsx new file mode 100644 index 00000000..337892b3 --- /dev/null +++ b/src/components/pages/report/DailyMarketingReportPDF.tsx @@ -0,0 +1,550 @@ +'use client'; + +import { + Document, + Image, + Page, + StyleSheet, + Text, + View, +} from '@react-pdf/renderer'; + +import { DailyMarketingReport } from '@/types/api/report/marketing'; +import { formatCurrency, formatDate, formatNumber } from '@/lib/helper'; + +interface DailyMarketingReportPDFProps { + data?: DailyMarketingReport; +} + +const DailyMarketingReportPDFStyle = StyleSheet.create({ + page: { + paddingTop: 24, + paddingBottom: 64, + paddingHorizontal: 16, // Reduce padding to fit more columns + orientation: 'landscape', + }, + + companyInfoHeader: { + width: '100%', + display: 'flex', + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'flex-start', + marginBottom: 8, + }, + companyLogo: { + width: 64, + height: 'auto', + }, + companyInfoHeaderDate: { + paddingTop: 8, + fontSize: 10, + }, + companyName: { + fontSize: 12, + fontWeight: 'bold', + marginBottom: 4, + }, + companyAddress: { + fontSize: 8, + maxWidth: 400, + marginBottom: 10, + }, + + title: { + marginTop: 16, + fontSize: 14, + lineHeight: '150%', + textAlign: 'center', + fontFamily: 'Times-Roman', + fontWeight: 'bold', + }, + + footer: { + width: '100%', + display: 'flex', + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + paddingHorizontal: 16, + + position: 'absolute', + fontSize: 8, + bottom: 30, + left: 0, + right: 0, + textAlign: 'center', + color: 'grey', + }, + + // Table Styles + table: { + width: '100%', + marginTop: 16, + borderWidth: 1, + borderColor: '#000000', + borderBottomWidth: 0, + fontSize: 7, // Smaller font for report + }, + tableRow: { + flexDirection: 'row', + borderBottomWidth: 1, + borderBottomColor: '#000000', + alignItems: 'center', + minHeight: 20, + }, + tableHeader: { + backgroundColor: '#f0f0f0', + fontWeight: 'bold', + }, + + // Columns definition (Total 100%) + colNo: { + width: '3%', + padding: 2, + textAlign: 'center', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colSoDate: { + width: '6%', + padding: 2, + textAlign: 'left', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colDoDate: { + width: '6%', + padding: 2, + textAlign: 'left', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colAging: { + width: '3%', + padding: 2, + textAlign: 'center', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colWarehouse: { + width: '7%', + padding: 2, + textAlign: 'left', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colCustomer: { + width: '9%', + padding: 2, + textAlign: 'left', + borderRightWidth: 1, + borderRightColor: '#000000', + }, // Reduced slightly + colSales: { + width: '6%', + padding: 2, + textAlign: 'left', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colProduct: { + width: '8%', + padding: 2, + textAlign: 'left', + borderRightWidth: 1, + borderRightColor: '#000000', + }, // Reduced slightly + colDoNumber: { + width: '7%', + padding: 2, + textAlign: 'left', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colVehicle: { + width: '5%', + padding: 2, + textAlign: 'left', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colMarketingType: { + width: '5%', + padding: 2, + textAlign: 'left', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colQty: { + width: '4%', + padding: 2, + textAlign: 'right', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colAvgWeight: { + width: '4%', + padding: 2, + textAlign: 'right', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colTotalWeight: { + width: '5%', + padding: 2, + textAlign: 'right', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colSalesPrice: { + width: '5%', + padding: 2, + textAlign: 'right', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colHppPrice: { + width: '5%', + padding: 2, + textAlign: 'right', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colSalesAmount: { + width: '6%', + padding: 2, + textAlign: 'right', + borderRightWidth: 1, + borderRightColor: '#000000', + }, + colHppAmount: { width: '6%', padding: 2, textAlign: 'right' }, // Last column + + // Text inside columns + cellText: { + fontSize: 6, + }, + headerText: { + fontSize: 7, + fontWeight: 'bold', + textAlign: 'center', + }, + + // Utils + doubleDivider: { + width: '100%', + height: 6, + borderTop: '2px solid black', + borderBottom: '2px solid black', + }, + + // Summary + summaryContainer: { + marginTop: 12, + flexDirection: 'row', + justifyContent: 'flex-end', + width: '100%', + }, + summaryTable: { + width: '30%', + borderWidth: 1, + borderColor: '#000000', + fontSize: 8, + }, + summaryRow: { + flexDirection: 'row', + padding: 2, + borderBottomWidth: 1, + borderBottomColor: '#eee', + }, + summaryLabel: { + width: '50%', + fontWeight: 'bold', + }, + summaryValue: { + width: '50%', + textAlign: 'right', + }, +}); + +const DailyMarketingReportPDF = ({ data }: DailyMarketingReportPDFProps) => { + const rows = data?.rows || []; + const summary = data?.summary; + + return ( + + + + + + + + {formatDate(Date.now(), 'DD MMMM YYYY')} + + + + + + PT LUMBUNG TELUR INDONESIA + + + SOHO Building Lt.3 (Paris Van Java), Jalan Karang Tinggal, Kel. + Cipedes, Kec. Sukajadi, Kota Bandung 40162 + + + + + + + + Laporan Penjualan Harian + + + {/* Data Table */} + + {/* Header */} + + + No + + + + Tgl SO + + + + + Tgl DO + + + + Aging + + + + Gudang + + + + + Pelanggan + + + + Sales + + + + Produk + + + + No DO + + + + Plat No + + + + Tipe + + + Qty + + + + Rerata + + + + Berat + + + + Hrg Jual + + + + + HPP/kg + + + + + Total Jual + + + + + Total HPP + + + + + {/* Rows */} + {rows.map((row, index) => ( + + + + {index + 1} + + + + + {formatDate(row.so_date, 'DD/MM/YYYY')} + + + + + {formatDate(row.do_date, 'DD/MM/YYYY')} + + + + + {row.aging_days} + + + + + {row.warehouse?.name} + + + + + {row.customer?.name} + + + + + {row.sales} + + + + + {row.product?.name} + + + + + {row.do_number} + + + + + {row.vehicle_number} + + + + + {row.marketing_type} + + + + + {formatNumber(row.qty)} + + + + + {formatNumber(row.average_weight_kg)} + + + + + {formatNumber(row.total_weight_kg)} + + + + + {formatCurrency(row.sales_price_per_kg)} + + + + + {formatCurrency(row.hpp_price_per_kg)} + + + + + {formatCurrency(row.sales_amount)} + + + + + {formatCurrency(row.hpp_amount)} + + + + ))} + + + {/* Summary */} + + + + + Total Qty: + + + {formatNumber(summary?.total_qty ?? 0)} + + + + + Total Berat (kg): + + + {formatNumber(summary?.total_weight_kg ?? 0)} + + + + + Total Penjualan: + + + {formatCurrency(summary?.total_sales_amount ?? 0)} + + + + + Total HPP: + + + {formatCurrency(summary?.total_hpp_amount ?? 0)} + + + + + + + + `${pageNumber} / ${totalPages}` + } + fixed + /> + + + + ); +}; + +export default DailyMarketingReportPDF; diff --git a/src/components/pages/report/DailyMarketingsTable.tsx b/src/components/pages/report/DailyMarketingsTable.tsx new file mode 100644 index 00000000..d6914cf1 --- /dev/null +++ b/src/components/pages/report/DailyMarketingsTable.tsx @@ -0,0 +1,255 @@ +'use client'; + +import { ChangeEventHandler, useEffect, useState } from 'react'; +import useSWR from 'swr'; +import { ColumnDef, SortingState } from '@tanstack/react-table'; + +import { Icon } from '@iconify/react'; +import Table from '@/components/Table'; +import DebouncedTextInput from '@/components/input/DebouncedTextInput'; +import Card from '@/components/Card'; +import Collapse from '@/components/Collapse'; + +import { cn, formatCurrency, formatDate, formatNumber } from '@/lib/helper'; +import { isResponseSuccess } from '@/lib/api-helper'; +import { DailyMarketingRow } from '@/types/api/report/marketing'; +import { MarketingReportApi } from '@/services/api/report/marketing-report'; + +interface DailyMarketingsTableProps { + dailyMarketingsReportUrl: string; + onSetPage: (page: number) => void; + pageSize: number; + onSetPageSize: (pageSize: number) => void; + searchValue: string; + onSearchChange: ChangeEventHandler; + onFilterByChange: (filterBy: string) => void; + onSortByChange: (sort: 'asc' | 'desc' | '') => void; +} + +const DailyMarketingsTable = ({ + dailyMarketingsReportUrl, + onSetPage, + pageSize, + onSetPageSize, + searchValue, + onSearchChange, + onFilterByChange, + onSortByChange, +}: DailyMarketingsTableProps) => { + const { data: dailyMarketings, isLoading: isLoadingDailyMarketings } = useSWR( + dailyMarketingsReportUrl, + MarketingReportApi.getAllDailyMarketingFetcher, + { + keepPreviousData: true, + } + ); + + const [open, setOpen] = useState(true); + + const [sorting, setSorting] = useState([]); + + const dailyMarketingColumns: ColumnDef[] = [ + { + header: 'No', + cell: (props) => props.row.index + 1, + }, + { + accessorKey: 'so_date', + header: 'Tanggal Jual', + cell: (props) => formatDate(props.row.original.so_date, 'DD-MMM-YYYY'), + footer: 'Total', + }, + { + accessorKey: 'do_date', + header: 'Tanggal DO', + cell: (props) => formatDate(props.row.original.do_date, 'DD-MMM-YYYY'), + }, + { + accessorKey: 'aging_days', + header: 'Aging', + cell: (props) => `${props.row.original.aging_days} hari`, + }, + { + accessorKey: 'warehouse.name', + header: 'Gudang', + }, + { + accessorKey: 'customer.name', + header: 'Pelanggan', + }, + { + accessorKey: 'do_number', + header: 'No. DO', + }, + { + accessorKey: 'sales', + header: 'Sales/Marketing', + }, + { + accessorKey: 'vehicle_number', + header: 'No. Polisi', + cell: (props) => ( + {props.row.original.vehicle_number} + ), + }, + { + accessorKey: 'marketing_type', + header: 'Marketing Type', + }, + { + accessorKey: 'product.name', + header: 'Produk', + }, + { + accessorKey: 'qty', + header: 'Kuantitas', + cell: (props) => formatNumber(props.row.original.qty), + footer: () => { + const totalQty = isResponseSuccess(dailyMarketings) + ? dailyMarketings.data.summary.total_qty + : 0; + + return formatNumber(totalQty); + }, + }, + { + accessorKey: 'average_weight_kg', + header: 'Bobot Rata-Rata (Kg)', + cell: (props) => formatNumber(props.row.original.average_weight_kg), + }, + { + accessorKey: 'total_weight_kg', + header: 'Bobot Total (Kg)', + cell: (props) => formatNumber(props.row.original.total_weight_kg), + footer: () => { + const totalWeightKg = isResponseSuccess(dailyMarketings) + ? dailyMarketings.data.summary.total_weight_kg + : 0; + + return formatNumber(totalWeightKg); + }, + }, + { + accessorKey: 'sales_price_per_kg', + header: 'Harga Jual (Rp)', + cell: (props) => formatCurrency(props.row.original.sales_price_per_kg), + }, + { + accessorKey: 'hpp_price_per_kg', + header: 'HPP (Rp)', + cell: (props) => formatCurrency(props.row.original.hpp_price_per_kg), + }, + { + accessorKey: 'sales_amount', + header: 'Total (Rp)', + cell: (props) => formatCurrency(props.row.original.sales_amount), + footer: () => { + const totalSalesAmount = isResponseSuccess(dailyMarketings) + ? dailyMarketings.data.summary.total_sales_amount + : 0; + + return formatCurrency(totalSalesAmount); + }, + }, + ]; + + useEffect(() => { + if (sorting.length === 1) { + onFilterByChange(sorting[0].id); + onSortByChange(sorting[0].desc ? 'desc' : 'asc'); + } else { + onFilterByChange(''); + onSortByChange(''); + } + }, [sorting]); + + useEffect(() => { + if (!open) { + setOpen( + isResponseSuccess(dailyMarketings) + ? dailyMarketings.data.rows.length > 0 + : false + ); + } + }, [dailyMarketings, isResponseSuccess]); + + return ( + + +
    Penjualan Harian
    + + +
    + } + className='w-full!' + titleClassName='w-full p-0!' + > +
    +
    +
    + +
    +
    + + + data={ + isResponseSuccess(dailyMarketings) + ? dailyMarketings?.data.rows + : [] + } + columns={dailyMarketingColumns} + pageSize={pageSize} + onPageSizeChange={onSetPageSize} + rowOptions={[10, 20, 50, 100]} + page={ + isResponseSuccess(dailyMarketings) + ? dailyMarketings?.meta?.page + : 0 + } + totalItems={ + isResponseSuccess(dailyMarketings) + ? dailyMarketings?.meta?.total_results + : 0 + } + onPageChange={onSetPage} + isLoading={isLoadingDailyMarketings} + sorting={sorting} + setSorting={setSorting} + renderFooter={true} + className={{ + containerClassName: cn({ + 'w-full mb-20': + isResponseSuccess(dailyMarketings) && + dailyMarketings?.data?.rows.length === 0, + }), + }} + /> +
    + + + ); +}; + +export default DailyMarketingsTable; diff --git a/src/components/pages/report/MarketingReportContent.tsx b/src/components/pages/report/MarketingReportContent.tsx new file mode 100644 index 00000000..160de8b2 --- /dev/null +++ b/src/components/pages/report/MarketingReportContent.tsx @@ -0,0 +1,44 @@ +'use client'; + +import { JSX, useState } from 'react'; + +import Tabs from '@/components/Tabs'; +import DailyMarketingReportContent from '@/components/pages/report/DailyMarketingReportContent'; + +type MarketingReportTabType = + | 'daily' + | 'transaction' + | 'hpp-comparison' + | 'daily-hpp'; + +const marketingReportTabs: { + id: MarketingReportTabType; + label: string; + content: JSX.Element; +}[] = [ + { + id: 'daily', + label: 'Penjualan Harian', + content: , + }, +]; + +const MarketingReportContent = () => { + const [activeTab, setActiveTab] = useState('daily'); + + return ( +
    + +
    + ); +}; + +export default MarketingReportContent; diff --git a/src/config/constant.ts b/src/config/constant.ts index 96fc8401..c16862af 100644 --- a/src/config/constant.ts +++ b/src/config/constant.ts @@ -45,6 +45,17 @@ export const MAIN_DRAWER_LINKS: SidebarMenuItem[] = [ link: '/closing', icon: 'heroicons-outline:presentation-chart-bar', }, + { + text: 'Laporan', + link: '/report', + icon: 'heroicons-outline:document-text', + submenu: [ + { + text: 'Penjualan', + link: '/report/marketing', + }, + ], + }, { text: 'Persediaan', link: '/inventory', @@ -251,3 +262,29 @@ export const ACCEPTED_FILE_TYPE = { 'image/*': [], }, }; + +export const FILTER_TYPE_OPTIONS = [ + { + label: 'Tanggal Realisasi', + value: 'REALIZATION_DATE', + }, + { + label: 'Tanggal DO', + value: 'DO_DATE', + }, +]; + +export const MARKETING_TYPE_OPTIONS = [ + { + label: 'Ayam', + value: 'ayam', + }, + { + label: 'Telur', + value: 'telur', + }, + { + label: 'Trading', + value: 'trading', + }, +]; diff --git a/src/dummy/report/marketing-report.dummy.ts b/src/dummy/report/marketing-report.dummy.ts new file mode 100644 index 00000000..ea5af398 --- /dev/null +++ b/src/dummy/report/marketing-report.dummy.ts @@ -0,0 +1,139 @@ +import { BaseApiResponse } from '@/types/api/api-general'; +import { DailyMarketingReport } from '@/types/api/report/marketing'; + +// TODO: delete this later +export const DAILY_MARKETING_DUMMY_DATA: BaseApiResponse = + { + code: 200, + status: 'success', + message: 'Get daily marketing report successfully', + meta: { + page: 1, + limit: 10, + total_pages: 1, + total_results: 2, + }, + data: { + rows: [ + { + // metadata + created_user: { + id: 1, + id_user: 101, + email: 'admin@example.com', + name: 'Admin User', + }, + created_at: '2025-12-01T08:00:00Z', + updated_at: '2025-12-01T08:00:00Z', + + // row data + no: 1, + so_date: '2025-12-01', + do_date: '2025-12-08', + aging_days: 7, + + warehouse: { + id: 1, + name: 'Warehouse Kandang A', + type: 'KANDANG', + area: { + id: 1, + name: 'Area Barat', + }, + location: { + id: 1, + name: 'Farm Bandung', + address: 'Jl. Raya Farm No. 1', + area: null, + }, + kandang: { + id: 1, + name: 'Kandang A1', + status: 'ACTIVE', + capacity: 5000, + location: null, + pic: null, + }, + }, + + customer: { + id: 1, + name: 'PT Maju Jaya', + pic_id: 10, + pic: { + id: 10, + id_user: 210, + email: 'pic@majujaya.com', + name: 'Budi Santoso', + }, + type: 'BROILER', + address: 'Jl. Industri No. 10', + phone: '08123456789', + email: 'contact@majujaya.com', + account_number: '1234567890', + }, + + sales: 'Andi Wijaya', + + product: { + id: 1, + name: 'Live Chicken', + brand: 'LTI Farm', + sku: 'LC-001', + product_price: 18_000, + selling_price: 20_000, + tax: 0, + expiry_period: 0, + uom: { + id: 1, + name: 'Kg', + created_user: { + id: 1, + id_user: 101, + email: 'admin@example.com', + name: 'Admin User', + }, + created_at: '2025-01-01T00:00:00Z', + updated_at: '2025-01-01T00:00:00Z', + }, + product_category: { + id: 1, + code: 'BROILER', + name: 'Broiler Chicken', + created_user: { + id: 1, + id_user: 101, + email: 'admin@example.com', + name: 'Admin User', + }, + created_at: '2025-01-01T00:00:00Z', + updated_at: '2025-01-01T00:00:00Z', + }, + suppliers: [], + flags: ['LIVE'], + }, + + do_number: 'DO-2025-0001', + vehicle_number: 'B 1234 CD', + marketing_type: 'REGULAR', + + qty: 1000, + average_weight_kg: 1.8, + total_weight_kg: 1800, + + sales_price_per_kg: 20_000, + hpp_price_per_kg: 18_000, + + sales_amount: 36_000_000, + hpp_amount: 32_400_000, + }, + ], + + summary: { + total_qty: 1000, + total_weight_kg: 1800, + total_sales_amount: 36_000_000, + total_hpp_amount: 32_400_000, + }, + }, + }; diff --git a/src/services/api/closing.ts b/src/services/api/closing.ts index 5e6ced3a..21ae1cf8 100644 --- a/src/services/api/closing.ts +++ b/src/services/api/closing.ts @@ -25,6 +25,7 @@ import { } from '@/dummy/closing.dummy'; import { httpClient, httpClientFetcher } from '@/services/http/client'; import { ClosingSales } from '@/types/api/closing'; +import { sleep } from '@/lib/helper'; export class ClosingApiService extends BaseApiService { constructor(basePath: string) { diff --git a/src/services/api/report/marketing-report.ts b/src/services/api/report/marketing-report.ts new file mode 100644 index 00000000..b1bcafae --- /dev/null +++ b/src/services/api/report/marketing-report.ts @@ -0,0 +1,75 @@ +import * as XLSX from 'xlsx'; +import toast from 'react-hot-toast'; + +import { BaseApiService } from '@/services/api/base'; +import { httpClient, httpClientFetcher } from '@/services/http/client'; +import { BaseApiResponse } from '@/types/api/api-general'; +import { DailyMarketingReport } from '@/types/api/report/marketing'; +import { isResponseError, isResponseSuccess } from '@/lib/api-helper'; +import { formatDate, sleep } from '@/lib/helper'; + +export class MarketingReportApiService extends BaseApiService< + DailyMarketingReport, + unknown, + unknown +> { + constructor(basePath: string = '/reports/marketings/daily-marketing') { + super(basePath); + } + + async getAllDailyMarketingFetcher( + endpoint: string + ): Promise> { + return await httpClientFetcher>( + endpoint + ); + } + + async exportDailyMarketingToExcel(initialQueryString: string) { + const params = new URLSearchParams(initialQueryString); + + params.set('limit', '9999999'); + + const queryString = `?${params.toString()}`; + + try { + const dailyMarketingsReport = await httpClientFetcher< + BaseApiResponse + >(`${this.basePath}${queryString}`); + + if (isResponseError(dailyMarketingsReport)) { + toast.error('Gagal melakukan export penjualan harian! Coba lagi.'); + return; + } + + const rows = dailyMarketingsReport.data.rows; + + const formattedRows = []; + + for (let i = 0; i < rows.length; i++) { + formattedRows.push({ + ...rows[i], + created_user: rows[i].created_user.name, + created_at: formatDate(rows[i].created_at, 'YYYY-MM-DD'), + updated_at: formatDate(rows[i].updated_at, 'YYYY-MM-DD'), + warehouse: rows[i].warehouse.name, + customer: rows[i].customer.name, + product: rows[i].product.name, + }); + } + + const ws = XLSX.utils.json_to_sheet(formattedRows); + const wb = XLSX.utils.book_new(); + XLSX.utils.book_append_sheet(wb, ws, 'laporan-penjualan-harian'); + + // triggers download in browser + XLSX.writeFile(wb, 'laporan-penjualan-harian.xlsx'); + } catch (error) { + toast.error('Gagal melakukan export penjualan harian! Coba lagi.'); + } + } +} + +export const MarketingReportApi = new MarketingReportApiService( + '/reports/marketings/daily-marketing' +); diff --git a/src/types/api/master-data/kandang.d.ts b/src/types/api/master-data/kandang.d.ts index c9c14882..eafa0334 100644 --- a/src/types/api/master-data/kandang.d.ts +++ b/src/types/api/master-data/kandang.d.ts @@ -10,7 +10,6 @@ export type BaseKandang = { capacity: number; pic: BaseUser; project_flock_kandang_id?: number; - capacity: number; }; export type Kandang = BaseMetadata & BaseKandang; diff --git a/src/types/api/report/marketing.d.ts b/src/types/api/report/marketing.d.ts new file mode 100644 index 00000000..d1e81f77 --- /dev/null +++ b/src/types/api/report/marketing.d.ts @@ -0,0 +1,61 @@ +import { BaseMetadata } from '@/types/api/api-general'; +import { BaseCustomer, Customer } from '@/types/api/master-data/customer'; +import { + BaseWarehouseArea, + BaseWarehouseKandang, + BaseWarehouseLocation, + Warehouse, +} from '@/types/api/master-data/warehouse'; +import { Location } from '@/types/api/master-data/location'; +import { Area } from '@/types/api/master-data/area'; +import { BaseProduct } from '@/types/api/master-data/product'; + +export type BaseDailyMarketingRow = { + no: number; + so_date: string; // e.g. "01-Dec-2025" + do_date: string; // e.g. "08-Dec-2025" + aging_days: number; + + warehouse: BaseWarehouseArea | BaseWarehouseLocation | BaseWarehouseKandang; + customer: BaseCustomer; + sales: string; + product: BaseProduct; + + do_number: string; + vehicle_number: string; + marketing_type: string; + + qty: number; + average_weight_kg: number; + total_weight_kg: number; + + sales_price_per_kg: number; + hpp_price_per_kg: number; + + sales_amount: number; + hpp_amount: number; +}; + +export type DailyMarketingRow = BaseMetadata & BaseDailyMarketingRow; + +export interface SalesSummary { + total_qty: number; + total_weight_kg: number; + total_sales_amount: number; + total_hpp_amount: number; +} + +export type DailyMarketingReport = { + rows: DailyMarketingRow[]; + summary: SalesSummary; +}; + +export type MarketingReportFilters = { + area_id?: number; + location_id?: number; + warehouse_id?: number; + customer_id?: number; + start_date?: string; + end_date?: string; + date_type?: 'realized' | 'transaction'; +}; From 7ea16d6a8a9b113dd74b6898bff669c41c26ebd8 Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Mon, 22 Dec 2025 15:23:15 +0700 Subject: [PATCH 87/89] Merge branch 'development' into feat/FE/US-335/production-data-report --- src/services/api/closing.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/services/api/closing.ts b/src/services/api/closing.ts index 21ae1cf8..5e3dded8 100644 --- a/src/services/api/closing.ts +++ b/src/services/api/closing.ts @@ -148,6 +148,7 @@ export class ClosingApiService extends BaseApiService { BaseApiResponse >(getProductionDataPath); + // return getProductionDataRes; } catch (error) { if (axios.isAxiosError>(error)) { From ea32056ca880f8b7c4e1e72052ec2564abf3c9db Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Mon, 22 Dec 2025 15:29:39 +0700 Subject: [PATCH 88/89] feat(FE-347): adjust getProductionData method --- src/services/api/closing.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/services/api/closing.ts b/src/services/api/closing.ts index c77d49f1..21ae1cf8 100644 --- a/src/services/api/closing.ts +++ b/src/services/api/closing.ts @@ -143,12 +143,11 @@ export class ClosingApiService extends BaseApiService { id: number ): Promise | undefined> { try { - // const getProductionDataPath = `${this.basePath}/${id}/production-data`; - // const getProductionDataRes = await httpClient< - // BaseApiResponse - // >(getProductionDataPath); + const getProductionDataPath = `${this.basePath}/${id}/production-data`; + const getProductionDataRes = await httpClient< + BaseApiResponse + >(getProductionDataPath); - // return getProductionDataRes; } catch (error) { if (axios.isAxiosError>(error)) { From 346d6554066f3e5045934c97d929df8a5ecc0896 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Tue, 23 Dec 2025 09:25:26 +0700 Subject: [PATCH 89/89] refactor(FE): Upgrade xlsx and add HPP per kandang tab --- package-lock.json | 113 +++--------------- package.json | 4 +- .../pages/report/MarketingReportContent.tsx | 6 + .../report/sale/tab/HppPerKandangTab.tsx | 52 ++++---- 4 files changed, 54 insertions(+), 121 deletions(-) diff --git a/package-lock.json b/package-lock.json index 17c2a7b8..4bc65f98 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "swr": "^2.3.6", "tailwind-merge": "^3.3.1", "use-debounce": "^10.0.6", - "xlsx": "^0.18.5", + "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz", "yup": "^1.7.0", "zustand": "^5.0.8" }, @@ -1856,6 +1856,7 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.2.tgz", "integrity": "sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA==", "license": "MIT", + "peer": true, "dependencies": { "csstype": "^3.0.2" } @@ -1925,6 +1926,7 @@ "integrity": "sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.46.2", "@typescript-eslint/types": "8.46.2", @@ -2448,6 +2450,7 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2465,15 +2468,6 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/adler-32": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", - "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==", - "license": "Apache-2.0", - "engines": { - "node": ">=0.8" - } - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -2934,19 +2928,6 @@ ], "license": "CC-BY-4.0" }, - "node_modules/cfb": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz", - "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==", - "license": "Apache-2.0", - "dependencies": { - "adler-32": "~1.3.0", - "crc-32": "~1.2.0" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -2988,15 +2969,6 @@ "node": ">=6" } }, - "node_modules/codepage": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", - "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==", - "license": "Apache-2.0", - "engines": { - "node": ">=0.8" - } - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -3067,18 +3039,6 @@ "node": ">=10" } }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "license": "Apache-2.0", - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -3104,7 +3064,8 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/daisyui": { "version": "5.5.8", @@ -3560,6 +3521,7 @@ "integrity": "sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -3733,6 +3695,7 @@ "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", @@ -4224,15 +4187,6 @@ "react": ">=16.8.0" } }, - "node_modules/frac": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", - "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==", - "license": "Apache-2.0", - "engines": { - "node": ">=0.8" - } - }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -6220,6 +6174,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -6250,6 +6205,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", "license": "MIT", + "peer": true, "dependencies": { "scheduler": "^0.26.0" }, @@ -6807,18 +6763,6 @@ "node": ">=0.10.0" } }, - "node_modules/ssf": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", - "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", - "license": "Apache-2.0", - "dependencies": { - "frac": "~1.1.2" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/stable-hash": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", @@ -7148,6 +7092,7 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -7315,6 +7260,7 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -7580,24 +7526,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wmf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", - "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==", - "license": "Apache-2.0", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/word": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz", - "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==", - "license": "Apache-2.0", - "engines": { - "node": ">=0.8" - } - }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -7609,19 +7537,10 @@ } }, "node_modules/xlsx": { - "version": "0.18.5", - "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz", - "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==", + "version": "0.20.3", + "resolved": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz", + "integrity": "sha512-oLDq3jw7AcLqKWH2AhCpVTZl8mf6X2YReP+Neh0SJUzV/BdZYjth94tG5toiMB1PPrYtxOCfaoUCkvtuH+3AJA==", "license": "Apache-2.0", - "dependencies": { - "adler-32": "~1.3.0", - "cfb": "~1.2.1", - "codepage": "~1.15.0", - "crc-32": "~1.2.1", - "ssf": "~0.11.2", - "wmf": "~1.0.1", - "word": "~0.3.0" - }, "bin": { "xlsx": "bin/xlsx.njs" }, @@ -7699,4 +7618,4 @@ } } } -} \ No newline at end of file +} diff --git a/package.json b/package.json index 86b951e5..c6fc9099 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "swr": "^2.3.6", "tailwind-merge": "^3.3.1", "use-debounce": "^10.0.6", - "xlsx": "^0.18.5", + "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz", "yup": "^1.7.0", "zustand": "^5.0.8" }, @@ -48,4 +48,4 @@ "tailwindcss": "^4", "typescript": "^5" } -} \ No newline at end of file +} diff --git a/src/components/pages/report/MarketingReportContent.tsx b/src/components/pages/report/MarketingReportContent.tsx index 160de8b2..d54c935a 100644 --- a/src/components/pages/report/MarketingReportContent.tsx +++ b/src/components/pages/report/MarketingReportContent.tsx @@ -4,6 +4,7 @@ import { JSX, useState } from 'react'; import Tabs from '@/components/Tabs'; import DailyMarketingReportContent from '@/components/pages/report/DailyMarketingReportContent'; +import HppPerKandangTab from './sale/tab/HppPerKandangTab'; type MarketingReportTabType = | 'daily' @@ -21,6 +22,11 @@ const marketingReportTabs: { label: 'Penjualan Harian', content: , }, + { + id: 'daily-hpp', + label: 'HPP Harian Kandang', + content: , + }, ]; const MarketingReportContent = () => { diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index 330cfd8f..7d6f0951 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -29,6 +29,7 @@ import Menu from '@/components/menu/Menu'; import { generateHppPerKandangPDF } from '../export/HppPerkandangExport'; import toast from 'react-hot-toast'; import * as XLSX from 'xlsx'; +import { Icon } from '@iconify/react'; const HppPerKandangTab = () => { // ===== STATE MANAGEMENT ===== @@ -797,28 +798,6 @@ const HppPerKandangTab = () => { } className={{ wrapper: 'w-full', body: 'p-1!' }} > -
    - - - - Export - - } - align='end' - > - - - - - -
    -
    { />
    +
    + + + + Export + + + } + align='end' + > + + + + + +
    +
    {!isSubmitted ? (
    {pengajuanItem.nonstock.name} {pengajuanItem.qty}{formatCurrency(pengajuanItem.total_price)}{formatCurrency(pengajuanItem.price)} {pengajuanItem.note ?? '-'}
    {realisasiItem.nonstock.name} {realisasiItem.qty}{formatCurrency(realisasiItem.total_price)}{formatCurrency(realisasiItem.price)} {realisasiItem.note ?? '-'}
    Tanggal Transaksi : - {formatDate(initialValues?.expense_date, 'DD MMMM YYYY')} + {formatDate( + initialValues?.transaction_date, + 'DD MMMM YYYY' + )}
    Nonstock Total KuantitasTotal BiayaHarga Satuan Catatan
    {pengajuanItem.nonstock.name} {pengajuanItem.qty} - {formatCurrency(pengajuanItem.total_price)} - {formatCurrency(pengajuanItem.price)} {pengajuanItem.note ?? '-'}
    Nonstock Total KuantitasTotal BiayaHarga Satuan Catatan
    = documents: Yup.array().of(Yup.mixed().required()).optional(), - cost_per_kandangs: Yup.array() + expense_nonstocks: Yup.array() .of( Yup.object({ kandang_id: Yup.number().min(1, 'Wajib memilih kandang!').required(), @@ -86,7 +86,7 @@ export const ExpenseRequestFormSchema: Yup.ObjectSchema = label: Yup.string().required(), }).required('Nonstock wajib diisi!'), quantity: Yup.number().required('Total kuantitas wajib diisi!'), - total_cost: Yup.number().required('Total biaya wajib diisi!'), + price: Yup.number().required('Harga satuan wajib diisi!'), notes: Yup.string(), }) ) @@ -128,8 +128,8 @@ export const getExpenseFormInitialValues = ( label: initialValues.location.name, } : undefined, - transaction_date: initialValues?.expense_date - ? formatDate(initialValues.expense_date, 'YYYY-MM-DD') + transaction_date: initialValues?.transaction_date + ? formatDate(initialValues.transaction_date, 'YYYY-MM-DD') : undefined, kandangs: initialValues?.kandangs.map((kandang) => ({ id: kandang.kandang_id, @@ -148,7 +148,7 @@ export const getExpenseFormInitialValues = ( })), deleted_documents: [], documents: [], - cost_per_kandangs: initialValues?.kandangs + expense_nonstocks: initialValues?.kandangs ? initialValues.kandangs.map((kandangExpense) => ({ kandang_id: kandangExpense.kandang_id, cost_items: kandangExpense.pengajuans @@ -158,7 +158,7 @@ export const getExpenseFormInitialValues = ( label: expenseItem.nonstock.name, }, quantity: expenseItem.qty, - total_cost: expenseItem.total_price, + price: expenseItem.price, notes: expenseItem.note, })) : [], diff --git a/src/components/pages/expense/form/ExpenseRequestForm.tsx b/src/components/pages/expense/form/ExpenseRequestForm.tsx index e47f2f76..d52bde0d 100644 --- a/src/components/pages/expense/form/ExpenseRequestForm.tsx +++ b/src/components/pages/expense/form/ExpenseRequestForm.tsx @@ -110,12 +110,12 @@ const ExpenseRequestForm = ({ transaction_date: values?.transaction_date as string, supplier_id: values.supplier?.value as number, documents: values.documents as File[], - cost_per_kandangs: values.cost_per_kandangs.map((costPerKandang) => ({ - kandang_id: costPerKandang.kandang_id, - cost_items: costPerKandang.cost_items.map((costItem) => ({ + expense_nonstocks: values.expense_nonstocks.map((expenseNonstock) => ({ + kandang_id: expenseNonstock.kandang_id, + cost_items: expenseNonstock.cost_items.map((costItem) => ({ nonstock_id: costItem.nonstock?.value as number, quantity: parseFloat(String(costItem.quantity)) as number, - total_cost: parseFloat(String(costItem.total_cost)) as number, + price: parseFloat(String(costItem.price)) as number, notes: costItem.notes ?? '', })), })), @@ -132,13 +132,13 @@ const ExpenseRequestForm = ({ transaction_date: values?.transaction_date as string, supplier_id: values.supplier?.value as number, documents: values.documents as File[], - cost_per_kandang: values.cost_per_kandangs.map( - (costPerKandang) => ({ - kandang_id: costPerKandang.kandang_id, - cost_items: costPerKandang.cost_items.map((costItem) => ({ + expense_nonstocks: values.expense_nonstocks.map( + (expenseNonstock) => ({ + kandang_id: expenseNonstock.kandang_id, + cost_items: expenseNonstock.cost_items.map((costItem) => ({ nonstock_id: costItem.nonstock?.value as number, quantity: parseFloat(String(costItem.quantity)) as number, - total_cost: parseFloat(String(costItem.total_cost)) as number, + price: parseFloat(String(costItem.price)) as number, notes: costItem.notes ?? '', })), }) @@ -179,53 +179,54 @@ const ExpenseRequestForm = ({ formik.setFieldValue('location', val); formik.setFieldValue('kandangs', []); - formik.setFieldValue('cost_per_kandangs', []); + formik.setFieldValue('expense_nonstocks', []); }; const kandangsChangeHandler = (kandangs: { id: number; name: string }[]) => { formik.setFieldTouched('kandangs', true); formik.setFieldValue('kandangs', kandangs); - const newCostPerKandangs = [...(formik.values.cost_per_kandangs ?? [])]; + const newExpenseNonstocks = [...(formik.values.expense_nonstocks ?? [])]; - // add new cost_per_kandangs + // add new expense_nonstocks kandangs.forEach((kandangItem) => { - const isKandangExistInCostPerKandangs = newCostPerKandangs.find( - (costPerKandangItem) => costPerKandangItem.kandang_id === kandangItem.id + const isKandangExistInExpenseNonstocks = newExpenseNonstocks.find( + (expenseNonstockItem) => + expenseNonstockItem.kandang_id === kandangItem.id ); - if (isKandangExistInCostPerKandangs) return; + if (isKandangExistInExpenseNonstocks) return; - newCostPerKandangs.push({ + newExpenseNonstocks.push({ kandang_id: kandangItem.id, cost_items: [ { nonstock: undefined, quantity: undefined, - total_cost: undefined, + price: undefined, notes: '', }, ], }); }); - // prune cost_per_kandangs + // prune expense_nonstocks const kandangIds = new Set(kandangs.map((kandang) => kandang.id)); - const deletedCostPerKandangsIdx: number[] = []; + const deletedExpenseNonstocksIdx: number[] = []; - newCostPerKandangs.forEach((costPerKandang, idx) => { - const isCostPerKandangValid = kandangIds.has(costPerKandang.kandang_id); + newExpenseNonstocks.forEach((expenseNonstock, idx) => { + const isExpenseNonstockValid = kandangIds.has(expenseNonstock.kandang_id); - if (!isCostPerKandangValid) { - deletedCostPerKandangsIdx.push(idx); + if (!isExpenseNonstockValid) { + deletedExpenseNonstocksIdx.push(idx); } }); - deletedCostPerKandangsIdx.forEach((deletedCostPerKandangIdx) => { - newCostPerKandangs.splice(deletedCostPerKandangIdx, 1); + deletedExpenseNonstocksIdx.forEach((deletedExpenseNonstockIdx) => { + newExpenseNonstocks.splice(deletedExpenseNonstockIdx, 1); }); - formik.setFieldValue('cost_per_kandangs', newCostPerKandangs); + formik.setFieldValue('expense_nonstocks', newExpenseNonstocks); }; const supplierChangeHandler = (val: OptionType | OptionType[] | null) => { diff --git a/src/components/pages/expense/form/ExpenseRequestKandangDetailExpense.tsx b/src/components/pages/expense/form/ExpenseRequestKandangDetailExpense.tsx index 73e6c9b7..11f54585 100644 --- a/src/components/pages/expense/form/ExpenseRequestKandangDetailExpense.tsx +++ b/src/components/pages/expense/form/ExpenseRequestKandangDetailExpense.tsx @@ -41,28 +41,28 @@ const ExpenseRequestKandangDetailExpense: React.FC< val: OptionType | OptionType[] | null ) => { formik.setFieldTouched( - `cost_per_kandangs[${kandangExpenseIdx}].cost_items[${expenseIdx}].nonstock`, + `expense_nonstocks[${kandangExpenseIdx}].cost_items[${expenseIdx}].nonstock`, true ); formik.setFieldValue( - `cost_per_kandangs[${kandangExpenseIdx}].cost_items[${expenseIdx}].nonstock`, + `expense_nonstocks[${kandangExpenseIdx}].cost_items[${expenseIdx}].nonstock`, val ); }; const addExpenseItemHandler = (kandangExpenseIdx: number) => { const newExpensesValue = [ - ...formik.values.cost_per_kandangs[kandangExpenseIdx].cost_items, + ...formik.values.expense_nonstocks[kandangExpenseIdx].cost_items, { nonstock: undefined, - total_cost: undefined, + price: undefined, quantity: undefined, notes: '', }, ]; formik.setFieldValue( - `cost_per_kandangs[${kandangExpenseIdx}].cost_items`, + `expense_nonstocks[${kandangExpenseIdx}].cost_items`, newExpensesValue ); }; @@ -71,28 +71,28 @@ const ExpenseRequestKandangDetailExpense: React.FC< kandangExpenseIdx: number, expenseIdx: number ) => { - const path = `cost_per_kandangs[${kandangExpenseIdx}].cost_items`; + const path = `expense_nonstocks[${kandangExpenseIdx}].cost_items`; // trims values, errors, and touched at expenseIdx removeArrayItemAndSync(formik, path, expenseIdx); }; const isExpenseRepeaterInputError = ( - column: 'nonstock' | 'quantity' | 'total_cost' | 'notes', + column: 'nonstock' | 'quantity' | 'price' | 'notes', kandangExpenseIdx: number, expenseIdx: number ) => { return ( - formik.touched.cost_per_kandangs?.[kandangExpenseIdx]?.cost_items?.[ + formik.touched.expense_nonstocks?.[kandangExpenseIdx]?.cost_items?.[ expenseIdx ]?.[column] && Boolean( - formik.errors.cost_per_kandangs?.[kandangExpenseIdx] instanceof + formik.errors.expense_nonstocks?.[kandangExpenseIdx] instanceof Object && - formik.errors.cost_per_kandangs?.[kandangExpenseIdx].cost_items?.[ + formik.errors.expense_nonstocks?.[kandangExpenseIdx].cost_items?.[ expenseIdx ] instanceof Object && - formik.errors.cost_per_kandangs?.[kandangExpenseIdx].cost_items?.[ + formik.errors.expense_nonstocks?.[kandangExpenseIdx].cost_items?.[ expenseIdx ]?.[column] ) @@ -113,7 +113,7 @@ const ExpenseRequestKandangDetailExpense: React.FC<
    - {(formik.values.cost_per_kandangs.length === 0 || + {(formik.values.expense_nonstocks.length === 0 || !formik.values.supplier?.value) && (

    @@ -122,9 +122,9 @@ const ExpenseRequestKandangDetailExpense: React.FC<

    )} - {formik.values.cost_per_kandangs.length > 0 && + {formik.values.expense_nonstocks.length > 0 && formik.values.supplier?.value && - formik.values.cost_per_kandangs.map( + formik.values.expense_nonstocks.map( (kandangExpense, kandangExpenseIdx) => { const kandangName = formik.values.kandangs?.find( (kandang) => kandang.id === kandangExpense.kandang_id @@ -147,7 +147,7 @@ const ExpenseRequestKandangDetailExpense: React.FC<
    Nonstock Total KuantitasTotal BiayaHarga Satuan CatatanAksi
    { { label: 'Vendor', value: expense?.supplier.name }, { label: 'Tanggal Transaksi', - value: formatDate(expense?.expense_date, 'DD MMMM YYYY'), + value: formatDate(expense?.transaction_date, 'DD MMMM YYYY'), }, { label: 'Tanggal Realisasi', @@ -326,7 +326,7 @@ const ExpensePDF = ({ expense }: ExpensePDFProps) => { let expenseRequestTotal = 0; kandangExpense.pengajuans?.forEach( - (item) => (expenseRequestTotal += item.total_price) + (item) => (expenseRequestTotal += item.price) ); return ( @@ -374,7 +374,7 @@ const ExpensePDF = ({ expense }: ExpensePDFProps) => { - Total Biaya + Harga Satuan { ]} > - {formatCurrency(pengajuan.total_price)} + {formatCurrency(pengajuan.price)} { let expenseRealizationTotal = 0; kandangExpense.realisasi?.forEach( - (item) => (expenseRealizationTotal += item.total_price) + (item) => (expenseRealizationTotal += item.price) ); return ( @@ -532,7 +532,7 @@ const ExpensePDF = ({ expense }: ExpensePDFProps) => { - Total Biaya + Harga Satuan { ]} > - {formatCurrency(realisasi.total_price)} + {formatCurrency(realisasi.price)} { // Fetch Data const { data: inventoryAdjustments, isLoading } = useSWR( - `${inventoryAdjustmentApi.basePath}${getTableFilterQueryString()}`, - inventoryAdjustmentApi.getAllFetcher + `${InventoryAdjustmentApi.basePath}${getTableFilterQueryString()}`, + InventoryAdjustmentApi.getAllFetcher ); // State diff --git a/src/components/pages/inventory/adjustment/form/InventoryAdjustmentForm.tsx b/src/components/pages/inventory/adjustment/form/InventoryAdjustmentForm.tsx index bbfb3154..2c6c463c 100644 --- a/src/components/pages/inventory/adjustment/form/InventoryAdjustmentForm.tsx +++ b/src/components/pages/inventory/adjustment/form/InventoryAdjustmentForm.tsx @@ -1,7 +1,7 @@ 'use client'; import { isResponseError, isResponseSuccess } from '@/lib/api-helper'; -import { inventoryAdjustmentApi } from '@/services/api/inventory'; +import { InventoryAdjustmentApi } from '@/services/api/inventory'; import { CreateInventoryAdjustmentPayload, InventoryAdjustment, @@ -24,7 +24,7 @@ import Button from '@/components/Button'; import { Icon } from '@iconify/react'; import SelectInput, { OptionType } from '@/components/input/SelectInput'; import TextInput from '@/components/input/TextInput'; -import RadioInput from '@/components/input/RadioInput'; +import { RadioGroup } from '@/components/input/RadioInput'; import TextArea from '@/components/input/TextArea'; interface InventoryAdjustmentFormProps { @@ -52,7 +52,7 @@ const InventoryAdjustmentForm = ({ const createInventoryAdjustmentHandler = useCallback( async (payload: CreateInventoryAdjustmentPayload) => { const createInventoryAdjustmentRes = - await inventoryAdjustmentApi.create(payload); + await InventoryAdjustmentApi.create(payload); if (isResponseError(createInventoryAdjustmentRes)) { setInventoryAdjustmentFormErrorMessage( @@ -347,7 +347,7 @@ const InventoryAdjustmentForm = ({ /> {/* Radio Button Flag Stock */} - ; +}) => ( + + + +); + +const InventoryProductTable = () => { + const { + state: tableFilterState, + updateFilter, + setPage, + setPageSize, + toQueryString: getTableFilterQueryString, + } = useTableFilter({ + initial: { + search: '', + }, + paramMap: { + page: 'page', + pageSize: 'limit', + }, + }); + + const [sorting, setSorting] = useState([]); + + const { data: inventoryProducts, isLoading } = useSWR( + `${InventoryProductApi.basePath}${getTableFilterQueryString()}`, + InventoryProductApi.getAllFetcher + ); + + const searchChangeHandler: ChangeEventHandler = (e) => { + updateFilter('search', e.target.value); + }; + + const pageSizeChangeHandler = (val: OptionType | OptionType[] | null) => { + const newVal = val as OptionType; + setPageSize(newVal.value as number); + setPage(1); + }; + + const columns: ColumnDef[] = useMemo( + () => [ + { + header: '#', + cell: (props) => + tableFilterState.pageSize * (tableFilterState.page - 1) + + props.row.index + + 1, + }, + { + accessorKey: 'name', + header: 'Nama', + }, + { + accessorKey: 'product_price', + header: 'Harga Beli', + cell: (props) => { + return props.row.original.product_price + ? formatCurrency(props.row.original.product_price) + : '-'; + }, + }, + { + accessorKey: 'selling_price', + header: 'Harga Jual', + cell: (props) => { + return props.row.original.selling_price + ? formatCurrency(props.row.original.selling_price) + : '-'; + }, + }, + { + accessorFn: (row) => row.product_category.name, + header: 'Kategori', + }, + { + accessorFn: (row) => row.total_stock, + header: 'Stok', + cell: (props) => { + return props.row.original.total_stock + ? formatNumber(props.row.original.total_stock) + : '0'; + }, + }, + { + accessorFn: (row) => row.uom.name, + header: 'Satuan', + }, + { + header: 'Aksi', + cell: (props) => { + const currentPageSize = + props.table.getPaginationRowModel().rows.length; + const currentPageRows = props.table.getPaginationRowModel().flatRows; + const currentRowRelativeIndex = + currentPageRows.findIndex((r) => r.id === props.row.id) + 1; + + const isLast2Rows = currentRowRelativeIndex > currentPageSize - 2; + + return ( + <> + {currentPageSize > 2 && ( + + + + )} + + {currentPageSize <= 2 && ( + + + + )} + + ); + }, + }, + ], + [] + ); + + return ( + <> +
    +
    +
    +
    +
    + +
    + + +
    +
    + + + data={ + isResponseSuccess(inventoryProducts) ? inventoryProducts?.data : [] + } + columns={columns} + pageSize={tableFilterState.pageSize} + page={ + isResponseSuccess(inventoryProducts) + ? inventoryProducts?.meta?.page + : 0 + } + totalItems={ + isResponseSuccess(inventoryProducts) + ? inventoryProducts?.meta?.total_results + : 0 + } + onPageChange={setPage} + isLoading={isLoading} + sorting={sorting} + setSorting={setSorting} + className={{ + containerClassName: cn({ + 'mb-20': + isResponseSuccess(inventoryProducts) && + inventoryProducts?.data?.length === 0, + }), + tableWrapperClassName: 'overflow-x-auto min-h-full!', + tableClassName: 'font-inter w-full table-auto min-h-full!', + headerRowClassName: 'border-b border-b-gray-200', + headerColumnClassName: + 'px-6 py-3 text-xs font-semibold text-gray-500 last:flex last:flex-row last:justify-end', + bodyRowClassName: 'border-b border-b-gray-200', + bodyColumnClassName: + 'px-6 py-3 last:flex last:flex-row last:justify-end', + }} + /> +
    + + ); +}; + +export default InventoryProductTable; diff --git a/src/components/pages/inventory/product/detail/InventoryProductDetail.tsx b/src/components/pages/inventory/product/detail/InventoryProductDetail.tsx new file mode 100644 index 00000000..ad523929 --- /dev/null +++ b/src/components/pages/inventory/product/detail/InventoryProductDetail.tsx @@ -0,0 +1,118 @@ +import Card from '@/components/Card'; +import { FormHeader } from '@/components/helper/form/FormHeader'; +import StockLogTable from '@/components/pages/inventory/product/detail/StockLogTable'; +import StockProductWarehouseTable from '@/components/pages/inventory/product/detail/StockProductWarehouseTable'; +import { formatCurrency, formatNumber } from '@/lib/helper'; +import { InventoryProduct } from '@/types/api/inventory/product'; +import { useMemo } from 'react'; + +const InventoryProductDetail = ({ + inventoryProduct, +}: { + inventoryProduct?: InventoryProduct; +}) => { + const stockLogs = useMemo(() => { + return ( + inventoryProduct?.product_warehouses?.flatMap( + (warehouse) => warehouse.stock_logs || [] + ) || [] + ); + }, [inventoryProduct]); + + return ( +
    + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + +
    SKU:{inventoryProduct?.sku}
    Nama Produk:{inventoryProduct?.name}
    Kategory:{inventoryProduct?.product_category.name}
    Satuan:{inventoryProduct?.uom.name}
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    Harga Jual: + {inventoryProduct?.selling_price + ? formatCurrency(inventoryProduct.selling_price) + : '-'} +
    Harga Beli: + {inventoryProduct?.product_price + ? formatCurrency(inventoryProduct?.product_price) + : '-'} +
    Pajak: + {inventoryProduct?.tax + ? formatCurrency(inventoryProduct?.tax) + : '-'} +
    Total Stok: + {inventoryProduct?.total_stock + ? formatNumber(inventoryProduct?.total_stock) + : '0'} +
    +
    +
    +
    + + + + +
    + ); +}; + +export default InventoryProductDetail; diff --git a/src/components/pages/inventory/product/detail/StockLogTable.tsx b/src/components/pages/inventory/product/detail/StockLogTable.tsx new file mode 100644 index 00000000..42f7bc29 --- /dev/null +++ b/src/components/pages/inventory/product/detail/StockLogTable.tsx @@ -0,0 +1,81 @@ +import Card from '@/components/Card'; +import Table from '@/components/Table'; +import { formatDate, formatNumber, formatTitleCase } from '@/lib/helper'; +import { StockLog } from '@/types/api/inventory/product'; + +const StockLogTable = ({ stockLogs }: { stockLogs: StockLog[] }) => { + return ( + + + data={stockLogs} + columns={[ + { + header: 'ID', + accessorKey: 'id', + }, + { + header: 'Tanggal', + accessorKey: 'created_at', + cell: (props) => { + return formatDate(props.row.original.created_at, 'DD-MMM-yyyy'); + }, + }, + { + header: 'Peningkatan', + accessorKey: 'increase', + cell: (props) => { + return formatNumber(props.row.original.increase); + }, + }, + { + header: 'Penurunan', + accessorKey: 'decrease', + cell: (props) => { + return formatNumber(props.row.original.decrease); + }, + }, + { + header: 'Jenis Transaksi', + accessorKey: 'loggable_type', + cell: (props) => { + return props.row.original.loggable_type + ? formatTitleCase(props.row.original.loggable_type) + : '-'; + }, + }, + { + header: 'Catatan', + accessorKey: 'notes', + cell: (props) => { + return props.row.original.notes ? props.row.original.notes : '-'; + }, + }, + { + header: 'Oleh', + accessorKey: 'created_user.name', + }, + ]} + className={{ + containerClassName: 'mt-6', + tableWrapperClassName: 'overflow-x-auto min-h-full!', + tableClassName: 'font-inter w-full table-auto min-h-full!', + headerRowClassName: 'border-b border-b-gray-200', + headerColumnClassName: + 'px-6 py-3 text-xs font-semibold text-gray-500 last:flex last:flex-row last:justify-end', + bodyRowClassName: 'border-b border-b-gray-200', + bodyColumnClassName: + 'px-6 py-3 last:flex last:flex-row last:justify-end', + }} + /> + + ); +}; + +export default StockLogTable; diff --git a/src/components/pages/inventory/product/detail/StockProductWarehouseTable.tsx b/src/components/pages/inventory/product/detail/StockProductWarehouseTable.tsx new file mode 100644 index 00000000..6f48f7cd --- /dev/null +++ b/src/components/pages/inventory/product/detail/StockProductWarehouseTable.tsx @@ -0,0 +1,65 @@ +import Card from '@/components/Card'; +import Table from '@/components/Table'; +import { formatNumber } from '@/lib/helper'; +import { + InventoryProduct, + ProductWarehouseStock, +} from '@/types/api/inventory/product'; + +const StockProductWarehouseTable = ({ + productWarehouseStock, +}: { + productWarehouseStock?: ProductWarehouseStock[]; +}) => { + return ( + + + data={productWarehouseStock ?? []} + columns={[ + { + header: 'Nama Gudang', + accessorKey: 'warehouse_name', + }, + { + header: 'Lokasi', + accessorKey: 'location', + cell: (props) => { + return props.row.original.location != null + ? props.row.original.location.name + : '-'; + }, + }, + { + header: 'Stok', + accessorFn(row) { + return row.current_stock; + }, + cell: (props) => { + return formatNumber(props.row.original.current_stock); + }, + }, + ]} + className={{ + containerClassName: 'mt-6', + tableWrapperClassName: 'overflow-x-auto min-h-full!', + tableClassName: 'font-inter w-full table-auto min-h-full!', + headerRowClassName: 'border-b border-b-gray-200', + headerColumnClassName: + 'px-6 py-3 text-xs font-semibold text-gray-500 last:flex last:flex-row last:justify-end', + bodyRowClassName: 'border-b border-b-gray-200', + bodyColumnClassName: + 'px-6 py-3 last:flex last:flex-row last:justify-end', + }} + /> + + ); +}; + +export default StockProductWarehouseTable; diff --git a/src/components/pages/marketing/form/MarketingForm.schema.ts b/src/components/pages/marketing/form/MarketingForm.schema.ts index 0c427a9a..d81cdb9c 100644 --- a/src/components/pages/marketing/form/MarketingForm.schema.ts +++ b/src/components/pages/marketing/form/MarketingForm.schema.ts @@ -6,7 +6,7 @@ import { import { DeliveryOrderProductFormValues, DeliveryOrderProductSchema, -} from './repeater/delivery-order/DeliverOrderProduct.schema'; +} from '@/components/pages/marketing/form/repeater/delivery-order/DeliverOrderProduct.schema'; type MarketingSchemaType = { customer_id: number | undefined; diff --git a/src/components/pages/marketing/form/MarketingForm.tsx b/src/components/pages/marketing/form/MarketingForm.tsx index b90febfe..326eac72 100644 --- a/src/components/pages/marketing/form/MarketingForm.tsx +++ b/src/components/pages/marketing/form/MarketingForm.tsx @@ -8,7 +8,6 @@ import SelectInput, { OptionType, useSelect, } from '@/components/input/SelectInput'; -import TextArea from '@/components/input/TextArea'; import Modal, { useModal } from '@/components/Modal'; import { formatCurrency, formatDate } from '@/lib/helper'; import { @@ -31,23 +30,23 @@ import { DeliveryOrderSchema, SalesOrderFormValues, SalesOrderSchema, -} from './MarketingForm.schema'; +} from '@/components/pages/marketing/form/MarketingForm.schema'; import { isResponseError, isResponseSuccess } from '@/lib/api-helper'; import { DeliveryOrderApi, MarketingApi, SalesOrderApi, } from '@/services/api/marketing/marketing'; -import { SalesOrderProductFormValues } from './repeater/sales-order/SalesOrderProduct.schema'; import ConfirmationModal from '@/components/modal/ConfirmationModal'; import toast from 'react-hot-toast'; import { useRouter } from 'next/navigation'; -import SalesOrderProductTable from './table-view/SalesOrderProductTable'; -import SalesOrderProductForm from './repeater/sales-order/SalesOrderProductForm'; -import DeliveryOrderProductTable from './table-view/DeliveryOrderProductTable'; -import DeliveryOrderProductForm from './repeater/delivery-order/DeliverOrderProduct'; -import { DeliveryOrderProductFormValues } from './repeater/delivery-order/DeliverOrderProduct.schema'; import DebouncedTextArea from '@/components/input/DebouncedTextArea'; +import SalesOrderProductTable from '@/components/pages/marketing/form/table-view/SalesOrderProductTable'; +import SalesOrderProductForm from '@/components/pages/marketing/form/repeater/sales-order/SalesOrderProductForm'; +import DeliveryOrderProductTable from '@/components/pages/marketing/form/table-view/DeliveryOrderProductTable'; +import DeliveryOrderProductForm from '@/components/pages/marketing/form/repeater/delivery-order/DeliverOrderProduct'; +import { SalesOrderProductFormValues } from '@/components/pages/marketing/form/repeater/sales-order/SalesOrderProduct.schema'; +import { DeliveryOrderProductFormValues } from '@/components/pages/marketing/form/repeater/delivery-order/DeliverOrderProduct.schema'; const MemoizedSalesOrderProductTable = memo(SalesOrderProductTable); const MemoizedSalesOrderProductForm = memo(SalesOrderProductForm); @@ -156,8 +155,6 @@ export const recalculate = ( field: string, values: ProductCalculationFields ) => { - console.log('Values'); - console.log(values); const { qty, unit_price, total_price, avg_weight, total_weight } = values; const result: Partial = {}; if (field == 'unit_price' || field == 'total_price' || field == 'qty') { @@ -174,8 +171,6 @@ export const recalculate = ( result.avg_weight = Number(total_weight) / Number(qty); } } - console.log('Result'); - console.log(result); return result; }; export const getSubmitField = (values: ProductCalculationFields) => { @@ -327,8 +322,6 @@ const MarketingForm = ({ }) .filter((item) => Boolean(item)), } as UpdateDeliveryOrderPayload); - console.log('PAYLOAD'); - console.log(payload); switch (formType) { case 'add': await createMarketingHandler(payload as CreateSalesOrderPayload); @@ -352,7 +345,6 @@ const MarketingForm = ({ // ================== FORM REPEATER HANDLER ================== const createMarketingHandler = async (values: CreateSalesOrderPayload) => { setIsLoading(true); - console.log(values); const createMarketingRes = await SalesOrderApi.create(values); if (isResponseSuccess(createMarketingRes)) { toast.success(createMarketingRes?.message as string); @@ -365,7 +357,6 @@ const MarketingForm = ({ }; const updateMarketingHandler = async (values: UpdateSalesOrderPayload) => { setIsLoading(true); - console.log(values); const updateMarketingRes = await SalesOrderApi.update( initialValues?.id as number, values @@ -381,10 +372,8 @@ const MarketingForm = ({ }; const createDeliveryHandler = async (values: CreateDeliveryOrderPayload) => { setIsLoading(true); - console.log(initialValues?.id); const createDeliveryRes = await DeliveryOrderApi.create(values); if (isResponseSuccess(createDeliveryRes)) { - console.log(createDeliveryRes); toast.success(createDeliveryRes?.message as string); setDeliveryOrderValues( createDeliveryRes.data?.delivery_order?.flatMap((delivery) => @@ -397,20 +386,17 @@ const MarketingForm = ({ router.push(`/marketing/detail?marketingId=${initialValues?.id}`); } if (isResponseError(createDeliveryRes)) { - console.log(createDeliveryRes); toast.error(createDeliveryRes?.message as string); } setIsLoading(false); }; const updateDeliveryHandler = async (values: UpdateDeliveryOrderPayload) => { setIsLoading(true); - console.log(initialValues?.id); const updateDeliveryRes = await DeliveryOrderApi.update( initialValues?.id as number, values ); if (isResponseSuccess(updateDeliveryRes)) { - console.log(updateDeliveryRes); toast.success(updateDeliveryRes?.message as string); setDeliveryOrderValues( mergeSOwithDO( @@ -426,7 +412,6 @@ const MarketingForm = ({ router.push(`/marketing/detail?marketingId=${initialValues?.id}`); } if (isResponseError(updateDeliveryRes)) { - console.log(updateDeliveryRes); toast.error(updateDeliveryRes?.message as string); } setIsLoading(false); @@ -435,16 +420,13 @@ const MarketingForm = ({ // ================== MARKETING HANDLER ================== const deleteMarketingHandler = async () => { setIsLoading(true); - console.log(initialValues?.id); const deleteMarketingRes = await MarketingApi.delete( initialValues?.id as number ); if (isResponseSuccess(deleteMarketingRes)) { - console.log(deleteMarketingRes); toast.success(deleteMarketingRes?.message as string); } if (isResponseError(deleteMarketingRes)) { - console.log(deleteMarketingRes); toast.error(deleteMarketingRes?.message as string); } setIsLoading(false); diff --git a/src/components/pages/marketing/form/repeater/delivery-order/DeliverOrderProduct.tsx b/src/components/pages/marketing/form/repeater/delivery-order/DeliverOrderProduct.tsx index 4fe4179f..2dae2da5 100644 --- a/src/components/pages/marketing/form/repeater/delivery-order/DeliverOrderProduct.tsx +++ b/src/components/pages/marketing/form/repeater/delivery-order/DeliverOrderProduct.tsx @@ -2,7 +2,7 @@ import { useEffect, useState } from 'react'; import { DeliveryOrderProductFormValues, DeliveryOrderProductSchema, -} from './DeliverOrderProduct.schema'; +} from '@/components/pages/marketing/form/repeater/delivery-order/DeliverOrderProduct.schema'; import { useFormik } from 'formik'; import Alert from '@/components/Alert'; import Button from '@/components/Button'; diff --git a/src/components/pages/marketing/pdf/DeliveryOrderExport.tsx b/src/components/pages/marketing/pdf/DeliveryOrderExport.tsx index c2b19660..46e85a23 100644 --- a/src/components/pages/marketing/pdf/DeliveryOrderExport.tsx +++ b/src/components/pages/marketing/pdf/DeliveryOrderExport.tsx @@ -3,10 +3,10 @@ import { BaseDeliveryOrder, Marketing } from '@/types/api/marketing/marketing'; import { Icon } from '@iconify/react'; import { Document, Image, Page, pdf, Text, View } from '@react-pdf/renderer'; import { useMemo, useState } from 'react'; -import pdfStyles from './styles/MarketingPDFStyles'; import { formatDate, formatNumber, formatVechicleNumber } from '@/lib/helper'; import { format } from 'path'; import { date } from 'yup'; +import pdfStyles from '@/components/pages/marketing/pdf/styles/MarketingPDFStyles'; interface DeliveryOrderExportProps { data?: Marketing; diff --git a/src/components/pages/marketing/pdf/SalesOrderExport.tsx b/src/components/pages/marketing/pdf/SalesOrderExport.tsx index e7fa9a71..f9f0a6c5 100644 --- a/src/components/pages/marketing/pdf/SalesOrderExport.tsx +++ b/src/components/pages/marketing/pdf/SalesOrderExport.tsx @@ -3,8 +3,8 @@ import { Marketing } from '@/types/api/marketing/marketing'; import { Icon } from '@iconify/react'; import { Document, Image, Page, pdf, Text, View } from '@react-pdf/renderer'; import { useMemo, useState } from 'react'; -import pdfStyles from './styles/MarketingPDFStyles'; import { formatDate, formatNumber } from '@/lib/helper'; +import pdfStyles from '@/components/pages/marketing/pdf/styles/MarketingPDFStyles'; interface SalesOrderExportProps { data?: Marketing; diff --git a/src/components/pages/master-data/supplier/form/SupplierForm.tsx b/src/components/pages/master-data/supplier/form/SupplierForm.tsx index da69a52e..429c3bb6 100644 --- a/src/components/pages/master-data/supplier/form/SupplierForm.tsx +++ b/src/components/pages/master-data/supplier/form/SupplierForm.tsx @@ -306,7 +306,6 @@ const SupplierForm = ({ label='Hatchery' value={hatcheryOptionsValues} onChange={(val) => { - console.log(val); // pastikan val = array of { value, label } setHatcheryOptionValues(val as OptionType[]); }} isError={ diff --git a/src/components/pages/production/chickin/form/ChickinForm.tsx b/src/components/pages/production/chickin/form/ChickinForm.tsx index 1f56459f..b6c5a2c0 100644 --- a/src/components/pages/production/chickin/form/ChickinForm.tsx +++ b/src/components/pages/production/chickin/form/ChickinForm.tsx @@ -7,13 +7,16 @@ import { formatNumber } from '@/lib/helper'; import { Kandang } from '@/types/api/master-data/kandang'; import { ProjectFlockKandang } from '@/types/api/production/project-flock-kandang'; import Tabs from '@/components/Tabs'; -import ChickinFormView from './tabs/ChickinFormView'; -import ChickinLogsView from './tabs/ChickLogsView'; import { useState } from 'react'; import ApprovalSteps, { useApprovalSteps, } from '@/components/pages/ApprovalSteps'; -import { PROJECT_FLOCK_KANDANG_APPROVAL_LINE } from '@/config/approval-line'; +import ChickinFormView from '@/components/pages/production/chickin/form/tabs/ChickinFormView'; +import ChickinLogsView from '@/components/pages/production/chickin/form/tabs/ChickLogsView'; +import DrawerHeader from '@/components/helper/drawer/DrawerHeader'; +import { Icon } from '@iconify/react'; +import Badge from '@/components/Badge'; +import { CHICKINS_APPROVAL_LINE } from '@/config/approval-line'; const ChickinFormKandang = ({ formType = 'add', initialValues, @@ -23,7 +26,7 @@ const ChickinFormKandang = ({ initialValues: ProjectFlockKandang; afterSubmit?: () => void; }) => { - const [activeTabId, setActiveTabId] = useState('formChickIn'); + const [openChickin, setOpenChickin] = useState(false); const { approvals, @@ -31,114 +34,154 @@ const ChickinFormKandang = ({ refresh: refreshApprovals, } = useApprovalSteps({ latestApproval: initialValues?.approval, - approvalLines: PROJECT_FLOCK_KANDANG_APPROVAL_LINE, - moduleName: 'PROJECT_FLOCK_KANDANGS', + approvalLines: CHICKINS_APPROVAL_LINE, + moduleName: 'CHICKINS', moduleId: initialValues?.id.toString() ?? '', }); const afterSubmitFormChickin = () => { - setActiveTabId('logsChickIn'); + setOpenChickin(true); afterSubmit && afterSubmit(); refreshApprovals(); }; return ( -
    - + - {approvals && !approvalsLoading && ( - - )} + {/* Informasi Kandang */} +
    +
    +

    Informasi Kandang

    - - - emptyContent={ -
    - - Informasi Kandang belum tersedia... - -
    - } - data={[initialValues?.kandang]} - columns={[ - { - header: 'Area', - accessorFn: () => initialValues?.project_flock?.area.name || '-', - }, - { - header: 'Lokasi', - accessorFn: () => - initialValues?.project_flock?.location.name || '-', - }, - { - header: 'Flock', - accessorFn: () => initialValues?.project_flock?.flock_name || '-', - }, - { - header: 'Kandang', - accessorFn: (row) => row?.name || '-', - }, - { - header: 'Kapasitas', - accessorFn: (row) => - (row?.capacity && formatNumber(row?.capacity)) || '-', - }, - { - header: 'Penanggung Jawab', - accessorFn: (row) => row?.pic?.name || '-', - }, - ]} - className={{ - tableWrapperClassName: 'overflow-x-auto min-h-full!', - tableClassName: 'font-inter w-full table-auto min-h-full!', - headerRowClassName: 'border-b border-b-gray-200', - headerColumnClassName: - 'px-6 py-3 text-xs font-semibold text-gray-500 last:flex last:flex-row last:justify-end', - bodyRowClassName: 'border-b border-b-gray-200', - bodyColumnClassName: - 'px-6 py-3 last:flex last:flex-row last:justify-end', - paginationClassName: 'hidden', - }} + {approvals && !approvalsLoading && ( +
    + +
    + )} + + {/* Badge Row */} +
    + + {' '} + Aktif + +
    + + + {` Kapasitas ${formatNumber(initialValues.kandang.capacity)} Ekor`} + +
    + + {/* Information Grid */} +
    + {/* Area */} +
    + Area +
    +
    + {initialValues.project_flock.area.name} +
    + + {/* Lokasi */} +
    + Lokasi +
    +
    + {initialValues.project_flock?.location.name} +
    + + {/* Kandang */} +
    + Kandang +
    +
    {initialValues.kandang.name}
    + + {/* Jumlah DOC */} +
    + Jumlah DOC +
    +
    + {formatNumber( + initialValues.chickins?.reduce( + (total, chickin) => total + chickin.usage_qty, + 0 + ) ?? 0 + )}{' '} + Ekor +
    +
    +
    + +
    +
    +

    Informasi Chick In

    + {/* Badge Row */} +
    + + {' '} + Perlu Chick In ({initialValues.available_qtys?.length ?? 0}) + +
    + setOpenChickin(!openChickin)} + > + {`Riwayat Chick In ${formatNumber(initialValues.chickins?.length ?? 0)}`} + + +
    +
    + {openChickin && ( + - - - ), - }, - { - content: ( - - ), - id: 'logsChickIn', - label: 'Riwayat Chick In', - }, - ]} - variant='lifted' + )} + -
    + ); }; diff --git a/src/components/pages/production/chickin/form/tabs/ChickLogsView.tsx b/src/components/pages/production/chickin/form/tabs/ChickLogsView.tsx index 8accf9ae..99eb1cb3 100644 --- a/src/components/pages/production/chickin/form/tabs/ChickLogsView.tsx +++ b/src/components/pages/production/chickin/form/tabs/ChickLogsView.tsx @@ -2,17 +2,12 @@ import Alert from '@/components/Alert'; import Button from '@/components/Button'; import Card from '@/components/Card'; import { useModal } from '@/components/Modal'; -import ConfirmationModal from '@/components/modal/ConfirmationModal'; import ConfirmationModalWithNotes from '@/components/modal/ConfirmationModalWithNotes'; import PillBadge from '@/components/PillBadge'; -import Table from '@/components/Table'; import { isResponseError, isResponseSuccess } from '@/lib/api-helper'; -import { cn, formatDate, formatNumber } from '@/lib/helper'; +import { formatDate, formatNumber } from '@/lib/helper'; import { ChickinApi } from '@/services/api/production/chickin'; -import { - Chickin, - ProjectFlockKandang, -} from '@/types/api/production/project-flock-kandang'; +import { ProjectFlockKandang } from '@/types/api/production/project-flock-kandang'; import { Icon } from '@iconify/react'; import { useState } from 'react'; import toast from 'react-hot-toast'; @@ -54,105 +49,120 @@ const ChickinLogsView = ({ return ( <> - -
    - {initialValues?.approval?.step_number == 1 && ( - - )} -
    - - data={initialValues?.chickins || []} - columns={[ - { - header: '#', - cell: (props) => props.row.index + 1, - }, - { - accessorFn: (row) => row.chick_in_date, - header: 'Tanggal Chick In', - cell: (props) => { - return formatDate(props.getValue() as string, 'DD MMM YYYY'); - }, - }, - { - accessorFn: (row) => row.product_warehouse?.warehouse?.name, - header: 'Kandang', - }, - { - accessorFn: (row) => row.product_warehouse?.product?.name, - header: 'Produk', - }, - { - accessorFn: (row) => row.usage_qty ?? row.pending_usage_qty, - header: 'Jumlah Chick In', - cell: (props) => { - if (props.row.original.usage_qty != 0) { - return formatNumber(props.row.original.usage_qty); - } else if (props.row.original.pending_usage_qty != 0) { - return formatNumber(props.row.original.pending_usage_qty); - } else { - return '-'; - } - }, - }, - { - accessorFn: (row) => row.pending_usage_qty, - header: 'Status', - cell: (props) => { - return ( - - ); - }, - }, - ]} - className={{ - containerClassName: cn({ - 'mb-20': initialValues?.chickins?.length === 0, - }), - tableWrapperClassName: 'overflow-x-auto min-h-full!', - tableClassName: 'font-inter w-full table-auto min-h-full!', - headerRowClassName: 'border-b border-b-gray-200', - headerColumnClassName: - 'px-6 py-3 text-xs font-semibold text-gray-500 last:flex last:flex-row last:justify-end', - bodyRowClassName: 'border-b border-b-gray-200', - bodyColumnClassName: - 'px-6 py-3 last:flex last:flex-row last:justify-end', - paginationClassName: 'hidden', - }} - /> +
    + {/* Card List Chickin Logs */} + {(initialValues?.chickins || []).length === 0 ? ( +
    + + Belum ada riwayat Chick In... + +
    + ) : ( + (initialValues?.chickins || []).map((chickin, index) => { + const isApproved = chickin.usage_qty !== 0; + const isPending = chickin.pending_usage_qty !== 0; + const quantity = isApproved + ? chickin.usage_qty + : isPending + ? chickin.pending_usage_qty + : 0; + + return ( + +
    + {/* Header with Status Badge */} +
    +
    + Chick In #{index + 1} +
    + +
    + + {/* Tanggal Chick In */} +
    +
    + {' '} + Tanggal Chick In +
    +
    + {formatDate(chickin.chick_in_date, 'DD MMM YYYY')} +
    +
    + + {/* Kandang */} +
    +
    + {' '} + Kandang +
    +
    + {chickin.product_warehouse?.warehouse?.name || '-'} +
    +
    + + {/* Produk */} +
    +
    + {' '} + Produk +
    +
    + {chickin.product_warehouse?.product?.name || '-'} +
    +
    + + {/* Jumlah Chick In */} +
    +
    + {' '} + Jumlah Chick In +
    +
    + {quantity > 0 ? `${formatNumber(quantity)} Ekor` : '-'} +
    +
    +
    +
    + ); + }) + )} + + {initialValues?.approval?.step_number <= 2 && ( + + )} + {chickinErrorMessage && (
    setChickinErrorMessage('')}> {chickinErrorMessage}
    )} - +
    + { handleReset(); }} onSubmit={formik.handleSubmit} > - - - data={formik.values.chickin_requests || []} - columns={[ - { - accessorFn: (row) => row.chick_in_date, - header: 'Tanggal Chick In', - cell(props) { - return ( - - ); - }, - }, - { - accessorFn: (row) => row.product_warehouse_id, - header: 'Produk', - cell(props) { - const availableQty = initialValues?.available_qtys?.find( - (availableQty) => - availableQty.product_warehouse.id === - props.row.original.product_warehouse_id - ); - return ( -
    {availableQty?.product_warehouse?.product?.name}
    - ); - }, - }, - { - accessorFn: (row) => row.product_warehouse_id, - header: 'Jumlah (ekor)', - cell(props) { - const availableQty = initialValues?.available_qtys?.find( - (availableQty) => - availableQty.product_warehouse.id === - props.row.original.product_warehouse_id - ); - return ( -
    - {availableQty?.available_qty - ? formatNumber(availableQty?.available_qty) - : '-'} -
    - ); - }, - }, - ]} - className={{ - tableWrapperClassName: 'overflow-x-auto min-h-full!', - tableClassName: 'font-inter w-full table-auto min-h-full!', - headerRowClassName: 'border-b border-b-gray-200', - headerColumnClassName: - 'px-2 py-3 text-xs font-semibold text-gray-500 last:flex last:flex-row last:justify-end', - bodyRowClassName: 'border-b border-b-gray-200', - bodyColumnClassName: - 'px-2 py-2 last:flex last:flex-row last:justify-end', - paginationClassName: 'hidden', - }} - emptyContent={ -
    - - Isi persediaan DOC untuk kandang belum tersedia... - + {(formik.values.chickin_requests || []).map((chickinRequest, index) => { + const availableQty = initialValues?.available_qtys?.find( + (availableQty) => + availableQty.product_warehouse.id === + chickinRequest.product_warehouse_id + ); + return ( + +
    +
    + {formatNumber(availableQty?.available_qty ?? 0)} Ekor -{' '} + {availableQty?.product_warehouse?.product?.name} +
    + {chickinRequest.chick_in_date && ( + + )}
    - } - /> -
    -
    - + + + ); + })} + {/* + data={formik.values.chickin_requests || []} + columns={[ + { + accessorFn: (row) => row.chick_in_date, + header: 'Tanggal Chick In', + cell(props) { + return ( + + ); + }, + }, + { + accessorFn: (row) => row.product_warehouse_id, + header: 'Produk', + cell(props) { + const availableQty = initialValues?.available_qtys?.find( + (availableQty) => + availableQty.product_warehouse.id === + props.row.original.product_warehouse_id + ); + return ( +
    {availableQty?.product_warehouse?.product?.name}
    + ); + }, + }, + { + accessorFn: (row) => row.product_warehouse_id, + header: 'Jumlah (ekor)', + cell(props) { + const availableQty = initialValues?.available_qtys?.find( + (availableQty) => + availableQty.product_warehouse.id === + props.row.original.product_warehouse_id + ); + return ( +
    + {availableQty?.available_qty + ? formatNumber(availableQty?.available_qty) + : '-'} +
    + ); + }, + }, + ]} + className={{ + tableWrapperClassName: 'overflow-x-auto min-h-full!', + tableClassName: 'font-inter w-full table-auto min-h-full!', + headerRowClassName: 'border-b border-b-gray-200', + headerColumnClassName: + 'px-2 py-3 text-xs font-semibold text-gray-500 last:flex last:flex-row last:justify-end', + bodyRowClassName: 'border-b border-b-gray-200', + bodyColumnClassName: + 'px-2 py-2 last:flex last:flex-row last:justify-end', + paginationClassName: 'hidden', + }} + emptyContent={ +
    + + Isi persediaan DOC untuk kandang belum tersedia... + +
    + } + /> */} + {formik.values.chickin_requests?.length > 0 && ( -
    + )} {chickinErrorMessage && (
    setChickinErrorMessage('')}> {chickinErrorMessage} diff --git a/src/components/pages/production/project-flock/ProjectFlockTable.tsx b/src/components/pages/production/project-flock/ProjectFlockTable.tsx index a315b332..4be30f7a 100644 --- a/src/components/pages/production/project-flock/ProjectFlockTable.tsx +++ b/src/components/pages/production/project-flock/ProjectFlockTable.tsx @@ -1,6 +1,8 @@ 'use client'; +import Badge from '@/components/Badge'; import Button from '@/components/Button'; +import FloatingActionsButton from '@/components/FloatingActionsButton'; import CheckboxInput from '@/components/input/CheckboxInput'; import DebouncedTextInput from '@/components/input/DebouncedTextInput'; import SelectInput, { OptionType } from '@/components/input/SelectInput'; @@ -8,23 +10,18 @@ import { useModal } from '@/components/Modal'; import ConfirmationModal from '@/components/modal/ConfirmationModal'; import ConfirmationModalWithNotes from '@/components/modal/ConfirmationModalWithNotes'; import Table from '@/components/Table'; -import RowCollapseOptions from '@/components/table/RowCollapseOptions'; -import RowDropdownOptions from '@/components/table/RowDropdownOptions'; import { ROWS_OPTIONS } from '@/config/constant'; import { isResponseError, isResponseSuccess } from '@/lib/api-helper'; -import { cn } from '@/lib/helper'; +import { cn, formatDate } from '@/lib/helper'; import { AreaApi, KandangApi, LocationApi } from '@/services/api/master-data'; import { ProjectFlockApi } from '@/services/api/production/project-flock'; import { useTableFilter } from '@/services/hooks/useTableFilter'; -import { BaseApiResponse } from '@/types/api/api-general'; import { Kandang } from '@/types/api/master-data/kandang'; -import { - ProjectFlockApprovalPayload, - ProjectFlock, -} from '@/types/api/production/project-flock'; +import { ProjectFlock } from '@/types/api/production/project-flock'; import { Icon } from '@iconify/react'; import { CellContext, SortingState } from '@tanstack/react-table'; -import { ChangeEventHandler, useState } from 'react'; +import { useRouter } from 'next/navigation'; +import { ChangeEventHandler, useEffect, useMemo, useState } from 'react'; import toast from 'react-hot-toast'; import useSWR from 'swr'; @@ -98,7 +95,7 @@ const RowOptionsMenu = ({ ); }; -const ProjectFlockTable = () => { +const ProjectFlockTable = ({ refresh }: { refresh?: () => void }) => { const { state: tableFilterState, updateFilter, @@ -123,8 +120,9 @@ const ProjectFlockTable = () => { periodFilter: 'period', }, }); + const router = useRouter(); - // State + // ===== State ===== const [rowSelection, setRowSelection] = useState>({}); const selectedRowIds = Object.keys(rowSelection) .filter((id) => rowSelection[id]) @@ -151,14 +149,15 @@ const ProjectFlockTable = () => { const [isDeleteLoading, setIsDeleteLoading] = useState(false); const [isApproveLoading, setIsApproveLoading] = useState(false); - // Fetch Data + // ===== Fetch Data ===== const { data: projectFlocks, isLoading, mutate: refreshProjectFlocks, } = useSWR( `${ProjectFlockApi.basePath}${getTableFilterQueryString()}`, - ProjectFlockApi.getAllFetcher + ProjectFlockApi.getAllFetcher, + { revalidateOnMount: true } ); const areaUrl = `${AreaApi.basePath}?${new URLSearchParams({ @@ -191,7 +190,7 @@ const ProjectFlockTable = () => { KandangApi.getAllFetcher ); - // Data to Options Mapping + // ===== Data to Options Mapping ====== const optionsArea = isResponseSuccess(areas) ? areas?.data.map((area) => ({ value: area.id, @@ -211,7 +210,7 @@ const ProjectFlockTable = () => { })) : []; - // Handler + // ====== HANDLER ====== const pageSizeChangeHandler = (val: OptionType | OptionType[] | null) => { const newVal = val as OptionType; setPageSize(newVal.value as number); @@ -219,17 +218,17 @@ const ProjectFlockTable = () => { const confirmationModalDeleteClickHandler = async () => { setIsDeleteLoading(true); - await ProjectFlockApi.delete(selectedProjectFlock?.id as number); + await ProjectFlockApi.delete(selectedSingleRow?.id as number); refreshProjectFlocks(); deleteModal.closeModal(); toast.success('Successfully delete Project Flock!'); setIsDeleteLoading(false); + setRowSelection({}); }; const searchChangeHandler: ChangeEventHandler = (e) => { updateFilter('search', e.target.value); }; - const confirmApprovalHandler = async ( notes: string, approvalAction: 'APPROVED' | 'REJECTED' @@ -259,22 +258,44 @@ const ProjectFlockTable = () => { setIsApproveLoading(false); }; + // ====== EFFECT ====== + useEffect(() => { + refreshProjectFlocks(); + }, [refresh]); + + // ====== MEMO ====== + const selectedSingleRow: ProjectFlock | null | undefined = useMemo(() => { + return selectedRowIds.length === 1 + ? isResponseSuccess(projectFlocks) + ? projectFlocks?.data.find((row) => row.id === selectedRowIds[0]) + : null + : null; + }, [rowSelection]); + + const canApprove = useMemo(() => { + if (!selectedSingleRow || isApproveLoading) return false; + + const isPengajuan = selectedSingleRow.approval.step_number == 1; + const isNotRejected = selectedSingleRow.approval.action != 'REJECTED'; + + return isPengajuan && isNotRejected; + }, [selectedSingleRow, isApproveLoading]); + return ( <> -
    +
    - + */}
    { id: 'select', header: ({ table }) => { const allRows = table.getRowModel().rows; - const selectableRows = allRows.filter( - (row) => row.original?.approval?.step_number == 1 - ); + const selectableRows = allRows; const allSelected = selectableRows.every((row) => row.getIsSelected()) && @@ -417,12 +436,6 @@ const ProjectFlockTable = () => { checked={allSelected} indeterminate={someSelected} onChange={toggleSelectableRows} - disabled={ - isResponseSuccess(projectFlocks) && - projectFlocks?.data?.filter( - (flock) => flock.approval.step_number == 1 - ).length == 0 - } />
    ); @@ -431,14 +444,8 @@ const ProjectFlockTable = () => { return ( @@ -469,6 +476,40 @@ const ProjectFlockTable = () => { { accessorKey: 'approval.step_name', header: 'Status', + cell: (props) => { + const approval = props.row.original.approval; + + return ( + + + {approval.step_name} + + ); + }, }, { header: 'Kandang', @@ -496,51 +537,51 @@ const ProjectFlockTable = () => { accessorKey: 'created_at', header: 'Dibuat pada', cell: (props) => - new Date(props.row.original.created_at).toLocaleDateString(), + formatDate(props.row.original.created_at, 'MMM DD, YYYY'), }, - { - header: 'Aksi', - cell: (props) => { - const currentPageSize = - props.table.getPaginationRowModel().rows.length; - const currentPageRows = - props.table.getPaginationRowModel().flatRows; - const currentRowRelativeIndex = - currentPageRows.findIndex((r) => r.id === props.row.id) + 1; + // { + // header: 'Aksi', + // cell: (props) => { + // const currentPageSize = + // props.table.getPaginationRowModel().rows.length; + // const currentPageRows = + // props.table.getPaginationRowModel().flatRows; + // const currentRowRelativeIndex = + // currentPageRows.findIndex((r) => r.id === props.row.id) + 1; - const isLast2Rows = - currentRowRelativeIndex > currentPageSize - 2; + // const isLast2Rows = + // currentRowRelativeIndex > currentPageSize - 2; - const deleteClickHandler = () => { - setSelectedProjectFlock(props.row.original); - deleteModal.openModal(); - }; + // const deleteClickHandler = () => { + // setSelectedProjectFlock(props.row.original); + // deleteModal.openModal(); + // }; - return ( - <> - {currentPageSize > 2 && ( - - - - )} + // return ( + // <> + // {currentPageSize > 2 && ( + // + // + // + // )} - {currentPageSize <= 2 && ( - - - - )} - - ); - }, - }, + // {currentPageSize <= 2 && ( + // + // + // + // )} + // + // ); + // }, + // }, ]} pageSize={tableFilterState.pageSize} page={ @@ -576,6 +617,57 @@ const ProjectFlockTable = () => {
    + { + deleteModal.openModal(); + }, + }, + ]} + approvals={[ + { + icon: 'material-symbols:check', + label: 'Approve', + action: 'APPROVED', + onClick: () => { + setApprovalAction('APPROVED'); + confirmModal.openModal(); + }, + disabled: !canApprove, + }, + { + icon: 'mdi:times', + label: 'Reject', + action: 'REJECTED', + onClick: () => { + setApprovalAction('REJECTED'); + confirmModal.openModal(); + }, + }, + ]} + selectedRowIds={selectedRowIds} + onClose={() => { + setRowSelection({}); + }} + /> + - +
    + + + +
    +
    + Chick In {projectFlock?.flock_name} +
    +
    +
    + {/* -
    + backUrl={`/production/project-flock/detail?projectFlockId=${projectFlock?.id}`} + /> */} + {/*
    -
    - */} + {/* Informasi Umum */} + {projectFlock && ( +
    +
    +

    Informasi Umum

    + {/* Badge Row */} +
    + = 3 + ? 'error' + : undefined + } + className={{ + badge: 'rounded-lg px-2', + }} + > + = 3 + ? 'error' + : undefined + } + />{' '} + {projectFlock.approval.step_name} + +
    + + + {` ${formatTitleCase(projectFlock.category)}`} + +
    + {/* Information Grid */} +
    +
    + Submitted +
    +
    + + {' '} + {projectFlock.created_user.name} + +
    + +
    + History +
    +
    + +
    + + {/* BARIS 1 */} +
    + Area +
    +
    {projectFlock.area.name}
    + + {/* BARIS 2 */} +
    + Lokasi +
    +
    {projectFlock.location.name}
    + +
    + FCR +
    +
    {projectFlock.fcr.name}
    + + {/* BARIS 3 (Terakhir - TIDAK PERLU garis di bawahnya) */} +
    + {' '} + Kategori +
    +
    + {formatTitleCase(projectFlock.category)} +
    +
    +
    +
    + )} + {/* - - */} + {/* Card Kandangs */} +
    +
    +

    Daftar Kandang

    + {isResponseSuccess(listProjectFlock) ? ( + <> + {/* Badge Row */} +
    + + {' '} + Disetujui ( + {isResponseSuccess(listProjectFlockKandang) && + listProjectFlockKandang.data.filter( + (k) => k.approval?.step_number == 1 + ).length} + ) + +
    + + {' '} + Pengajuan ( + {isResponseSuccess(listProjectFlockKandang) && + listProjectFlockKandang.data.filter( + (k) => k.approval?.step_number == 2 + ).length} + ) + +
    + + + Belum Chickin ( + {isResponseSuccess(listProjectFlockKandang) && + listProjectFlockKandang.data.filter( + (k) => k.approval == null + ).length} + ) + +
    + {/* Card Kandang */} + +
    + {isResponseSuccess(listProjectFlockKandang) && + listProjectFlockKandang.data.map((kandang) => ( +
    +
    + + + + + {kandang.kandang.name} + +
    + +
    + ))} +
    +
    + + ) : ( +
    + + Pilih project flock terlebih dahulu... + +
    + )} +
    +
    + {/* - +
    */} ); }; diff --git a/src/components/pages/production/project-flock/closing/ProjectFlockClosingForm.tsx b/src/components/pages/production/project-flock/closing/ProjectFlockClosingForm.tsx new file mode 100644 index 00000000..26072927 --- /dev/null +++ b/src/components/pages/production/project-flock/closing/ProjectFlockClosingForm.tsx @@ -0,0 +1,305 @@ +'use client'; + +import Button from '@/components/Button'; +import DrawerHeader from '@/components/helper/drawer/DrawerHeader'; +import Table from '@/components/Table'; +import Badge from '@/components/Badge'; +import { cn, formatDate, formatNumber, formatTitleCase } from '@/lib/helper'; +import { ProjectFlock } from '@/types/api/production/project-flock'; +import { + ClosingExpense, + ProjectFlockKandang, + StockItem, +} from '@/types/api/production/project-flock-kandang'; +import { Icon } from '@iconify/react'; +import useSWR from 'swr'; +import { ProjectFlockKandangApi } from '@/services/api/production/project-flock-kandang'; +import { isResponseError, isResponseSuccess } from '@/lib/api-helper'; +import { useModal } from '@/components/Modal'; +import ConfirmationModal from '@/components/modal/ConfirmationModal'; +import { useMemo, useState } from 'react'; +import toast from 'react-hot-toast'; +import { useRouter } from 'next/navigation'; +import { ProductWarehouse } from '@/types/api/inventory/product-warehouse'; + +const ProjectFlockClosingForm = ({ + projectFlock, + projectFlockKandang, +}: { + projectFlock: ProjectFlock; + projectFlockKandang: ProjectFlockKandang; +}) => { + const router = useRouter(); + const closeModal = useModal(); + const isCanClose = projectFlock.approval?.step_number <= 2; + const [isClosingLoading, setIsClosingLoading] = useState(false); + + const { data: closingData, isLoading } = useSWR( + `${ProjectFlockKandangApi.basePath}/${projectFlockKandang.id}/closing`, + () => ProjectFlockKandangApi.checkClosing(projectFlockKandang.id) + ); + + const confirmationModalCloseClickHandler = async () => { + setIsClosingLoading(true); + const deleteProjectFlockRes = await ProjectFlockKandangApi.closing( + projectFlockKandang?.id as number, + { + closed_date: formatDate(new Date(), 'YYYY-MM-DD'), + action: isCanClose ? 'close' : 'unclose', + } + ); + + if (isResponseSuccess(deleteProjectFlockRes)) { + toast.success(deleteProjectFlockRes?.message as string); + router.push(`/production/project-flock`); + } + if (isResponseError(deleteProjectFlockRes)) { + toast.error(deleteProjectFlockRes?.message as string); + } + setIsClosingLoading(false); + closeModal.closeModal(); + }; + + const errorStock = useMemo(() => { + return isResponseSuccess(closingData) + ? closingData?.data?.stock_remaining.every((stock) => stock.quantity > 0) + : true; + }, [closingData]); + + const errorExpense = useMemo(() => { + return isResponseSuccess(closingData) + ? closingData?.data?.expenses.every((expense) => expense.step < 5) + : true; + }, [closingData]); + + const isCanCloseValid = true; + + return ( + <> + + + {/* Informasi Kandang */} +
    +
    +

    Informasi Kandang

    + + {/* Badge Row */} +
    + + {' '} + Aktif + +
    + + + {` Kapasitas ${formatNumber(projectFlockKandang.kandang?.capacity)} Ekor`} + +
    + + {/* Information Grid */} +
    + {/* Area */} +
    + Area +
    +
    {projectFlock.area?.name}
    + + {/* Lokasi */} +
    + Lokasi +
    +
    {projectFlock.location?.name}
    + + {/* Kandang */} +
    + Kandang +
    +
    {projectFlockKandang.kandang?.name}
    + + {/* Jumlah DOC */} +
    + Jumlah DOC +
    +
    + {formatNumber( + projectFlockKandang.chickins?.reduce( + (total, chickin) => total + chickin.usage_qty, + 0 + ) ?? 0 + )}{' '} + Ekor +
    +
    +
    + + {/* Table Biaya */} +
    +
    +

    Biaya

    + + data={ + isResponseSuccess(closingData) ? closingData.data?.expenses : [] + } + columns={[ + { + header: 'PO Number', + accessorKey: 'po_number', + }, + { + header: 'Total', + accessorKey: 'total', + }, + { + header: 'Status', + accessorKey: 'status', + cell(props) { + return ( + + {formatTitleCase(props.row.original.step_name)} + + ); + }, + }, + ]} + className={{ + containerClassName: cn('my-4'), + tableWrapperClassName: 'overflow-x-auto min-h-full! max-w-120', + tableClassName: 'font-inter w-full table-sm min-h-full!', + headerRowClassName: 'border-b border-b-gray-200', + headerColumnClassName: + 'px-3 py-3 text-xs font-semibold text-gray-500 last:flex last:flex-row last:justify-end', + bodyRowClassName: 'border-b border-b-gray-200', + bodyColumnClassName: + 'px-3 py-3 last:flex last:flex-row last:justify-end', + paginationClassName: 'hidden', + }} + /> + {/* {errorExpense && ( +
    + *Pastikan semua biaya sudah selesai sebelum melakukan closing. +
    + )} */} +
    + + {/* Table Persediaan Gudang */} +
    +
    +

    Persediaan Gudang

    + + data={ + isResponseSuccess(closingData) + ? closingData.data?.stock_remaining + : [] + } + columns={[ + { + header: 'Product', + accessorKey: 'product_name', + }, + { + header: 'Kategori', + accessorKey: 'product_category', + }, + { + header: 'Quantity', + accessorKey: 'quantity', + }, + { + header: 'UOM', + accessorKey: 'uom', + }, + ]} + className={{ + containerClassName: cn('my-4'), + tableWrapperClassName: 'overflow-x-auto min-h-full! max-w-120', + tableClassName: 'font-inter w-full table-sm min-h-full!', + headerRowClassName: 'border-b border-b-gray-200', + headerColumnClassName: + 'px-3 py-3 text-xs font-semibold text-gray-500 last:flex last:flex-row last:justify-end', + bodyRowClassName: 'border-b border-b-gray-200', + bodyColumnClassName: + 'px-3 py-3 last:flex last:flex-row last:justify-end', + paginationClassName: 'hidden', + }} + /> + {/* {errorStock && ( +
    + *Masih ada sisa stock yang belum dihabiskan. +
    + )} */} +
    + +
    + +
    + + + + ); +}; + +export default ProjectFlockClosingForm; diff --git a/src/components/pages/production/project-flock/detail/ProjectFlockDetail.tsx b/src/components/pages/production/project-flock/detail/ProjectFlockDetail.tsx new file mode 100644 index 00000000..92510a8d --- /dev/null +++ b/src/components/pages/production/project-flock/detail/ProjectFlockDetail.tsx @@ -0,0 +1,476 @@ +import Badge from '@/components/Badge'; +import Button from '@/components/Button'; +import Card from '@/components/Card'; +import { RadioGroup, RadioGroupItem } from '@/components/input/RadioInput'; +import Tooltip from '@/components/Tooltip'; +import DrawerHeader from '@/components/helper/drawer/DrawerHeader'; +import { + formatCurrency, + formatDate, + formatNumber, + formatTitleCase, +} from '@/lib/helper'; +import { ProjectFlock } from '@/types/api/production/project-flock'; +import { Icon } from '@iconify/react'; +import Link from 'next/link'; +import { useRouter } from 'next/navigation'; +import { useState } from 'react'; +import { useModal } from '@/components/Modal'; +import ConfirmationModal from '@/components/modal/ConfirmationModal'; +import { ProjectFlockApi } from '@/services/api/production/project-flock'; +import { isResponseError, isResponseSuccess } from '@/lib/api-helper'; +import toast from 'react-hot-toast'; +import ApprovalSteps, { + useApprovalSteps, +} from '@/components/pages/ApprovalSteps'; +import { + PROJECT_FLOCK_APPROVAL_LINE, + PROJECT_FLOCK_KANDANGS_APPROVAL_LINE, +} from '@/config/approval-line'; +import useSWR from 'swr'; +import { ProjectFlockKandangApi } from '@/services/api/production'; + +const ProjectFlockDetail = ({ + projectFlock, +}: { + projectFlock: ProjectFlock; +}) => { + const router = useRouter(); + const deleteModal = useModal(); + const [isDeleteLoading, setIsDeleteLoading] = useState(false); + const [openBudgets, setOpenBudget] = useState(false); + const [selectedKandangId, setSelectedKamdangId] = useState( + null + ); + + const selectedKandang = projectFlock.kandangs?.find( + (kandang) => kandang.id === Number(selectedKandangId) + ); + + const { data: projectFlockKandang, isLoading: projectFlockKandangLoading } = + useSWR( + selectedKandangId + ? `${ProjectFlockKandangApi.basePath}/get-detail/${selectedKandangId}` + : null, + selectedKandangId + ? () => + ProjectFlockKandangApi.getSingle( + Number(selectedKandang?.project_flock_kandang_id) + ) + : null + ); + + const { + approvals, + isLoading: approvalsLoading, + refresh: refreshApprovals, + } = useApprovalSteps({ + latestApproval: projectFlock?.approval, + approvalLines: PROJECT_FLOCK_APPROVAL_LINE, + moduleName: 'PROJECT_FLOCKS', + moduleId: projectFlock?.id.toString() ?? '', + }); + + const { approvals: kandangApprovals, isLoading: kandangApprovalsLoading } = + useApprovalSteps({ + latestApproval: + selectedKandangId && isResponseSuccess(projectFlockKandang) + ? projectFlockKandang?.data?.approval + : undefined, + approvalLines: PROJECT_FLOCK_KANDANGS_APPROVAL_LINE, + moduleName: 'PROJECT_FLOCK_KANDANGS', + moduleId: + selectedKandangId && isResponseSuccess(projectFlockKandang) + ? projectFlockKandang?.data?.id?.toString() + : '', + }); + + const confirmationModalDeleteClickHandler = async () => { + setIsDeleteLoading(true); + const deleteProjectFlockRes = await ProjectFlockApi.delete( + projectFlock?.id as number + ); + + if (isResponseSuccess(deleteProjectFlockRes)) { + toast.success(deleteProjectFlockRes?.message as string); + router.push('/production/project-flock'); + } + if (isResponseError(deleteProjectFlockRes)) { + toast.error(deleteProjectFlockRes?.message as string); + } + setIsDeleteLoading(false); + }; + + return ( + <> +
    + {/* Header */} + + + + + + + + + + {/* Informasi Umum */} +
    +
    +

    Informasi Umum

    + {/* Status Approval */} + {approvals && !approvalsLoading && ( +
    + +
    + )} + {/* Badge Row */} +
    + = 3 + ? 'error' + : undefined + } + className={{ + badge: 'rounded-lg px-2', + }} + > + = 3 + ? 'error' + : undefined + } + />{' '} + {projectFlock.approval?.step_name} + +
    + + + {` ${formatTitleCase(projectFlock.category ?? '')}`} + +
    + {/* Information Grid */} +
    +
    + Submitted +
    +
    + + {' '} + {projectFlock.created_user?.name} + +
    + + {/*
    + History +
    +
    + +
    */} + + {/* BARIS 1 */} +
    + Area +
    +
    {projectFlock?.area?.name}
    + + {/* BARIS 2 */} +
    + Lokasi +
    +
    {projectFlock?.location?.name}
    + +
    + FCR +
    +
    {projectFlock?.fcr?.name}
    + + {/* BARIS 3 (Terakhir - TIDAK PERLU garis di bawahnya) */} +
    + {' '} + Kategori +
    +
    + {formatTitleCase(projectFlock.category ?? '')} +
    +
    +
    +
    + + {/* Kandang Aktif */} +
    +
    +

    Kandang Aktif

    + {kandangApprovals && !kandangApprovalsLoading && ( + + )} + {/* Badge Row */} +
    + + {' '} + Kandang Aktif ({projectFlock.kandangs?.length}) + +
    + { + setOpenBudget(!openBudgets); + }} + > + {` ${formatCurrency( + (projectFlock.project_budgets ?? []).reduce( + (acc, curr) => acc + curr.price * curr.qty, + 0 + ) + )}`} + + +
    + + {/* Card List Project Budgets */} + {openBudgets && + (projectFlock.project_budgets ?? []).map((budget) => ( + +
    +
    +
    + {' '} + Jenis Produk +
    +
    + {budget?.nonstock?.name} +
    +
    +
    +
    + {' '} + Nama Satuan +
    +
    + {budget?.nonstock?.uom?.name} +
    +
    +
    +
    + {' '} + Jumlah Pembelian +
    +
    + {formatNumber(budget.qty)} +
    +
    +
    +
    + {' '} + Harga Satuan +
    +
    + {formatCurrency(budget.price)} +
    +
    +
    +
    + {' '} + Total Harga +
    +
    + {formatCurrency(budget.price * budget.qty)} +
    +
    +
    +
    + ))} + + {/* Card Kandangs */} + + setSelectedKamdangId(e.target.value)} + value={selectedKandangId?.toString()} + size='md' + color='neutral' + disabled={projectFlock?.approval?.step_number == 1} + > + {projectFlock.kandangs?.map((kandang) => ( +
    + projectFlock?.approval?.step_number > 1 && + setSelectedKamdangId(kandang?.id?.toString()) + } + > + +
    + + Kapasitas {kandang?.capacity} Ekor + +
    +
    + ))} +
    +
    +
    + + + + + + +
    +
    +
    +
    + + + + ); +}; + +export default ProjectFlockDetail; diff --git a/src/components/pages/production/project-flock/form/ProjectFlockForm.schema.ts b/src/components/pages/production/project-flock/form/ProjectFlockForm.schema.ts index ca27f64b..9ac07c0f 100644 --- a/src/components/pages/production/project-flock/form/ProjectFlockForm.schema.ts +++ b/src/components/pages/production/project-flock/form/ProjectFlockForm.schema.ts @@ -1,52 +1,124 @@ import * as Yup from 'yup'; -export const ProjectFlockFormSchema = Yup.object({ - // Flock - flock: Yup.object({ - value: Yup.number().required('ID Flock wajib diisi!'), - label: Yup.string().required('Nama Flock wajib diisi!'), - }).nullable(), - flock_name: Yup.string().required('Nama Flock wajib diisi!'), +type ProjectFlockFormSchemaType = { + flock: { + value: number | string; + label: string; + } | null; + flock_name: string; + area: { + value: number | string; + label: string; + } | null; + area_id: number; + category_option: { + value: string; + label: string; + } | null; + category: string; + fcr: { + value: number | string; + label: string; + } | null; + fcr_id: number; + location: { + value: number | string; + label: string; + } | null; + location_id: number; + kandang_ids: number[]; + project_budgets: ProjectFlockBudgetsSchemaType[]; +}; - // Area - area: Yup.object({ - value: Yup.number().required('ID Area wajib diisi!'), - label: Yup.string().required('Nama Area wajib diisi!'), - }).nullable(), - area_id: Yup.number() - .min(1, 'Area wajib diisi!') - .required('Area wajib diisi!'), +export type ProjectFlockBudgetsSchemaType = { + nonstock: { + value: number | string; + label: string; + } | null; + nonstock_id: number | string; + qty: number | string; + price: number | string; + total_price: number | string; +}; - // Kategori - category_option: Yup.object({ - value: Yup.string().required('Nilai Kategori wajib diisi!'), - label: Yup.string().required('Label Kategori wajib diisi!'), - }).nullable(), - category: Yup.string() - .oneOf(['GROWING', 'LAYING'], 'Kategori wajib diisi!') - .required('Kategori wajib diisi!'), +export const ProjectFlockBudgetsSchema: Yup.ObjectSchema = + Yup.object({ + nonstock: Yup.object({ + value: Yup.number().required('ID Nonstock wajib diisi!'), + label: Yup.string().required('Nama Nonstock wajib diisi!'), + }).required('Nonstock wajib diisi!'), + nonstock_id: Yup.number() + .min(1, 'Nonstock wajib diisi!') + .required('Nonstock wajib diisi!'), + qty: Yup.number() + .typeError('Jumlah harus berupa angka!') + .min(1, 'Jumlah minimal 1!') + .required('Jumlah wajib diisi!'), + price: Yup.number() + .typeError('Harga harus berupa angka!') + .min(1, 'Harga minimal 1!') + .required('Harga wajib diisi!'), + total_price: Yup.number() + .typeError('Harga harus berupa angka!') + .min(1, 'Harga minimal 1!') + .required('Harga wajib diisi!'), + }); - // FCR - fcr: Yup.object({ - value: Yup.number().required('ID FCR wajib diisi!'), - label: Yup.string().required('Nama FCR wajib diisi!'), - }).nullable(), - fcr_id: Yup.number().min(1, 'FCR wajib diisi!').required('FCR wajib diisi!'), +export const ProjectFlockFormSchema: Yup.ObjectSchema = + Yup.object({ + // Flock + flock: Yup.object({ + value: Yup.number().required('ID Flock wajib diisi!'), + label: Yup.string().required('Nama Flock wajib diisi!'), + }).nullable(), + flock_name: Yup.string().required('Nama Flock wajib diisi!'), - // Location - location: Yup.object({ - value: Yup.number().required('ID Lokasi wajib diisi!'), - label: Yup.string().required('Nama Lokasi wajib diisi!'), - }).nullable(), - location_id: Yup.number() - .min(1, 'Lokasi wajib diisi!') - .required('Lokasi wajib diisi!'), + // Area + area: Yup.object({ + value: Yup.number().required('ID Area wajib diisi!'), + label: Yup.string().required('Nama Area wajib diisi!'), + }).nullable(), + area_id: Yup.number() + .min(1, 'Area wajib diisi!') + .required('Area wajib diisi!'), - kandang_ids: Yup.array() - .of(Yup.number().typeError('Kandang tidak valid!')) - .min(1, 'Minimal harus ada 1 kandang!') - .required('Kandang wajib diisi!'), -}); + // Kategori + category_option: Yup.object({ + value: Yup.string().required('Nilai Kategori wajib diisi!'), + label: Yup.string().required('Label Kategori wajib diisi!'), + }).nullable(), + category: Yup.string() + .oneOf(['GROWING', 'LAYING'], 'Kategori wajib diisi!') + .required('Kategori wajib diisi!'), + + // FCR + fcr: Yup.object({ + value: Yup.number().required('ID FCR wajib diisi!'), + label: Yup.string().required('Nama FCR wajib diisi!'), + }).nullable(), + fcr_id: Yup.number() + .min(1, 'FCR wajib diisi!') + .required('FCR wajib diisi!'), + + // Location + location: Yup.object({ + value: Yup.number().required('ID Lokasi wajib diisi!'), + label: Yup.string().required('Nama Lokasi wajib diisi!'), + }).nullable(), + location_id: Yup.number() + .min(1, 'Lokasi wajib diisi!') + .required('Lokasi wajib diisi!'), + + kandang_ids: Yup.array() + .of(Yup.number().required('Kandang tidak valid!')) + .min(1, 'Minimal harus ada 1 kandang!') + .required('Kandang wajib diisi!'), + + project_budgets: Yup.array() + .of(ProjectFlockBudgetsSchema) + .min(1, 'Minimal harus ada 1 data budget!') + .required('Data budget wajib diisi!'), + }); export type ProjectFlockFormValues = Yup.InferType< typeof ProjectFlockFormSchema diff --git a/src/components/pages/production/project-flock/form/ProjectFlockForm.tsx b/src/components/pages/production/project-flock/form/ProjectFlockForm.tsx index ae60b020..9e5eaeef 100644 --- a/src/components/pages/production/project-flock/form/ProjectFlockForm.tsx +++ b/src/components/pages/production/project-flock/form/ProjectFlockForm.tsx @@ -12,37 +12,44 @@ import { FlockApi, KandangApi, LocationApi, + NonstockApi, } from '@/services/api/master-data'; import { Icon } from '@iconify/react'; -import { useFormik } from 'formik'; +import { FormikErrors, useFormik } from 'formik'; import { useRouter } from 'next/navigation'; import { useEffect, useMemo, useState } from 'react'; import useSWR, { KeyedMutator } from 'swr'; import { + ProjectFlockBudgetsSchemaType, ProjectFlockFormSchema, ProjectFlockFormValues, UpdateProjectFlockFormSchema, } from '@/components/pages/production/project-flock/form/ProjectFlockForm.schema'; import { - ProjectFlockApprovalPayload, CreateProjectFlockPayload, ProjectFlock, + ProjectFlockBudget, } from '@/types/api/production/project-flock'; import toast from 'react-hot-toast'; import { Kandang } from '@/types/api/master-data/kandang'; -import Collapse from '@/components/Collapse'; import { ProjectFlockApi } from '@/services/api/production/project-flock'; import { BaseApiResponse } from '@/types/api/api-general'; import { FLOCK_CATEGORY_OPTIONS } from '@/config/constant'; import { useModal } from '@/components/Modal'; import ConfirmationModal from '@/components/modal/ConfirmationModal'; -import ProjectFlockKandangTable from './ProjectFlockKandangTable'; import ApprovalSteps, { useApprovalSteps, } from '@/components/pages/ApprovalSteps'; import { PROJECT_FLOCK_APPROVAL_LINE } from '@/config/approval-line'; import ConfirmationModalWithNotes from '@/components/modal/ConfirmationModalWithNotes'; import NumberInput from '@/components/input/NumberInput'; +import Card from '@/components/Card'; +import ProjectFlockKandangTable from '@/components/pages/production/project-flock/form/ProjectFlockKandangTable'; +import { Nonstock } from '@/types/api/master-data/nonstock'; +import { useUiStore } from '@/stores/ui/ui.store'; +import Link from 'next/link'; +import DrawerHeader from '@/components/helper/drawer/DrawerHeader'; +import { formatDate } from '@/lib/helper'; interface ProjectFlockFormProps { formType?: 'add' | 'edit' | 'detail'; @@ -79,6 +86,8 @@ const ProjectFlockForm = ({ initialValues?.flock_name?.lastIndexOf(' ') ) ?? '' ); + const subscribeValidate = useUiStore((s) => s.subscribeValidate); + const setIsValid = useUiStore((s) => s.setIsValid); const deleteModal = useModal(); const confirmModal = useModal(); @@ -104,19 +113,6 @@ const ProjectFlockForm = ({ ) ); - useEffect(() => { - if (initialValues?.approval?.step_name) { - const pengajuanRejected = - initialValues.approval.step_number == 1 && - initialValues.approval.action == 'REJECTED'; - const approvedDisabled = - initialValues.approval.step_number !== 1 || pengajuanRejected; - setIsApprovedDisabled(approvedDisabled); - setIsRejectedDisabled(!approvedDisabled || pengajuanRejected); - setApprovalAction(!approvedDisabled ? 'APPROVED' : 'REJECTED'); - } - }, [initialValues]); - // Fetch Data const { isLoadingOptions: isLoadingFlocks, options: optionsFlock } = useSelect(FlockApi.basePath, 'id', 'name'); @@ -156,6 +152,12 @@ const ProjectFlockForm = ({ () => ProjectFlockApi.getNextPeriod(parseInt(selectedLocation as string)) ); + const { + options: optionsNonstock, + rawData: nonstocks, + isLoadingOptions: isLoadingNonstocks, + } = useSelect(NonstockApi.basePath, 'id', 'name'); + const { approvals, isLoading: approvalsLoading, @@ -209,7 +211,12 @@ const ProjectFlockForm = ({ formik.setFieldValue('area_id', (val as OptionType)?.value); formik.setFieldValue('area', val); - formik.setFieldTouched('area_id', true); + if (Boolean(val)) { + formik.setFieldTouched('area_id', false); + formik.setFieldError('area_id', ''); + } else { + formik.setFieldTouched('area_id', true); + } setSelectedArea((val as OptionType)?.value as string); setSelectedLocation(''); @@ -242,7 +249,12 @@ const ProjectFlockForm = ({ val ? (val as OptionType)?.value : 0 ); - formik.setFieldTouched(`${inputName}_id`, true); + if (Boolean(val)) { + formik.setFieldTouched(`${inputName}_id`, false); + formik.setFieldError(`${inputName}_id`, ''); + } else { + formik.setFieldTouched(`${inputName}_id`, true); + } }; const categoryChangeHandler = (val: OptionType | OptionType[] | null) => { @@ -259,6 +271,7 @@ const ProjectFlockForm = ({ if (isResponseSuccess(createProjectFlockRes)) { toast.success(createProjectFlockRes?.message as string); + handleReset(); router.push('/production/project-flock'); } if (isResponseError(createProjectFlockRes)) { @@ -269,13 +282,14 @@ const ProjectFlockForm = ({ const updateProjectFlockHandler = async ( payload: CreateProjectFlockPayload ) => { - const updateProjectFlockRes = await ProjectFlockApi.update( + const updateProjectFlockRes = await ProjectFlockApi.resubmit( initialValues?.id as number, payload ); if (isResponseSuccess(updateProjectFlockRes)) { toast.success(updateProjectFlockRes?.message as string); + handleReset(); router.push('/production/project-flock'); } if (isResponseError(updateProjectFlockRes)) { @@ -283,6 +297,15 @@ const ProjectFlockForm = ({ toast.error(updateProjectFlockRes?.message as string); } }; + const handleReset = () => { + formik.resetForm(); + setSelectedArea(''); + setSelectedLocation(''); + setDisabledLocation(true); + setOpenSelectKandangs(false); + setOptionsKandang([]); + formikSetValues(formikInitialValues); + }; // Formik InitialValue const formikInitialValues = useMemo(() => { @@ -291,21 +314,14 @@ const ProjectFlockForm = ({ 0, initialValues?.flock_name?.lastIndexOf(' ') ) ?? ''; + const optionFind = optionsFlock.find((flock) => { + return flock.label == trimFlock; + }) as OptionType; return { - flock: initialValues?.flock_name - ? { - value: - optionsFlock.find((flock) => { - return flock.label == trimFlock; - })?.value ?? 0, - label: - formType != 'detail' - ? (optionsFlock.find((flock) => { - return flock.label == trimFlock; - })?.label ?? '') - : initialValues?.flock_name, - } - : null, + flock: + optionsFlock.find((flock) => { + return flock.label == trimFlock; + }) ?? null, area: initialValues?.area ? { value: initialValues.area?.id, @@ -332,109 +348,50 @@ const ProjectFlockForm = ({ : null, flock_name: optionsFlock.find((flock) => { - return ( - flock.label == - initialValues?.flock_name?.slice( - 0, - initialValues?.flock_name?.lastIndexOf(' ') - ) - ); - })?.label ?? '', + return flock.label == trimFlock; + })?.label ?? trimFlock, area_id: initialValues?.area?.id ?? 0, category: initialValues?.category as NonNullable< 'GROWING' | 'LAYING' | undefined >, fcr_id: initialValues?.fcr?.id ?? 0, location_id: initialValues?.location?.id ?? 0, - kandang_ids: initialValues?.kandangs?.map((k: Kandang) => k.id) as ( - | number - | undefined - )[], + kandang_ids: initialValues?.kandangs?.map( + (k: Kandang) => k.id + ) as number[], + project_budgets: initialValues?.project_budgets?.map((budget) => { + return { + nonstock: { + value: budget.nonstock?.id ?? '', + label: budget.nonstock?.name ?? '', + }, + nonstock_id: budget.nonstock?.id ?? '', + qty: budget.qty, + price: budget.price, + total_price: budget.qty * budget.price, + }; + }) ?? [ + { + nonstock: null, + nonstock_id: '', + qty: '', + price: '', + total_price: '', + }, + ], }; }, [initialValues, optionsFlock]); // Formik const formik = useFormik({ initialValues: { - flock: initialValues?.flock_name - ? { - value: - optionsFlock.find((flock) => { - return ( - flock.label == - initialValues?.flock_name?.slice( - 0, - initialValues?.flock_name?.lastIndexOf(' ') - ) - ); - })?.value ?? 0, - label: - formType != 'detail' - ? (optionsFlock.find((flock) => { - return ( - flock.label == - initialValues?.flock_name?.slice( - 0, - initialValues?.flock_name?.lastIndexOf(' ') - ) - ); - })?.label ?? '') - : initialValues?.flock_name, - } - : null, - area: initialValues?.area - ? { - value: initialValues.area?.id, - label: initialValues.area.name, - } - : null, - category_option: initialValues?.category - ? { - value: initialValues.category, - label: initialValues.category, - } - : null, - fcr: initialValues?.fcr - ? { - value: initialValues.fcr?.id, - label: initialValues.fcr.name, - } - : null, - location: initialValues?.location - ? { - value: initialValues.location?.id, - label: initialValues.location.name, - } - : null, - flock_name: - formType != 'detail' - ? optionsFlock.find((flock) => { - return ( - flock.label == - initialValues?.flock_name?.slice( - 0, - initialValues?.flock_name?.lastIndexOf(' ') - ) - ); - })?.label - : (initialValues?.flock_name ?? ''), - area_id: initialValues?.area?.id ?? 0, - category: initialValues?.category as NonNullable< - 'GROWING' | 'LAYING' | undefined - >, - fcr_id: initialValues?.fcr?.id ?? 0, - location_id: initialValues?.location?.id ?? 0, - kandang_ids: initialValues?.kandangs?.map((k: Kandang) => k.id) as ( - | number - | undefined - )[], + ...formikInitialValues, } as ProjectFlockFormValues, - enableReinitialize: true, validationSchema: formType == 'add' ? ProjectFlockFormSchema : UpdateProjectFlockFormSchema, validateOnBlur: true, - validateOnChange: true, - validateOnMount: true, + // validateOnChange: true, + // validateOnMount: true, onSubmit: async (values) => { setProjectFlockFormErrorMessage(''); const payload: CreateProjectFlockPayload = { @@ -444,6 +401,13 @@ const ProjectFlockForm = ({ fcr_id: values.fcr_id as number, location_id: values.location_id as number, kandang_ids: values.kandang_ids as number[], + project_budgets: values.project_budgets.flatMap((budget) => { + return { + nonstock_id: budget.nonstock_id, + qty: budget.qty, + price: budget.price, + } as ProjectFlockBudget; + }), }; switch (formType) { @@ -458,8 +422,8 @@ const ProjectFlockForm = ({ } }, }); - const { setValues: formikSetValues } = formik; + // Effect Initial useEffect(() => { if (formType == 'detail') { @@ -475,7 +439,18 @@ const ProjectFlockForm = ({ }, [initialValues, setSelectedArea, formType]); useEffect(() => { - formikSetValues(formikInitialValues); + const trimFlock = + initialValues?.flock_name?.slice( + 0, + initialValues?.flock_name?.lastIndexOf(' ') + ) ?? ''; + formikSetValues({ + ...formikInitialValues, + flock: optionsFlock.find((flock) => { + return flock.label == trimFlock; + }) as OptionType, + flock_name: trimFlock ?? '', + }); }, [formikSetValues]); // Aktifkan lokasi jika formType = 'detail' @@ -495,10 +470,6 @@ const ProjectFlockForm = ({ } }, [formType, initialValues]); - useEffect(() => { - formik.validateForm(); - }, [formik.values]); - useEffect(() => { const selectedRowIds = Object.keys(rowSelection) .filter((id) => rowSelection[id]) @@ -509,6 +480,46 @@ const ProjectFlockForm = ({ }); }, [rowSelection, formikSetValues]); + useEffect(() => { + const unsub = subscribeValidate(() => { + formik.validateForm().then((errors) => { + if (Object.keys(errors).length > 0) { + // Membentuk touched object yang strongly-typed + const touched: Record[]> = + {}; + Object.keys(formik.values).forEach((key) => { + if ( + key === 'project_budgets' && + Array.isArray(formik.values.project_budgets) + ) { + touched[key] = formik.values.project_budgets.map(() => ({})); // Mark each item as touched if it's an array + } else { + touched[key] = true; + } + }); + + formik.setTouched(touched, true); + } + setIsValid(Object.keys(errors).length === 0); + }); + }); + + return unsub; + }, []); + + useEffect(() => { + if (initialValues?.approval?.step_name) { + const pengajuanRejected = + initialValues.approval.step_number == 1 && + initialValues.approval.action == 'REJECTED'; + const approvedDisabled = + initialValues.approval.step_number !== 1 || pengajuanRejected; + setIsApprovedDisabled(approvedDisabled); + setIsRejectedDisabled(!approvedDisabled || pengajuanRejected); + setApprovalAction(!approvedDisabled ? 'APPROVED' : 'REJECTED'); + } + }, [initialValues]); + // Actions handler const confirmationModalDeleteClickHandler = async () => { setIsDeleteLoading(true); @@ -526,6 +537,42 @@ const ProjectFlockForm = ({ setIsDeleteLoading(false); }; + const onAddBudgetRowHandler = () => { + const newProjectBudgets = [ + ...(formik.values.project_budgets ?? []), + { + nonstock: null, + nonstock_id: '', + qty: '', + price: '', + }, + ]; + formik.setFieldValue('project_budgets', newProjectBudgets); + }; + + const onDeleteBudgetRowHandler = (nonstock_id: number, index?: number) => { + console.log(`nonstock_id: ${nonstock_id}, index: ${index}`); + if (!nonstock_id) { + const updatedBudgets = formik.values.project_budgets + .map((budget, i) => { + if (i == index) { + console.log(`buget: ${null}, index: ${index}, i: ${i}`); + return null; + } else { + console.log(`buget: ${budget}, index: ${index}, i: ${i}`); + return budget; + } + }) + .filter((budget) => budget != null); + formik.setFieldValue('project_budgets', updatedBudgets); + } else { + const updatedBudgets = (formik.values.project_budgets ?? []).filter( + (budget) => budget.nonstock_id !== nonstock_id + ); + formik.setFieldValue('project_budgets', updatedBudgets); + } + }; + const confirmApprovalHandler = async ( notes: string, approvalAction: 'REJECTED' | 'APPROVED' @@ -549,6 +596,67 @@ const ProjectFlockForm = ({ setIsApproveLoading(false); }; + const handleBudgetChange = ( + index: number, + fieldName: 'qty' | 'price' | 'total_price', + value: string + ) => { + const updatedBudgets = [...formik.values.project_budgets]; + const currentBudget = updatedBudgets[index]; + + const isNewValueEmpty = value === ''; + + let numericValue: number; + + if (isNewValueEmpty) { + (currentBudget[fieldName] as string) = ''; + numericValue = 0; + + formik.setFieldValue('project_budgets', updatedBudgets); + return; + } else { + numericValue = Math.max(0, parseFloat(value) || 0); + + (currentBudget[fieldName] as number) = numericValue; + } + + const getSafeNumber = (val: string | number) => + Math.max(0, parseFloat(String(val)) || 0); + + const currentQty = getSafeNumber(currentBudget.qty); + const currentPrice = getSafeNumber(currentBudget.price); + const currentTotal = getSafeNumber(currentBudget.total_price); + + let newQty = currentQty; + let newPrice = currentPrice; + let newTotal = currentTotal; + + if (fieldName === 'price') { + // Jika Harga Satuan diubah, hitung Total Harga + newTotal = newQty * numericValue; + newPrice = numericValue; + } else if (fieldName === 'qty') { + // Jika Kuantitas diubah, hitung Total Harga + newTotal = numericValue * newPrice; + newQty = numericValue; + } else if (fieldName === 'total_price') { + // Jika Total Harga diubah, hitung Harga Satuan + newTotal = numericValue; + if (newQty > 0) { + newPrice = newTotal / newQty; + } else { + // Jika Qty 0, Harga Satuan tetap 0 + newPrice = 0; + } + } + + currentBudget.qty = newQty; + currentBudget.price = newPrice; + currentBudget.total_price = newTotal; + + formik.setFieldValue('project_budgets', updatedBudgets); + }; + const selectedPeriod = isResponseSuccess(periodFlocks) ? periodFlocks.data.find((kandang) => formik.values.kandang_ids?.includes(kandang.id) @@ -557,25 +665,50 @@ const ProjectFlockForm = ({ const inputPeriod = (initialValues?.period ?? selectedPeriod == 0) ? 1 : selectedPeriod; + const filteredNonStockOptions = optionsNonstock.filter((nonstock) => { + const isNonstockAlreadyInBudgets = ( + formik.values.project_budgets ?? [] + ).some((budget) => budget.nonstock_id === nonstock.value); + + return !isNonstockAlreadyInBudgets; + }); + return ( <>
    -
    - - -

    - {formType === 'add' && 'Tambah Project Flock'} - {formType === 'edit' && 'Edit Project Flock'} - {formType === 'detail' && 'Detail Project Flock'} -

    -
    + {/* Header */} + + {formType == 'edit' && ( + + )} + {projectFlockFormErrorMessage && (
    @@ -631,21 +764,6 @@ const ProjectFlockForm = ({ Reject - {initialValues?.approval?.step_number == 2 && ( - - )}
    )}
    -
    -
    -
    Informasi Umum
    -
    - - { - return flock.label === formik.values.flock_name; - })?.value, - } as OptionType) - : undefined - } - onChange={(val) => { - optionChangeHandler(val, 'flock'); - setSelectedFlock((val as OptionType)?.label); - formik.setFieldValue( - 'flock_name', - (val as OptionType)?.label - ); - }} - options={optionsFlock} - isLoading={isLoadingFlocks} - isError={ - formik.touched.flock_name && - Boolean(formik.errors.flock_name) - } - errorMessage={formik.errors.flock_name as string} - isClearable - isDisabled={formType === 'detail'} - /> - - { - optionChangeHandler(val, 'fcr'); - }} - options={optionsFcr} - isLoading={isLoadingFcrs} - isError={ - formik.touched.fcr_id && Boolean(formik.errors.fcr_id) - } - errorMessage={formik.errors.fcr_id as string} - isClearable - isDisabled={formType === 'detail'} - /> - - -
    -
    -
    -
    -
    - -
    Pilih Kandang
    - -
    + {/* Form Informasi Umum */} +
    +
    +

    Informasi Umum

    +
    + -
    - {isLoadingKandang && ( - - )} - -
    - + errorMessage={formik.errors.area_id as string} + isClearable + isDisabled={formType === 'detail'} + /> + + { + return flock.label === formik.values.flock_name; + })?.value, + } as OptionType) + : undefined + } + onChange={(val) => { + optionChangeHandler(val, 'flock'); + setSelectedFlock((val as OptionType)?.label); + formik.setFieldValue( + 'flock_name', + (val as OptionType)?.label + ); + }} + options={optionsFlock} + isLoading={isLoadingFlocks} + isError={ + formik.touched.flock_name && Boolean(formik.errors.flock_name) + } + errorMessage={formik.errors.flock_name as string} + isClearable + isDisabled={formType === 'detail'} + /> + { + optionChangeHandler(val, 'fcr'); + }} + options={optionsFcr} + isLoading={isLoadingFcrs} + isError={formik.touched.fcr_id && Boolean(formik.errors.fcr_id)} + errorMessage={formik.errors.fcr_id as string} + isClearable + isDisabled={formType === 'detail'} + /> + +
    -
    - {formType !== 'detail' && ( -
    - - + {/* Form Pilih Kandang */} +
    +
    +

    Pilih Kandang

    +
    + {isLoadingKandang && ( + + )} + +
    +
    + + {/* Card Estimasi Budget */} +
    +
    +

    + Estimasi Anggaran Per Flock +

    +
    + {formik.values.project_budgets && + formik.values.project_budgets.length > 0 ? ( + formik.values.project_budgets.map((budget, index) => ( + +
    +
    +
    Anggaran ke-{index + 1}
    + +
    +
    + { + const updatedBudgets = [ + ...formik.values.project_budgets, + ]; + updatedBudgets[index].nonstock = val as OptionType; + updatedBudgets[index].nonstock_id = + (val as OptionType) + ? (val as OptionType).value + : 0; + formik.setFieldValue( + 'project_budgets', + updatedBudgets + ); + formik.setFieldTouched( + `project_budgets[${index}].nonstock_id`, + true + ); + }} + errorMessage={ + ( + formik.errors.project_budgets?.[ + index + ] as FormikErrors + )?.nonstock_id as string + } + isError={ + formik.touched.project_budgets?.[index] + ?.nonstock_id && + Boolean( + ( + formik.errors.project_budgets?.[ + index + ] as FormikErrors + )?.nonstock_id as string + ) + } + /> +
    +
    + + handleBudgetChange(index, 'qty', e.target.value) + } + onBlur={formik.handleBlur} + allowNegative={false} + endAdornment={ +
    + {isResponseSuccess(nonstocks) + ? (nonstocks.data.find( + (ns) => ns.id === budget.nonstock_id + )?.uom?.name ?? '') + : ''} +
    + } + errorMessage={ + ( + formik.errors.project_budgets?.[ + index + ] as FormikErrors + )?.qty as string + } + isError={ + formik.touched.project_budgets?.[index]?.qty && + Boolean( + ( + formik.errors.project_budgets?.[ + index + ] as FormikErrors + )?.qty as string + ) + } + /> +
    +
    + + handleBudgetChange(index, 'price', e.target.value) + } + onBlur={formik.handleBlur} + placeholder='Masukkan harga satuan' + allowNegative={false} + startAdornment='Rp' + endAdornment={ +
    + {`Per ${ + isResponseSuccess(nonstocks) + ? (nonstocks.data.find( + (ns) => ns.id === budget.nonstock_id + )?.uom?.name ?? 'Item') + : 'Item' + }`} +
    + } + errorMessage={ + ( + formik.errors.project_budgets?.[ + index + ] as FormikErrors + )?.price as string + } + isError={ + formik.touched.project_budgets?.[index]?.price && + Boolean( + ( + formik.errors.project_budgets?.[ + index + ] as FormikErrors + )?.price as string + ) + } + /> +
    +
    + + handleBudgetChange( + index, + 'total_price', + e.target.value + ) + } + onBlur={formik.handleBlur} + placeholder='Masukkan harga total' + allowNegative={false} + startAdornment='Rp' + endAdornment={ +
    Total
    + } + errorMessage={ + ( + formik.errors.project_budgets?.[ + index + ] as FormikErrors + )?.total_price as string + } + isError={ + formik.touched.project_budgets?.[index] + ?.total_price && + Boolean( + ( + formik.errors.project_budgets?.[ + index + ] as FormikErrors + )?.total_price as string + ) + } + /> +
    +
    +
    + )) + ) : ( +
    + Tidak ada data estimasi anggaran. +
    + )} + +
    +
    + +
    + {/*
    +
    + {JSON.stringify(formik.values)}
    +
    + {JSON.stringify(formik.errors)} +
    +
    */} + {formType !== 'detail' && ( + )}
    - {formType != 'add' && ( -
    - {formType != 'edit' && ( - - )} - -
    - )}
    { - const initialKandangIdSet = useMemo(() => { - return initialValues?.kandangs.map((k) => k.id) ?? []; - }, [initialValues]); - const isRowEnabled = (row: Row) => { - const isDisabled = - !initialKandangIdSet.includes(row.original.id) && - (row.original.status == 'ACTIVE' || - row.original.status == 'PENGAJUAN' || - formType == 'detail'); - return !isDisabled; + // Fungsi untuk menangani perubahan checkbox + const handleCheckboxChange = (kandang: Kandang, isChecked: boolean) => { + // Hanya izinkan perubahan jika tidak dalam mode 'detail' + if (formType === 'detail') return; + + // Pastikan kandang.id ada dan tidak null/undefined + if (kandang.id === undefined) return; + + const kandangIdString = kandang.id.toString(); + + setRowSelection((prev) => { + const newSelection = { ...prev }; + if (isChecked) { + newSelection[kandangIdString] = true; + } else { + delete newSelection[kandangIdString]; + } + return newSelection; + }); }; return ( <> - - data={listKandang} - columns={[ - { - id: 'select', - header: ({ table }) => { - const allRows = table.getRowModel().rows; - // 1. Filter semua baris dengan logika yang sama persis seperti di cell - const selectableRows = allRows.filter(isRowEnabled); + {listKandang.length > 0 ? ( + <> + {/* ... Bagian Badge Status ... */} +
    + + + Tersedia ( + { + listKandang.filter((kandang) => kandang.status == 'NON_ACTIVE') + .length + } + ) + +
    + + + Tidak Tersedia ( + { + listKandang.filter((kandang) => kandang.status != 'NON_ACTIVE') + .length + } + ) + +
    + {/* --- */} + +
    + {listKandang.map((kandang, index) => { + const kandangIdString = + kandang.id?.toString() ?? `temp-${index}`; - // 2. Cek apakah SEMUA baris yang BISA DIPILIH sudah terpilih - const allSelected = - selectableRows.length > 0 && - selectableRows.every((row) => row.getIsSelected()); + const isSelected = + !!rowSelection[kandangIdString] || + (kandang.id !== undefined && + selectedIds.includes(kandang.id)); - // 3. Cek apakah BEBERAPA baris yang BISA DIPILIH sudah terpilih - const someSelected = - selectableRows.some((row) => row.getIsSelected()) && - !allSelected; + const isDisabled = + formType == 'detail' || kandang.status != 'NON_ACTIVE'; - // 4. Fungsi toggle HANYA akan mentoggle baris yang BISA DIPILIH - const toggleSelectableRows = () => { - const shouldSelect = !allSelected; - selectableRows.forEach((row) => - row.toggleSelected(shouldSelect) + return ( +
    + + handleCheckboxChange(kandang, e.currentTarget.checked) + } + /> + + + {kandang.status != 'NON_ACTIVE' && 'Tidak'} Tersedia + +
    ); - }; - - return ( -
    - -
    - ); - }, - cell: ({ row }) => { - return ( - - ); - }, - }, - { - accessorFn: (row) => row.name, - header: 'Kandang', - }, - { - accessorFn: (row) => row.status, - header: 'Status', - cell: (props) => { - return ( - { - switch (props.row.original.status) { - case 'ACTIVE': - return 'red'; - case 'PENGAJUAN': - return 'green'; - case 'NON_ACTIVE': - return 'blue'; - default: - return 'gray'; - } - })()} - content={props.row.original.status - .toLowerCase() - .replace(/_/g, ' ') - .replace(/\b\w/g, (char) => char.toUpperCase())} - /> - ); - }, - }, - { - accessorFn: (row) => row.capacity, - header: 'Kapasitas', - }, - { - accessorFn: (row) => row.location?.name, - header: 'Periode', - cell: (props) => { - console.log('listPeriods'); - console.log(listPeriods); - const period = - listPeriods.length > 0 - ? listPeriods.find((p) => p.id == props.row.original.id) - : undefined; - const calcPeriod = period?.period == 0 ? 1 : period?.period; - const selected = props.row.getIsSelected(); - const initPeriod = initialValues?.period; - return formType == 'detail' - ? selected - ? initPeriod - : '-' - : formType == 'add' - ? (calcPeriod ?? '-') - : selected - ? (initPeriod ?? '-') - : (calcPeriod ?? '-'); - }, - }, - { - accessorFn: (row) => row.pic?.name, - header: 'Penanggung Jawab', - }, - ]} - className={{ - containerClassName: cn({ - 'mb-20': listKandang?.length === 0, - }), - tableWrapperClassName: 'overflow-x-auto min-h-full!', - tableClassName: 'font-inter w-full table-auto min-h-full!', - headerRowClassName: 'border-b border-b-gray-200', - headerColumnClassName: - 'px-6 py-3 text-xs font-semibold text-gray-500 last:flex last:flex-row last:justify-end', - bodyRowClassName: 'border-b border-b-gray-200', - bodyColumnClassName: - 'px-6 py-3 last:flex last:flex-row last:justify-end', - paginationClassName: 'hidden', - }} - rowSelection={rowSelection} - setRowSelection={setRowSelection} - /> + })} +
    +
    + + ) : ( +
    + Pilih lokasi terlebih dahulu +
    + )} ); }; diff --git a/src/components/pages/production/recording/RecordingTable.tsx b/src/components/pages/production/recording/RecordingTable.tsx index 6cf254e7..65cead2a 100644 --- a/src/components/pages/production/recording/RecordingTable.tsx +++ b/src/components/pages/production/recording/RecordingTable.tsx @@ -35,33 +35,32 @@ const RowOptionsMenu = ({ deleteClickHandler, approveClickHandler, rejectClickHandler, - isGradingCompleted, }: { type: 'dropdown' | 'collapse'; props: CellContext; deleteClickHandler: () => void; approveClickHandler: () => void; rejectClickHandler: () => void; - isGradingCompleted: (recording: Recording) => boolean; }) => { - const isLayingCategory = - props.row.original.project_flock_category === 'LAYING'; - const isRecordingApproved = (recording: Recording) => { return ( recording.approval?.action === 'APPROVED' && - recording.approval?.step_name === 'Disetujui' && - recording.approval?.step_number === 3 + recording.approval?.step_number === 2 && + recording.approval?.step_name === 'Disetujui' ); }; + const isRecordingRejected = (recording: Recording) => { + return recording.approval?.action === 'REJECTED'; + }; + const isApproved = isRecordingApproved(props.row.original); - const isGradingDone = isGradingCompleted(props.row.original); + const isRejected = isRecordingRejected(props.row.original); return ( - {!isApproved && !(isLayingCategory && !isGradingDone) && ( + {!isApproved && !isRejected && ( {type === 'detail' && + initialValues?.approval && !isRecordingApproved(initialValues) && - (!isLayingCategory || hasGradingData(initialValues)) && ( + !isRecordingRejected(initialValues) && (
    + { {formik.values.stocks?.map((stock, idx) => (
    + { {formik.values.depletions?.map((depletion, idx) => (
    + { * + + Berat (gram) + + * + + Action
    + { /> -
    - -
    + +
    + @@ -2779,46 +2730,6 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => { {/* Right side actions */}
    - {type === 'detail' && isLayingCategory && ( - - - - )} - {type === 'edit' && (
    - {isLayingCategory && ( - - - - )}
    )}
    @@ -2981,7 +2819,7 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => { {/* Approve Confirmation Modal */} {(type as 'add' | 'edit' | 'detail') === 'detail' && !isRecordingApproved(initialValues) && - (!isLayingCategory || hasGradingData(initialValues)) && ( + !isRecordingRejected(initialValues) && ( { {/* Reject Confirmation Modal */} {(type as 'add' | 'edit' | 'detail') === 'detail' && - !isRecordingApproved(initialValues) && - (!isLayingCategory || hasGradingData(initialValues)) && ( + !isRecordingApproved(initialValues) && ( { - // HOOKS & ROUTER - const router = useRouter(); - const searchParams = useSearchParams(); - const recordingId = searchParams.get('recording_id'); - - // STATE MANAGEMENT - const [selectedGradingItems, setSelectedGradingItems] = useState( - [] - ); - const [gradingFormErrorMessage, setGradingFormErrorMessage] = useState(''); - const [isDeleteLoading, setIsDeleteLoading] = useState(false); - const deleteModal = useModal(); - - // API DATA FETCHING - const recordingUrl = useMemo(() => { - const recordingIdToUse = recordingId; - if (!recordingIdToUse) return null; - return `${RecordingApi.basePath}/${recordingIdToUse}`; - }, [recordingId]); - - const { data: recordingData } = useSWR( - recordingUrl, - recordingUrl ? RecordingApi.getAllFetcher : null - ); - - // DATA PROCESSING - const recording = - recordingData?.status === 'success' - ? (recordingData.data as unknown as Recording) - : undefined; - - const projectFlockKandangUrl = useMemo(() => { - if (!recording?.project_flock_kandang_id) return null; - return `${ProjectFlockKandangApi.basePath}/${recording.project_flock_kandang_id}`; - }, [recording?.project_flock_kandang_id]); - - const { data: projectFlockKandangData } = useSWR( - projectFlockKandangUrl, - projectFlockKandangUrl ? ProjectFlockKandangApi.getAllFetcher : null - ); - - const projectFlockKandang = - projectFlockKandangData?.status === 'success' - ? (projectFlockKandangData.data as unknown as ProjectFlockKandang) - : undefined; - - const konsumsiBaikEggData = useMemo(() => { - if (!recording?.eggs) return null; - - const konsumsiBaikEgg = recording.eggs.find((egg: RecordingEgg) => - egg.product_warehouse?.product?.name - ?.toLowerCase() - .includes('konsumsi baik') - ); - - return konsumsiBaikEgg || null; - }, [recording]); - - const totalKonsumsiBaikEggs = konsumsiBaikEggData?.qty || 0; - const konsumsiBaikEggId = konsumsiBaikEggData?.id; - - const isDataLoading = - !recording || - (totalKonsumsiBaikEggs === 0 && - recording?.project_flock_category === 'LAYING'); - - // FORM HANDLERS - const createGradingHandler = useCallback( - async (payload: CreateGradingPayload) => { - const res = (await RecordingApi.createGrading(payload)) as - | BaseApiResponse - | undefined; - - if (!res || isResponseError(res)) { - setGradingFormErrorMessage(res?.message || 'Failed to add Grading'); - return; - } - - toast.success(res?.message || 'Successfully added Grading!'); - router.push('/production/recording'); - }, - [router] - ); - - const updateGradingHandler = useCallback( - async (gradingId: number, payload: UpdateGradingPayload) => { - const res = (await RecordingApi.updateGrading(gradingId, payload)) as - | BaseApiResponse - | undefined; - - if (!res || isResponseError(res)) { - setGradingFormErrorMessage(res?.message || 'Failed to update Grading'); - return; - } - toast.success(res?.message || 'Successfully updated Grading!'); - router.refresh(); - router.push('/production/recording'); - }, - [router] - ); - - const deleteRecordingClickHandler = useCallback(() => { - deleteModal.openModal(); - }, [deleteModal]); - - const confirmationModalDeleteClickHandler = useCallback(async () => { - if (!initialValues?.id) return; - - setIsDeleteLoading(true); - try { - const res = (await RecordingApi.deleteGrading(initialValues.id)) as - | BaseApiResponse - | undefined; - - if (!res || isResponseError(res)) { - setGradingFormErrorMessage(res?.message || 'Failed to delete Grading'); - return; - } - deleteModal.closeModal(); - toast.success(res?.message || 'Successfully delete Grading!'); - router.push('/production/recording'); - } catch (err) { - console.error(err); - setGradingFormErrorMessage('Failed to delete Grading'); - } finally { - setIsDeleteLoading(false); - } - }, [deleteModal, initialValues?.id, router]); - - // FORMIK SETUP - const formikInitialValues = useMemo(() => { - let recordingEggId: number | undefined = konsumsiBaikEggId; - - if (!recordingEggId && initialValues?.id) { - recordingEggId = initialValues.id; - } - - if (!recordingEggId) { - recordingEggId = parseInt(recordingId || '0') || 0; - } - - let gradingData: { - recording_egg_id: number; - grade: string; - qty: number; - }[] = []; - - if (initialValues?.grading_eggs && initialValues.grading_eggs.length > 0) { - gradingData = initialValues.grading_eggs.map((grading: GradingEgg) => ({ - recording_egg_id: recordingEggId, - grade: grading.grade, - qty: grading.qty, - })); - } else if (initialValues?.gradings && initialValues.gradings.length > 0) { - gradingData = initialValues.gradings.map( - (grading: { grade: string; qty: number }) => ({ - recording_egg_id: recordingEggId, - grade: grading.grade, - qty: grading.qty, - }) - ); - } - - return getRecordingGradingFormInitialValues({ - recording_egg_id: recordingEggId, - eggs_grading: gradingData, - }); - }, [initialValues, recordingId, konsumsiBaikEggId]); - - const formik = useFormik({ - initialValues: formikInitialValues, - enableReinitialize: true, - validationSchema: (() => { - return type === 'edit' - ? UpdateRecordingGradingFormSchema - : RecordingGradingFormSchema; - })(), - validateOnChange: true, - validateOnBlur: true, - onSubmit: async (values) => { - const gradingPayload = { - eggs_grading: (values.eggs_grading ?? []).map((grading) => ({ - recording_egg_id: grading.recording_egg_id, - grade: grading.grade, - qty: grading.qty || 0, - })), - }; - - switch (type) { - case 'add': - await createGradingHandler(gradingPayload as CreateGradingPayload); - break; - case 'edit': - await updateGradingHandler( - initialValues?.id as number, - gradingPayload as UpdateGradingPayload - ); - break; - } - }, - }); - - const currentGradingTotal = useMemo(() => { - return (formik.values.eggs_grading || []).reduce((total, grading) => { - return total + (Number(grading.qty) || 0); - }, 0); - }, [formik.values.eggs_grading]); - - const isGradingExceedsAvailable = currentGradingTotal > totalKonsumsiBaikEggs; - const isGradingIncomplete = - currentGradingTotal < totalKonsumsiBaikEggs && totalKonsumsiBaikEggs > 0; - const hasUserStartedGrading = currentGradingTotal > 0; - - // GRADING HANDLERS - const addGrading = () => { - let recordingEggId: number | undefined = konsumsiBaikEggId; - - if (!recordingEggId && initialValues?.id) { - recordingEggId = initialValues.id; - } - - if (!recordingEggId) { - recordingEggId = parseInt(recordingId || '0') || 0; - } - - const newGrading = [ - ...(formik.values.eggs_grading || []), - { - recording_egg_id: recordingEggId, - grade: '', - qty: '', - }, - ]; - formik.setFieldValue('eggs_grading', newGrading); - }; - - const handleGradingGradeChangeWrapper = useCallback( - (idx: number) => (selectedOption: OptionType | OptionType[] | null) => { - const option = selectedOption as OptionType | null; - formik.setFieldValue(`eggs_grading.${idx}.grade`, option?.label || ''); - }, - [formik] - ); - - const handleGradingQtyChangeWrapper = useCallback( - (idx: number) => (e: React.ChangeEvent) => { - const value = parseFloat(e.target.value) || 0; - formik.setFieldValue(`eggs_grading.${idx}.qty`, value); - }, - [formik] - ); - - const removeGrading = (idx: number) => { - const updatedGrading = formik.values.eggs_grading?.filter( - (_, i) => i !== idx - ); - formik.setFieldValue('eggs_grading', updatedGrading); - }; - - const removeSelectedGrading = () => { - const updatedGrading = formik.values.eggs_grading?.filter( - (_, idx) => !selectedGradingItems.includes(idx) - ); - formik.setFieldValue('eggs_grading', updatedGrading); - setSelectedGradingItems([]); - }; - - // VALIDATION HELPERS - const isRepeaterInputError = ( - arrayName: 'eggs_grading', - column: string, - idx: number - ) => { - const touched = formik.touched as Record; - const errors = formik.errors as Record; - - if (!touched[arrayName] || !Array.isArray(touched[arrayName])) { - return { - isError: false, - errorMessage: '', - }; - } - - const touchedField = (touched[arrayName] as unknown[])?.[idx] as Record< - string, - unknown - >; - const errorField = (errors[arrayName] as unknown[])?.[idx] as Record< - string, - unknown - >; - - return { - isError: touchedField && Boolean(errorField?.[column]), - errorMessage: - touchedField && errorField?.[column] - ? (errorField[column] as string) - : '', - }; - }; - - // EFFECTS - useEffect(() => { - if (isDataLoading) { - toast.dismiss('grading-exceeds'); - toast.dismiss('grading-incomplete'); - return; - } - - if (isGradingExceedsAvailable && currentGradingTotal > 0) { - toast.error( - `Total grading (${currentGradingTotal}) melebihi telur yang tersedia (${totalKonsumsiBaikEggs})!`, - { - id: 'grading-exceeds', - duration: 3000, - } - ); - toast.dismiss('grading-incomplete'); - } else if (isGradingIncomplete && hasUserStartedGrading) { - toast.error( - `Total grading (${currentGradingTotal}) tidak sama dengan total telur konsumsi baik yang tersedia (${totalKonsumsiBaikEggs})! Semua telur harus digrading.`, - { - id: 'grading-incomplete', - duration: 3000, - } - ); - toast.dismiss('grading-exceeds'); - } else { - toast.dismiss('grading-exceeds'); - toast.dismiss('grading-incomplete'); - } - }, [ - isDataLoading, - isGradingExceedsAvailable, - isGradingIncomplete, - hasUserStartedGrading, - currentGradingTotal, - totalKonsumsiBaikEggs, - ]); - - useEffect(() => { - if ( - konsumsiBaikEggId && - formik.values.eggs_grading && - formik.values.eggs_grading.length === 0 - ) { - formik.setFieldValue('eggs_grading', [ - { recording_egg_id: konsumsiBaikEggId, grade: '', qty: '' }, - ]); - } - }, [konsumsiBaikEggId, formik.values.eggs_grading.length]); - - return ( - <> -
    -
    - -

    - {type === 'add' && 'Tambah Grading'} - {type === 'edit' && 'Edit Grading'} - {type === 'detail' && 'Detail Grading'} -

    -
    - -
    - {/* Basic Info Card */} - -
    - {/* Status Approval */} - {recording?.approval && ( -
    - Status Approval -
    - - {(() => { - const actionText = (() => { - switch (recording.approval.action) { - case 'APPROVED': - return 'Disetujui'; - case 'REJECTED': - return 'Ditolak'; - case 'CREATED': - return 'Dibuat'; - case 'UPDATED': - return 'Diperbarui'; - default: - return recording.approval.action; - } - })(); - - const stepName = recording.approval.step_name; - - if (stepName === actionText) { - return stepName; - } - - return `${stepName} - ${actionText}`; - })()} - -
    -
    - )} - {/* Recording Info */} -
    - Lokasi -

    - {projectFlockKandang?.project_flock?.location?.name || '-'} -

    -
    -
    - Project Flock -

    - {projectFlockKandang?.project_flock?.flock_name || '-'} -

    -
    -
    - Kandang -

    - {projectFlockKandang?.kandang?.name || '-'} -

    -
    -
    - Tanggal Recording -

    - {recording - ? formatDate(recording.record_datetime, 'DD MMMM YYYY') - : '-'} -

    -
    -
    - Hari -

    Hari ke-{recording?.day || '-'}

    -
    -
    - Kategori -

    - - {recording?.project_flock_category || '-'} - -

    -
    -
    - Periode -

    - - Periode {projectFlockKandang?.project_flock?.period || '-'} - -

    -
    -
    - -
    - {/* Additional Recording Info */} -
    -
    -
    - -
    - - Detail Recording - -
    -
    -
    -

    Area

    -

    - {projectFlockKandang?.project_flock?.area?.name || '-'} -

    -
    -
    -

    Status Kandang

    -

    - {projectFlockKandang?.kandang?.status || '-'} -

    -
    -
    -
    - - {/* Total Telur Konsumsi Baik Info */} -
    -
    -
    -

    - Total Telur Konsumsi Baik -

    -
    -

    - {isDataLoading ? ( - - ) : ( - totalKonsumsiBaikEggs - )}{' '} - - telur - -

    -
    -
    -
    - -
    -
    - - {/* Progress Bar */} -
    -
    - Total yang digrading: - - {isDataLoading ? ( - - ) : ( - `${currentGradingTotal} / ${totalKonsumsiBaikEggs}` - )} - -
    -
    -
    -
    - {!isDataLoading && isGradingExceedsAvailable && ( -
    - - Melebihi batas tersedia -
    - )} - {!isDataLoading && - isGradingIncomplete && - hasUserStartedGrading && ( -
    - - - Grading belum lengkap, semua telur harus digrading - -
    - )} - {isDataLoading && ( -
    - - Memuat data telur konsumsi baik... -
    - )} -
    -
    -
    - - - {/* Grading Table */} - -
    - - - - {type !== 'detail' && ( - - )} - - - {type !== 'detail' && } - - - - {formik.values.eggs_grading?.map((grading, idx) => ( - - {type !== 'detail' && ( - - )} - - - {type !== 'detail' && ( - - )} - - ))} - -
    - 0 - } - onChange={( - e: React.ChangeEvent - ) => { - if (e.target.checked) { - setSelectedGradingItems( - formik.values.eggs_grading?.map( - (_, idx) => idx - ) ?? [] - ); - } else { - setSelectedGradingItems([]); - } - }} - classNames={{ - wrapper: 'flex justify-center', - checkbox: 'checkbox checkbox-sm', - }} - /> - - Grade - - * - - - Jumlah - - * - - Action
    - - ) => { - if (e.target.checked) { - setSelectedGradingItems([ - ...selectedGradingItems, - idx, - ]); - } else { - setSelectedGradingItems( - selectedGradingItems.filter((i) => i !== idx) - ); - } - }} - classNames={{ - wrapper: 'flex justify-center', - checkbox: 'checkbox checkbox-sm', - }} - /> - - - - - -
    - -
    -
    -
    - {type !== 'detail' && ( -
    - {selectedGradingItems.length > 0 && ( - - )} - -
    - )} -
    - - {/* Action buttons */} -
    - {type !== 'add' && ( -
    - {deleteRecordingClickHandler && ( - - )} - {type !== 'edit' && initialValues && ( - - )} -
    - )} - {type !== 'detail' && ( -
    - - -
    - )} -
    - {gradingFormErrorMessage && ( -
    - - {gradingFormErrorMessage} -
    - )} - -
    - - {/* ===== MODALS ===== */} - {type !== 'add' && ( - <> - - - )} - - ); -}; - -export default GradingForm; diff --git a/src/components/pages/production/transfer-to-laying/form/TransferToLayingForm.schema.ts b/src/components/pages/production/transfer-to-laying/form/TransferToLayingForm.schema.ts index 2e26a36d..42387992 100644 --- a/src/components/pages/production/transfer-to-laying/form/TransferToLayingForm.schema.ts +++ b/src/components/pages/production/transfer-to-laying/form/TransferToLayingForm.schema.ts @@ -226,9 +226,7 @@ export const getFilledTransferToLayingFormInitialValues = async ( // targetKandang.target_project_flock_kandang.kandang.capacity, // TODO: integrate this to real API kandang capacity - maxQuantity: - targetKandang.target_project_flock_kandang.kandang.capacity ?? - Infinity, + maxQuantity: Infinity, })) : [], diff --git a/src/components/pages/purchase/PurchaseTable.tsx b/src/components/pages/purchase/PurchaseTable.tsx index bf59d5ee..a77e1158 100644 --- a/src/components/pages/purchase/PurchaseTable.tsx +++ b/src/components/pages/purchase/PurchaseTable.tsx @@ -16,7 +16,7 @@ import RowDropdownOptions from '@/components/table/RowDropdownOptions'; import RowCollapseOptions from '@/components/table/RowCollapseOptions'; import RowOptionsMenuWrapper from '@/components/table/RowOptionsMenuWrapper'; -import { cn, formatDate, formatCurrency } from '@/lib/helper'; +import { cn, formatDate } from '@/lib/helper'; import { isResponseSuccess } from '@/lib/api-helper'; import { useTableFilter } from '@/services/hooks/useTableFilter'; @@ -136,14 +136,6 @@ const PurchaseTable = () => { ? formatDate(props.row.original.po_date, 'DD MMM YYYY') : '-', }, - { - accessorKey: 'due_date', - header: 'Jatuh Tempo', - cell: (props) => - props.row.original.due_date - ? formatDate(props.row.original.due_date, 'DD MMM YYYY') - : '-', - }, { header: 'Aging', cell: (props) => { @@ -156,11 +148,6 @@ const PurchaseTable = () => { return `${diffDays} hari`; }, }, - { - accessorKey: 'grand_total', - header: 'Total (Rp.)', - cell: (props) => formatCurrency(props.row.original.grand_total), - }, { header: 'Aksi', cell: (props) => { diff --git a/src/components/pages/purchase/form/order/PurchaseOrderAcceptApprovalForm.tsx b/src/components/pages/purchase/form/order/PurchaseOrderAcceptApprovalForm.tsx index 7909ade9..15106c5e 100644 --- a/src/components/pages/purchase/form/order/PurchaseOrderAcceptApprovalForm.tsx +++ b/src/components/pages/purchase/form/order/PurchaseOrderAcceptApprovalForm.tsx @@ -18,7 +18,7 @@ import { PurchaseRequestAcceptApprovalFormDefaultValues, PurchaseRequestAcceptApprovalFormInitialValues, PurchaseRequestAcceptApprovalFormSchema, -} from './PurchaseOrderForm.schema'; +} from '@/components/pages/purchase/form/order/PurchaseOrderForm.schema'; import { isResponseError } from '@/lib/api-helper'; import { PurchaseApi } from '@/services/api/purchase'; import { @@ -52,6 +52,8 @@ const PurchaseOrderAcceptApprovalForm = ({ const [purchaseOrderFormErrorMessage, setPurchaseOrderFormErrorMessage] = useState(''); + const isRejected = initialValues?.latest_approval?.action === 'REJECTED'; + // ===== UTILITY FUNCTIONS ===== const isRepeaterInputError = ( idx: number, @@ -64,7 +66,6 @@ const PurchaseOrderAcceptApprovalForm = ({ | 'expedition_vendor_id' | 'received_qty' | 'transport_per_item' - | 'transport_total' ): { isError: boolean; errorMessage: string } => { const touchedItem = formik.touched.items?.[idx]; const errorItem = formik.errors.items?.[idx] as @@ -163,6 +164,7 @@ const PurchaseOrderAcceptApprovalForm = ({ validateOnBlur: true, onSubmit: async (values) => { const payload: CreateAcceptApprovalRequestPayload = { + action: 'APPROVED', notes: values.notes || '', items: values.items?.map((formItem) => { @@ -181,10 +183,6 @@ const PurchaseOrderAcceptApprovalForm = ({ typeof formItem.transport_per_item === 'string' ? parseFloat(formItem.transport_per_item) || 0 : formItem.transport_per_item || 0, - transport_total: - typeof formItem.transport_total === 'string' - ? parseFloat(formItem.transport_total) || 0 - : formItem.transport_total || 0, }; }) || [], }; @@ -239,9 +237,8 @@ const PurchaseOrderAcceptApprovalForm = ({ vehicle_number: item.vehicle_number || '', expedition_vendor: null, expedition_vendor_id: 0, - received_qty: '', + received_qty: item.total_qty || '', transport_per_item: '', - transport_total: '', }; }); formik.setFieldValue('items', updatedItems); @@ -301,7 +298,7 @@ const PurchaseOrderAcceptApprovalForm = ({ // ===== PURCHASE ITEM OPERATIONS ===== const handlePurchaseItemChange = ( idx: number, - field: 'received_qty' | 'transport_per_item' | 'transport_total', + field: 'received_qty' | 'transport_per_item', value: string | number ) => { const numValue = typeof value === 'string' ? parseFloat(value) || 0 : value; @@ -318,26 +315,6 @@ const PurchaseOrderAcceptApprovalForm = ({ : parseFloat( formik.values.items?.[idx]?.transport_per_item as string ) || 0; - - if (receivedQty > 0 && transportPerItem >= 0) { - const calculatedTransportTotal = receivedQty * transportPerItem; - formik.setFieldValue( - `items.${idx}.transport_total`, - calculatedTransportTotal - ); - } - } - - if (field === 'transport_total') { - const receivedQty = - parseFloat(formik.values.items?.[idx]?.received_qty as string) || 0; - if (receivedQty > 0 && numValue >= 0) { - const calculatedTransportPerItem = numValue / receivedQty; - formik.setFieldValue( - `items.${idx}.transport_per_item`, - calculatedTransportPerItem - ); - } } }; @@ -386,10 +363,6 @@ const PurchaseOrderAcceptApprovalForm = ({ Transport/Item * -
    - Total Transport - * -
    - - handlePurchaseItemChange( - idx, - 'transport_total', - e.target.value - ) - } - onBlur={formik.handleBlur} - placeholder='Masukkan total transport' - allowNegative={false} - decimalScale={2} - thousandSeparator=',' - decimalSeparator='.' - inputPrefix={'Rp'} - isError={ - isRepeaterInputError(idx, 'transport_total').isError - } - errorMessage={ - isRepeaterInputError(idx, 'transport_total') - .errorMessage - } - className={{ - wrapper: 'min-w-40 md:min-w-52 lg:min-w-64', - }} - /> -
    - {!isLoading && - flexRender(cell.column.columnDef.cell, cell.getContext())} + {table.getRowModel().rows.map((row) => { + const customRowContent = renderCustomRow?.(row); - {isLoading &&
    } -
    + {!isLoading && + flexRender( + cell.column.columnDef.cell, + cell.getContext() + )} + + {isLoading &&
    } +
    + Rekapitulasi per rentang bobot +
    Date: Fri, 19 Dec 2025 16:30:06 +0700 Subject: [PATCH 73/89] refactor(FE-357): Refactor HppPerKandang types and add BaseMetadata --- .gitlab-ci.yml | 2 - src/types/api/report/hpp-per-kandang.d.ts | 47 +++++++++++++++++------ 2 files changed, 35 insertions(+), 14 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ee8a79a5..935cac46 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -165,8 +165,6 @@ deploy:staging: environment: name: staging url: https://stg-lti-erp.mbugroup.id - - # ====== PRODUCTION ====== # build:production: # <<: *build_template diff --git a/src/types/api/report/hpp-per-kandang.d.ts b/src/types/api/report/hpp-per-kandang.d.ts index 2b4522a0..ad3f4e0e 100644 --- a/src/types/api/report/hpp-per-kandang.d.ts +++ b/src/types/api/report/hpp-per-kandang.d.ts @@ -1,17 +1,7 @@ +import { BaseMetadata } from '@types/api/base-metadata'; import { Supplier } from '@/types/api/master-data/supplier'; import { Kandang } from '@/types/api/master-data/kandang'; -export type HppPerKandangSummary = { - total_remaining_chicken_birds: number; - total_remaining_chicken_weight_kg: number; - average_weight_kg: number; - total_remaining_value_rp: number; - total_egg_production_pieces: number; - total_egg_production_kg: number; - average_egg_hpp_rp_per_kg: number; - total_egg_value_rp: number; -}; - export type HppPerKandangRow = { id: number; kandang: Kandang; @@ -33,7 +23,40 @@ export type HppPerKandangRow = { remaining_value_rp: number; }; -export type HppPerKandangReport = { +export type HppPerKandangSummaryTotal = { + total_remaining_chicken_birds: number; + total_remaining_chicken_weight_kg: number; + average_weight_kg: number; + total_remaining_value_rp: number; + total_egg_production_pieces: number; + total_egg_production_kg: number; + average_egg_hpp_rp_per_kg: number; + total_egg_value_rp: number; +}; + +export type HppPerKandangPerWeightRange = { + id: number; + weight_range: { + weight_min: number; + weight_max: number; + }; + label: string; + remaining_chicken_birds: number; + remaining_chicken_weight_kg: number; + avg_weight_kg: number; + feed_suppliers: Supplier[]; + doc_suppliers: Supplier[]; + average_doc_price_rp: number; + hpp_rp: number; + remaining_value_rp: number; +}; + +export type HppPerKandangSummary = { + per_weight_range: HppPerKandangPerWeightRange[]; + total: HppPerKandangSummaryTotal; +}; + +export type HppPerKandangReport = BaseMetadata & { period: string; rows: HppPerKandangRow[]; summary: HppPerKandangSummary; From a7267370a0c0f35616af76383eb52492fdc6994f Mon Sep 17 00:00:00 2001 From: randy-ar Date: Fri, 19 Dec 2025 17:20:02 +0700 Subject: [PATCH 74/89] fix(FE): fix export report expense & fix report closing table view & fix project flock form set disable inofrmasi umum on edit --- .gitlab-ci.yml | 2 - package-lock.json | 227 + package.json | 2 + .../pages/closing/ClosingFinanceTable.tsx | 40 +- .../detail/ProjectFlockDetail.tsx | 2 +- .../project-flock/form/ProjectFlockForm.tsx | 16 +- .../expense/pdf/ReportExpenseExport.tsx | 776 +- src/dummy/reports-expense.dummy.json | 69334 ---------------- src/dummy/reports-expense.dummy.ts | 29 - src/services/api/report.ts | 5 - 10 files changed, 448 insertions(+), 69985 deletions(-) delete mode 100644 src/dummy/reports-expense.dummy.json delete mode 100644 src/dummy/reports-expense.dummy.ts diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ee8a79a5..935cac46 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -165,8 +165,6 @@ deploy:staging: environment: name: staging url: https://stg-lti-erp.mbugroup.id - - # ====== PRODUCTION ====== # build:production: # <<: *build_template diff --git a/package-lock.json b/package-lock.json index 59e9d7db..16307a12 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,6 +14,8 @@ "axios": "^1.12.2", "clsx": "^2.1.1", "formik": "^2.4.6", + "jspdf": "^3.0.4", + "jspdf-autotable": "^5.0.2", "moment": "^2.30.1", "next": "15.5.9", "react": "19.1.0", @@ -1845,12 +1847,25 @@ "undici-types": "~6.21.0" } }, + "node_modules/@types/pako": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/pako/-/pako-2.0.4.tgz", + "integrity": "sha512-VWDCbrLeVXJM9fihYodcLiIv0ku+AlOa/TQ1SvYOaBuyrSKgEcro95LJyIsJ4vSo6BXIxOKxiJAat04CmST9Fw==", + "license": "MIT" + }, "node_modules/@types/parse-json": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", "license": "MIT" }, + "node_modules/@types/raf": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@types/raf/-/raf-3.4.3.tgz", + "integrity": "sha512-c4YAvMedbPZ5tEyxzQdMoOhhJ4RD3rngZIdwC2/qDN3d7JpEhB6fiBRKVY1lg5B7Wk+uPBjn5f39j1/2MY1oOw==", + "license": "MIT", + "optional": true + }, "node_modules/@types/react": { "version": "19.2.2", "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.2.tgz", @@ -1879,6 +1894,13 @@ "@types/react": "*" } }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT", + "optional": true + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.46.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.2.tgz", @@ -2776,6 +2798,16 @@ "dev": true, "license": "MIT" }, + "node_modules/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -2925,6 +2957,26 @@ ], "license": "CC-BY-4.0" }, + "node_modules/canvg": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/canvg/-/canvg-3.0.11.tgz", + "integrity": "sha512-5ON+q7jCTgMp9cjpu4Jo6XbvfYwSB2Ow3kzHKfIyJfaCAOHLbdKPQqGKgfED/R5B+3TFFfe8pegYA+b423SRyA==", + "license": "MIT", + "optional": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "@types/raf": "^3.4.0", + "core-js": "^3.8.3", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.7", + "rgbcolor": "^1.0.1", + "stackblur-canvas": "^2.0.0", + "svg-pathdata": "^6.0.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -3020,6 +3072,18 @@ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "license": "MIT" }, + "node_modules/core-js": { + "version": "3.47.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.47.0.tgz", + "integrity": "sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, "node_modules/cosmiconfig": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", @@ -3057,6 +3121,16 @@ "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==", "license": "MIT" }, + "node_modules/css-line-break": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz", + "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", + "license": "MIT", + "optional": true, + "dependencies": { + "utrie": "^1.0.2" + } + }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", @@ -3276,6 +3350,16 @@ "csstype": "^3.0.2" } }, + "node_modules/dompurify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.1.tgz", + "integrity": "sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optional": true, + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -3995,6 +4079,23 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-png": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/fast-png/-/fast-png-6.4.0.tgz", + "integrity": "sha512-kAqZq1TlgBjZcLr5mcN6NP5Rv4V2f22z00c3g8vRrwkcqjerx7BEhPbOnWCPqaHUl2XWQBJQvOT/FQhdMT7X/Q==", + "license": "MIT", + "dependencies": { + "@types/pako": "^2.0.3", + "iobuffer": "^5.3.2", + "pako": "^2.1.0" + } + }, + "node_modules/fast-png/node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", + "license": "(MIT AND Zlib)" + }, "node_modules/fastq": { "version": "1.19.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", @@ -4005,6 +4106,12 @@ "reusify": "^1.0.4" } }, + "node_modules/fflate": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", + "license": "MIT" + }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", @@ -4492,6 +4599,20 @@ "integrity": "sha512-LgOWAkrN0rFaQpfdWBQlv/VhkOxb5AsBjk6NQVx4yEzWS923T07X0M1Y0VNko2H52HeSpZrZNNMJ0aFqsdVzQg==", "license": "ISC" }, + "node_modules/html2canvas": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz", + "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", + "license": "MIT", + "optional": true, + "dependencies": { + "css-line-break": "^2.1.0", + "text-segmentation": "^1.0.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/husky": { "version": "9.1.7", "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", @@ -4571,6 +4692,12 @@ "node": ">= 0.4" } }, + "node_modules/iobuffer": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/iobuffer/-/iobuffer-5.4.0.tgz", + "integrity": "sha512-DRebOWuqDvxunfkNJAlc3IzWIPD5xVxwUNbHr7xKB8E6aLJxIPfNX3CoMJghcFjpv6RWQsrcJbghtEwSPoJqMA==", + "license": "MIT" + }, "node_modules/is-array-buffer": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", @@ -5106,6 +5233,32 @@ "json5": "lib/cli.js" } }, + "node_modules/jspdf": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/jspdf/-/jspdf-3.0.4.tgz", + "integrity": "sha512-dc6oQ8y37rRcHn316s4ngz/nOjayLF/FFxBF4V9zamQKRqXxyiH1zagkCdktdWhtoQId5K20xt1lB90XzkB+hQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.28.4", + "fast-png": "^6.2.0", + "fflate": "^0.8.1" + }, + "optionalDependencies": { + "canvg": "^3.0.11", + "core-js": "^3.6.0", + "dompurify": "^3.2.4", + "html2canvas": "^1.0.0-rc.5" + } + }, + "node_modules/jspdf-autotable": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/jspdf-autotable/-/jspdf-autotable-5.0.2.tgz", + "integrity": "sha512-YNKeB7qmx3pxOLcNeoqAv3qTS7KuvVwkFe5AduCawpop3NOkBUtqDToxNc225MlNecxT4kP2Zy3z/y/yvGdXUQ==", + "license": "MIT", + "peerDependencies": { + "jspdf": "^2 || ^3" + } + }, "node_modules/jsx-ast-utils": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", @@ -6010,6 +6163,13 @@ "node": ">=8" } }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "license": "MIT", + "optional": true + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -6163,6 +6323,16 @@ ], "license": "MIT" }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "license": "MIT", + "optional": true, + "dependencies": { + "performance-now": "^2.1.0" + } + }, "node_modules/react": { "version": "19.1.0", "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", @@ -6321,6 +6491,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "license": "MIT", + "optional": true + }, "node_modules/regexp.prototype.flags": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", @@ -6413,6 +6590,16 @@ "node": ">=0.10.0" } }, + "node_modules/rgbcolor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgbcolor/-/rgbcolor-1.0.1.tgz", + "integrity": "sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw==", + "license": "MIT OR SEE LICENSE IN FEEL-FREE.md", + "optional": true, + "engines": { + "node": ">= 0.8.15" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -6762,6 +6949,16 @@ "dev": true, "license": "MIT" }, + "node_modules/stackblur-canvas": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-2.7.0.tgz", + "integrity": "sha512-yf7OENo23AGJhBriGx0QivY5JP6Y1HbrrDI6WLt6C5auYZXlQrheoY8hD4ibekFKz1HOfE48Ww8kMWMnJD/zcQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.14" + } + }, "node_modules/stop-iteration-iterator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", @@ -6981,6 +7178,16 @@ "integrity": "sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g==", "license": "ISC" }, + "node_modules/svg-pathdata": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/svg-pathdata/-/svg-pathdata-6.0.3.tgz", + "integrity": "sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/swr": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/swr/-/swr-2.3.6.tgz", @@ -7025,6 +7232,16 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/text-segmentation": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz", + "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", + "license": "MIT", + "optional": true, + "dependencies": { + "utrie": "^1.0.2" + } + }, "node_modules/tiny-case": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz", @@ -7397,6 +7614,16 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "license": "MIT" }, + "node_modules/utrie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz", + "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", + "license": "MIT", + "optional": true, + "dependencies": { + "base64-arraybuffer": "^1.0.2" + } + }, "node_modules/vite-compatible-readable-stream": { "version": "3.6.1", "resolved": "https://registry.npmjs.org/vite-compatible-readable-stream/-/vite-compatible-readable-stream-3.6.1.tgz", diff --git a/package.json b/package.json index d0b99b80..61cc5776 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,8 @@ "axios": "^1.12.2", "clsx": "^2.1.1", "formik": "^2.4.6", + "jspdf": "^3.0.4", + "jspdf-autotable": "^5.0.2", "moment": "^2.30.1", "next": "15.5.9", "react": "19.1.0", diff --git a/src/components/pages/closing/ClosingFinanceTable.tsx b/src/components/pages/closing/ClosingFinanceTable.tsx index 1a3c0130..9d0c92d6 100644 --- a/src/components/pages/closing/ClosingFinanceTable.tsx +++ b/src/components/pages/closing/ClosingFinanceTable.tsx @@ -74,17 +74,11 @@ const ClosingFinanceTable = ({ const profitLossTableData: ProfitLossTableRow[] = isResponseSuccess(finance) ? [ - // Penjualan group - { - label: 'Penjualan', - group_name: 'Penjualan', - group_index: 0, - isGroupHeader: true as const, - }, - ...finance.data.profit_loss.data.penjualan.map((item) => ({ - label: 'Penjualan', - group_name: 'Penjualan', - group_index: 0, + // Pembelian group + ...finance.data.profit_loss.data.pembelian.map((item) => ({ + label: 'Pembelian', + group_name: 'Pembelian', + group_index: 1, type: item.type, rp_per_bird: item.rp_per_bird, rp_per_kg: item.rp_per_kg, @@ -103,17 +97,11 @@ const ClosingFinanceTable = ({ finance.data.profit_loss.data.summary.gross_profit.rp_per_kg, amount: finance.data.profit_loss.data.summary.gross_profit.amount, }, - // Pembelian group - { - label: 'Pembelian', - group_name: 'Pembelian', - group_index: 1, - isGroupHeader: true as const, - }, - ...finance.data.profit_loss.data.pembelian.map((item) => ({ - label: 'Pembelian', - group_name: 'Pembelian', - group_index: 1, + // Penjualan group + ...finance.data.profit_loss.data.penjualan.map((item) => ({ + label: 'Penjualan', + group_name: 'Penjualan', + group_index: 0, type: item.type, rp_per_bird: item.rp_per_bird, rp_per_kg: item.rp_per_kg, @@ -369,16 +357,16 @@ const ClosingFinanceTable = ({ data={profitLossTableData} columns={[ { - header: 'Type', + header: 'Jenis', enableSorting: false, accessorFn: (item) => item.type, cell: (item) => ( -
    +
    {formatTitleCase(item.row.original.type || '-')}
    ), footer: (item) => ( -
    +
    {isResponseSuccess(finance) ? formatTitleCase( finance.data.profit_loss.data.summary.net_profit @@ -446,7 +434,7 @@ const ClosingFinanceTable = ({
    -
    +
    {formatTitleCase(rowData.label ?? '-')}
    + + + {perWeightRangeSummary.map( + (item: HppPerKandangPerWeightRange, index = 0) => ( + + + + + + + + + + + + + + ) + )} + +
    + {index + 1} + + ALL + + {item.label} + + {formatNumber(item.avg_weight_kg)} + + {formatNumber(item.remaining_chicken_birds)} + + {formatNumber(item.remaining_chicken_weight_kg)} + + {item.feed_suppliers + ?.map((s: Supplier) => s.alias || s.name) + .join(' | ') || '-'} + + {item.doc_suppliers + ?.map((s: Supplier) => s.alias || s.name) + .join(' | ') || '-'} + + {formatCurrency(item.average_doc_price_rp)} + + {formatCurrency(item.hpp_rp)} + + {formatCurrency(item.remaining_value_rp)} +
    +
    - {index + 1} - - ALL - - {item.label} - + {index + 1}ALL{item.label} {formatNumber(item.avg_weight_kg)} + {formatNumber(item.remaining_chicken_birds)} + {formatNumber(item.remaining_chicken_weight_kg)} + -- {item.feed_suppliers ?.map((s: Supplier) => s.alias || s.name) .join(' | ') || '-'} + {item.doc_suppliers ?.map((s: Supplier) => s.alias || s.name) .join(' | ') || '-'} + {formatCurrency(item.average_doc_price_rp)} + {formatCurrency(item.hpp_rp)} + - {formatCurrency(item.remaining_value_rp)}
    + {flexRender(cell.column.columnDef.cell, cell.getContext())} +
    { ); } - return rows; + return [defaultRow, ...customRows]; } return null; From eb8a1567c68dc7439f7499c1eb533088cfdcdeb6 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Sat, 20 Dec 2025 09:47:50 +0700 Subject: [PATCH 79/89] refactor(FE-355): Render weight-range summaries as table rows --- .../report/sale/tab/HppPerKandangTab.tsx | 100 ++++++++---------- 1 file changed, 44 insertions(+), 56 deletions(-) diff --git a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx index 5248521f..1748a6c7 100644 --- a/src/components/pages/report/sale/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/sale/tab/HppPerKandangTab.tsx @@ -747,7 +747,7 @@ const HppPerKandangTab = () => { {row.getVisibleCells().map((cell) => ( {flexRender(cell.column.columnDef.cell, cell.getContext())}
    - - - {perWeightRangeSummary.map( - (item: HppPerKandangPerWeightRange, index = 0) => ( - - - - - - - - - - - - - - - - - ) - )} - -
    {index + 1}ALL{item.label} - {formatNumber(item.avg_weight_kg)} - - {formatNumber(item.remaining_chicken_birds)} - - {formatNumber(item.remaining_chicken_weight_kg)} - -- - {item.feed_suppliers - ?.map((s: Supplier) => s.alias || s.name) - .join(' | ') || '-'} - - {item.doc_suppliers - ?.map((s: Supplier) => s.alias || s.name) - .join(' | ') || '-'} - - {formatCurrency(item.average_doc_price_rp)} - - {formatCurrency(item.hpp_rp)} - - - {formatCurrency(item.remaining_value_rp)} -
    -
    {index + 1}ALL{item.label} + {formatNumber(item.avg_weight_kg)} + + {formatNumber(item.remaining_chicken_birds)} + + {formatNumber(item.remaining_chicken_weight_kg)} + -- + {item.feed_suppliers + ?.map((s) => s.alias || s.name) + .join(' | ') || '-'} + + {item.doc_suppliers + ?.map((s) => s.alias || s.name) + .join(' | ') || '-'} + + {formatCurrency(item.average_doc_price_rp)} + -{formatCurrency(item.hpp_rp)}- + {formatCurrency(item.remaining_value_rp)} +
    {formatNumber(item.remaining_chicken_weight_kg)} -- + {formatNumber(item.egg_production_pieces)} + + {formatNumber(item.egg_production_kg)} + {item.feed_suppliers ?.map((s) => s.alias || s.name) @@ -807,9 +766,13 @@ const HppPerKandangTab = () => { {formatCurrency(item.average_doc_price_rp)} - + {formatCurrency(item.egg_value_rp)} + {formatCurrency(item.hpp_rp)}- + {formatCurrency(item.egg_hpp_rp_per_kg)} + {formatCurrency(item.remaining_value_rp)}