vsdc-zra-sdk 1.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.
@@ -0,0 +1,311 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StockMstSaveReqSchema = exports.StockIOSaveReqSchema = exports.StockItemSchema = exports.StockMoveReqSchema = exports.TrnsPurchaseSaveReqSchema = exports.PurchaseItemSchema = exports.TrnsPurchaseSalesReqSchema = exports.ImptItemSaveReqSchema = exports.ImptItemReqSchema = exports.BhfUserSaveReqSchema = exports.BhfCustSaveReqSchema = exports.BhfReqSchema = exports.CustReqSchema = exports.NoticeReqSchema = exports.TrnsSalesSaveWrReqSchema = exports.DeltaReqSchema = exports.SalesItemSchema = exports.ItemSaveReqSchema = exports.InitInfoReqSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const constants_1 = require("./constants");
6
+ exports.InitInfoReqSchema = zod_1.z.object({
7
+ tpin: zod_1.z.string().length(10),
8
+ bhfId: zod_1.z.string().length(3),
9
+ dvcSrlNo: zod_1.z.string().max(100),
10
+ });
11
+ exports.ItemSaveReqSchema = zod_1.z.object({
12
+ tpin: zod_1.z.string().length(10),
13
+ bhfId: zod_1.z.string().length(3),
14
+ itemCd: zod_1.z.string().max(20),
15
+ itemClsCd: zod_1.z.string().length(10),
16
+ itemTyCd: zod_1.z.nativeEnum(constants_1.ProductType).or(zod_1.z.string()),
17
+ itemNm: zod_1.z.string().max(200),
18
+ itemStdNm: zod_1.z.string().max(200).optional().nullable(),
19
+ orgnNatCd: zod_1.z.string().length(2).default("ZM"),
20
+ pkgUnitCd: zod_1.z.string().length(5),
21
+ qtyUnitCd: zod_1.z.string().length(5),
22
+ vatCatCd: zod_1.z.string().optional().nullable(), // Mentioned in sample but not in table explicitly? Table says taxTyCd
23
+ taxTyCd: zod_1.z.nativeEnum(constants_1.TaxType).or(zod_1.z.string()),
24
+ btchNo: zod_1.z.string().max(10).optional().nullable(),
25
+ bcd: zod_1.z.string().max(20).optional().nullable(),
26
+ dftPrc: zod_1.z.number(),
27
+ addInfo: zod_1.z.string().max(7).optional().nullable(),
28
+ sftyQty: zod_1.z.number().optional().nullable(),
29
+ isrcAplcbYn: zod_1.z.enum(["Y", "N"]).default("N"),
30
+ useYn: zod_1.z.enum(["Y", "N"]).default("Y"),
31
+ regrNm: zod_1.z.string().max(60),
32
+ regrId: zod_1.z.string().max(20),
33
+ modrNm: zod_1.z.string().max(60),
34
+ modrId: zod_1.z.string().max(20),
35
+ });
36
+ exports.SalesItemSchema = zod_1.z.object({
37
+ itemSeq: zod_1.z.number(),
38
+ itemCd: zod_1.z.string().max(20),
39
+ itemClsCd: zod_1.z.string().length(10),
40
+ itemNm: zod_1.z.string().max(200),
41
+ bcd: zod_1.z.string().max(20).optional().nullable(),
42
+ pkgUnitCd: zod_1.z.string().length(5),
43
+ pkg: zod_1.z.number(),
44
+ qtyUnitCd: zod_1.z.string().length(5),
45
+ qty: zod_1.z.number(),
46
+ prc: zod_1.z.number(),
47
+ splyAmt: zod_1.z.number(),
48
+ dcRt: zod_1.z.number().default(0),
49
+ dcAmt: zod_1.z.number().default(0),
50
+ isrccCd: zod_1.z.string().optional().nullable(),
51
+ isrccNm: zod_1.z.string().optional().nullable(),
52
+ isrcRt: zod_1.z.number().optional().nullable(),
53
+ isrcAmt: zod_1.z.number().optional().nullable(),
54
+ taxTyCd: zod_1.z.nativeEnum(constants_1.TaxType).or(zod_1.z.string()),
55
+ taxblAmt: zod_1.z.number(),
56
+ taxAmt: zod_1.z.number(),
57
+ totAmt: zod_1.z.number(),
58
+ });
59
+ exports.DeltaReqSchema = zod_1.z.object({
60
+ tpin: zod_1.z.string().length(10),
61
+ bhfId: zod_1.z.string().length(3),
62
+ lastReqDt: zod_1.z.string().length(14),
63
+ });
64
+ exports.TrnsSalesSaveWrReqSchema = zod_1.z.object({
65
+ tpin: zod_1.z.string().length(10),
66
+ bhfId: zod_1.z.string().length(3),
67
+ invcNo: zod_1.z.number(),
68
+ orgInvcNo: zod_1.z.number().default(0),
69
+ custTpin: zod_1.z.string().optional().nullable(),
70
+ custNm: zod_1.z.string().optional().nullable(),
71
+ salesTyCd: zod_1.z.nativeEnum(constants_1.TransactionType).or(zod_1.z.string()),
72
+ rcptTyCd: zod_1.z.nativeEnum(constants_1.ReceiptType).or(zod_1.z.string()),
73
+ pmtTyCd: zod_1.z.nativeEnum(constants_1.PaymentMethod).or(zod_1.z.string()).optional(),
74
+ salesSttsCd: zod_1.z.string().length(2), // 02 Approved etc
75
+ cfmDt: zod_1.z.string().length(14), // yyyyMMddhhmmss
76
+ salesDt: zod_1.z.string().length(8), // yyyyMMdd
77
+ stockRlsDt: zod_1.z.string().length(14).optional().nullable(),
78
+ cnclReqDt: zod_1.z.string().optional().nullable(),
79
+ cnclDt: zod_1.z.string().optional().nullable(),
80
+ rfdDt: zod_1.z.string().optional().nullable(),
81
+ rfdRsnCd: zod_1.z.string().optional().nullable(),
82
+ totItemCnt: zod_1.z.number(),
83
+ taxblAmtA: zod_1.z.number().default(0),
84
+ taxblAmtB: zod_1.z.number().default(0),
85
+ taxblAmtC1: zod_1.z.number().default(0),
86
+ taxblAmtC2: zod_1.z.number().default(0),
87
+ taxblAmtC3: zod_1.z.number().default(0),
88
+ taxblAmtD: zod_1.z.number().default(0),
89
+ taxRtA: zod_1.z.number().default(0),
90
+ taxRtB: zod_1.z.number().default(16),
91
+ taxRtC1: zod_1.z.number().default(0),
92
+ taxRtC2: zod_1.z.number().default(0),
93
+ taxRtC3: zod_1.z.number().default(0),
94
+ taxRtD: zod_1.z.number().default(0),
95
+ taxAmtA: zod_1.z.number().default(0),
96
+ taxAmtB: zod_1.z.number().default(0),
97
+ taxAmtC1: zod_1.z.number().default(0),
98
+ taxAmtC2: zod_1.z.number().default(0),
99
+ taxAmtC3: zod_1.z.number().default(0),
100
+ taxAmtD: zod_1.z.number().default(0),
101
+ totTaxblAmt: zod_1.z.number(),
102
+ totTaxAmt: zod_1.z.number(),
103
+ totAmt: zod_1.z.number(),
104
+ prchrAcptcYn: zod_1.z.enum(["Y", "N"]).default("N"),
105
+ remark: zod_1.z.string().max(400).optional().nullable(),
106
+ regrNm: zod_1.z.string().max(60),
107
+ regrId: zod_1.z.string().max(20),
108
+ modrNm: zod_1.z.string().max(60),
109
+ modrId: zod_1.z.string().max(20),
110
+ itemList: zod_1.z.array(exports.SalesItemSchema),
111
+ });
112
+ // --- Notices ---
113
+ exports.NoticeReqSchema = zod_1.z.object({
114
+ tpin: zod_1.z.string().length(10),
115
+ bhfId: zod_1.z.string().length(3),
116
+ lastReqDt: zod_1.z.string().length(14),
117
+ });
118
+ // --- Branch & Customers ---
119
+ exports.CustReqSchema = zod_1.z.object({
120
+ tpin: zod_1.z.string().length(10),
121
+ bhfId: zod_1.z.string().length(3),
122
+ custmTin: zod_1.z.string().length(9).optional().nullable(), // Seems to be 9 chars per doc
123
+ });
124
+ exports.BhfReqSchema = zod_1.z.object({
125
+ tpin: zod_1.z.string().length(10),
126
+ bhfId: zod_1.z.string().length(3),
127
+ lastReqDt: zod_1.z.string().length(14),
128
+ });
129
+ exports.BhfCustSaveReqSchema = zod_1.z.object({
130
+ tpin: zod_1.z.string().length(10),
131
+ bhfId: zod_1.z.string().length(3),
132
+ custNo: zod_1.z.string().length(9), // Defined as Y 9
133
+ custTpin: zod_1.z.string().length(10),
134
+ custNm: zod_1.z.string().max(60),
135
+ adrs: zod_1.z.string().max(300).optional().nullable(),
136
+ telNo: zod_1.z.string().max(20).optional().nullable(),
137
+ email: zod_1.z.string().max(50).optional().nullable(),
138
+ faxNo: zod_1.z.string().max(20).optional().nullable(),
139
+ useYn: zod_1.z.enum(["Y", "N"]).default("Y"),
140
+ remark: zod_1.z.string().max(1000).optional().nullable(),
141
+ regrNm: zod_1.z.string().max(60),
142
+ regrId: zod_1.z.string().max(20),
143
+ modrNm: zod_1.z.string().max(60),
144
+ modrId: zod_1.z.string().max(20),
145
+ });
146
+ exports.BhfUserSaveReqSchema = zod_1.z.object({
147
+ tpin: zod_1.z.string().length(10),
148
+ bhfId: zod_1.z.string().length(3),
149
+ userId: zod_1.z.string().max(20),
150
+ userNm: zod_1.z.string().max(60),
151
+ pwd: zod_1.z.string().max(255),
152
+ adrs: zod_1.z.string().max(200).optional().nullable(),
153
+ cntc: zod_1.z.string().max(20).optional().nullable(),
154
+ authCd: zod_1.z.string().max(100).optional().nullable(),
155
+ remark: zod_1.z.string().max(2000).optional().nullable(),
156
+ useYn: zod_1.z.enum(["Y", "N"]).default("Y"),
157
+ regrNm: zod_1.z.string().max(60),
158
+ regrId: zod_1.z.string().max(20),
159
+ modrNm: zod_1.z.string().max(60),
160
+ modrId: zod_1.z.string().max(20),
161
+ });
162
+ // --- Imports ---
163
+ exports.ImptItemReqSchema = zod_1.z.object({
164
+ tpin: zod_1.z.string().length(10),
165
+ bhfId: zod_1.z.string().length(3),
166
+ lastReqDt: zod_1.z.string().length(14),
167
+ });
168
+ exports.ImptItemSaveReqSchema = zod_1.z.object({
169
+ tpin: zod_1.z.string().length(10),
170
+ bhfId: zod_1.z.string().length(3),
171
+ taskCd: zod_1.z.string().max(50),
172
+ dclDe: zod_1.z.string().length(8),
173
+ itemSeq: zod_1.z.number(),
174
+ hsCd: zod_1.z.string().max(17),
175
+ itemClsCd: zod_1.z.string().length(10),
176
+ itemCd: zod_1.z.string().max(20),
177
+ imptItemSttsCd: zod_1.z.string().length(5), // See 4.18
178
+ remark: zod_1.z.string().max(400).optional().nullable(),
179
+ modrNm: zod_1.z.string().max(60),
180
+ modrId: zod_1.z.string().max(20),
181
+ });
182
+ // --- Purchases ---
183
+ exports.TrnsPurchaseSalesReqSchema = zod_1.z.object({
184
+ tpin: zod_1.z.string().length(10),
185
+ bhfId: zod_1.z.string().length(3),
186
+ lastReqDt: zod_1.z.string().length(14),
187
+ });
188
+ exports.PurchaseItemSchema = zod_1.z.object({
189
+ itemSeq: zod_1.z.number(),
190
+ itemCd: zod_1.z.string().max(20).optional().nullable(),
191
+ itemClsCd: zod_1.z.string().length(10),
192
+ itemNm: zod_1.z.string().max(200),
193
+ bcd: zod_1.z.string().max(20).optional().nullable(),
194
+ spplrItemClsCd: zod_1.z.string().max(10).optional().nullable(),
195
+ spplrItemCd: zod_1.z.string().max(20).optional().nullable(),
196
+ spplrItemNm: zod_1.z.string().max(200).optional().nullable(),
197
+ pkgUnitCd: zod_1.z.string().length(5).optional().nullable(),
198
+ pkg: zod_1.z.number().default(0),
199
+ qtyUnitCd: zod_1.z.string().length(5),
200
+ qty: zod_1.z.number(),
201
+ prc: zod_1.z.number(),
202
+ splyAmt: zod_1.z.number(),
203
+ dcRt: zod_1.z.number().default(0),
204
+ dcAmt: zod_1.z.number().default(0),
205
+ taxblAmt: zod_1.z.number(),
206
+ taxTyCd: zod_1.z.string().length(5).or(zod_1.z.nativeEnum(constants_1.TaxType)),
207
+ taxAmt: zod_1.z.number(),
208
+ totAmt: zod_1.z.number(),
209
+ itemExprDt: zod_1.z.string().length(8).optional().nullable(),
210
+ });
211
+ exports.TrnsPurchaseSaveReqSchema = zod_1.z.object({
212
+ tpin: zod_1.z.string().length(10),
213
+ bhfId: zod_1.z.string().length(3),
214
+ spplrTin: zod_1.z.string().length(10).optional().nullable(),
215
+ invcNo: zod_1.z.number(),
216
+ orgInvcNo: zod_1.z.number().default(0),
217
+ spplrBhfId: zod_1.z.string().length(3).optional().nullable(),
218
+ spplrNm: zod_1.z.string().max(60).optional().nullable(),
219
+ spplrInvcNo: zod_1.z.number().optional().nullable(),
220
+ spplrSdcId: zod_1.z.string().max(12).optional().nullable(),
221
+ regTyCd: zod_1.z.string().length(5).or(zod_1.z.nativeEnum(constants_1.TransactionProgress)), // Using TransactionProgress as placeholder for 4.12
222
+ pchsTyCd: zod_1.z.string().length(5).or(zod_1.z.nativeEnum(constants_1.TransactionType)),
223
+ rcptTyCd: zod_1.z.string().length(5).or(zod_1.z.nativeEnum(constants_1.ReceiptType)),
224
+ pmtTyCd: zod_1.z.string().length(5).or(zod_1.z.nativeEnum(constants_1.PaymentMethod)),
225
+ pchsSttsCd: zod_1.z.string().length(5).or(zod_1.z.nativeEnum(constants_1.TransactionProgress)),
226
+ cfmDt: zod_1.z.string().length(14).optional().nullable(),
227
+ pchsDt: zod_1.z.string().length(8),
228
+ wrhsDt: zod_1.z.string().length(14).optional().nullable(),
229
+ cnclReqDt: zod_1.z.string().length(14).optional().nullable(),
230
+ cnclDt: zod_1.z.string().length(14).optional().nullable(),
231
+ rfdDt: zod_1.z.string().length(14).optional().nullable(),
232
+ totItemCnt: zod_1.z.number(),
233
+ taxblAmtA: zod_1.z.number().default(0),
234
+ taxblAmtB: zod_1.z.number().default(0),
235
+ taxblAmtC: zod_1.z.number().default(0), // Doc uses C, sales uses C1/C2/C3 - generic C for purchase?
236
+ taxblAmtD: zod_1.z.number().default(0),
237
+ taxRtA: zod_1.z.number().default(0),
238
+ taxRtB: zod_1.z.number().default(0),
239
+ taxRtC: zod_1.z.number().default(0),
240
+ taxRtD: zod_1.z.number().default(0),
241
+ taxAmtA: zod_1.z.number().default(0),
242
+ taxAmtB: zod_1.z.number().default(0),
243
+ taxAmtC: zod_1.z.number().default(0),
244
+ taxAmtD: zod_1.z.number().default(0),
245
+ totTaxblAmt: zod_1.z.number(),
246
+ totTaxAmt: zod_1.z.number(),
247
+ totAmt: zod_1.z.number(),
248
+ remark: zod_1.z.string().max(400).optional().nullable(),
249
+ regrNm: zod_1.z.string().max(60),
250
+ regrId: zod_1.z.string().max(20),
251
+ modrNm: zod_1.z.string().max(60),
252
+ modrId: zod_1.z.string().max(20),
253
+ itemList: zod_1.z.array(exports.PurchaseItemSchema),
254
+ });
255
+ // --- Stock ---
256
+ exports.StockMoveReqSchema = zod_1.z.object({
257
+ tpin: zod_1.z.string().length(10),
258
+ bhfId: zod_1.z.string().length(3),
259
+ lastReqDt: zod_1.z.string().length(14),
260
+ });
261
+ exports.StockItemSchema = zod_1.z.object({
262
+ itemSeq: zod_1.z.number(),
263
+ itemCd: zod_1.z.string().max(20).optional().nullable(),
264
+ itemClsCd: zod_1.z.string().length(10),
265
+ itemNm: zod_1.z.string().max(200),
266
+ bcd: zod_1.z.string().max(20).optional().nullable(),
267
+ pkgUnitCd: zod_1.z.string().length(5),
268
+ pkg: zod_1.z.number(),
269
+ qtyUnitCd: zod_1.z.string().length(5),
270
+ qty: zod_1.z.number(),
271
+ itemExprDt: zod_1.z.string().length(8).optional().nullable(),
272
+ prc: zod_1.z.number(),
273
+ splyAmt: zod_1.z.number(),
274
+ totDcAmt: zod_1.z.number().default(0),
275
+ taxblAmt: zod_1.z.number(),
276
+ taxTyCd: zod_1.z.string().length(5).or(zod_1.z.nativeEnum(constants_1.TaxType)),
277
+ taxAmt: zod_1.z.number(),
278
+ totAmt: zod_1.z.number(),
279
+ });
280
+ exports.StockIOSaveReqSchema = zod_1.z.object({
281
+ tpin: zod_1.z.string().length(10),
282
+ bhfId: zod_1.z.string().length(3),
283
+ sarNo: zod_1.z.number(),
284
+ orgSarNo: zod_1.z.number().default(0),
285
+ regTyCd: zod_1.z.string().length(5), // M?
286
+ custTpin: zod_1.z.string().length(10).optional().nullable(),
287
+ custNm: zod_1.z.string().max(100).optional().nullable(),
288
+ custBhfId: zod_1.z.string().max(3).optional().nullable(), // Doc says 2, likely 3
289
+ sarTyCd: zod_1.z.string().length(5), // Stock In/Out Type
290
+ ocrnDt: zod_1.z.string().length(8),
291
+ totItemCnt: zod_1.z.number(),
292
+ totTaxblAmt: zod_1.z.number(),
293
+ totTaxAmt: zod_1.z.number(),
294
+ totAmt: zod_1.z.number(),
295
+ remark: zod_1.z.string().max(400).optional().nullable(),
296
+ regrNm: zod_1.z.string().max(60),
297
+ regrId: zod_1.z.string().max(20),
298
+ modrNm: zod_1.z.string().max(60),
299
+ modrId: zod_1.z.string().max(20),
300
+ itemList: zod_1.z.array(exports.StockItemSchema),
301
+ });
302
+ exports.StockMstSaveReqSchema = zod_1.z.object({
303
+ tpin: zod_1.z.string().length(10),
304
+ bhfId: zod_1.z.string().length(3),
305
+ itemCd: zod_1.z.string().max(20),
306
+ rsdQty: zod_1.z.number(),
307
+ regrNm: zod_1.z.string().max(60),
308
+ regrId: zod_1.z.string().max(20),
309
+ modrNm: zod_1.z.string().max(60),
310
+ modrId: zod_1.z.string().max(20),
311
+ });
package/package.json ADDED
@@ -0,0 +1,30 @@
1
+ {
2
+ "name": "vsdc-zra-sdk",
3
+ "version": "1.0.0",
4
+ "main": "dist/index.js",
5
+ "types": "dist/index.d.ts",
6
+ "files": [
7
+ "dist"
8
+ ],
9
+ "scripts": {
10
+ "build": "tsc",
11
+ "test": "echo \"Error: no test specified\" && exit 1"
12
+ },
13
+ "keywords": [
14
+ "zra",
15
+ "vsdc",
16
+ "sdk",
17
+ "zambia"
18
+ ],
19
+ "author": "",
20
+ "license": "MIT",
21
+ "description": "ZRA VSDC Smart Invoice SDK",
22
+ "dependencies": {
23
+ "axios": "^1.6.0",
24
+ "zod": "^3.22.0"
25
+ },
26
+ "devDependencies": {
27
+ "@types/node": "^20.0.0",
28
+ "typescript": "^5.0.0"
29
+ }
30
+ }