@apptimate/core-lib 3.8.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apptimate/core-lib",
3
- "version": "3.8.0",
3
+ "version": "4.0.0",
4
4
  "main": "src/index.ts",
5
5
  "types": "src/index.ts",
6
6
  "publishConfig": {
@@ -0,0 +1,173 @@
1
+ import { sendRequest } from "../utils/httpClient";
2
+ import { IApiResponse } from "../common/interfaces/ICommon";
3
+
4
+ const API = process.env.NEXT_PUBLIC_API_URL;
5
+ const BASE = `${API}/api/printable-templates`;
6
+ const GROUPS_BASE = `${API}/api/template-groups`;
7
+ const DOC_TYPES_BASE = `${API}/api/document-type-settings`;
8
+
9
+ // ── Template Groups ──
10
+
11
+ export async function getTemplateCategories(): Promise<IApiResponse> {
12
+ const response = await sendRequest({ url: `${GROUPS_BASE}/categories`, method: "GET" });
13
+ return response.responseData as IApiResponse;
14
+ }
15
+
16
+ export async function getDatabaseColumns(category: string = "general"): Promise<IApiResponse> {
17
+ const response = await sendRequest({ url: `${GROUPS_BASE}/database-columns?category=${category}`, method: "GET" });
18
+ return response.responseData as IApiResponse;
19
+ }
20
+
21
+ export async function lookupTemplateGroups(): Promise<IApiResponse> {
22
+ const response = await sendRequest({ url: `${GROUPS_BASE}/lookup`, method: "GET" });
23
+ return response.responseData as IApiResponse;
24
+ }
25
+
26
+ export async function getTemplateGroups(params: Record<string, string | number> = {}): Promise<IApiResponse> {
27
+ const qs = new URLSearchParams(params as Record<string, string>).toString();
28
+ const response = await sendRequest({ url: `${GROUPS_BASE}${qs ? `?${qs}` : ""}`, method: "GET" });
29
+ return response.responseData as IApiResponse;
30
+ }
31
+
32
+ export async function getTemplateGroup(id: number): Promise<IApiResponse> {
33
+ const response = await sendRequest({ url: `${GROUPS_BASE}/${id}`, method: "GET" });
34
+ return response.responseData as IApiResponse;
35
+ }
36
+
37
+ export async function createTemplateGroup(data: any): Promise<IApiResponse> {
38
+ const response = await sendRequest({ url: GROUPS_BASE, method: "POST", data });
39
+ return response.responseData as IApiResponse;
40
+ }
41
+
42
+ export async function updateTemplateGroup(id: number, data: any): Promise<IApiResponse> {
43
+ const response = await sendRequest({ url: `${GROUPS_BASE}/${id}`, method: "PUT", data });
44
+ return response.responseData as IApiResponse;
45
+ }
46
+
47
+ export async function deleteTemplateGroup(id: number): Promise<IApiResponse> {
48
+ const response = await sendRequest({ url: `${GROUPS_BASE}/${id}`, method: "DELETE" });
49
+ return response.responseData as IApiResponse;
50
+ }
51
+
52
+ // ── Template Tokens ──
53
+
54
+ export async function getTemplateTokens(groupId: number): Promise<IApiResponse> {
55
+ const response = await sendRequest({ url: `${GROUPS_BASE}/${groupId}/tokens`, method: "GET" });
56
+ return response.responseData as IApiResponse;
57
+ }
58
+
59
+ export async function createTemplateToken(groupId: number, data: any): Promise<IApiResponse> {
60
+ const response = await sendRequest({ url: `${GROUPS_BASE}/${groupId}/tokens`, method: "POST", data });
61
+ return response.responseData as IApiResponse;
62
+ }
63
+
64
+ export async function updateTemplateToken(id: number, data: any): Promise<IApiResponse> {
65
+ const response = await sendRequest({ url: `${API}/api/template-tokens/${id}`, method: "PUT", data });
66
+ return response.responseData as IApiResponse;
67
+ }
68
+
69
+ export async function deleteTemplateToken(id: number): Promise<IApiResponse> {
70
+ const response = await sendRequest({ url: `${API}/api/template-tokens/${id}`, method: "DELETE" });
71
+ return response.responseData as IApiResponse;
72
+ }
73
+
74
+ // ── Printable Templates ──
75
+
76
+ export async function lookupPrintableTemplates(type?: string, groupId?: number): Promise<IApiResponse> {
77
+ const params = new URLSearchParams();
78
+ if (type) params.set("type", type);
79
+ if (groupId) params.set("template_group_id", String(groupId));
80
+ const qs = params.toString();
81
+ const response = await sendRequest({ url: `${BASE}/lookup${qs ? `?${qs}` : ""}`, method: "GET" });
82
+ return response.responseData as IApiResponse;
83
+ }
84
+
85
+ export async function getPrintableTemplates(params: Record<string, string | number> = {}): Promise<IApiResponse> {
86
+ const qs = new URLSearchParams(params as Record<string, string>).toString();
87
+ const response = await sendRequest({ url: `${BASE}${qs ? `?${qs}` : ""}`, method: "GET" });
88
+ return response.responseData as IApiResponse;
89
+ }
90
+
91
+ export async function getPrintableTemplate(id: number): Promise<IApiResponse> {
92
+ const response = await sendRequest({ url: `${BASE}/${id}`, method: "GET" });
93
+ return response.responseData as IApiResponse;
94
+ }
95
+
96
+ export async function createPrintableTemplate(data: any): Promise<IApiResponse> {
97
+ const response = await sendRequest({ url: BASE, method: "POST", data });
98
+ return response.responseData as IApiResponse;
99
+ }
100
+
101
+ export async function updatePrintableTemplate(id: number, data: any): Promise<IApiResponse> {
102
+ const response = await sendRequest({ url: `${BASE}/${id}`, method: "PUT", data });
103
+ return response.responseData as IApiResponse;
104
+ }
105
+
106
+ export async function deletePrintableTemplate(id: number): Promise<IApiResponse> {
107
+ const response = await sendRequest({ url: `${BASE}/${id}`, method: "DELETE" });
108
+ return response.responseData as IApiResponse;
109
+ }
110
+
111
+ export async function clonePrintableTemplate(id: number, data: { name: string; code: string }): Promise<IApiResponse> {
112
+ const response = await sendRequest({ url: `${BASE}/${id}/clone`, method: "POST", data });
113
+ return response.responseData as IApiResponse;
114
+ }
115
+
116
+ // ── Template Lines ──
117
+
118
+ export async function getTemplateLines(templateId: number): Promise<IApiResponse> {
119
+ const response = await sendRequest({ url: `${BASE}/${templateId}/lines`, method: "GET" });
120
+ return response.responseData as IApiResponse;
121
+ }
122
+
123
+ export async function createTemplateLine(templateId: number, data: any): Promise<IApiResponse> {
124
+ const response = await sendRequest({ url: `${BASE}/${templateId}/lines`, method: "POST", data });
125
+ return response.responseData as IApiResponse;
126
+ }
127
+
128
+ export async function bulkSaveTemplateLines(templateId: number, lines: any[]): Promise<IApiResponse> {
129
+ const response = await sendRequest({ url: `${BASE}/${templateId}/lines/bulk`, method: "POST", data: { lines } });
130
+ return response.responseData as IApiResponse;
131
+ }
132
+
133
+ export async function updateTemplateLine(id: number, data: any): Promise<IApiResponse> {
134
+ const response = await sendRequest({ url: `${API}/api/template-lines/${id}`, method: "PUT", data });
135
+ return response.responseData as IApiResponse;
136
+ }
137
+
138
+ export async function reorderTemplateLines(items: { id: number; line_no: number }[]): Promise<IApiResponse> {
139
+ const response = await sendRequest({ url: `${API}/api/template-lines/reorder`, method: "POST", data: { items } });
140
+ return response.responseData as IApiResponse;
141
+ }
142
+
143
+ export async function deleteTemplateLine(id: number): Promise<IApiResponse> {
144
+ const response = await sendRequest({ url: `${API}/api/template-lines/${id}`, method: "DELETE" });
145
+ return response.responseData as IApiResponse;
146
+ }
147
+
148
+ // ── Template Line Columns ──
149
+
150
+ export async function getTemplateLineColumns(lineId: number): Promise<IApiResponse> {
151
+ const response = await sendRequest({ url: `${API}/api/template-lines/${lineId}/columns`, method: "GET" });
152
+ return response.responseData as IApiResponse;
153
+ }
154
+
155
+ export async function createTemplateLineColumn(lineId: number, data: any): Promise<IApiResponse> {
156
+ const response = await sendRequest({ url: `${API}/api/template-lines/${lineId}/columns`, method: "POST", data });
157
+ return response.responseData as IApiResponse;
158
+ }
159
+
160
+ export async function bulkSaveTemplateLineColumns(lineId: number, columns: any[]): Promise<IApiResponse> {
161
+ const response = await sendRequest({ url: `${API}/api/template-lines/${lineId}/columns/bulk`, method: "POST", data: { columns } });
162
+ return response.responseData as IApiResponse;
163
+ }
164
+
165
+ export async function updateTemplateLineColumn(id: number, data: any): Promise<IApiResponse> {
166
+ const response = await sendRequest({ url: `${API}/api/template-line-columns/${id}`, method: "PUT", data });
167
+ return response.responseData as IApiResponse;
168
+ }
169
+
170
+ export async function deleteTemplateLineColumn(id: number): Promise<IApiResponse> {
171
+ const response = await sendRequest({ url: `${API}/api/template-line-columns/${id}`, method: "DELETE" });
172
+ return response.responseData as IApiResponse;
173
+ }
@@ -0,0 +1,73 @@
1
+ import { sendRequest } from "../utils/httpClient";
2
+ import { IApiResponse } from "../common/interfaces/ICommon";
3
+
4
+ const BASE = `${process.env.NEXT_PUBLIC_API_URL}/api/procurement`;
5
+
6
+ // --- Purchase Orders ---
7
+
8
+ export async function getPurchaseOrders(params: Record<string, string | number> = {}): Promise<IApiResponse> {
9
+ const response = await sendRequest({ url: BASE + "/orders", method: "GET", params });
10
+ return response.responseData as IApiResponse;
11
+ }
12
+
13
+ export async function getPurchaseOrder(id: number): Promise<IApiResponse> {
14
+ const response = await sendRequest({ url: `${BASE}/orders/${id}`, method: "GET" });
15
+ return response.responseData as IApiResponse;
16
+ }
17
+
18
+ export async function createPurchaseOrder(data: any): Promise<IApiResponse> {
19
+ const response = await sendRequest({ url: `${BASE}/orders`, method: "POST", data });
20
+ return response.responseData as IApiResponse;
21
+ }
22
+
23
+ export async function updatePurchaseOrder(id: number, data: any): Promise<IApiResponse> {
24
+ const response = await sendRequest({ url: `${BASE}/orders/${id}`, method: "PUT", data });
25
+ return response.responseData as IApiResponse;
26
+ }
27
+
28
+ export async function deletePurchaseOrder(id: number): Promise<IApiResponse> {
29
+ const response = await sendRequest({ url: `${BASE}/orders/${id}`, method: "DELETE" });
30
+ return response.responseData as IApiResponse;
31
+ }
32
+
33
+ export async function submitPurchaseOrder(id: number): Promise<IApiResponse> {
34
+ const response = await sendRequest({ url: `${BASE}/orders/${id}/submit`, method: "PATCH" });
35
+ return response.responseData as IApiResponse;
36
+ }
37
+
38
+ export async function approvePurchaseOrder(id: number): Promise<IApiResponse> {
39
+ const response = await sendRequest({ url: `${BASE}/orders/${id}/approve`, method: "PATCH" });
40
+ return response.responseData as IApiResponse;
41
+ }
42
+
43
+ export async function rejectPurchaseOrder(id: number, remarks: string = ''): Promise<IApiResponse> {
44
+ const response = await sendRequest({ url: `${BASE}/orders/${id}/reject`, method: "PATCH", data: { remarks } });
45
+ return response.responseData as IApiResponse;
46
+ }
47
+
48
+ export async function cancelPurchaseOrder(id: number): Promise<IApiResponse> {
49
+ const response = await sendRequest({ url: `${BASE}/orders/${id}/cancel`, method: "PATCH" });
50
+ return response.responseData as IApiResponse;
51
+ }
52
+
53
+ export async function receivePurchaseOrder(id: number, data: any): Promise<IApiResponse> {
54
+ const response = await sendRequest({ url: `${BASE}/orders/${id}/receive`, method: "POST", data });
55
+ return response.responseData as IApiResponse;
56
+ }
57
+
58
+ // --- Goods Receipt Notes ---
59
+
60
+ export async function getGoodsReceiptNotes(params: Record<string, string | number> = {}): Promise<IApiResponse> {
61
+ const response = await sendRequest({ url: `${BASE}/grn`, method: "GET", params });
62
+ return response.responseData as IApiResponse;
63
+ }
64
+
65
+ export async function getGoodsReceiptNote(id: number): Promise<IApiResponse> {
66
+ const response = await sendRequest({ url: `${BASE}/grn/${id}`, method: "GET" });
67
+ return response.responseData as IApiResponse;
68
+ }
69
+
70
+ export async function createGoodsReceiptNote(data: any): Promise<IApiResponse> {
71
+ const response = await sendRequest({ url: `${BASE}/grn`, method: "POST", data });
72
+ return response.responseData as IApiResponse;
73
+ }
package/src/client.ts CHANGED
@@ -11,3 +11,5 @@ export * from './constants/iconRegistry';
11
11
  export * from './constants/currencies';
12
12
  export * from './utils/currencyService';
13
13
 
14
+ export * from './api-services/procurement.client';
15
+ export * from './api-services/printable-templates.client';
@@ -152,6 +152,7 @@ export const MENU_ITEM_REGISTRY: RegistryItem[] = [
152
152
  { key: 'jewelry__stock_movements', label: 'Stock Movements', path: '/jewelry/stock/movements', module: 'Jewelry', defaultGroup: 'Stock', permission: 'jewelry.stock_movements.view' },
153
153
  { key: 'jewelry__stock_transfers', label: 'Transfers', path: '/jewelry/stock-transfers', module: 'Jewelry', defaultGroup: 'Stock', permission: 'jewelry.stock_transfers.view' },
154
154
  { key: 'jewelry__party_transactions', label: 'Party Transactions', path: '/jewelry/party-transactions', module: 'Jewelry', defaultGroup: 'Karigar', permission: 'jewelry.karigar_transactions.view' },
155
+ { key: 'jewelry__karigar_orders', label: 'Karigar Orders', path: '/jewelry/karigar-orders', module: 'Jewelry', defaultGroup: 'Karigar', permission: 'jewelry.karigar_orders.view' },
155
156
 
156
157
  { key: 'jewelry__karigar_making_charges', label: 'Making Charges', path: '/jewelry/karigar-making-charges', module: 'Jewelry', defaultGroup: 'Karigar', permission: 'jewelry.karigar_making_charges.view' },
157
158
  { key: 'jewelry__party_metal_balances', label: 'Party Metal Balances', path: '/jewelry/party-metal-balances', module: 'Jewelry', defaultGroup: 'Karigar', permission: 'jewelry.party_metal_balances.view' },
@@ -362,6 +363,7 @@ export const MENU_PRESETS: MenuPreset[] = [
362
363
  'jewelry__sales', 'jewelry__sales_returns',
363
364
  'jewelry__stock_balances', 'jewelry__stock_movements', 'jewelry__stock_transfers',
364
365
  'jewelry__party_transactions',
366
+ 'jewelry__karigar_orders',
365
367
 
366
368
  'jewelry__karigar_making_charges',
367
369
  'jewelry__party_metal_balances',
package/src/server.ts CHANGED
@@ -10,3 +10,6 @@ export * from './constants/storageKeys';
10
10
  export * from './constants/menus';
11
11
  export * from './constants/iconRegistry';
12
12
  export * from './utils/bootstrapConfig';
13
+
14
+ export * from './api-services/procurement.client';
15
+ export * from './api-services/printable-templates.client';