diff --git a/src/components/pages/purchase/form/order/PurchaseOrderForm.schema.ts b/src/components/pages/purchase/form/order/PurchaseOrderForm.schema.ts index 209671cf..725e6085 100644 --- a/src/components/pages/purchase/form/order/PurchaseOrderForm.schema.ts +++ b/src/components/pages/purchase/form/order/PurchaseOrderForm.schema.ts @@ -4,6 +4,7 @@ import { Purchase } from '@/types/api/purchase/purchase'; type PurchaseRequestStaffApprovalFormSchemaType = { notes: string | null; items: { + purchase_item_id?: number; product_id: number; warehouse_id: number; qty: number; @@ -45,6 +46,7 @@ type PurchaseRequestAcceptApprovalFormSchemaType = { }; export type PurchaseStaffApprovalItemSchema = { + purchase_item_id?: number; product_id: number; warehouse_id: number; qty: number; @@ -83,6 +85,10 @@ export type PurchaseDeleteItemsSchema = { const PurchaseStaffApprovalItemObjectSchema: Yup.ObjectSchema = 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() .required('Produk wajib diisi!') .min(1, 'Produk wajib diisi!') @@ -281,6 +287,7 @@ export const PurchaseRequestStaffApprovalFormDefaultValues = ( notes: purchase?.notes ?? null, items: purchase?.items ? purchase.items.map((item) => ({ + purchase_item_id: item.id, product_id: item.product_id, warehouse_id: item.warehouse.id, qty: item.qty, diff --git a/src/services/api/purchase.ts b/src/services/api/purchase.ts index 865ae59c..79eec1fe 100644 --- a/src/services/api/purchase.ts +++ b/src/services/api/purchase.ts @@ -3,6 +3,7 @@ import { Purchase, UpdatePurchaseRequestPayload, CreateStaffApprovalRequestPayload, + UpdateStaffApprovalRequestPayload, CreateManagerApprovalRequestPayload, CreateAcceptApprovalRequestPayload, DeletePurchaseRequestItemPayload, @@ -19,7 +20,7 @@ export const PurchaseRequestApi = new BaseApiService< export class StaffApprovalService extends BaseApiService< Purchase, CreateStaffApprovalRequestPayload, - unknown + UpdateStaffApprovalRequestPayload > { constructor(basePath: string = '') { super(basePath); @@ -37,6 +38,19 @@ export class StaffApprovalService extends BaseApiService< } ); } + + async updateStaffApproval( + purchaseRequestId: number, + payload: UpdateStaffApprovalRequestPayload + ): Promise | undefined> { + return await this.customRequest>( + `${purchaseRequestId}/approvals/staff`, + { + method: 'POST', + payload, + } + ); + } } export class ManagerApprovalService extends BaseApiService<