feat(FE-212): refactor purchase requisitions services and update item schema for approval process

This commit is contained in:
rstubryan
2025-11-11 13:23:48 +07:00
parent f7b2e3c6f2
commit 21ac73527d
2 changed files with 39 additions and 18 deletions
+30 -9
View File
@@ -8,18 +8,12 @@ import {
import { BaseApiService } from '@/services/api/base';
import { BaseApiResponse } from '@/types/api/api-general';
export const PurchaseRequisitionsApi = new BaseApiService<
export class PurchaseRequisitionsService extends BaseApiService<
Purchase,
CreatePurchaseRequisitionsPayload,
UpdatePurchaseRequisitionsPayload
>('/purchases/requisitions');
export class StaffApprovalService extends BaseApiService<
Purchase,
CreateStaffApprovalRequisitionsPayload,
CreateAcceptApprovalRequisitionsPayload
> {
constructor(basePath: string = '') {
constructor(basePath: string = '/purchases/requisitions') {
super(basePath);
}
@@ -52,6 +46,18 @@ export class StaffApprovalService extends BaseApiService<
},
});
}
}
export const PurchaseRequisitionsApi = new PurchaseRequisitionsService();
export class StaffApprovalService extends BaseApiService<
Purchase,
CreateStaffApprovalRequisitionsPayload,
CreateAcceptApprovalRequisitionsPayload
> {
constructor(basePath: string = '') {
super(basePath);
}
async createStaffApproval(
purchaseRequisitionId: number,
@@ -66,12 +72,23 @@ export class StaffApprovalService extends BaseApiService<
);
}
}
export class AcceptApprovalService extends BaseApiService<
Purchase,
CreateAcceptApprovalRequisitionsPayload,
CreateAcceptApprovalRequisitionsPayload
> {
constructor(basePath: string = '') {
super(basePath);
}
async acceptApproval(
purchaseRequisitionId: number,
payload: CreateAcceptApprovalRequisitionsPayload
): Promise<BaseApiResponse<{ message: string }> | undefined> {
return await this.customRequest<BaseApiResponse<{ message: string }>>(
`${purchaseRequisitionId}/approvals/accept`,
`${purchaseRequisitionId}/approvals/receipts`,
{
method: 'POST',
payload,
@@ -83,3 +100,7 @@ export class StaffApprovalService extends BaseApiService<
export const StaffApprovalApi = new StaffApprovalService(
'/purchases/requisitions'
);
export const AcceptApprovalApi = new AcceptApprovalService(
'/purchases/requisitions'
);
+9 -9
View File
@@ -60,15 +60,15 @@ export type CreateAcceptApprovalRequisitionsPayload = {
notes?: string;
items: {
purchase_item_id: number;
accepted_date: string;
destination_warehouse_id: number;
delivery_document_number: string;
delivery_vehicle_plate: string;
document_index?: number;
received_quantity: number;
expedition_id: number;
transport_cost: number;
transport_cost_per_item: number;
received_date: string;
warehouse_id: number;
travel_number: string;
travel_document_path: string;
vehicle_number: string;
expedition_vendor_id: number;
received_qty: number;
transport_per_item: number;
transport_total: number;
}[];
};