mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-20 13:32:00 +00:00
refactor(FE-208): rename PurchaseRequisitions to PurchaseRequest and update related API references
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
import PurchaseRequisitionsForm from '@/components/pages/purchase/form/request/PurchaseRequisitionsForm';
|
||||
import PurchaseRequestForm from '@/components/pages/purchase/form/request/PurchaseRequisitionsForm';
|
||||
|
||||
const AddPurchaseRequisitions = () => {
|
||||
const AddPurchaseRequest = () => {
|
||||
return (
|
||||
<div className='w-full p-4 flex flex-row justify-center'>
|
||||
<PurchaseRequisitionsForm />
|
||||
<PurchaseRequestForm />
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default AddPurchaseRequisitions;
|
||||
export default AddPurchaseRequest;
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
import { useRouter, useSearchParams } from 'next/navigation';
|
||||
import useSWR from 'swr';
|
||||
import PurchaseRequisitionsForm from '@/components/pages/purchase/form/request/PurchaseRequisitionsForm';
|
||||
import { PurchaseRequisitionsApi } from '@/services/api/purchase';
|
||||
import PurchaseRequestForm from '@/components/pages/purchase/form/request/PurchaseRequisitionsForm';
|
||||
import { PurchaseRequestApi } from '@/services/api/purchase';
|
||||
import { isResponseSuccess, isResponseError } from '@/lib/api-helper';
|
||||
|
||||
const PurchaseEdit = () => {
|
||||
@@ -14,7 +14,7 @@ const PurchaseEdit = () => {
|
||||
|
||||
const { data: purchase, isLoading: isLoadingPurchase } = useSWR(
|
||||
purchaseId,
|
||||
(id: number) => PurchaseRequisitionsApi.getSingle(id)
|
||||
(id: number) => PurchaseRequestApi.getSingle(id)
|
||||
);
|
||||
|
||||
if (!purchaseId) {
|
||||
@@ -38,7 +38,7 @@ const PurchaseEdit = () => {
|
||||
<span className='loading loading-spinner loading-xl' />
|
||||
)}
|
||||
{!isLoadingPurchase && isResponseSuccess(purchase) && (
|
||||
<PurchaseRequisitionsForm type='edit' initialValues={purchase.data} />
|
||||
<PurchaseRequestForm type='edit' initialValues={purchase.data} />
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
import { useRouter, useSearchParams } from 'next/navigation';
|
||||
import useSWR from 'swr';
|
||||
import PurchaseRequisitionsForm from '@/components/pages/purchase/form/request/PurchaseRequisitionsForm';
|
||||
import { PurchaseRequisitionsApi } from '@/services/api/purchase';
|
||||
import PurchaseRequestForm from '@/components/pages/purchase/form/request/PurchaseRequisitionsForm';
|
||||
import { PurchaseRequestApi } from '@/services/api/purchase';
|
||||
import { isResponseSuccess, isResponseError } from '@/lib/api-helper';
|
||||
|
||||
const PurchaseDetail = () => {
|
||||
@@ -14,7 +14,7 @@ const PurchaseDetail = () => {
|
||||
|
||||
const { data: purchase, isLoading: isLoadingPurchase } = useSWR(
|
||||
purchaseId,
|
||||
(id: number) => PurchaseRequisitionsApi.getSingle(id)
|
||||
(id: number) => PurchaseRequestApi.getSingle(id)
|
||||
);
|
||||
|
||||
if (!purchaseId) {
|
||||
@@ -38,7 +38,7 @@ const PurchaseDetail = () => {
|
||||
<span className='loading loading-spinner loading-xl' />
|
||||
)}
|
||||
{!isLoadingPurchase && isResponseSuccess(purchase) && (
|
||||
<PurchaseRequisitionsForm type='detail' initialValues={purchase.data} />
|
||||
<PurchaseRequestForm type='detail' initialValues={purchase.data} />
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -26,7 +26,7 @@ import { isResponseSuccess } from '@/lib/api-helper';
|
||||
import { useTableFilter } from '@/services/hooks/useTableFilter';
|
||||
import { ROWS_OPTIONS } from '@/config/constant';
|
||||
import { Purchase } from '@/types/api/purchase/purchase';
|
||||
import { PurchaseRequisitionsApi } from '@/services/api/purchase';
|
||||
import { PurchaseRequestApi } from '@/services/api/purchase';
|
||||
|
||||
const RowOptionsMenu = ({
|
||||
type = 'dropdown',
|
||||
@@ -103,8 +103,8 @@ const PurchaseTable = () => {
|
||||
isLoading,
|
||||
mutate: refreshPurchaseRequests,
|
||||
} = useSWR(
|
||||
`${PurchaseRequisitionsApi.basePath}${getTableFilterQueryString()}`,
|
||||
PurchaseRequisitionsApi.getAllFetcher
|
||||
`${PurchaseRequestApi.basePath}${getTableFilterQueryString()}`,
|
||||
PurchaseRequestApi.getAllFetcher
|
||||
);
|
||||
|
||||
// Modal hooks
|
||||
@@ -237,7 +237,7 @@ const PurchaseTable = () => {
|
||||
setIsDeleteLoading(true);
|
||||
|
||||
try {
|
||||
await PurchaseRequisitionsApi.delete(selectedPurchase?.id as number);
|
||||
await PurchaseRequestApi.delete(selectedPurchase?.id as number);
|
||||
refreshPurchaseRequests();
|
||||
deleteModal.closeModal();
|
||||
toast.success('Berhasil menghapus data permintaan pembelian!');
|
||||
@@ -283,7 +283,6 @@ const PurchaseTable = () => {
|
||||
Tambah
|
||||
</Button>
|
||||
|
||||
|
||||
{selectedRowIds.length > 0 && (
|
||||
<Button
|
||||
variant='outline'
|
||||
|
||||
@@ -11,14 +11,14 @@ import NumberInput from '@/components/input/NumberInput';
|
||||
import SelectInput, { OptionType } from '@/components/input/SelectInput';
|
||||
|
||||
import {
|
||||
PurchaseRequisitionsAcceptApprovalFormDefaultValues,
|
||||
PurchaseRequisitionsAcceptApprovalFormInitialValues,
|
||||
PurchaseRequisitionsAcceptApprovalFormSchema,
|
||||
PurchaseRequestAcceptApprovalFormDefaultValues,
|
||||
PurchaseRequestAcceptApprovalFormInitialValues,
|
||||
PurchaseRequestAcceptApprovalFormSchema,
|
||||
} from './PurchaseOrderForm.schema';
|
||||
import { isResponseError } from '@/lib/api-helper';
|
||||
import { AcceptApprovalApi } from '@/services/api/purchase';
|
||||
import {
|
||||
CreateAcceptApprovalRequisitionsPayload,
|
||||
CreateAcceptApprovalRequestPayload,
|
||||
Purchase,
|
||||
} from '@/types/api/purchase/purchase';
|
||||
import DateInput from '@/components/input/DateInput';
|
||||
@@ -101,7 +101,7 @@ const PurchaseOrderAcceptApprovalForm = ({
|
||||
|
||||
// ===== SUBMISSION HANDLERS =====
|
||||
const createAcceptApprovalHandler = useCallback(
|
||||
async (payload: CreateAcceptApprovalRequisitionsPayload) => {
|
||||
async (payload: CreateAcceptApprovalRequestPayload) => {
|
||||
const purchaseRequisitionId = searchParams.get('purchaseId')
|
||||
? parseInt(searchParams.get('purchaseId')!)
|
||||
: initialValues?.id || 1;
|
||||
@@ -127,10 +127,7 @@ const PurchaseOrderAcceptApprovalForm = ({
|
||||
);
|
||||
|
||||
const updateAcceptApprovalHandler = useCallback(
|
||||
async (
|
||||
purchaseId: number,
|
||||
payload: CreateAcceptApprovalRequisitionsPayload
|
||||
) => {
|
||||
async (purchaseId: number, payload: CreateAcceptApprovalRequestPayload) => {
|
||||
const res = await AcceptApprovalApi.acceptApproval(purchaseId, payload);
|
||||
if (isResponseError(res)) {
|
||||
setPurchaseOrderFormErrorMessage(res.message);
|
||||
@@ -146,17 +143,17 @@ const PurchaseOrderAcceptApprovalForm = ({
|
||||
// ===== FORM CONFIGURATION =====
|
||||
const formikInitialValues = useMemo(() => {
|
||||
return initialValues
|
||||
? PurchaseRequisitionsAcceptApprovalFormDefaultValues(initialValues)
|
||||
: PurchaseRequisitionsAcceptApprovalFormInitialValues;
|
||||
? PurchaseRequestAcceptApprovalFormDefaultValues(initialValues)
|
||||
: PurchaseRequestAcceptApprovalFormInitialValues;
|
||||
}, [initialValues]);
|
||||
|
||||
const formik = useFormik({
|
||||
initialValues: formikInitialValues,
|
||||
validationSchema: PurchaseRequisitionsAcceptApprovalFormSchema,
|
||||
validationSchema: PurchaseRequestAcceptApprovalFormSchema,
|
||||
validateOnChange: true,
|
||||
validateOnBlur: true,
|
||||
onSubmit: async (values) => {
|
||||
const payload: CreateAcceptApprovalRequisitionsPayload = {
|
||||
const payload: CreateAcceptApprovalRequestPayload = {
|
||||
notes: values.notes || '',
|
||||
items: (values.items || []).map((item) => ({
|
||||
purchase_item_id:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import * as Yup from 'yup';
|
||||
import { Purchase } from '@/types/api/purchase/purchase';
|
||||
|
||||
type PurchaseRequisitionsStaffApprovalFormSchemaType = {
|
||||
type PurchaseRequestStaffApprovalFormSchemaType = {
|
||||
notes: string | null;
|
||||
items: {
|
||||
purchase_item?: {
|
||||
@@ -14,11 +14,11 @@ type PurchaseRequisitionsStaffApprovalFormSchemaType = {
|
||||
}[];
|
||||
};
|
||||
|
||||
type PurchaseRequisitionsManagerApprovalFormSchemaType = {
|
||||
type PurchaseRequestManagerApprovalFormSchemaType = {
|
||||
notes: string | null;
|
||||
};
|
||||
|
||||
type PurchaseRequisitionsAcceptApprovalFormSchemaType = {
|
||||
type PurchaseRequestAcceptApprovalFormSchemaType = {
|
||||
notes: string | null;
|
||||
items: {
|
||||
purchase_item?: {
|
||||
@@ -128,7 +128,7 @@ const PurchaseStaffApprovalItemObjectSchema: Yup.ObjectSchema<PurchaseStaffAppro
|
||||
),
|
||||
});
|
||||
|
||||
const PurchaseManagerApprovalObjectSchema: Yup.ObjectSchema<PurchaseRequisitionsManagerApprovalFormSchemaType> =
|
||||
const PurchaseManagerApprovalObjectSchema: Yup.ObjectSchema<PurchaseRequestManagerApprovalFormSchemaType> =
|
||||
Yup.object({
|
||||
notes: Yup.string().nullable().default(null),
|
||||
});
|
||||
@@ -239,7 +239,7 @@ const PurchaseAcceptApprovalItemObjectSchema: Yup.ObjectSchema<PurchaseAcceptApp
|
||||
.typeError('Total biaya transport harus berupa angka!'),
|
||||
});
|
||||
|
||||
export const PurchaseRequisitionsStaffApprovalFormSchema: Yup.ObjectSchema<PurchaseRequisitionsStaffApprovalFormSchemaType> =
|
||||
export const PurchaseRequestStaffApprovalFormSchema: Yup.ObjectSchema<PurchaseRequestStaffApprovalFormSchemaType> =
|
||||
Yup.object({
|
||||
notes: Yup.string().nullable().default(null),
|
||||
items: Yup.array()
|
||||
@@ -249,7 +249,7 @@ export const PurchaseRequisitionsStaffApprovalFormSchema: Yup.ObjectSchema<Purch
|
||||
.typeError('Item pembelian wajib diisi!'),
|
||||
});
|
||||
|
||||
export const PurchaseRequisitionsStaffApprovalFormInitialValues: PurchaseRequisitionsStaffApprovalFormSchemaType =
|
||||
export const PurchaseRequestStaffApprovalFormInitialValues: PurchaseRequestStaffApprovalFormSchemaType =
|
||||
{
|
||||
notes: '',
|
||||
items: [
|
||||
@@ -261,9 +261,9 @@ export const PurchaseRequisitionsStaffApprovalFormInitialValues: PurchaseRequisi
|
||||
],
|
||||
};
|
||||
|
||||
export const PurchaseRequisitionsStaffApprovalFormDefaultValues = (
|
||||
export const PurchaseRequestStaffApprovalFormDefaultValues = (
|
||||
purchase?: Purchase
|
||||
): PurchaseRequisitionsStaffApprovalFormSchemaType => {
|
||||
): PurchaseRequestStaffApprovalFormSchemaType => {
|
||||
return {
|
||||
notes: purchase?.notes ?? null,
|
||||
items: purchase?.items
|
||||
@@ -282,26 +282,26 @@ export const PurchaseRequisitionsStaffApprovalFormDefaultValues = (
|
||||
};
|
||||
};
|
||||
|
||||
export type PurchaseRequisitionsStaffApprovalFormValues = Yup.InferType<
|
||||
typeof PurchaseRequisitionsStaffApprovalFormSchema
|
||||
export type PurchaseRequestStaffApprovalFormValues = Yup.InferType<
|
||||
typeof PurchaseRequestStaffApprovalFormSchema
|
||||
>;
|
||||
|
||||
export const PurchaseRequisitionsManagerApprovalFormSchema: Yup.ObjectSchema<PurchaseRequisitionsManagerApprovalFormSchemaType> =
|
||||
export const PurchaseRequestManagerApprovalFormSchema: Yup.ObjectSchema<PurchaseRequestManagerApprovalFormSchemaType> =
|
||||
PurchaseManagerApprovalObjectSchema;
|
||||
|
||||
export const PurchaseRequisitionsManagerApprovalFormDefaultValues = (
|
||||
export const PurchaseRequestManagerApprovalFormDefaultValues = (
|
||||
purchase?: Purchase
|
||||
): PurchaseRequisitionsManagerApprovalFormSchemaType => {
|
||||
): PurchaseRequestManagerApprovalFormSchemaType => {
|
||||
return {
|
||||
notes: purchase?.notes ?? null,
|
||||
};
|
||||
};
|
||||
|
||||
export type PurchaseRequisitionsManagerApprovalFormValues = Yup.InferType<
|
||||
typeof PurchaseRequisitionsManagerApprovalFormSchema
|
||||
export type PurchaseRequestManagerApprovalFormValues = Yup.InferType<
|
||||
typeof PurchaseRequestManagerApprovalFormSchema
|
||||
>;
|
||||
|
||||
export const PurchaseRequisitionsAcceptApprovalFormSchema: Yup.ObjectSchema<PurchaseRequisitionsAcceptApprovalFormSchemaType> =
|
||||
export const PurchaseRequestAcceptApprovalFormSchema: Yup.ObjectSchema<PurchaseRequestAcceptApprovalFormSchemaType> =
|
||||
Yup.object({
|
||||
notes: Yup.string().nullable().default(null),
|
||||
items: Yup.array()
|
||||
@@ -311,7 +311,7 @@ export const PurchaseRequisitionsAcceptApprovalFormSchema: Yup.ObjectSchema<Purc
|
||||
.typeError('Item pembelian wajib diisi!'),
|
||||
});
|
||||
|
||||
export const PurchaseRequisitionsAcceptApprovalFormInitialValues: PurchaseRequisitionsAcceptApprovalFormSchemaType =
|
||||
export const PurchaseRequestAcceptApprovalFormInitialValues: PurchaseRequestAcceptApprovalFormSchemaType =
|
||||
{
|
||||
notes: '',
|
||||
items: [
|
||||
@@ -330,9 +330,9 @@ export const PurchaseRequisitionsAcceptApprovalFormInitialValues: PurchaseRequis
|
||||
],
|
||||
};
|
||||
|
||||
export const PurchaseRequisitionsAcceptApprovalFormDefaultValues = (
|
||||
export const PurchaseRequestAcceptApprovalFormDefaultValues = (
|
||||
purchase?: Purchase
|
||||
): PurchaseRequisitionsAcceptApprovalFormSchemaType => {
|
||||
): PurchaseRequestAcceptApprovalFormSchemaType => {
|
||||
return {
|
||||
notes: purchase?.notes ?? null,
|
||||
items: purchase?.items
|
||||
@@ -365,6 +365,6 @@ export const PurchaseRequisitionsAcceptApprovalFormDefaultValues = (
|
||||
};
|
||||
};
|
||||
|
||||
export type PurchaseRequisitionsAcceptApprovalFormValues = Yup.InferType<
|
||||
typeof PurchaseRequisitionsAcceptApprovalFormSchema
|
||||
export type PurchaseRequestAcceptApprovalFormValues = Yup.InferType<
|
||||
typeof PurchaseRequestAcceptApprovalFormSchema
|
||||
>;
|
||||
|
||||
@@ -11,14 +11,14 @@ import NumberInput from '@/components/input/NumberInput';
|
||||
import SelectInput, { OptionType } from '@/components/input/SelectInput';
|
||||
|
||||
import {
|
||||
PurchaseRequisitionsStaffApprovalFormDefaultValues,
|
||||
PurchaseRequisitionsStaffApprovalFormInitialValues,
|
||||
PurchaseRequisitionsStaffApprovalFormSchema,
|
||||
PurchaseRequestStaffApprovalFormDefaultValues,
|
||||
PurchaseRequestStaffApprovalFormInitialValues,
|
||||
PurchaseRequestStaffApprovalFormSchema,
|
||||
} from './PurchaseOrderForm.schema';
|
||||
import { isResponseError } from '@/lib/api-helper';
|
||||
import { StaffApprovalApi } from '@/services/api/purchase';
|
||||
import {
|
||||
CreateStaffApprovalRequisitionsPayload,
|
||||
CreateStaffApprovalRequestPayload,
|
||||
Purchase,
|
||||
} from '@/types/api/purchase/purchase';
|
||||
|
||||
@@ -78,7 +78,7 @@ const PurchaseOrderStaffApprovalForm = ({
|
||||
|
||||
// ===== SUBMISSION HANDLERS =====
|
||||
const createStaffApprovalHandler = useCallback(
|
||||
async (payload: CreateStaffApprovalRequisitionsPayload) => {
|
||||
async (payload: CreateStaffApprovalRequestPayload) => {
|
||||
const purchaseRequisitionId = searchParams.get('purchaseId')
|
||||
? parseInt(searchParams.get('purchaseId')!)
|
||||
: initialValues?.id || 1;
|
||||
@@ -104,10 +104,7 @@ const PurchaseOrderStaffApprovalForm = ({
|
||||
);
|
||||
|
||||
const updateStaffApprovalHandler = useCallback(
|
||||
async (
|
||||
purchaseId: number,
|
||||
payload: CreateStaffApprovalRequisitionsPayload
|
||||
) => {
|
||||
async (purchaseId: number, payload: CreateStaffApprovalRequestPayload) => {
|
||||
const res = await StaffApprovalApi.createStaffApproval(
|
||||
purchaseId,
|
||||
payload
|
||||
@@ -126,17 +123,17 @@ const PurchaseOrderStaffApprovalForm = ({
|
||||
// ===== FORM CONFIGURATION =====
|
||||
const formikInitialValues = useMemo(() => {
|
||||
return initialValues
|
||||
? PurchaseRequisitionsStaffApprovalFormDefaultValues(initialValues)
|
||||
: PurchaseRequisitionsStaffApprovalFormInitialValues;
|
||||
? PurchaseRequestStaffApprovalFormDefaultValues(initialValues)
|
||||
: PurchaseRequestStaffApprovalFormInitialValues;
|
||||
}, [initialValues]);
|
||||
|
||||
const formik = useFormik({
|
||||
initialValues: formikInitialValues,
|
||||
validationSchema: PurchaseRequisitionsStaffApprovalFormSchema,
|
||||
validationSchema: PurchaseRequestStaffApprovalFormSchema,
|
||||
validateOnChange: true,
|
||||
validateOnBlur: true,
|
||||
onSubmit: async (values) => {
|
||||
const payload: CreateStaffApprovalRequisitionsPayload = {
|
||||
const payload: CreateStaffApprovalRequestPayload = {
|
||||
notes: values.notes || '',
|
||||
items: (values.items || []).map((item) => ({
|
||||
purchase_item_id:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import * as Yup from 'yup';
|
||||
import { Purchase } from '@/types/api/purchase/purchase';
|
||||
|
||||
type PurchaseRequisitionsFormSchemaType = {
|
||||
type PurchaseRequestFormSchemaType = {
|
||||
supplier?: {
|
||||
value: number;
|
||||
label: string;
|
||||
@@ -85,7 +85,7 @@ const PurchaseItemObjectSchema: Yup.ObjectSchema<PurchaseItemSchema> =
|
||||
),
|
||||
});
|
||||
|
||||
export const PurchaseRequisitionsFormSchema: Yup.ObjectSchema<PurchaseRequisitionsFormSchemaType> =
|
||||
export const PurchaseRequestFormSchema: Yup.ObjectSchema<PurchaseRequestFormSchemaType> =
|
||||
Yup.object({
|
||||
supplier: Yup.object({
|
||||
value: Yup.number().min(1).required(),
|
||||
@@ -127,16 +127,15 @@ export const PurchaseRequisitionsFormSchema: Yup.ObjectSchema<PurchaseRequisitio
|
||||
.typeError('Item pembelian wajib diisi!'),
|
||||
});
|
||||
|
||||
export const UpdatePurchaseRequisitionsFormSchema =
|
||||
PurchaseRequisitionsFormSchema;
|
||||
export const UpdatePurchaseRequestFormSchema = PurchaseRequestFormSchema;
|
||||
|
||||
export type PurchaseRequisitionsFormValues = Yup.InferType<
|
||||
typeof PurchaseRequisitionsFormSchema
|
||||
export type PurchaseRequestFormValues = Yup.InferType<
|
||||
typeof PurchaseRequestFormSchema
|
||||
>;
|
||||
|
||||
export const getPurchaseRequisitionsFormInitialValues = (
|
||||
export const getPurchaseRequestFormInitialValues = (
|
||||
initialValues?: Purchase
|
||||
): PurchaseRequisitionsFormValues => ({
|
||||
): PurchaseRequestFormValues => ({
|
||||
supplier: initialValues?.supplier
|
||||
? {
|
||||
value: initialValues.supplier.id,
|
||||
|
||||
@@ -18,10 +18,10 @@ import ConfirmationModal from '@/components/modal/ConfirmationModal';
|
||||
import { useModal } from '@/components/Modal';
|
||||
|
||||
import {
|
||||
PurchaseRequisitionsFormSchema,
|
||||
PurchaseRequisitionsFormValues,
|
||||
getPurchaseRequisitionsFormInitialValues,
|
||||
UpdatePurchaseRequisitionsFormSchema,
|
||||
PurchaseRequestFormSchema,
|
||||
PurchaseRequestFormValues,
|
||||
getPurchaseRequestFormInitialValues,
|
||||
UpdatePurchaseRequestFormSchema,
|
||||
} from './PurchaseRequisitionsForm.schema';
|
||||
import {
|
||||
SupplierApi,
|
||||
@@ -34,11 +34,11 @@ import { Supplier } from '@/types/api/master-data/supplier';
|
||||
import { Product } from '@/types/api/master-data/product';
|
||||
import { ProductWarehouseApi } from '@/services/api/inventory';
|
||||
import { isResponseSuccess, isResponseError } from '@/lib/api-helper';
|
||||
import { PurchaseRequisitionsApi } from '@/services/api/purchase';
|
||||
import { PurchaseRequestApi } from '@/services/api/purchase';
|
||||
|
||||
import Card from '@/components/Card';
|
||||
import {
|
||||
CreatePurchaseRequisitionsPayload,
|
||||
CreatePurchaseRequestPayload,
|
||||
Purchase,
|
||||
} from '@/types/api/purchase/purchase';
|
||||
|
||||
@@ -47,7 +47,7 @@ interface PurchaseRequestFormProps {
|
||||
initialValues?: Purchase;
|
||||
}
|
||||
|
||||
const PurchaseRequisitionsForm = ({
|
||||
const PurchaseRequestForm = ({
|
||||
type = 'add',
|
||||
initialValues,
|
||||
}: PurchaseRequestFormProps) => {
|
||||
@@ -105,8 +105,8 @@ const PurchaseRequisitionsForm = ({
|
||||
|
||||
// ===== SUBMISSION HANDLERS =====
|
||||
const createPurchaseRequestHandler = useCallback(
|
||||
async (payload: CreatePurchaseRequisitionsPayload) => {
|
||||
const res = await PurchaseRequisitionsApi.create(payload);
|
||||
async (payload: CreatePurchaseRequestPayload) => {
|
||||
const res = await PurchaseRequestApi.create(payload);
|
||||
if (isResponseError(res)) {
|
||||
setPurchaseRequestFormErrorMessage(res.message);
|
||||
return;
|
||||
@@ -120,12 +120,9 @@ const PurchaseRequisitionsForm = ({
|
||||
const updatePurchaseRequestHandler = useCallback(
|
||||
async (
|
||||
purchaseRequestId: number,
|
||||
payload: CreatePurchaseRequisitionsPayload
|
||||
payload: CreatePurchaseRequestPayload
|
||||
) => {
|
||||
const res = await PurchaseRequisitionsApi.update(
|
||||
purchaseRequestId,
|
||||
payload
|
||||
);
|
||||
const res = await PurchaseRequestApi.update(purchaseRequestId, payload);
|
||||
if (isResponseError(res)) {
|
||||
setPurchaseRequestFormErrorMessage(res.message);
|
||||
return;
|
||||
@@ -145,7 +142,7 @@ const PurchaseRequisitionsForm = ({
|
||||
if (!initialValues?.id) return;
|
||||
|
||||
setIsDeleteLoading(true);
|
||||
await PurchaseRequisitionsApi.delete(initialValues.id);
|
||||
await PurchaseRequestApi.delete(initialValues.id);
|
||||
deleteModal.closeModal();
|
||||
toast.success('Successfully delete Purchase Request!');
|
||||
setIsDeleteLoading(false);
|
||||
@@ -175,21 +172,21 @@ const PurchaseRequisitionsForm = ({
|
||||
} = useSelect(WarehouseApi.basePath, 'id', 'name', 'search');
|
||||
|
||||
// ===== FORM CONFIGURATION =====
|
||||
const formikInitialValues = useMemo<PurchaseRequisitionsFormValues>(
|
||||
() => getPurchaseRequisitionsFormInitialValues(initialValues),
|
||||
const formikInitialValues = useMemo<PurchaseRequestFormValues>(
|
||||
() => getPurchaseRequestFormInitialValues(initialValues),
|
||||
[initialValues]
|
||||
);
|
||||
|
||||
const formik = useFormik<PurchaseRequisitionsFormValues>({
|
||||
const formik = useFormik<PurchaseRequestFormValues>({
|
||||
initialValues: formikInitialValues,
|
||||
validationSchema:
|
||||
type === 'edit'
|
||||
? UpdatePurchaseRequisitionsFormSchema
|
||||
: PurchaseRequisitionsFormSchema,
|
||||
? UpdatePurchaseRequestFormSchema
|
||||
: PurchaseRequestFormSchema,
|
||||
validateOnChange: true,
|
||||
validateOnBlur: true,
|
||||
onSubmit: async (values) => {
|
||||
const payload: CreatePurchaseRequisitionsPayload = {
|
||||
const payload: CreatePurchaseRequestPayload = {
|
||||
supplier_id:
|
||||
typeof values.supplier_id === 'string'
|
||||
? parseInt(values.supplier_id) || 0
|
||||
@@ -486,9 +483,9 @@ const PurchaseRequisitionsForm = ({
|
||||
Kembali
|
||||
</Button>
|
||||
<h1 className='text-2xl font-bold text-center'>
|
||||
{type === 'add' && 'Tambah Purchase Requisitions'}
|
||||
{type === 'edit' && 'Edit Purchase Requisitions'}
|
||||
{type === 'detail' && 'Detail Purchase Requisitions'}
|
||||
{type === 'add' && 'Tambah Purchase Request'}
|
||||
{type === 'edit' && 'Edit Purchase Request'}
|
||||
{type === 'detail' && 'Detail Purchase Request'}
|
||||
</h1>
|
||||
</header>
|
||||
<form
|
||||
@@ -1118,4 +1115,4 @@ const PurchaseRequisitionsForm = ({
|
||||
);
|
||||
};
|
||||
|
||||
export default PurchaseRequisitionsForm;
|
||||
export default PurchaseRequestForm;
|
||||
|
||||
@@ -20,7 +20,7 @@ import { BaseGroupedApproval } from '@/types/api/api-general';
|
||||
import { PURCHASE_ORDER_APPROVAL_LINE } from '@/config/approval-line';
|
||||
import Card from '@/components/Card';
|
||||
import {
|
||||
CreateManagerApprovalRequisitionsPayload,
|
||||
CreateManagerApprovalRequestPayload,
|
||||
Purchase,
|
||||
PurchaseItem,
|
||||
} from '@/types/api/purchase/purchase';
|
||||
@@ -57,7 +57,8 @@ const dummyPurchaseData: Purchase = {
|
||||
hatchery: 'Jawa Barat',
|
||||
phone: '+62-22-7563850',
|
||||
email: 'info@cp.co.id',
|
||||
address: 'Jl. Raya Bandung - Sumedang Km. 28, Desa Cisantana, Kec. Cigendel, Kabupaten Sumedang, Jawa Barat 45363',
|
||||
address:
|
||||
'Jl. Raya Bandung - Sumedang Km. 28, Desa Cisantana, Kec. Cigendel, Kabupaten Sumedang, Jawa Barat 45363',
|
||||
npwp: '01.938.451.6-433.000',
|
||||
account_number: '123-456-7890',
|
||||
due_date: 30,
|
||||
@@ -316,7 +317,7 @@ const PurchaseOrderDetail = ({
|
||||
|
||||
// ===== SUBMISSION HANDLER =====
|
||||
const createManagerApprovalHandler = useCallback(
|
||||
async (payload: CreateManagerApprovalRequisitionsPayload) => {
|
||||
async (payload: CreateManagerApprovalRequestPayload) => {
|
||||
const purchaseRequisitionId = searchParams.get('purchaseId')
|
||||
? parseInt(searchParams.get('purchaseId')!)
|
||||
: purchaseData?.id || 1;
|
||||
@@ -806,7 +807,7 @@ const PurchaseOrderDetail = ({
|
||||
text: 'Ya, Lanjutkan',
|
||||
color: 'success',
|
||||
onClick: async (notes) => {
|
||||
const payload: CreateManagerApprovalRequisitionsPayload = {
|
||||
const payload: CreateManagerApprovalRequestPayload = {
|
||||
notes: notes || null,
|
||||
};
|
||||
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
import {
|
||||
CreatePurchaseRequisitionsPayload,
|
||||
CreatePurchaseRequestPayload,
|
||||
Purchase,
|
||||
UpdatePurchaseRequisitionsPayload,
|
||||
CreateStaffApprovalRequisitionsPayload,
|
||||
CreateManagerApprovalRequisitionsPayload,
|
||||
CreateAcceptApprovalRequisitionsPayload,
|
||||
UpdatePurchaseRequestPayload,
|
||||
CreateStaffApprovalRequestPayload,
|
||||
CreateManagerApprovalRequestPayload,
|
||||
CreateAcceptApprovalRequestPayload,
|
||||
} from '@/types/api/purchase/purchase';
|
||||
import { BaseApiService } from '@/services/api/base';
|
||||
import { BaseApiResponse } from '@/types/api/api-general';
|
||||
|
||||
export class PurchaseRequisitionsService extends BaseApiService<
|
||||
export class PurchaseRequestService extends BaseApiService<
|
||||
Purchase,
|
||||
CreatePurchaseRequisitionsPayload,
|
||||
UpdatePurchaseRequisitionsPayload
|
||||
CreatePurchaseRequestPayload,
|
||||
UpdatePurchaseRequestPayload
|
||||
> {
|
||||
constructor(basePath: string = '/purchases/requisitions') {
|
||||
constructor(basePath: string = '/purchases') {
|
||||
super(basePath);
|
||||
}
|
||||
|
||||
@@ -51,8 +51,8 @@ export class PurchaseRequisitionsService extends BaseApiService<
|
||||
|
||||
export class StaffApprovalService extends BaseApiService<
|
||||
Purchase,
|
||||
CreateStaffApprovalRequisitionsPayload,
|
||||
CreateAcceptApprovalRequisitionsPayload
|
||||
CreateStaffApprovalRequestPayload,
|
||||
CreateAcceptApprovalRequestPayload
|
||||
> {
|
||||
constructor(basePath: string = '') {
|
||||
super(basePath);
|
||||
@@ -60,7 +60,7 @@ export class StaffApprovalService extends BaseApiService<
|
||||
|
||||
async createStaffApproval(
|
||||
purchaseRequisitionId: number,
|
||||
payload: CreateStaffApprovalRequisitionsPayload
|
||||
payload: CreateStaffApprovalRequestPayload
|
||||
): Promise<BaseApiResponse<{ message: string }> | undefined> {
|
||||
return await this.customRequest<BaseApiResponse<{ message: string }>>(
|
||||
`${purchaseRequisitionId}/approvals/staff`,
|
||||
@@ -74,8 +74,8 @@ export class StaffApprovalService extends BaseApiService<
|
||||
|
||||
export class ManagerApprovalService extends BaseApiService<
|
||||
Purchase,
|
||||
CreateManagerApprovalRequisitionsPayload,
|
||||
CreateManagerApprovalRequisitionsPayload
|
||||
CreateManagerApprovalRequestPayload,
|
||||
CreateManagerApprovalRequestPayload
|
||||
> {
|
||||
constructor(basePath: string = '') {
|
||||
super(basePath);
|
||||
@@ -83,7 +83,7 @@ export class ManagerApprovalService extends BaseApiService<
|
||||
|
||||
async createManagerApproval(
|
||||
purchaseRequisitionId: number,
|
||||
payload: CreateManagerApprovalRequisitionsPayload
|
||||
payload: CreateManagerApprovalRequestPayload
|
||||
): Promise<BaseApiResponse<{ message: string }> | undefined> {
|
||||
return await this.customRequest<BaseApiResponse<{ message: string }>>(
|
||||
`${purchaseRequisitionId}/approvals/manager`,
|
||||
@@ -97,8 +97,8 @@ export class ManagerApprovalService extends BaseApiService<
|
||||
|
||||
export class AcceptApprovalService extends BaseApiService<
|
||||
Purchase,
|
||||
CreateAcceptApprovalRequisitionsPayload,
|
||||
CreateAcceptApprovalRequisitionsPayload
|
||||
CreateAcceptApprovalRequestPayload,
|
||||
CreateAcceptApprovalRequestPayload
|
||||
> {
|
||||
constructor(basePath: string = '') {
|
||||
super(basePath);
|
||||
@@ -106,7 +106,7 @@ export class AcceptApprovalService extends BaseApiService<
|
||||
|
||||
async acceptApproval(
|
||||
purchaseRequisitionId: number,
|
||||
payload: CreateAcceptApprovalRequisitionsPayload
|
||||
payload: CreateAcceptApprovalRequestPayload
|
||||
): Promise<BaseApiResponse<{ message: string }> | undefined> {
|
||||
return await this.customRequest<BaseApiResponse<{ message: string }>>(
|
||||
`${purchaseRequisitionId}/approvals/receipts`,
|
||||
@@ -118,16 +118,10 @@ export class AcceptApprovalService extends BaseApiService<
|
||||
}
|
||||
}
|
||||
|
||||
export const PurchaseRequisitionsApi = new PurchaseRequisitionsService();
|
||||
export const PurchaseRequestApi = new PurchaseRequestService();
|
||||
|
||||
export const StaffApprovalApi = new StaffApprovalService(
|
||||
'/purchases/requisitions'
|
||||
);
|
||||
export const StaffApprovalApi = new StaffApprovalService('/purchases');
|
||||
|
||||
export const ManagerApprovalApi = new ManagerApprovalService(
|
||||
'/purchases/requisitions'
|
||||
);
|
||||
export const ManagerApprovalApi = new ManagerApprovalService('/purchases');
|
||||
|
||||
export const AcceptApprovalApi = new AcceptApprovalService(
|
||||
'/purchases/requisitions'
|
||||
);
|
||||
export const AcceptApprovalApi = new AcceptApprovalService('/purchases');
|
||||
|
||||
Vendored
+5
-6
@@ -45,7 +45,7 @@ export type BasePurchase = {
|
||||
|
||||
export type Purchase = BaseMetadata & BasePurchase;
|
||||
|
||||
export type CreatePurchaseRequisitionsPayload = {
|
||||
export type CreatePurchaseRequestPayload = {
|
||||
supplier_id: number;
|
||||
area_id: number;
|
||||
location_id: number;
|
||||
@@ -58,7 +58,7 @@ export type CreatePurchaseRequisitionsPayload = {
|
||||
}[];
|
||||
};
|
||||
|
||||
export type CreateStaffApprovalRequisitionsPayload = {
|
||||
export type CreateStaffApprovalRequestPayload = {
|
||||
notes?: string | null;
|
||||
items: {
|
||||
purchase_item_id: number;
|
||||
@@ -67,11 +67,11 @@ export type CreateStaffApprovalRequisitionsPayload = {
|
||||
}[];
|
||||
};
|
||||
|
||||
export type CreateManagerApprovalRequisitionsPayload = {
|
||||
export type CreateManagerApprovalRequestPayload = {
|
||||
notes?: string | null;
|
||||
};
|
||||
|
||||
export type CreateAcceptApprovalRequisitionsPayload = {
|
||||
export type CreateAcceptApprovalRequestPayload = {
|
||||
notes?: string;
|
||||
items: {
|
||||
purchase_item_id: number;
|
||||
@@ -87,5 +87,4 @@ export type CreateAcceptApprovalRequisitionsPayload = {
|
||||
}[];
|
||||
};
|
||||
|
||||
export type UpdatePurchaseRequisitionsPayload =
|
||||
CreatePurchaseRequisitionsPayload;
|
||||
export type UpdatePurchaseRequestPayload = CreatePurchaseRequestPayload;
|
||||
|
||||
Reference in New Issue
Block a user