diff --git a/src/components/pages/production/recording/RecordingTable.tsx b/src/components/pages/production/recording/RecordingTable.tsx index 6ca8bb89..a83c8d38 100644 --- a/src/components/pages/production/recording/RecordingTable.tsx +++ b/src/components/pages/production/recording/RecordingTable.tsx @@ -107,6 +107,13 @@ const RowOptionsMenu = ({ }; const isRecordingEditable = (recording: Recording) => { + const isGrowingCategory = + recording.project_flock?.project_flock_category === 'GROWING'; + const isGrowingLockedByLaying = isGrowingCategory && recording.is_laying; + if (isGrowingLockedByLaying) { + return false; + } + const currentIsLaying = recording.project_flock?.project_flock_category === 'LAYING'; @@ -123,6 +130,20 @@ const RowOptionsMenu = ({ }; const getRecordingRestrictionInfo = (recording: Recording) => { + const isGrowingCategory = + recording.project_flock?.project_flock_category === 'GROWING'; + const isGrowingLockedByLaying = isGrowingCategory && recording.is_laying; + if (isGrowingLockedByLaying) { + return { + canEditStock: false, + canEditDepletion: false, + canEditEgg: false, + isLocked: true, + lockReason: + 'Recording Growing tidak dapat diubah karena sudah masuk fase laying dan dipakai pada recording laying', + }; + } + const currentIsLaying = recording.project_flock?.project_flock_category === 'LAYING'; @@ -800,10 +821,11 @@ const RecordingTable = () => { { header: 'Kategori', cell: (props) => { - const isLaying = props.row.original.is_laying; const isTransition = props.row.original.is_transition; - const category = isLaying ? 'LAYING' : 'GROWING'; - const color = isLaying ? 'info' : 'warning'; + const category = + props.row.original.project_flock?.project_flock_category || + 'GROWING'; + const color = category === 'LAYING' ? 'info' : 'warning'; return (
diff --git a/src/components/pages/production/recording/form/RecordingForm.tsx b/src/components/pages/production/recording/form/RecordingForm.tsx index e25f0f67..885c1e1a 100644 --- a/src/components/pages/production/recording/form/RecordingForm.tsx +++ b/src/components/pages/production/recording/form/RecordingForm.tsx @@ -420,13 +420,15 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => { }); const projectFlockKandangLookupUrl = useMemo(() => { - if (!selectedProjectFlock || !selectedKandang) return null; + if (!selectedProjectFlock || !selectedKandang || !selectedRecordDate) + return null; const params = new URLSearchParams({ project_flock_id: selectedProjectFlock.value.toString(), kandang_id: selectedKandang.value.toString(), + record_date: selectedRecordDate, }); return `${ProjectFlockApi.basePath}/kandangs/lookup?${params.toString()}`; - }, [selectedProjectFlock, selectedKandang]); + }, [selectedProjectFlock, selectedKandang, selectedRecordDate]); const { data: projectFlockKandangLookupData } = useSWR( projectFlockKandangLookupUrl, @@ -548,6 +550,13 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => { const isRecordingEditable = useCallback((recording?: Recording) => { if (!recording) return true; + const isGrowingCategory = + recording.project_flock?.project_flock_category === 'GROWING'; + const isGrowingLockedByLaying = isGrowingCategory && recording.is_laying; + if (isGrowingLockedByLaying) { + return false; + } + const currentIsLaying = recording.project_flock?.project_flock_category === 'LAYING'; @@ -2066,13 +2075,22 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
Kategori

+ {(() => { + const category = + initialValues.project_flock?.project_flock_category || + 'GROWING'; + const color = + category === 'LAYING' ? 'info' : 'warning'; + return ( - {initialValues.is_laying ? 'LAYING' : 'GROWING'} + {category} + ); + })()}