UNPKG

@tomei/finance

Version:

NestJS package for finance module

349 lines (342 loc) 9.08 kB
const dotenv = require('dotenv'); dotenv.config(); const defaultConfig = { commonApiUrl: process.env.COMMON_API_URL, accountingSystem: { quickbooks: { packageName: process.env.PACKAGE_NAME || '', accountSystemClass: process.env.ACCOUNT_SYSTEM_CLASS || '', apiUrl: process.env.API_URL || '', }, xero: { packageName: process.env.PACKAGE_NAME || '', accountSystemClass: process.env.ACCOUNT_SYSTEM_CLASS || '', apiUrl: process.env.API_URL || '', }, }, financeCompanies: { 'TXG-FS': { companyId: process.env.COMPANYID || 'TXG-FS', companyName: process.env.COMPANYNAME || 'TXG Financial Solutions Sdn Bhd', companySystemCode: process.env.COMPSYSTEMCODE || 'Tomei-SSO', companySystemRefId: process.env.COMPSYSTEMREFID || '', accountSystemCode: process.env.ACCSYSTEMCODE || '', accountingSystem: 'quickbooks', apiKey: process.env.QUICKBOOK_API_KEY, redirectUrl: process.env.EZGOLD_REDIRECT_URL, apiSecret: process.env.QUICKBOOK_API_SECRET, paymentMethods: { cash: { id: 'CS', name: 'Cash', types: { cash: { id: 'CS-CASH', name: 'Cash', accountNo: 'CASH', processingFeeRate: 0.0, processingFeeAccountNo: 'CASH-FEE', }, }, }, bankTransfer: { id: 'BT', name: 'Bank Transfer', types: { bankTransfer: { id: 'BT-RHB', name: 'RHB', accountNo: '19GKBA20900-01', processingFeeRate: 1.0, processingFeeAccountNo: 'RHB-FEE', }, }, }, debitCard: { id: 'DC', name: 'Debit Card', types: { mastercard: { id: 'DC-MSC', name: 'Mastercard', accountNo: 'CURLEC', processingFeeRate: 1.5, processingFeeAccountNo: 'CURLEC-FEE', }, visa: { id: 'DC-VISA', name: 'Visa', accountNo: 'CURLEC', processingFeeRate: 1.5, processingFeeAccountNo: 'CURLEC-FEE', }, }, }, creditCard: { id: 'CC', name: 'Credit Card', types: { mastercard: { id: 'CC-MSC', name: 'Mastercard', accountNo: 'CURLEC', processingFeeRate: 2.5, processingFeeAccountNo: 'CURLEC-FEE', }, visa: { id: 'CC-VISA', name: 'Visa', accountNo: 'CURLEC', processingFeeRate: 2.5, processingFeeAccountNo: 'CURLEC-FEE', }, amex: { id: 'CC-AMEX', name: 'American Express', accountNo: 'CURLEC', processingFeeRate: 3.5, processingFeeAccountNo: 'CURLEC-FEE', }, }, }, mandate: { id: 'MD', name: 'Mandate', types: { RHB: { id: 'MD-RHB', name: 'RHB Mandate', accountNo: '19GKBA20900-01', processingFeeRate: 1.0, processingFeeAccountNo: 'RHB-FEE', }, }, }, }, taxCode: { 'T00-1': { taxCode: 'T-001', taxRate: 6.0, description: 'Sales Tax', }, 'T00-2': { taxCode: 'T-002', taxRate: 0.5, description: 'Market Tax', }, }, }, 'TXG-B': { companyId: 'TXG-B', companyName: 'TXG Bullion Sdn Bhd', companySystemCode: 'Tomei-SSO', companySystemRefId: '', accountingSystem: 'quickbooks', accountSystemCode: '', apiKey: '', apiSecret: '', redirectUrl: process.env.EZGOLD_REDIRECT_URL, paymentMethods: { cash: { id: 'CS', name: 'Cash', types: { cash: { id: 'CS-CASH', name: 'Cash', accountno: '', processingFeeRate: 0.0, processingFeeAccountNo: '', }, }, }, bankTransfer: { id: 'BT', name: 'Bank Transfer', types: { banktransfer: { id: 'BT-RHB', name: 'RHB', accountno: '', processingFeeRate: 1.0, processingFeeAccountNo: '', }, }, }, debitCard: { id: 'DC', name: 'Debit Card', types: { mastercard: { id: 'DC-MSC', name: 'Mastercard', accountno: '', processingFeeRate: 1.5, processingFeeAccountNo: '', }, visa: { id: 'DC-VISA', name: 'Visa', accountno: '', processingFeeRate: 1.5, processingFeeAccountNo: '', }, }, }, creditCard: { id: 'CC', name: 'Credit Card', types: { mastercard: { id: 'CC-MSC', name: 'Mastercard', accountno: '', processingFeeRate: 2.5, processingFeeAccountNo: '', }, visa: { id: 'CC-VISA', name: 'Visa', accountno: '', processingFeeRate: 2.5, processingFeeAccountNo: '', }, amex: { id: 'CC-AMEX', name: 'American Express', accountno: '', processingFeeRate: 3.5, processingFeeAccountNo: '', }, }, }, eWallet: { id: 'EW', name: 'E-Wallet', types: { touchngo: { id: 'EW-T&G', name: 'Touch & Go', accountno: '', processingFeeRate: 1.5, processingFeeAccountNo: '', }, Boost: { id: 'EW-BOOST', name: 'Boost', accountno: '', processingFeeRate: 2.5, processingFeeAccountNo: '', }, GrabPay: { id: 'EW-GRAB', name: 'GrabPay', accountno: '', processingFeeRate: 2.5, processingFeeAccountNo: '', }, ShopeePay: { id: 'EW-SHOPEE', name: 'ShopeePay', accountno: '', processingFeeRate: 2.5, processingFeeAccountNo: '', }, }, }, mandate: { id: 'MD', name: 'Mandate', types: { RHB: { id: 'MD-RHB', name: 'RHB Mandate', accountno: '', processingFeeRate: 1.0, processingFeeAccountNo: '', }, }, }, storeCredit: { id: 'SC', name: 'Store Credit', types: { scTomei: { id: 'SC-TOMEI', name: 'Tomei Store Credit', accountno: '', processingFeeRate: 0.0, processingFeeAccountNo: '', }, }, }, pointsRedemption: { id: 'PR', name: 'Points Redemption', types: { prTomei: { id: 'PR-TOMEI', name: 'Tomei Points Redemption', accountno: '', processingFeeRate: 0.0, processingFeeAccountNo: '', }, }, }, voucher: { id: 'VC', name: 'Voucher', types: { gift: { id: 'VC-GF', name: 'Gift Voucher', accountno: '', processingFeeRate: 0.0, processingFeeAccountNo: '', }, cash: { id: 'VC-CS', name: 'Cash Voucher', accountno: '', processingFeeRate: 0.0, processingFeeAccountNo: '', }, }, }, }, }, }, }; const config = { development: { environment: 'development', ...defaultConfig, }, test: { environment: 'test', ...defaultConfig, }, staging: { environment: 'staging', ...defaultConfig, }, production: { environment: 'production', ...defaultConfig, }, }; const getConfig = () => { switch (process.env.NODE_ENV) { case 'development': return config['development']; case 'test': return config['test']; case 'staging': return config['staging']; case 'production': return config['production']; default: break; } }; module.exports = () => getConfig();