diff --git a/src/app/production/project-flock/chickin/detail/layout.tsx b/src/app/production/project-flock/chickin/detail/layout.tsx
deleted file mode 100644
index 7220dfa1..00000000
--- a/src/app/production/project-flock/chickin/detail/layout.tsx
+++ /dev/null
@@ -1,11 +0,0 @@
-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/chickin/detail/page.tsx b/src/app/production/project-flock/chickin/detail/page.tsx
deleted file mode 100644
index daea0f0a..00000000
--- a/src/app/production/project-flock/chickin/detail/page.tsx
+++ /dev/null
@@ -1,343 +0,0 @@
-'use client';
-
-import Button from '@/components/Button';
-import Card from '@/components/Card';
-import Modal, { useModal } from '@/components/Modal';
-import ConfirmationModal from '@/components/modal/ConfirmationModal';
-import ChickinForm from '@/components/pages/production/chickin/form/ChickinForm';
-import { isResponseError, isResponseSuccess } from '@/lib/api-helper';
-import { ChickinApi } from '@/services/api/production/chickin';
-import { BaseApiResponse } from '@/types/api/api-general';
-import {
- Chickin,
- ChickinApprovalPayload,
-} from '@/types/api/production/chickin';
-import { Icon } from '@iconify/react';
-import { useRouter, useSearchParams } from 'next/navigation';
-import { useState } from 'react';
-import toast from 'react-hot-toast';
-import useSWR from 'swr';
-
-/**
- * TODO: Refactor code - pindahin detail ke reuseable component
- * setelah implement approval and reject
- */
-
-const DetailChickin = () => {
- const router = useRouter();
- const searchParams = useSearchParams();
- const chickinId = searchParams.get('chickinId');
- const [isApproveLoading, setIsApproveLoading] = useState(false);
- const [isDeleteLoading, setIsDeleteLoading] = useState(false);
-
- const confirmModal = useModal();
- const deleteModal = useModal();
- const chickinModal = useModal();
- const {
- data: chickin,
- isLoading,
- mutate: refreshChickin,
- } = useSWR(chickinId, (id: number) => ChickinApi.getSingle(id));
-
- const [isApprovedDisabled, setIsApprovedDisabled] = useState(
- // chickin.data?.approval.step_number == 1 ? false : true
- true
- );
- const [isRejectedDisabled, setIsRejectedDisabled] =
- useState(!isApprovedDisabled);
- const [approvalAction, setApprovalAction] = useState<'APPROVED' | 'REJECTED'>(
- !isApprovedDisabled ? 'APPROVED' : 'REJECTED'
- );
-
- if (!chickinId) {
- router.back();
-
- return (
-
-
-
- );
- }
-
- if (!isLoading && (!chickin || isResponseError(chickin))) {
- router.replace('/404');
- return;
- }
-
- if (!isResponseSuccess(chickin)) {
- return (
-
-
-
- );
- }
-
- const confirmationModalClickHandler = async ({
- action = 'APPROVED',
- }: {
- action: 'APPROVED' | 'REJECTED';
- }) => {
- if (chickin?.data.id === undefined) return;
- setIsApproveLoading(true);
- const approveChickinRes = await ChickinApi.customRequest<
- BaseApiResponse,
- ChickinApprovalPayload
- >(`/approvals`, {
- method: 'POST',
- payload: {
- action: action,
- approvable_ids: [chickin.data.id],
- },
- });
-
- if (isResponseSuccess(approveChickinRes)) {
- if (refreshChickin) {
- await refreshChickin();
- }
- toast.success(approveChickinRes.message as string);
- }
- if (isResponseError(approveChickinRes)) {
- toast.error(approveChickinRes?.message as string);
- }
- confirmModal.closeModal();
- setIsApproveLoading(false);
- };
-
- const confirmationModalDeleteClickHandler = async () => {
- setIsDeleteLoading(true);
- const deleteProjectFlockRes = await ChickinApi.delete(
- chickin.data?.id as number
- );
-
- if (isResponseSuccess(deleteProjectFlockRes)) {
- toast.success(deleteProjectFlockRes?.message as string);
- router.push('/production/chickin');
- }
- if (isResponseError(deleteProjectFlockRes)) {
- toast.error(deleteProjectFlockRes?.message as string);
- }
- deleteModal.closeModal();
- setIsDeleteLoading(false);
- };
-
- return (
- <>
-
- {isLoading &&
}
- {!isLoading && isResponseSuccess(chickin) && (
- <>
- {/*
-
-
-
*/}
-
-
-
-
Flock
-
- {
- chickin?.data?.project_flock_kandang?.project_flock?.flock
- ?.name
- }
-
-
-
-
Area
-
- {
- chickin.data.project_flock_kandang?.project_flock.area
- .name
- }
-
-
-
-
Kategori
-
- {chickin.data.project_flock_kandang?.project_flock.category}
-
-
-
-
Lokasi
-
- {
- chickin.data.project_flock_kandang?.project_flock.location
- .name
- }
-
-
-
-
Periode
-
- {chickin.data.project_flock_kandang?.project_flock.period}
-
-
-
-
Kandang
-
- {chickin.data.project_flock_kandang?.kandang.name}
-
-
-
-
-
-
-
-
Flock Kandang
-
- {
- chickin?.data?.project_flock_kandang?.project_flock?.flock
- ?.name
- }{' '}
- - {chickin.data.project_flock_kandang?.kandang.name}
-
-
-
-
Tanggal Chickin
-
- {chickin.data.chick_in_date
- ? new Date(chickin.data.chick_in_date).toLocaleDateString(
- 'id-ID'
- )
- : '-'}
-
-
-
-
Jumlah (Ekor)
-
- {chickin.data.quantity?.toLocaleString('id-ID')}
-
-
-
-
Catatan
-
{chickin.data.note}
-
-
-
-
-
-
-
- >
- )}
-
-
-
-
-
-
-
- Chickin Kandang -{' '}
- {chickin?.data?.project_flock_kandang &&
- chickin?.data?.project_flock_kandang.kandang?.name}
-
-
-
-
-
- {
- confirmationModalClickHandler({
- action: approvalAction,
- });
- },
- }}
- />
- >
- );
-};
-
-export default DetailChickin;
diff --git a/src/components/pages/production/project-flock/ProjectFlockTable.tsx b/src/components/pages/production/project-flock/ProjectFlockTable.tsx
index b455725e..a315b332 100644
--- a/src/components/pages/production/project-flock/ProjectFlockTable.tsx
+++ b/src/components/pages/production/project-flock/ProjectFlockTable.tsx
@@ -579,7 +579,7 @@ const ProjectFlockTable = () => {
(() => {
+ const trimFlock =
+ initialValues?.flock_name?.slice(
+ 0,
+ initialValues?.flock_name?.lastIndexOf(' ')
+ ) ?? '';
return {
- name: initialValues?.flock_name,
- flock: initialValues?.flock
+ flock: initialValues?.flock_name
? {
- value: initialValues?.flock?.id ?? 0,
+ value:
+ optionsFlock.find((flock) => {
+ return flock.label == trimFlock;
+ })?.value ?? 0,
label:
- initialValues?.flock?.name ?? initialValues?.flock_name ?? '',
+ formType != 'detail'
+ ? (optionsFlock.find((flock) => {
+ return flock.label == trimFlock;
+ })?.label ?? '')
+ : initialValues?.flock_name,
}
: null,
area: initialValues?.area
@@ -318,8 +329,16 @@ const ProjectFlockForm = ({
label: initialValues.location.name,
}
: null,
- flock_id: initialValues?.flock?.id ?? 0,
- flock_name: initialValues?.flock_name ?? '',
+ flock_name:
+ optionsFlock.find((flock) => {
+ return (
+ flock.label ==
+ initialValues?.flock_name?.slice(
+ 0,
+ initialValues?.flock_name?.lastIndexOf(' ')
+ )
+ );
+ })?.label ?? '',
area_id: initialValues?.area?.id ?? 0,
category: initialValues?.category as NonNullable<
'GROWING' | 'LAYING' | undefined
@@ -331,17 +350,35 @@ const ProjectFlockForm = ({
| undefined
)[],
};
- }, [initialValues]);
+ }, [initialValues, optionsFlock]);
// Formik
const formik = useFormik({
initialValues: {
- name: initialValues?.flock_name,
- flock: initialValues?.flock
+ flock: initialValues?.flock_name
? {
- value: initialValues?.flock?.id ?? 0,
+ value:
+ optionsFlock.find((flock) => {
+ return (
+ flock.label ==
+ initialValues?.flock_name?.slice(
+ 0,
+ initialValues?.flock_name?.lastIndexOf(' ')
+ )
+ );
+ })?.value ?? 0,
label:
- initialValues?.flock?.name ?? initialValues?.flock_name ?? '',
+ 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
@@ -368,8 +405,18 @@ const ProjectFlockForm = ({
label: initialValues.location.name,
}
: null,
- flock_id: initialValues?.flock?.id ?? 0,
- flock_name: initialValues?.flock_name ?? '',
+ 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
@@ -390,7 +437,7 @@ const ProjectFlockForm = ({
onSubmit: async (values) => {
setProjectFlockFormErrorMessage('');
const payload: CreateProjectFlockPayload = {
- flock_name: values.flock?.label as string,
+ flock_name: values.flock_name as string,
area_id: values.area_id as number,
category: values.category as string,
fcr_id: values.fcr_id as number,
@@ -599,7 +646,6 @@ const ProjectFlockForm = ({
Informasi Umum
- {selectedFlock}
{
- return flock.label === selectedFlock;
+ return flock.label === formik.values.flock_name;
})?.value,
} as OptionType)
: undefined
}
onChange={(val) => {
optionChangeHandler(val, 'flock');
- setSelectedFlock((val as OptionType)?.label as string);
+ setSelectedFlock((val as OptionType)?.label);
formik.setFieldValue(
'flock_name',
(val as OptionType)?.label
@@ -812,7 +858,7 @@ const ProjectFlockForm = ({