Files
lti-web-client/src/services/api/logistic.ts
T

76 lines
2.0 KiB
TypeScript

import { BaseApiService } from '@/services/api/base';
import { BaseApiResponse } from '@/types/api/api-general';
import { LogisticPurchasePerSupplierReport } from '@/types/api/report/logistic-stock';
const baseLogisticApi = new BaseApiService<
LogisticPurchasePerSupplierReport,
unknown,
unknown
>('/reports');
export class LogisticApi extends BaseApiService<
LogisticPurchasePerSupplierReport,
unknown,
unknown
> {
constructor(basePath: string = '') {
super(basePath);
}
async getLogisticStockReport(
area_id?: number,
supplier_id?: number,
product_id?: number,
received_date?: string,
po_date?: string,
start_date?: string,
end_date?: string
): Promise<BaseApiResponse<LogisticPurchasePerSupplierReport> | undefined> {
return await this.customRequest<
BaseApiResponse<LogisticPurchasePerSupplierReport>
>(`purchase-supplier`, {
method: 'GET',
params: {
area_id: area_id,
supplier_id: supplier_id,
product_id: product_id,
received_date: received_date,
po_date: po_date,
start_date: start_date,
end_date: end_date,
},
});
}
}
export const LogisticService = {
basePath: baseLogisticApi.basePath,
header: baseLogisticApi.header,
getAllFetcher: baseLogisticApi.getAllFetcher.bind(baseLogisticApi),
getSingle: baseLogisticApi.getSingle.bind(baseLogisticApi),
create: baseLogisticApi.create.bind(baseLogisticApi),
update: baseLogisticApi.update.bind(baseLogisticApi),
delete: baseLogisticApi.delete.bind(baseLogisticApi),
customRequest: baseLogisticApi.customRequest.bind(baseLogisticApi),
// Custom method for specific endpoint
getLogisticStockReport: (
area_id?: number,
supplier_id?: number,
product_id?: number,
received_date?: string,
po_date?: string,
start_date?: string,
end_date?: string
) =>
new LogisticApi().getLogisticStockReport(
area_id,
supplier_id,
product_id,
received_date,
po_date,
start_date,
end_date
),
};