Merge branch 'dev/hotfix/restu' into 'development'

[HOTFIX/FE] Fix Edit Realization Restriction Issue Based on Approval Line

See merge request mbugroup/lti-web-client!273
This commit is contained in:
Rivaldi A N S
2026-01-28 06:07:37 +00:00
3 changed files with 22 additions and 5 deletions
+2 -2
View File
@@ -38,8 +38,8 @@ const ExpenseRealizationEditPage = () => {
!isLoadingExpense &&
isResponseSuccess(expense) &&
expense.data.latest_approval.action !== 'REJECTED' &&
(expense.data.latest_approval.step_number === 4 ||
expense.data.latest_approval.step_number === 5);
(expense.data.latest_approval.step_number === 5 ||
expense.data.latest_approval.step_number === 6);
if (!isLoadingExpense && !isExpenseRealizationCanBeEdited) {
router.back();
@@ -73,7 +73,14 @@ export const ExpenseRealizationFormSchema: Yup.ObjectSchema<ExpenseRealizationFo
realizations: Yup.array()
.of(
Yup.object({
kandang_id: Yup.number().min(1, 'Wajib memilih kandang!').optional(),
kandang_id: Yup.number()
.optional()
.test('valid-kandang-id', 'Wajib memilih kandang!', (value) => {
if (value === undefined || value === null || value === 0) {
return true;
}
return value >= 1;
}),
cost_items: Yup.array()
.of(
Yup.object({
@@ -175,7 +182,7 @@ export const getExpenseRealizationFormInitialValues = (
: [];
return {
kandang_id: kandangExpense.kandang_id,
kandang_id: kandangExpense.id,
cost_items: costItemsInitialValue,
};
})
@@ -101,13 +101,23 @@ const ExpenseRealizationForm = ({
values.realizations.forEach((realization) => {
realization.cost_items.forEach((costItem) => {
const realizationItem = {
const realizationItem: {
expense_nonstock_id: number;
qty: number;
price: number;
notes: string;
kandang_id?: number;
} = {
expense_nonstock_id: costItem.nonstock?.value as number,
qty: parseFloat(String(costItem.quantity)) as number,
price: parseFloat(String(costItem.price)) as number,
notes: costItem.notes ?? '',
};
if (realization.kandang_id && realization.kandang_id > 0) {
realizationItem.kandang_id = realization.kandang_id;
}
realizations.push(realizationItem);
});
});