This commit is contained in:
@@ -44,7 +44,7 @@ export default function DisciplinesPage() {
|
||||
];
|
||||
|
||||
const contractOptions = contracts.map((c) => ({
|
||||
label: `${c.contractName} (${c.contractNo})`,
|
||||
label: `${c.contractName} (${c.contractCode})`,
|
||||
value: c.id,
|
||||
}));
|
||||
|
||||
@@ -57,7 +57,7 @@ export default function DisciplinesPage() {
|
||||
queryKey={['disciplines', selectedContractId ?? 'all']}
|
||||
fetchFn={() => masterDataService.getDisciplines(selectedContractId ? parseInt(selectedContractId) : undefined)}
|
||||
createFn={(data: Record<string, unknown>) => masterDataService.createDiscipline(data as unknown as Parameters<typeof masterDataService.createDiscipline>[0])}
|
||||
updateFn={(id, data) => Promise.reject('Not implemented yet')} // Update endpoint needs to be verified/added if missing
|
||||
updateFn={(id, data) => Promise.reject('Not implemented yet')}
|
||||
deleteFn={(id) => masterDataService.deleteDiscipline(id)}
|
||||
columns={columns}
|
||||
filters={
|
||||
@@ -73,7 +73,7 @@ export default function DisciplinesPage() {
|
||||
<SelectItem value="all">All Contracts</SelectItem>
|
||||
{contracts.map((c) => (
|
||||
<SelectItem key={c.id} value={c.id.toString()}>
|
||||
{c.contractName} ({c.contractNo})
|
||||
{c.contractName} ({c.contractCode})
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectContent>
|
||||
|
||||
@@ -48,7 +48,7 @@ export default function RfaTypesPage() {
|
||||
];
|
||||
|
||||
const contractOptions = contracts.map((c) => ({
|
||||
label: `${c.contractName} (${c.contractNo})`,
|
||||
label: `${c.contractName} (${c.contractCode})`,
|
||||
value: c.id,
|
||||
}));
|
||||
|
||||
@@ -76,7 +76,7 @@ export default function RfaTypesPage() {
|
||||
<SelectItem value="all">All Contracts</SelectItem>
|
||||
{contracts.map((c) => (
|
||||
<SelectItem key={c.id} value={c.id.toString()}>
|
||||
{c.contractName} ({c.contractNo})
|
||||
{c.contractName} ({c.contractCode})
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectContent>
|
||||
|
||||
@@ -57,6 +57,7 @@ export default function TagsPage() {
|
||||
|
||||
const formatPayload = (data: Record<string, unknown>) => {
|
||||
const payload = { ...data };
|
||||
// Backend entity uses project_id (underscore) per ADR-017/018 schema
|
||||
if (!payload.project_id || payload.project_id === "") {
|
||||
payload.project_id = null;
|
||||
} else {
|
||||
|
||||
@@ -125,18 +125,18 @@ export const numberingApi = {
|
||||
* Get all templates
|
||||
*/
|
||||
getTemplates: async (): Promise<NumberingTemplate[]> => {
|
||||
const res = await apiClient.get<NumberingTemplate[]>('/admin/document-numbering/templates');
|
||||
return res.data;
|
||||
const res = await apiClient.get<any>('/admin/document-numbering/templates');
|
||||
return res.data.data || res.data;
|
||||
},
|
||||
|
||||
/**
|
||||
* Get templates for a specific project
|
||||
*/
|
||||
getTemplatesByProject: async (projectId: number): Promise<NumberingTemplate[]> => {
|
||||
const res = await apiClient.get<NumberingTemplate[]>(
|
||||
const res = await apiClient.get<any>(
|
||||
`/admin/document-numbering/templates?projectId=${projectId}`
|
||||
);
|
||||
return res.data;
|
||||
return res.data.data || res.data;
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -151,11 +151,11 @@ export const numberingApi = {
|
||||
* Save (create or update) a template
|
||||
*/
|
||||
saveTemplate: async (dto: Partial<NumberingTemplate>): Promise<NumberingTemplate> => {
|
||||
const res = await apiClient.post<NumberingTemplate>(
|
||||
const res = await apiClient.post<any>(
|
||||
'/admin/document-numbering/templates',
|
||||
dto
|
||||
);
|
||||
return res.data;
|
||||
return res.data.data || res.data;
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -173,30 +173,30 @@ export const numberingApi = {
|
||||
* Get audit logs
|
||||
*/
|
||||
getAuditLogs: async (limit = 100): Promise<DocumentNumberAudit[]> => {
|
||||
const res = await apiClient.get<DocumentNumberAudit[]>(
|
||||
const res = await apiClient.get<any>(
|
||||
`/document-numbering/logs/audit?limit=${limit}`
|
||||
);
|
||||
return res.data;
|
||||
return res.data.data || res.data;
|
||||
},
|
||||
|
||||
/**
|
||||
* Get error logs
|
||||
*/
|
||||
getErrorLogs: async (limit = 100): Promise<DocumentNumberError[]> => {
|
||||
const res = await apiClient.get<DocumentNumberError[]>(
|
||||
const res = await apiClient.get<any>(
|
||||
`/document-numbering/logs/errors?limit=${limit}`
|
||||
);
|
||||
return res.data;
|
||||
return res.data.data || res.data;
|
||||
},
|
||||
|
||||
/**
|
||||
* Get metrics (audit + errors combined)
|
||||
*/
|
||||
getMetrics: async (): Promise<{ audit: DocumentNumberAudit[]; errors: DocumentNumberError[] }> => {
|
||||
const res = await apiClient.get<{ audit: DocumentNumberAudit[]; errors: DocumentNumberError[] }>(
|
||||
const res = await apiClient.get<any>(
|
||||
'/admin/document-numbering/metrics'
|
||||
);
|
||||
return res.data;
|
||||
return res.data.data || res.data;
|
||||
},
|
||||
|
||||
// ----------------------------------------------------------
|
||||
@@ -207,44 +207,44 @@ export const numberingApi = {
|
||||
* Manually override/set a counter value
|
||||
*/
|
||||
manualOverride: async (dto: ManualOverrideDto): Promise<{ success: boolean; message: string }> => {
|
||||
const res = await apiClient.post<{ success: boolean; message: string }>(
|
||||
const res = await apiClient.post<any>(
|
||||
'/admin/document-numbering/manual-override',
|
||||
dto
|
||||
);
|
||||
return res.data;
|
||||
return res.data.data || res.data;
|
||||
},
|
||||
|
||||
/**
|
||||
* Void a document number and generate replacement
|
||||
*/
|
||||
voidAndReplace: async (dto: VoidAndReplaceDto): Promise<{ newNumber: string; auditId: number }> => {
|
||||
const res = await apiClient.post<{ newNumber: string; auditId: number }>(
|
||||
const res = await apiClient.post<any>(
|
||||
'/admin/document-numbering/void-and-replace',
|
||||
dto
|
||||
);
|
||||
return res.data;
|
||||
return res.data.data || res.data;
|
||||
},
|
||||
|
||||
/**
|
||||
* Cancel/skip a document number
|
||||
*/
|
||||
cancelNumber: async (dto: CancelNumberDto): Promise<{ success: boolean }> => {
|
||||
const res = await apiClient.post<{ success: boolean }>(
|
||||
const res = await apiClient.post<any>(
|
||||
'/admin/document-numbering/cancel',
|
||||
dto
|
||||
);
|
||||
return res.data;
|
||||
return res.data.data || res.data;
|
||||
},
|
||||
|
||||
/**
|
||||
* Bulk import counter values
|
||||
*/
|
||||
bulkImport: async (items: BulkImportItem[]): Promise<{ imported: number; errors: string[] }> => {
|
||||
const res = await apiClient.post<{ imported: number; errors: string[] }>(
|
||||
const res = await apiClient.post<any>(
|
||||
'/admin/document-numbering/bulk-import',
|
||||
items
|
||||
);
|
||||
return res.data;
|
||||
return res.data.data || res.data;
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -265,8 +265,8 @@ export const numberingApi = {
|
||||
const url = projectId
|
||||
? `/document-numbering/sequences?projectId=${projectId}`
|
||||
: '/document-numbering/sequences';
|
||||
const res = await apiClient.get<NumberSequence[]>(url);
|
||||
return res.data;
|
||||
const res = await apiClient.get<any>(url);
|
||||
return res.data.data || res.data;
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
@@ -119,12 +119,12 @@ export const drawingMasterDataService = {
|
||||
|
||||
async createContractVolume(data: CreateContractVolumeDto): Promise<ContractVolume> {
|
||||
const response = await apiClient.post(`/drawings/master-data/contract/volumes`, data);
|
||||
return response.data;
|
||||
return response.data?.data || response.data;
|
||||
},
|
||||
|
||||
async updateContractVolume(id: number, data: Partial<CreateContractVolumeDto>): Promise<ContractVolume> {
|
||||
const response = await apiClient.patch(`/drawings/master-data/contract/volumes/${id}`, data);
|
||||
return response.data;
|
||||
return response.data?.data || response.data;
|
||||
},
|
||||
|
||||
async deleteContractVolume(id: number): Promise<void> {
|
||||
@@ -141,12 +141,12 @@ export const drawingMasterDataService = {
|
||||
|
||||
async createContractCategory(data: CreateContractCategoryDto): Promise<ContractCategory> {
|
||||
const response = await apiClient.post(`/drawings/master-data/contract/categories`, data);
|
||||
return response.data;
|
||||
return response.data?.data || response.data;
|
||||
},
|
||||
|
||||
async updateContractCategory(id: number, data: Partial<CreateContractCategoryDto>): Promise<ContractCategory> {
|
||||
const response = await apiClient.patch(`/drawings/master-data/contract/categories/${id}`, data);
|
||||
return response.data;
|
||||
return response.data?.data || response.data;
|
||||
},
|
||||
|
||||
async deleteContractCategory(id: number): Promise<void> {
|
||||
@@ -163,7 +163,7 @@ export const drawingMasterDataService = {
|
||||
|
||||
async createContractSubCategory(data: CreateContractSubCategoryDto): Promise<ContractSubCategory> {
|
||||
const response = await apiClient.post(`/drawings/master-data/contract/sub-categories`, data);
|
||||
return response.data;
|
||||
return response.data?.data || response.data;
|
||||
},
|
||||
|
||||
async updateContractSubCategory(
|
||||
@@ -171,7 +171,7 @@ export const drawingMasterDataService = {
|
||||
data: Partial<CreateContractSubCategoryDto>
|
||||
): Promise<ContractSubCategory> {
|
||||
const response = await apiClient.patch(`/drawings/master-data/contract/sub-categories/${id}`, data);
|
||||
return response.data;
|
||||
return response.data?.data || response.data;
|
||||
},
|
||||
|
||||
async deleteContractSubCategory(id: number): Promise<void> {
|
||||
@@ -195,7 +195,7 @@ export const drawingMasterDataService = {
|
||||
subCategoryId: number;
|
||||
}): Promise<{ id: number }> {
|
||||
const response = await apiClient.post(`/drawings/master-data/contract/mappings`, data);
|
||||
return response.data;
|
||||
return response.data?.data || response.data;
|
||||
},
|
||||
|
||||
async deleteContractMapping(id: number): Promise<void> {
|
||||
@@ -212,12 +212,12 @@ export const drawingMasterDataService = {
|
||||
|
||||
async createShopMainCategory(data: CreateShopMainCategoryDto): Promise<ShopMainCategory> {
|
||||
const response = await apiClient.post(`/drawings/master-data/shop/main-categories`, data);
|
||||
return response.data;
|
||||
return response.data?.data || response.data;
|
||||
},
|
||||
|
||||
async updateShopMainCategory(id: number, data: Partial<CreateShopMainCategoryDto>): Promise<ShopMainCategory> {
|
||||
const response = await apiClient.patch(`/drawings/master-data/shop/main-categories/${id}`, data);
|
||||
return response.data;
|
||||
return response.data?.data || response.data;
|
||||
},
|
||||
|
||||
async deleteShopMainCategory(id: number): Promise<void> {
|
||||
@@ -234,12 +234,12 @@ export const drawingMasterDataService = {
|
||||
|
||||
async createShopSubCategory(data: CreateShopSubCategoryDto): Promise<ShopSubCategory> {
|
||||
const response = await apiClient.post(`/drawings/master-data/shop/sub-categories`, data);
|
||||
return response.data;
|
||||
return response.data?.data || response.data;
|
||||
},
|
||||
|
||||
async updateShopSubCategory(id: number, data: Partial<CreateShopSubCategoryDto>): Promise<ShopSubCategory> {
|
||||
const response = await apiClient.patch(`/drawings/master-data/shop/sub-categories/${id}`, data);
|
||||
return response.data;
|
||||
return response.data?.data || response.data;
|
||||
},
|
||||
|
||||
async deleteShopSubCategory(id: number): Promise<void> {
|
||||
|
||||
Reference in New Issue
Block a user