mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-20 13:32:00 +00:00
feat(FE-212): add manager approval requisition type and service with nullable notes
This commit is contained in:
@@ -14,6 +14,10 @@ type PurchaseRequisitionsStaffApprovalFormSchemaType = {
|
||||
}[];
|
||||
};
|
||||
|
||||
type PurchaseRequisitionsManagerApprovalFormSchemaType = {
|
||||
notes: string | null;
|
||||
};
|
||||
|
||||
type PurchaseRequisitionsAcceptApprovalFormSchemaType = {
|
||||
notes: string | null;
|
||||
items: {
|
||||
@@ -124,6 +128,11 @@ const PurchaseStaffApprovalItemObjectSchema: Yup.ObjectSchema<PurchaseStaffAppro
|
||||
),
|
||||
});
|
||||
|
||||
const PurchaseManagerApprovalObjectSchema: Yup.ObjectSchema<PurchaseRequisitionsManagerApprovalFormSchemaType> =
|
||||
Yup.object({
|
||||
notes: Yup.string().nullable().default(null),
|
||||
});
|
||||
|
||||
const PurchaseAcceptApprovalItemObjectSchema: Yup.ObjectSchema<PurchaseAcceptApprovalItemSchema> =
|
||||
Yup.object({
|
||||
purchase_item: Yup.object({
|
||||
@@ -277,6 +286,21 @@ export type PurchaseRequisitionsStaffApprovalFormValues = Yup.InferType<
|
||||
typeof PurchaseRequisitionsStaffApprovalFormSchema
|
||||
>;
|
||||
|
||||
export const PurchaseRequisitionsManagerApprovalFormSchema: Yup.ObjectSchema<PurchaseRequisitionsManagerApprovalFormSchemaType> =
|
||||
PurchaseManagerApprovalObjectSchema;
|
||||
|
||||
export const PurchaseRequisitionsManagerApprovalFormDefaultValues = (
|
||||
purchase?: Purchase
|
||||
): PurchaseRequisitionsManagerApprovalFormSchemaType => {
|
||||
return {
|
||||
notes: purchase?.notes ?? null,
|
||||
};
|
||||
};
|
||||
|
||||
export type PurchaseRequisitionsManagerApprovalFormValues = Yup.InferType<
|
||||
typeof PurchaseRequisitionsManagerApprovalFormSchema
|
||||
>;
|
||||
|
||||
export const PurchaseRequisitionsAcceptApprovalFormSchema: Yup.ObjectSchema<PurchaseRequisitionsAcceptApprovalFormSchemaType> =
|
||||
Yup.object({
|
||||
notes: Yup.string().nullable().default(null),
|
||||
|
||||
@@ -3,6 +3,7 @@ import {
|
||||
Purchase,
|
||||
UpdatePurchaseRequisitionsPayload,
|
||||
CreateStaffApprovalRequisitionsPayload,
|
||||
CreateManagerApprovalRequisitionsPayload,
|
||||
CreateAcceptApprovalRequisitionsPayload,
|
||||
} from '@/types/api/purchase/purchase';
|
||||
import { BaseApiService } from '@/services/api/base';
|
||||
@@ -48,8 +49,6 @@ export class PurchaseRequisitionsService extends BaseApiService<
|
||||
}
|
||||
}
|
||||
|
||||
export const PurchaseRequisitionsApi = new PurchaseRequisitionsService();
|
||||
|
||||
export class StaffApprovalService extends BaseApiService<
|
||||
Purchase,
|
||||
CreateStaffApprovalRequisitionsPayload,
|
||||
@@ -73,6 +72,29 @@ export class StaffApprovalService extends BaseApiService<
|
||||
}
|
||||
}
|
||||
|
||||
export class ManagerApprovalService extends BaseApiService<
|
||||
Purchase,
|
||||
CreateManagerApprovalRequisitionsPayload,
|
||||
CreateManagerApprovalRequisitionsPayload
|
||||
> {
|
||||
constructor(basePath: string = '') {
|
||||
super(basePath);
|
||||
}
|
||||
|
||||
async createManagerApproval(
|
||||
purchaseRequisitionId: number,
|
||||
payload: CreateManagerApprovalRequisitionsPayload
|
||||
): Promise<BaseApiResponse<{ message: string }> | undefined> {
|
||||
return await this.customRequest<BaseApiResponse<{ message: string }>>(
|
||||
`${purchaseRequisitionId}/approvals/manager`,
|
||||
{
|
||||
method: 'POST',
|
||||
payload,
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export class AcceptApprovalService extends BaseApiService<
|
||||
Purchase,
|
||||
CreateAcceptApprovalRequisitionsPayload,
|
||||
@@ -96,10 +118,16 @@ export class AcceptApprovalService extends BaseApiService<
|
||||
}
|
||||
}
|
||||
|
||||
export const PurchaseRequisitionsApi = new PurchaseRequisitionsService();
|
||||
|
||||
export const StaffApprovalApi = new StaffApprovalService(
|
||||
'/purchases/requisitions'
|
||||
);
|
||||
|
||||
export const ManagerApprovalApi = new ManagerApprovalService(
|
||||
'/purchases/requisitions'
|
||||
);
|
||||
|
||||
export const AcceptApprovalApi = new AcceptApprovalService(
|
||||
'/purchases/requisitions'
|
||||
);
|
||||
|
||||
Vendored
+5
-1
@@ -58,7 +58,7 @@ export type CreatePurchaseRequisitionsPayload = {
|
||||
};
|
||||
|
||||
export type CreateStaffApprovalRequisitionsPayload = {
|
||||
notes: string;
|
||||
notes?: string | null;
|
||||
items: {
|
||||
purchase_item_id: number;
|
||||
price: number;
|
||||
@@ -66,6 +66,10 @@ export type CreateStaffApprovalRequisitionsPayload = {
|
||||
}[];
|
||||
};
|
||||
|
||||
export type CreateManagerApprovalRequisitionsPayload = {
|
||||
notes?: string | null;
|
||||
};
|
||||
|
||||
export type CreateAcceptApprovalRequisitionsPayload = {
|
||||
notes?: string;
|
||||
items: {
|
||||
|
||||
Reference in New Issue
Block a user