@tomei/finance 0.3.31 → 0.3.33

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/src/config.ts CHANGED
@@ -1,327 +1,320 @@
1
- const config = {
2
- development: {
3
- environment: 'development',
4
- commonApiUrl: process.env.COMMON_API_URL,
5
- accountingSystem: {
6
- quickbooks: {
7
- packageName: process.env.PACKAGE_NAME,
8
- accountSystemClass: process.env.ACCOUNT_SYSTEM_CLASS,
9
- API_Url: process.env.API_URL,
10
- },
11
- xero: {
12
- packageName: process.env.PACKAGE_NAME,
13
- accountSystemClass: process.env.ACCOUNT_SYSTEM_CLASS,
14
- API_Url: process.env.API_URL,
15
- },
1
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
2
+ const dotenv = require('dotenv');
3
+
4
+ dotenv.config();
5
+
6
+ const defaultConfig = {
7
+ commonApiUrl: process.env.COMMON_API_URL,
8
+ accountingSystem: {
9
+ quickbooks: {
10
+ packageName: process.env.PACKAGE_NAME || '',
11
+ accountSystemClass: process.env.ACCOUNT_SYSTEM_CLASS || '',
12
+ apiUrl: process.env.API_URL || '',
16
13
  },
17
- systemConfig: {
18
- EZC: {
19
- companyId: 'EZC',
20
- companyName: process.env.COMPANY_NAME,
21
- companySystemCode: process.env.COMPANY_SYSTEM_CODE,
22
- companySystemRefId: process.env.COMPANY_SYSTEM_REF_ID,
23
- accountingSystem: 'quickbooks',
24
- API_Key: process.env.QUICKBOOK_API_KEY,
25
- API_Secret: process.env.QUICKBOOK_API_SECRET,
26
- redirectUrl: process.env.EZCASH_REDIRECT_URL,
27
- paymentMethods: {
28
- cash: {
29
- id: 'CS',
30
- name: 'cash',
31
- types: {},
32
- },
33
- bankTransfer: {
34
- id: 'BT',
35
- name: 'Bank Transfer',
36
- types: {},
37
- },
38
- debitCard: {
39
- id: 'DC',
40
- name: 'Debit Card',
41
- types: {
42
- mastercard: {
43
- id: 'DC-MSC',
44
- name: 'Mastercard',
45
- },
46
- visa: {
47
- id: 'DC-VISA',
48
- name: 'Visa',
49
- },
14
+ xero: {
15
+ packageName: process.env.PACKAGE_NAME || '',
16
+ accountSystemClass: process.env.ACCOUNT_SYSTEM_CLASS || '',
17
+ apiUrl: process.env.API_URL || '',
18
+ },
19
+ },
20
+ financeCompanies: {
21
+ 'TXG-FS': {
22
+ companyId: process.env.COMPANYID || 'TXG-FS',
23
+ companyName: process.env.COMPANYNAME || 'TXG Financial Solutions Sdn Bhd',
24
+ companySystemCode: process.env.COMPSYSTEMCODE || 'Tomei-SSO',
25
+ companySystemRefId: process.env.COMPSYSTEMREFID || '',
26
+ accountSystemCode: process.env.ACCSYSTEMCODE || '',
27
+ accountingSystem: 'quickbooks',
28
+ apiKey: process.env.QUICKBOOK_API_KEY,
29
+ redirectUrl: process.env.EZGOLD_REDIRECT_URL,
30
+ apiSecret: process.env.QUICKBOOK_API_SECRET,
31
+ paymentMethods: {
32
+ cash: {
33
+ id: 'CS',
34
+ name: 'Cash',
35
+ types: {
36
+ cash: {
37
+ id: 'CS-CASH',
38
+ name: 'Cash',
39
+ accountNo: 'CASH',
40
+ processingFeeRate: 0.0,
41
+ processingFeeAccountNo: 'CASH-FEE',
50
42
  },
51
43
  },
52
- creditCard: {
53
- id: 'CC',
54
- name: 'Credit Card',
55
- types: {
56
- mastercard: {
57
- id: 'CC-MSC',
58
- name: 'Mastercard',
59
- },
60
- visa: {
61
- id: 'CC-VISA',
62
- name: 'Visa',
63
- },
64
- amex: {
65
- id: 'CC-AMEX',
66
- name: 'American Express',
67
- },
44
+ },
45
+ bankTransfer: {
46
+ id: 'BT',
47
+ name: 'Bank Transfer',
48
+ types: {
49
+ bankTransfer: {
50
+ id: 'BT-RHB',
51
+ name: 'RHB',
52
+ accountNo: '19GKBA20900-01',
53
+ processingFeeRate: 1.0,
54
+ processingFeeAccountNo: 'RHB-FEE',
68
55
  },
69
56
  },
70
- eWallet: {
71
- id: 'EW',
72
- name: 'E-Wallet',
73
- types: {
74
- touchngo: {
75
- id: 'EW-T&G',
76
- name: 'Touch & Go',
77
- },
78
- Boost: {
79
- id: 'EW-BOOST',
80
- name: 'Boost',
81
- },
82
- GrabPay: {
83
- id: 'EW-GRAB',
84
- name: 'GrabPay',
85
- },
86
- ShopeePay: {
87
- id: 'EW-SHOPEE',
88
- name: 'ShopeePay',
89
- },
57
+ },
58
+ debitCard: {
59
+ id: 'DC',
60
+ name: 'Debit Card',
61
+ types: {
62
+ mastercard: {
63
+ id: 'DC-MSC',
64
+ name: 'Mastercard',
65
+ accountNo: 'CURLEC',
66
+ processingFeeRate: 1.5,
67
+ processingFeeAccountNo: 'CURLEC-FEE',
68
+ },
69
+ visa: {
70
+ id: 'DC-VISA',
71
+ name: 'Visa',
72
+ accountNo: 'CURLEC',
73
+ processingFeeRate: 1.5,
74
+ processingFeeAccountNo: 'CURLEC-FEE',
90
75
  },
91
76
  },
92
- mandate: {
93
- id: 'MD',
94
- name: 'Mandate',
95
- types: {},
96
- },
97
- storeCredit: {
98
- id: 'SC',
99
- name: 'Store Credit',
100
- types: {},
101
- },
102
- pointsRedemption: {
103
- id: 'PR',
104
- name: 'Points Redemption',
105
- types: {},
77
+ },
78
+ creditCard: {
79
+ id: 'CC',
80
+ name: 'Credit Card',
81
+ types: {
82
+ mastercard: {
83
+ id: 'CC-MSC',
84
+ name: 'Mastercard',
85
+ accountNo: 'CURLEC',
86
+ processingFeeRate: 2.5,
87
+ processingFeeAccountNo: 'CURLEC-FEE',
88
+ },
89
+ visa: {
90
+ id: 'CC-VISA',
91
+ name: 'Visa',
92
+ accountNo: 'CURLEC',
93
+ processingFeeRate: 2.5,
94
+ processingFeeAccountNo: 'CURLEC-FEE',
95
+ },
96
+ amex: {
97
+ id: 'CC-AMEX',
98
+ name: 'American Express',
99
+ accountNo: 'CURLEC',
100
+ processingFeeRate: 3.5,
101
+ processingFeeAccountNo: 'CURLEC-FEE',
102
+ },
106
103
  },
107
- voucher: {
108
- id: 'VC',
109
- name: 'Voucher',
110
- types: {
111
- gift: {
112
- id: 'VC-GF',
113
- name: 'Gift Voucher',
114
- },
115
- cash: {
116
- id: 'VC-CS',
117
- name: 'Cash Voucher',
118
- },
104
+ },
105
+ mandate: {
106
+ id: 'MD',
107
+ name: 'Mandate',
108
+ types: {
109
+ RHB: {
110
+ id: 'MD-RHB',
111
+ name: 'RHB Mandate',
112
+ accountNo: '19GKBA20900-01',
113
+ processingFeeRate: 1.0,
114
+ processingFeeAccountNo: 'RHB-FEE',
119
115
  },
120
116
  },
121
117
  },
122
118
  },
123
- EZG: {
124
- companyId: 'EZG',
125
- accountingSystem: 'xero',
126
- companyName: process.env.COMPANY_NAME,
127
- companySystemCode: process.env.COMPANY_SYSTEM_CODE,
128
- companySystemRefId: process.env.COMPANY_SYSTEM_REF_ID,
129
- API_Key: process.env.QUICKBOOK_API_KEY,
130
- API_Secret: process.env.QUICKBOOK_API_SECRET,
131
- redirectUrl: process.env.EZGOLD_REDIRECT_URL,
132
- paymentMethods: {
133
- cash: {
134
- id: 'CS',
135
- name: 'cash',
136
- types: {},
119
+ },
120
+ 'TXG-B': {
121
+ companyId: 'TXG-B',
122
+ companyName: 'TXG Bullion Sdn Bhd',
123
+ companySystemCode: 'Tomei-SSO',
124
+ companySystemRefId: '',
125
+ accountingSystem: 'quickbooks',
126
+ accountSystemCode: '',
127
+ apiKey: '',
128
+ apiSecret: '',
129
+ redirectUrl: process.env.EZGOLD_REDIRECT_URL,
130
+ paymentMethods: {
131
+ cash: {
132
+ id: 'CS',
133
+ name: 'Cash',
134
+ types: {
135
+ cash: {
136
+ id: 'CS-CASH',
137
+ name: 'Cash',
138
+ accountno: '',
139
+ processingFeeRate: 0.0,
140
+ processingFeeAccountNo: '',
141
+ },
137
142
  },
138
- bankTransfer: {
139
- id: 'BT',
140
- name: 'Bank Transfer',
141
- types: {},
143
+ },
144
+ bankTransfer: {
145
+ id: 'BT',
146
+ name: 'Bank Transfer',
147
+ types: {
148
+ banktransfer: {
149
+ id: 'BT-RHB',
150
+ name: 'RHB',
151
+ accountno: '',
152
+ processingFeeRate: 1.0,
153
+ processingFeeAccountNo: '',
154
+ },
142
155
  },
143
- debitCard: {
144
- id: 'DC',
145
- name: 'Debit Card',
146
- types: {
147
- mastercard: {
148
- id: 'DC-MSC',
149
- name: 'Mastercard',
150
- },
151
- visa: {
152
- id: 'DC-VISA',
153
- name: 'Visa',
154
- },
156
+ },
157
+ debitCard: {
158
+ id: 'DC',
159
+ name: 'Debit Card',
160
+ types: {
161
+ mastercard: {
162
+ id: 'DC-MSC',
163
+ name: 'Mastercard',
164
+ accountno: '',
165
+ processingFeeRate: 1.5,
166
+ processingFeeAccountNo: '',
167
+ },
168
+ visa: {
169
+ id: 'DC-VISA',
170
+ name: 'Visa',
171
+ accountno: '',
172
+ processingFeeRate: 1.5,
173
+ processingFeeAccountNo: '',
155
174
  },
156
175
  },
157
- creditCard: {
158
- id: 'CC',
159
- name: 'Credit Card',
160
- types: {
161
- mastercard: {
162
- id: 'CC-MSC',
163
- name: 'Mastercard',
164
- },
165
- visa: {
166
- id: 'CC-VISA',
167
- name: 'Visa',
168
- },
169
- amex: {
170
- id: 'CC-AMEX',
171
- name: 'American Express',
172
- },
176
+ },
177
+ creditCard: {
178
+ id: 'CC',
179
+ name: 'Credit Card',
180
+ types: {
181
+ mastercard: {
182
+ id: 'CC-MSC',
183
+ name: 'Mastercard',
184
+ accountno: '',
185
+ processingFeeRate: 2.5,
186
+ processingFeeAccountNo: '',
187
+ },
188
+ visa: {
189
+ id: 'CC-VISA',
190
+ name: 'Visa',
191
+ accountno: '',
192
+ processingFeeRate: 2.5,
193
+ processingFeeAccountNo: '',
194
+ },
195
+ amex: {
196
+ id: 'CC-AMEX',
197
+ name: 'American Express',
198
+ accountno: '',
199
+ processingFeeRate: 3.5,
200
+ processingFeeAccountNo: '',
173
201
  },
174
202
  },
175
- eWallet: {
176
- id: 'EW',
177
- name: 'E-Wallet',
178
- types: {
179
- touchngo: {
180
- id: 'EW-T&G',
181
- name: 'Touch & Go',
182
- },
183
- Boost: {
184
- id: 'EW-BOOST',
185
- name: 'Boost',
186
- },
187
- GrabPay: {
188
- id: 'EW-GRAB',
189
- name: 'GrabPay',
190
- },
191
- ShopeePay: {
192
- id: 'EW-SHOPEE',
193
- name: 'ShopeePay',
194
- },
203
+ },
204
+ eWallet: {
205
+ id: 'EW',
206
+ name: 'E-Wallet',
207
+ types: {
208
+ touchngo: {
209
+ id: 'EW-T&G',
210
+ name: 'Touch & Go',
211
+ accountno: '',
212
+ processingFeeRate: 1.5,
213
+ processingFeeAccountNo: '',
214
+ },
215
+ Boost: {
216
+ id: 'EW-BOOST',
217
+ name: 'Boost',
218
+ accountno: '',
219
+ processingFeeRate: 2.5,
220
+ processingFeeAccountNo: '',
221
+ },
222
+ GrabPay: {
223
+ id: 'EW-GRAB',
224
+ name: 'GrabPay',
225
+ accountno: '',
226
+ processingFeeRate: 2.5,
227
+ processingFeeAccountNo: '',
228
+ },
229
+ ShopeePay: {
230
+ id: 'EW-SHOPEE',
231
+ name: 'ShopeePay',
232
+ accountno: '',
233
+ processingFeeRate: 2.5,
234
+ processingFeeAccountNo: '',
195
235
  },
196
236
  },
197
- mandate: {
198
- id: 'MD',
199
- name: 'Mandate',
200
- types: {},
237
+ },
238
+ mandate: {
239
+ id: 'MD',
240
+ name: 'Mandate',
241
+ types: {
242
+ RHB: {
243
+ id: 'MD-RHB',
244
+ name: 'RHB Mandate',
245
+ accountno: '',
246
+ processingFeeRate: 1.0,
247
+ processingFeeAccountNo: '',
248
+ },
201
249
  },
202
- storeCredit: {
203
- id: 'SC',
204
- name: 'Store Credit',
205
- types: {},
250
+ },
251
+ storeCredit: {
252
+ id: 'SC',
253
+ name: 'Store Credit',
254
+ types: {
255
+ scTomei: {
256
+ id: 'SC-TOMEI',
257
+ name: 'Tomei Store Credit',
258
+ accountno: '',
259
+ processingFeeRate: 0.0,
260
+ processingFeeAccountNo: '',
261
+ },
206
262
  },
207
- pointsRedemption: {
208
- id: 'PR',
209
- name: 'Points Redemption',
210
- types: {},
263
+ },
264
+ pointsRedemption: {
265
+ id: 'PR',
266
+ name: 'Points Redemption',
267
+ types: {
268
+ prTomei: {
269
+ id: 'PR-TOMEI',
270
+ name: 'Tomei Points Redemption',
271
+ accountno: '',
272
+ processingFeeRate: 0.0,
273
+ processingFeeAccountNo: '',
274
+ },
211
275
  },
212
- voucher: {
213
- id: 'VC',
214
- name: 'Voucher',
215
- types: {
216
- gift: {
217
- id: 'VC-GF',
218
- name: 'Gift Voucher',
219
- },
220
- cash: {
221
- id: 'VC-CS',
222
- name: 'Cash Voucher',
223
- },
276
+ },
277
+ voucher: {
278
+ id: 'VC',
279
+ name: 'Voucher',
280
+ types: {
281
+ gift: {
282
+ id: 'VC-GF',
283
+ name: 'Gift Voucher',
284
+ accountno: '',
285
+ processingFeeRate: 0.0,
286
+ processingFeeAccountNo: '',
287
+ },
288
+ cash: {
289
+ id: 'VC-CS',
290
+ name: 'Cash Voucher',
291
+ accountno: '',
292
+ processingFeeRate: 0.0,
293
+ processingFeeAccountNo: '',
224
294
  },
225
295
  },
226
296
  },
227
297
  },
228
298
  },
229
299
  },
300
+ };
301
+
302
+ const config = {
303
+ development: {
304
+ environment: 'development',
305
+ ...defaultConfig,
306
+ },
230
307
  test: {
231
- commonApiUrl: process.env.COMMON_API_URL,
232
308
  environment: 'test',
233
- accountingSystem: {
234
- quickbooks: {
235
- packageName: process.env.PACKAGE_NAME,
236
- accountSystemClass: process.env.ACCOUNT_SYSTEM_CLASS,
237
- API_Url: process.env.API_URL,
238
- },
239
- xero: {
240
- packageName: process.env.PACKAGE_NAME,
241
- accountSystemClass: process.env.ACCOUNT_SYSTEM_CLASS,
242
- API_Url: process.env.API_URL,
243
- },
244
- },
245
- systemConfig: {
246
- EZC: {
247
- accountingSystem: 'quickbooks',
248
- companyName: process.env.COMPANY_NAME,
249
- API_Key: process.env.QUICKBOOK_API_KEY,
250
- API_Secret: process.env.QUICKBOOK_API_SECRET,
251
- redirectUrl: process.env.EZCASH_REDIRECT_URL,
252
- },
253
- EZG: {
254
- accountingSystem: 'xero',
255
- companyName: process.env.COMPANY_NAME,
256
- API_Key: process.env.QUICKBOOK_API_KEY,
257
- API_Secret: process.env.QUICKBOOK_API_SECRET,
258
- redirectUrl: process.env.EZGOLD_REDIRECT_URL,
259
- },
260
- },
309
+ ...defaultConfig,
261
310
  },
262
311
  staging: {
263
- commonApiUrl: process.env.COMMON_API_URL,
264
312
  environment: 'staging',
265
- accountingSystem: {
266
- quickbooks: {
267
- packageName: process.env.PACKAGE_NAME,
268
- accountSystemClass: process.env.ACCOUNT_SYSTEM_CLASS,
269
- API_Url: process.env.API_URL,
270
- },
271
- xero: {
272
- packageName: process.env.PACKAGE_NAME,
273
- accountSystemClass: process.env.ACCOUNT_SYSTEM_CLASS,
274
- API_Url: process.env.API_URL,
275
- },
276
- },
277
- systemConfig: {
278
- EZC: {
279
- accountingSystem: 'quickbooks',
280
- companyName: process.env.COMPANY_NAME,
281
- API_Key: process.env.QUICKBOOK_API_KEY,
282
- API_Secret: process.env.QUICKBOOK_API_SECRET,
283
- redirectUrl: process.env.EZCASH_REDIRECT_URL,
284
- },
285
- EZG: {
286
- accountingSystem: 'xero',
287
- companyName: process.env.COMPANY_NAME,
288
- API_Key: process.env.QUICKBOOK_API_KEY,
289
- API_Secret: process.env.QUICKBOOK_API_SECRET,
290
- redirectUrl: process.env.EZGOLD_REDIRECT_URL,
291
- },
292
- },
313
+ ...defaultConfig,
293
314
  },
294
315
  production: {
295
- commonApiUrl: process.env.COMMON_API_URL,
296
316
  environment: 'production',
297
- accountingSystem: {
298
- quickbooks: {
299
- packageName: process.env.PACKAGE_NAME,
300
- accountSystemClass: process.env.ACCOUNT_SYSTEM_CLASS,
301
- API_Url: process.env.API_URL,
302
- },
303
- xero: {
304
- packageName: process.env.PACKAGE_NAME,
305
- accountSystemClass: process.env.ACCOUNT_SYSTEM_CLASS,
306
- API_Url: process.env.API_URL,
307
- },
308
- },
309
- systemConfig: {
310
- EZC: {
311
- accountingSystem: 'quickbooks',
312
- companyName: process.env.COMPANY_NAME,
313
- API_Key: process.env.QUICKBOOK_API_KEY,
314
- API_Secret: process.env.QUICKBOOK_API_SECRET,
315
- redirectUrl: process.env.EZCASH_REDIRECT_URL,
316
- },
317
- EZG: {
318
- accountingSystem: 'xero',
319
- companyName: process.env.COMPANY_NAME,
320
- API_Key: process.env.QUICKBOOK_API_KEY,
321
- API_Secret: process.env.QUICKBOOK_API_SECRET,
322
- redirectUrl: process.env.EZGOLD_REDIRECT_URL,
323
- },
324
- },
317
+ ...defaultConfig,
325
318
  },
326
319
  };
327
320
 
@@ -358,18 +351,19 @@ type Config = {
358
351
  };
359
352
  };
360
353
 
361
- export const getConfig = (): Config => {
362
- // switch (process.env.NODE_ENV) {
363
- // case 'development':
364
- // return config['development'];
365
- // case 'test':
366
- // return config['test'];
367
- // case 'staging':
368
- // return config['staging'];
369
- // case 'production':
370
- // return config['production'];
371
- // default:
372
- // break;
373
- // }
374
- return config['development'];
354
+ const getConfig = () => {
355
+ switch (process.env.NODE_ENV) {
356
+ case 'development':
357
+ return config['development'];
358
+ case 'test':
359
+ return config['test'];
360
+ case 'staging':
361
+ return config['staging'];
362
+ case 'production':
363
+ return config['production'];
364
+ default:
365
+ break;
366
+ }
375
367
  };
368
+
369
+ module.exports = () => getConfig();