refactor(FE-212): add updateStaffApproval method and enhance PurchaseStaffApprovalItem schema with optional purchase_item_id

This commit is contained in:
rstubryan
2025-11-18 22:28:27 +07:00
parent 3d468d9507
commit f4bb87550c
2 changed files with 22 additions and 1 deletions
@@ -4,6 +4,7 @@ import { Purchase } from '@/types/api/purchase/purchase';
type PurchaseRequestStaffApprovalFormSchemaType = { type PurchaseRequestStaffApprovalFormSchemaType = {
notes: string | null; notes: string | null;
items: { items: {
purchase_item_id?: number;
product_id: number; product_id: number;
warehouse_id: number; warehouse_id: number;
qty: number; qty: number;
@@ -45,6 +46,7 @@ type PurchaseRequestAcceptApprovalFormSchemaType = {
}; };
export type PurchaseStaffApprovalItemSchema = { export type PurchaseStaffApprovalItemSchema = {
purchase_item_id?: number;
product_id: number; product_id: number;
warehouse_id: number; warehouse_id: number;
qty: number; qty: number;
@@ -83,6 +85,10 @@ export type PurchaseDeleteItemsSchema = {
const PurchaseStaffApprovalItemObjectSchema: Yup.ObjectSchema<PurchaseStaffApprovalItemSchema> = const PurchaseStaffApprovalItemObjectSchema: Yup.ObjectSchema<PurchaseStaffApprovalItemSchema> =
Yup.object({ Yup.object({
purchase_item_id: Yup.number()
.optional()
.min(1, 'Purchase item ID tidak valid!')
.typeError('Purchase item ID harus berupa angka!'),
product_id: Yup.number() product_id: Yup.number()
.required('Produk wajib diisi!') .required('Produk wajib diisi!')
.min(1, 'Produk wajib diisi!') .min(1, 'Produk wajib diisi!')
@@ -281,6 +287,7 @@ export const PurchaseRequestStaffApprovalFormDefaultValues = (
notes: purchase?.notes ?? null, notes: purchase?.notes ?? null,
items: purchase?.items items: purchase?.items
? purchase.items.map((item) => ({ ? purchase.items.map((item) => ({
purchase_item_id: item.id,
product_id: item.product_id, product_id: item.product_id,
warehouse_id: item.warehouse.id, warehouse_id: item.warehouse.id,
qty: item.qty, qty: item.qty,
+15 -1
View File
@@ -3,6 +3,7 @@ import {
Purchase, Purchase,
UpdatePurchaseRequestPayload, UpdatePurchaseRequestPayload,
CreateStaffApprovalRequestPayload, CreateStaffApprovalRequestPayload,
UpdateStaffApprovalRequestPayload,
CreateManagerApprovalRequestPayload, CreateManagerApprovalRequestPayload,
CreateAcceptApprovalRequestPayload, CreateAcceptApprovalRequestPayload,
DeletePurchaseRequestItemPayload, DeletePurchaseRequestItemPayload,
@@ -19,7 +20,7 @@ export const PurchaseRequestApi = new BaseApiService<
export class StaffApprovalService extends BaseApiService< export class StaffApprovalService extends BaseApiService<
Purchase, Purchase,
CreateStaffApprovalRequestPayload, CreateStaffApprovalRequestPayload,
unknown UpdateStaffApprovalRequestPayload
> { > {
constructor(basePath: string = '') { constructor(basePath: string = '') {
super(basePath); super(basePath);
@@ -37,6 +38,19 @@ export class StaffApprovalService extends BaseApiService<
} }
); );
} }
async updateStaffApproval(
purchaseRequestId: number,
payload: UpdateStaffApprovalRequestPayload
): Promise<BaseApiResponse<{ message: string }> | undefined> {
return await this.customRequest<BaseApiResponse<{ message: string }>>(
`${purchaseRequestId}/approvals/staff`,
{
method: 'POST',
payload,
}
);
}
} }
export class ManagerApprovalService extends BaseApiService< export class ManagerApprovalService extends BaseApiService<