refactor(FE-208): rename PurchaseRequisitions to PurchaseRequest and update related API references

This commit is contained in:
rstubryan
2025-11-17 09:21:18 +07:00
parent 64605b168e
commit c951f09667
12 changed files with 118 additions and 135 deletions
+4 -4
View File
@@ -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;
+4 -4
View File
@@ -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>
);
+4 -4
View File
@@ -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,
};
+22 -28
View File
@@ -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');
+5 -6
View File
@@ -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;