diff --git a/package-lock.json b/package-lock.json
index 65d935b..072f909 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -40,6 +40,7 @@
"ngx-toastr": "13.2.1",
"ngx-trend": "6.1.1",
"pdfmake": "^0.2.5",
+ "qrcode": "^1.5.3",
"rxjs": "7.0.0",
"sweetalert2": "^11.7.16",
"to-words": "^3.2.0",
@@ -3100,7 +3101,6 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
"integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -5357,7 +5357,6 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -5635,6 +5634,11 @@
"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
"dev": true
},
+ "node_modules/dijkstrajs": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz",
+ "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA=="
+ },
"node_modules/dir-glob": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
@@ -5860,8 +5864,7 @@
"node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
"node_modules/emojis-list": {
"version": "3.0.0",
@@ -5872,6 +5875,11 @@
"node": ">= 4"
}
},
+ "node_modules/encode-utf8": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz",
+ "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw=="
+ },
"node_modules/encodeurl": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
@@ -6713,7 +6721,6 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
"integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
"dependencies": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
@@ -7050,7 +7057,6 @@
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "dev": true,
"engines": {
"node": "6.* || 8.* || >= 10.*"
}
@@ -8174,7 +8180,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
"engines": {
"node": ">=4"
}
@@ -8760,7 +8765,6 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
"integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
"dependencies": {
"p-locate": "^4.1.0"
},
@@ -10264,7 +10268,6 @@
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
"dependencies": {
"p-try": "^2.0.0"
},
@@ -10276,7 +10279,6 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
"integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
"dependencies": {
"p-limit": "^2.2.0"
},
@@ -10312,7 +10314,6 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true,
"engines": {
"node": ">=6"
}
@@ -10520,7 +10521,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true,
"engines": {
"node": ">=4"
}
@@ -10672,6 +10672,14 @@
"resolved": "https://registry.npmjs.org/png-js/-/png-js-1.0.0.tgz",
"integrity": "sha512-k+YsbhpA9e+EFfKjTCH3VW6aoKlyNYI6NYdTfDL4CIvFnvsuO84ttonmZE7rc+v23SLTH8XX+5w/Ak9v0xGY4g=="
},
+ "node_modules/pngjs": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz",
+ "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==",
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
"node_modules/pnp-webpack-plugin": {
"version": "1.6.4",
"resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz",
@@ -11358,6 +11366,117 @@
"node": ">=6"
}
},
+ "node_modules/qrcode": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz",
+ "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==",
+ "dependencies": {
+ "dijkstrajs": "^1.0.1",
+ "encode-utf8": "^1.0.3",
+ "pngjs": "^5.0.0",
+ "yargs": "^15.3.1"
+ },
+ "bin": {
+ "qrcode": "bin/qrcode"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/qrcode/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/qrcode/node_modules/camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/qrcode/node_modules/cliui": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^6.2.0"
+ }
+ },
+ "node_modules/qrcode/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/qrcode/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "node_modules/qrcode/node_modules/wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/qrcode/node_modules/yargs": {
+ "version": "15.4.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
+ "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
+ "dependencies": {
+ "cliui": "^6.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^4.1.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^4.2.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^18.1.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/qrcode/node_modules/yargs-parser": {
+ "version": "18.1.3",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+ "dependencies": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/qs": {
"version": "6.7.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
@@ -11705,7 +11824,6 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
"integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -11713,8 +11831,7 @@
"node_modules/require-main-filename": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
- "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
- "dev": true
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
},
"node_modules/requires-port": {
"version": "1.0.0",
@@ -12351,8 +12468,7 @@
"node_modules/set-blocking": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
- "dev": true
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
},
"node_modules/set-value": {
"version": "2.0.1",
@@ -13269,7 +13385,6 @@
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
"integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
- "dev": true,
"dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
@@ -13283,7 +13398,6 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
"integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
- "dev": true,
"dependencies": {
"ansi-regex": "^5.0.0"
},
@@ -15772,8 +15886,7 @@
"node_modules/which-module": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
- "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
- "dev": true
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
},
"node_modules/wide-align": {
"version": "1.1.3",
@@ -16027,8 +16140,7 @@
"node_modules/y18n": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
- "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
- "dev": true
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
},
"node_modules/yallist": {
"version": "4.0.0",
@@ -18794,8 +18906,7 @@
"ansi-regex": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
- "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
- "dev": true
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
},
"ansi-styles": {
"version": "3.2.1",
@@ -20755,8 +20866,7 @@
"decamelize": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
- "dev": true
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
},
"decode-uri-component": {
"version": "0.2.0",
@@ -20988,6 +21098,11 @@
}
}
},
+ "dijkstrajs": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz",
+ "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA=="
+ },
"dir-glob": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
@@ -21208,8 +21323,7 @@
"emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
"emojis-list": {
"version": "3.0.0",
@@ -21217,6 +21331,11 @@
"integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
"dev": true
},
+ "encode-utf8": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz",
+ "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw=="
+ },
"encodeurl": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
@@ -21924,7 +22043,6 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
"integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
"requires": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
@@ -22211,8 +22329,7 @@
"get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "dev": true
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
},
"get-intrinsic": {
"version": "1.1.1",
@@ -23145,8 +23262,7 @@
"is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
},
"is-glob": {
"version": "4.0.1",
@@ -23617,7 +23733,6 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
"integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
"requires": {
"p-locate": "^4.1.0"
}
@@ -24860,7 +24975,6 @@
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
"requires": {
"p-try": "^2.0.0"
}
@@ -24869,7 +24983,6 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
"integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
"requires": {
"p-limit": "^2.2.0"
}
@@ -24895,8 +25008,7 @@
"p-try": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
},
"pacote": {
"version": "11.2.4",
@@ -25077,8 +25189,7 @@
"path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
},
"path-is-absolute": {
"version": "1.0.1",
@@ -25196,6 +25307,11 @@
"resolved": "https://registry.npmjs.org/png-js/-/png-js-1.0.0.tgz",
"integrity": "sha512-k+YsbhpA9e+EFfKjTCH3VW6aoKlyNYI6NYdTfDL4CIvFnvsuO84ttonmZE7rc+v23SLTH8XX+5w/Ak9v0xGY4g=="
},
+ "pngjs": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz",
+ "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw=="
+ },
"pnp-webpack-plugin": {
"version": "1.6.4",
"resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz",
@@ -25749,6 +25865,92 @@
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
"dev": true
},
+ "qrcode": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz",
+ "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==",
+ "requires": {
+ "dijkstrajs": "^1.0.1",
+ "encode-utf8": "^1.0.3",
+ "pngjs": "^5.0.0",
+ "yargs": "^15.3.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
+ },
+ "cliui": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^6.2.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "yargs": {
+ "version": "15.4.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
+ "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
+ "requires": {
+ "cliui": "^6.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^4.1.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^4.2.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^18.1.2"
+ }
+ },
+ "yargs-parser": {
+ "version": "18.1.3",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ }
+ }
+ },
"qs": {
"version": "6.7.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
@@ -26045,14 +26247,12 @@
"require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
- "dev": true
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
},
"require-main-filename": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
- "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
- "dev": true
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
},
"requires-port": {
"version": "1.0.0",
@@ -26612,8 +26812,7 @@
"set-blocking": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
- "dev": true
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
},
"set-value": {
"version": "2.0.1",
@@ -27410,7 +27609,6 @@
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
"integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
- "dev": true,
"requires": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
@@ -27421,7 +27619,6 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
"integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
- "dev": true,
"requires": {
"ansi-regex": "^5.0.0"
}
@@ -29495,8 +29692,7 @@
"which-module": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
- "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
- "dev": true
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
},
"wide-align": {
"version": "1.1.3",
@@ -29707,8 +29903,7 @@
"y18n": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
- "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
- "dev": true
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
},
"yallist": {
"version": "4.0.0",
diff --git a/package.json b/package.json
index c9c07d3..d914add 100644
--- a/package.json
+++ b/package.json
@@ -42,6 +42,7 @@
"ngx-toastr": "13.2.1",
"ngx-trend": "6.1.1",
"pdfmake": "^0.2.5",
+ "qrcode": "^1.5.3",
"rxjs": "7.0.0",
"sweetalert2": "^11.7.16",
"to-words": "^3.2.0",
diff --git a/src/app/_dto/payment-info.dto.ts b/src/app/_dto/payment-info.dto.ts
new file mode 100644
index 0000000..913ec61
--- /dev/null
+++ b/src/app/_dto/payment-info.dto.ts
@@ -0,0 +1,15 @@
+
+export class PaymentInfoDto {
+
+ userId:string
+
+ tenderId:number
+
+ transId:number
+
+ status?:string
+
+ finalBidAmt?:number;
+
+ id?:any;
+}
\ No newline at end of file
diff --git a/src/app/_modules/auth/view/view.component.html b/src/app/_modules/auth/view/view.component.html
index 06e3ac8..a0bb948 100644
--- a/src/app/_modules/auth/view/view.component.html
+++ b/src/app/_modules/auth/view/view.component.html
@@ -358,7 +358,11 @@
- Download
+
+ Download
+ Documents can Only be download between {{tenderData.saleStartDate | date: 'MMM d, y, h:mm:ss a'}} and {{tenderData.saleEndDate| date: 'MMM d, y, h:mm:ss a'}}
+
+
@@ -371,7 +375,11 @@
- Drawings Download
+ Drawings
+ Download
+ Documents can Only be download between {{tenderData.saleStartDate | date: 'MMM d, y, h:mm:ss a'}} and {{tenderData.saleEndDate| date: 'MMM d, y, h:mm:ss a'}}
+
+
diff --git a/src/app/_modules/dashboard/add-tenders/add-tenders.component.ts b/src/app/_modules/dashboard/add-tenders/add-tenders.component.ts
index 13f4358..9f5d092 100644
--- a/src/app/_modules/dashboard/add-tenders/add-tenders.component.ts
+++ b/src/app/_modules/dashboard/add-tenders/add-tenders.component.ts
@@ -515,7 +515,7 @@ UploadNoticeFiles(event: any, i: number, type: string) {
}
TenderFeeDetails(){
- if( this.tenderData.tenderFee == null || this.tenderData.tenderFee == undefined){
+ if( this.tenderData.tenderFee == null || this.tenderData.tenderFee == undefined || this.tenderData.tenderFee <1 ){
this._ui.toastMessage(this.errorTranslateService.translate("tenderFeeInCantBeBlank"),2000,true);
}
// else if(this.tenderData.feePayableTo =='' || this.tenderData.feePayableTo == null || this.tenderData.feePayableTo == undefined){
@@ -564,9 +564,9 @@ UploadNoticeFiles(event: any, i: number, type: string) {
this._ui.toastMessage(this.errorTranslateService.translate("workDescriptionCantBeBlank"),2000,true);
}
- else if( this.tenderData.tenderValue == null || this.tenderData.tenderValue == undefined){
- this._ui.toastMessage(this.errorTranslateService.translate("tenderValueCantBeBlank"),2000,true);
- }
+ // else if( this.tenderData.tenderValue == null || this.tenderData.tenderValue == undefined){
+ // this._ui.toastMessage(this.errorTranslateService.translate("tenderValueCantBeBlank"),2000,true);
+ // }
else if( this.tenderData.productCategory == null || this.tenderData.productCategory == undefined){
this._ui.toastMessage(this.errorTranslateService.translate("productCategoryCantBeBlank"),2000,true);
}
diff --git a/src/app/_modules/dashboard/dashboard-routing.module.ts b/src/app/_modules/dashboard/dashboard-routing.module.ts
index c6d26aa..1ef605c 100644
--- a/src/app/_modules/dashboard/dashboard-routing.module.ts
+++ b/src/app/_modules/dashboard/dashboard-routing.module.ts
@@ -5,6 +5,8 @@ import { LayoutComponentComponent } from './layout-component/layout-component.co
import { HomeViewComponent } from './home-view/home-view.component';
import { HomeUploadComponent } from './home-upload/home-upload.component';
import { AddTendersComponent } from './add-tenders/add-tenders.component';
+import { QrPaymentComponent } from './qr-payment/qr-payment.component';
+import { PaymentDetailsComponent } from './payment-details/payment-details.component';
const routes: Routes = [
{
@@ -13,10 +15,11 @@ const routes: Routes = [
{ path: 'dashboard', component: DashboardComponent },
{path:'tender-view/:id', component:HomeViewComponent},
{path:'tender-view/:id/:pay', component:HomeViewComponent},
-
+ { path :'payment-details/:id' , component:PaymentDetailsComponent},
{path:'tender-upload/:id',component:HomeUploadComponent},
{ path: 'add-tenders', component: AddTendersComponent},
- { path: 'add-tenders/:id', component: AddTendersComponent}
+ { path: 'add-tenders/:id', component: AddTendersComponent},
+ { path: 'qr-payment/:id', component: QrPaymentComponent}
// { path: 'master', loadChildren: () => import('../master/master.module').then(m => m.MasterModule) },
// { path: 'report', loadChildren: () => import('../report/report.module').then(m => m.ReportModule) },
diff --git a/src/app/_modules/dashboard/dashboard.component.html b/src/app/_modules/dashboard/dashboard.component.html
index 59372ee..cf3286a 100644
--- a/src/app/_modules/dashboard/dashboard.component.html
+++ b/src/app/_modules/dashboard/dashboard.component.html
@@ -137,7 +137,7 @@
-
@@ -185,6 +185,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
@@ -235,6 +251,26 @@
+
+
+
+
+
+
+
+
{{ element.countStatusP }}
+
+
+
+
+
+
+
{{ 'loadingData' | translate }}
diff --git a/src/app/_modules/dashboard/dashboard.component.scss b/src/app/_modules/dashboard/dashboard.component.scss
index bc6d761..ff48edc 100644
--- a/src/app/_modules/dashboard/dashboard.component.scss
+++ b/src/app/_modules/dashboard/dashboard.component.scss
@@ -352,4 +352,19 @@ input {
font-family: texg;
font-weight: 800;
color:#4c4c4c;
-}
\ No newline at end of file
+}
+
+.circle-span {
+ cursor: pointer;
+ display: inline-block;
+ width: 20px;
+ height: 20px;
+ background-color: white;
+ border-radius: 50%;
+ text-align: center;
+ line-height: 20px;
+ border: 1px solid rgb(202, 202, 202);
+ font-size: x-small;/* Optional: add a border to the circle */
+ transform: translate(-8px, -6px);
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
+}
diff --git a/src/app/_modules/dashboard/dashboard.component.ts b/src/app/_modules/dashboard/dashboard.component.ts
index 4826261..1292978 100644
--- a/src/app/_modules/dashboard/dashboard.component.ts
+++ b/src/app/_modules/dashboard/dashboard.component.ts
@@ -64,6 +64,7 @@ export class DashboardComponent implements OnInit {
noData: boolean;
userId: string;
tenderId: number;
+ countStatusP: any;
constructor(
private _menuService: MenuService,
@@ -85,10 +86,10 @@ export class DashboardComponent implements OnInit {
// this.emails$ = this.emailService.loadEmails();
// this.getSchoolLogo();
if(this.seculevel == 'B'){
- this.displayedColumns = ['actions','title','publishedDate','bidOpenDate','status','view','report'];
+ this.displayedColumns = ['actions','title','publishedDate','bidOpenDate','status','Paymentstatus','view','report'];
}
else{
- this.displayedColumns = ['slno','title','publishedDate','bidOpenDate','view','upload'];
+ this.displayedColumns = ['slno','title','publishedDate','bidOpenDate','userPayments','view','upload'];
}
}
@@ -154,9 +155,15 @@ export class DashboardComponent implements OnInit {
else
this._masterService.getMasterData(apiUrl.adminTenderView +'?order[id]=DESC').then((res) =>{
this.tenderData = res;
-
+ console.log("dtat==",this.tenderData);
+
for(let element of res){
+ this._masterService.getMasterDatabyId(apiUrl.bidReport, element.id).then(result => {
+ element.countStatusP = result.countStatusP;
+ console.log("this.countStatusP ", element.countStatusP);
+
+ })
const publishDate: Date = new Date(element.publishDate);
const bidSubEndDate: Date = new Date(element.bidSubEndDate);
@@ -210,6 +217,8 @@ export class DashboardComponent implements OnInit {
// this.enableDownload = true; // Disable the button
// console.log("disabled");
// }
+
+
}
convertDateFormat(dateString: string): string {
@@ -331,7 +340,9 @@ export class DashboardComponent implements OnInit {
// return menuCompactData;
// }
-
+ goToPayment(id){
+ this.navigateTo(`qr-payment/${id}`)
+ }
public openMenu(): void {
this.isMenuOpened = !this.isMenuOpened;
@@ -372,6 +383,10 @@ export class DashboardComponent implements OnInit {
this.router.navigate(['/tender-view',tenderId]);
}
+ goToPaymentDetails(tenderId){
+ this.router.navigate(['/payment-details',tenderId])
+ }
+
goToAddTenders(){
this.router.navigate(['/add-tenders']);
}
diff --git a/src/app/_modules/dashboard/dashboard.module.ts b/src/app/_modules/dashboard/dashboard.module.ts
index b98353a..a6f2ae1 100644
--- a/src/app/_modules/dashboard/dashboard.module.ts
+++ b/src/app/_modules/dashboard/dashboard.module.ts
@@ -32,6 +32,8 @@ import { LOCALE_ID } from '@angular/core';
import { MatDialogModule } from '@angular/material/dialog';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { DialogComponent } from './dialog/dialog.component';
+import { QrPaymentComponent } from './qr-payment/qr-payment.component';
+import { PaymentDetailsComponent } from './payment-details/payment-details.component';
// import { MatTimepickerModule } from 'mat-timepicker';
// import { MatTimepickerModule } from '@angular/material/timepicker';
@@ -47,6 +49,8 @@ const lang = 'en-US';
TenderHomeComponent,
AddTendersComponent,
DialogComponent,
+ QrPaymentComponent,
+ PaymentDetailsComponent,
],
imports: [
diff --git a/src/app/_modules/dashboard/home-upload/home-upload.component.html b/src/app/_modules/dashboard/home-upload/home-upload.component.html
index 2732119..f2f1157 100644
--- a/src/app/_modules/dashboard/home-upload/home-upload.component.html
+++ b/src/app/_modules/dashboard/home-upload/home-upload.component.html
@@ -39,15 +39,19 @@
+
Upload Files
-
+
-
+
diff --git a/src/app/_modules/dashboard/home-upload/home-upload.component.ts b/src/app/_modules/dashboard/home-upload/home-upload.component.ts
index 7827c0b..b0fc70b 100644
--- a/src/app/_modules/dashboard/home-upload/home-upload.component.ts
+++ b/src/app/_modules/dashboard/home-upload/home-upload.component.ts
@@ -11,12 +11,12 @@ import { UiService } from 'src/app/_providers/_services/ui.service';
import Swal from 'sweetalert2'
import { DialogComponent } from '../dialog/dialog.component';
import { DatePipe } from '@angular/common';
-
@Component({
selector: 'app-home-upload',
templateUrl: './home-upload.component.html',
styleUrls: ['./home-upload.component.scss']
})
+
export class HomeUploadComponent implements OnInit {
phoneInvalid: boolean = false;
@@ -69,6 +69,7 @@ export class HomeUploadComponent implements OnInit {
amountPaid: boolean = false;
OnlinePayment: boolean;
+ dialogRef: any;
constructor(
private router: Router,
@@ -79,6 +80,10 @@ export class HomeUploadComponent implements OnInit {
public dialog: MatDialog,
private datePipe: DatePipe
) {
+
+
+ // this.generateUPIQRCode('atlejs47@oksbi', '100');
+
this.secuLevel = localStorage.getItem('seculevel');
this.userId = localStorage.getItem('userId');
this.tenderId = +this.route.snapshot.paramMap.get('id');
@@ -96,14 +101,11 @@ export class HomeUploadComponent implements OnInit {
this.getData();
this.getFileFormatLov();
this.paymentCheck();
-
}
- ngAfterViewInit(): void {
- setTimeout(() => {
- this.bidAmountInput.nativeElement.focus();
- }, 0);
- }
+
+
+
openDialog() {
@@ -111,7 +113,7 @@ export class HomeUploadComponent implements OnInit {
width: '500px',
data: {
details: [
- 'I hereby declare that I have read and understood the trended documents, terms and conditions, drawings and specifications. The rates quoted are based on all the necessary understanding of the site conditions and challenges to carry out the work. The rates are the best I could offer and is inclusive of all taxes and levies.',
+ 'I hereby declare that I have read and understood the tendered documents, terms and conditions, drawings and specifications. The rates quoted are based on all the necessary understanding of the site conditions and challenges to carry out the work. The rates are the best I could offer and are inclusive of all taxes and levies.',
]
}
});
@@ -122,6 +124,14 @@ export class HomeUploadComponent implements OnInit {
});
}
+ openQrImage(templateRef) {
+ // console.log('this');
+ this.dialogRef = this.dialog.open(templateRef, {
+ width: '400px',
+ disableClose: false
+ });
+ // this.verifiedOtp = true
+ }
paymentCheck(){
this._masterService.getMasterDatabyId(apiUrl.paymentCheck, `${this.userId}/${this.tenderId}`).then(res => {
@@ -365,4 +375,6 @@ if (result.isConfirmed) {
}
+
+
}
diff --git a/src/app/_modules/dashboard/home-view/home-view.component.html b/src/app/_modules/dashboard/home-view/home-view.component.html
index 8a49a05..4872bbf 100644
--- a/src/app/_modules/dashboard/home-view/home-view.component.html
+++ b/src/app/_modules/dashboard/home-view/home-view.component.html
@@ -351,6 +351,8 @@
Download as Zip File
+
+ Documents can Only be download between {{tenderData.saleStartDate | date: 'MMM d, y, h:mm:ss a'}} and {{tenderData.saleEndDate| date: 'MMM d, y, h:mm:ss a'}}
@@ -383,7 +385,10 @@
Description Download as Zip
- File
+ File
+ Documents can Only be download between {{tenderData.saleStartDate | date: 'MMM d, y, h:mm:ss a'}} and {{tenderData.saleEndDate| date: 'MMM d, y, h:mm:ss a'}}
+
+
diff --git a/src/app/_modules/dashboard/home-view/home-view.component.ts b/src/app/_modules/dashboard/home-view/home-view.component.ts
index a1e27cf..65d90da 100644
--- a/src/app/_modules/dashboard/home-view/home-view.component.ts
+++ b/src/app/_modules/dashboard/home-view/home-view.component.ts
@@ -293,31 +293,25 @@ export class HomeViewComponent implements OnInit {
async paymentGateway() {
- // if(this.seculevel != 'B'){
- this.paymentDetails = new PurchaseDto();
- this.paymentDetails.application = this.tenderId;
- this.paymentDetails.mobile = localStorage.getItem('mobile')
- this.paymentDetails.email = "accuratesoftware2022@gmail.com";
- this.paymentDetails.amount = this.tenderData.tenderFee;
- this.paymentDetails.type = "I"
-
- // this.paymentDetails.email=this.issueApplicationData.motherEmail
- // console.log('this.newPaymentRow.paymentMethod ====',this.newPaymentRow);
-
- // let paymentMethod = this.paymentMethodLovData.find(x=> x.id==this.newPaymentRow.paymentMethod)
-
- // console.log('this.paymentDetails===', this.paymentDetails);
-
- this._transactionService.createPayment(this.paymentDetails).then(
- res => {
- this.onSuccessPayment(res);
- },
- err => {
- this.onFailurePayment(err);
- // console.log("==er====", err);
- }
- );
- // }
+ // this.paymentDetails = new PurchaseDto();
+ // this.paymentDetails.application = this.tenderId;
+ // this.paymentDetails.mobile = localStorage.getItem('mobile')
+ // this.paymentDetails.email = "accuratesoftware2022@gmail.com";
+ // this.paymentDetails.amount = this.tenderData.tenderFee;
+ // this.paymentDetails.type = "I"
+
+
+ // this._transactionService.createPayment(this.paymentDetails).then(
+ // res => {
+ // this.onSuccessPayment(res);
+ // },
+ // err => {
+ // this.onFailurePayment(err);
+ // }
+ // );
+
+
+ this.router.navigate([`qr-payment/${this.tenderId}`])
}
diff --git a/src/app/_modules/dashboard/payment-details/payment-details.component.html b/src/app/_modules/dashboard/payment-details/payment-details.component.html
new file mode 100644
index 0000000..1f021ad
--- /dev/null
+++ b/src/app/_modules/dashboard/payment-details/payment-details.component.html
@@ -0,0 +1,220 @@
+
+
+
+ Back
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{title | translate}}
+
+
+
+
+
+
+ Tender Name
+
+ {{headerData?.title}}
+
+
+
+ Published Date
+
+ {{headerData?.publishDate }}
+
+
+
+
+
+ Tender Id
+
+ {{tenderInputId }}
+
+
+ Bid Open Date
+
+ {{headerData?.bidOpenDate}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{i+1}}
+
+
+
+
+
+
+
+ {{element?.userName}}
+
+
+
+
+
+
+
+ {{element.rollNo }}
+
+
+
+
+
+
+
+
+
+ {{element?.mobileNumber}}
+
+
+
+
+
+
+
+ {{element?.email}}
+
+
+
+
+
+
+
+
+
+ {{element?.transId}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Pending
+ Decline
+ Confirm
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/_modules/dashboard/payment-details/payment-details.component.scss b/src/app/_modules/dashboard/payment-details/payment-details.component.scss
new file mode 100644
index 0000000..17ddfdd
--- /dev/null
+++ b/src/app/_modules/dashboard/payment-details/payment-details.component.scss
@@ -0,0 +1,409 @@
+// .header {
+// margin-left: 4%;
+// margin-top: 20px;
+// }
+
+// .header>h6{
+// a {
+// text-decoration: none;
+// color: #262627;
+// }
+
+// a:hover {
+// text-decoration: underline;
+// cursor: pointer;
+// }
+// }
+
+// mat-card{
+// min-width: 180px ;
+// // max-width: 20vw;
+// height: 200px;
+// display: inline-block;
+// }
+
+// mat-card:hover{
+// cursor: pointer;
+// }
+
+
+// -----------------------------------------------------------------------------------
+
+
+
+.nav-link:hover {
+ color: red;
+ }
+
+
+ th,
+ td {
+ padding: 10px;
+ // border: 1px solid #ccc;
+ word-wrap: break-word;
+ white-space: normal;
+
+ }
+
+ .h2 {
+ font-family: sans-serif;
+ font-size: 26px;
+ font-weight: 500;
+ }
+
+
+ .table td {
+ word-break: break-word;
+ }
+
+ .table-break-word {
+ word-break: break-word;
+ }
+
+
+
+ .top-bar {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-between;
+ border: 1px solid #e3e3e3;
+ width: 100%;
+ margin: auto;
+ padding: auto;
+ }
+
+ .header {
+ padding: 20px;
+ width: 100%;
+ min-width: 350px;
+ }
+
+ .header>h6>a {
+ text-decoration: none;
+ color: #262627;
+ }
+
+ .header>h6>a:hover {
+ text-decoration: underline;
+ cursor: pointer;
+ }
+
+ mat-card {
+ min-width: 350px;
+ }
+
+ .top-left-float {
+ display: flex;
+ min-width: 282px;
+ }
+
+ .top-right-float {
+ display: flex;
+ min-width: 161px;
+ }
+
+ .top-left-float>button,
+ .top-right-float>button {
+ margin: 5px;
+ height: 40px;
+ }
+
+ mat-table {
+ padding-top: 10px !important;
+ // table-layout: fixed;
+ width: 100%;
+ display: table;
+ overflow-x: scroll;
+
+ .table-headers {
+ padding: 5px;
+ color: #505050;
+ font-weight: 900;
+ font-size: medium;
+ background-color: #f0f0f0;
+ font-family: nucleo;
+ }
+
+ .table-headers:hover {
+ background-color: #ececec;
+ color: #46AC9E;
+ }
+
+ .table-content {
+ padding: 5px;
+ overflow-wrap: inherit;
+ font-family: nucleo;
+
+ }
+
+ .table-column {
+ width: 100%;
+ }
+ }
+
+ input {
+ border: none;
+ border-bottom: 1px solid silver;
+ }
+
+ :host ::ng-deep .mat-slide-toggle.mat-checked:not(.mat-disabled) {
+
+ .mat-slide-toggle-thumb {
+ background-color: #46AC9E;
+ }
+
+ .mat-slide-toggle-bar {
+ background-color: skyblue;
+ }
+
+ }
+
+ // .dialog-body {
+ // display: flex;
+ // justify-content: center;
+ // align-items: center;
+
+ // div {
+ // width: 90%;
+ // }
+ // }
+
+ .dialog-actions {
+ display: flex;
+ flex-wrap: wrap;
+ width: 97%;
+ justify-content: space-between;
+
+ .btn-group-left {
+ // min-width: 150px;
+ margin-top: 5px;
+ }
+
+ .btn-group-right {
+ // min-width: 95px;
+ margin-top: 5px;
+ }
+ }
+
+ .hide {
+ display: none;
+ }
+
+ :host ::ng-deep {
+ .mat-form-field-infix {
+ border-bottom: 0px solid white;
+ }
+
+ .mat-table {
+ tr {
+
+ th,
+ td {
+ vertical-align: middle;
+ }
+ }
+ }
+
+ }
+
+
+
+
+ .img-fluid {
+ margin-right: 5px;
+ max-height: 40px;
+ }
+
+ // .navbar {
+ // background-position: center;
+ // }
+
+
+ @media (max-width: 767px) {
+ .card {
+ min-width: 600px;
+ }
+ }
+
+
+ @media print {
+ .buttonCard {
+ display: none;
+ }
+
+ .backButton {
+ display: none;
+ }
+
+ .printButton {
+ display: none;
+ }
+
+ .excelButton {
+ display: none;
+ }
+ }
+
+ .mat-row:nth-child(even) {
+ background-color: rgb(255, 255, 255);
+ }
+
+ .mat-row:nth-child(odd) {
+ background-color: rgb(241, 241, 241);
+ }
+
+ .table-container {
+ margin-top: 20px
+ }
+
+
+ .backButton {
+ float: left;
+ margin-top: 5px;
+ margin-bottom: 5px;
+ color: #424242;
+ background-color: white;
+ height: 37px;
+ border-radius: 9px;
+ font-family: nucleo;
+ // width: 8%;
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
+ transform: translateY(5px);
+
+ }
+
+ .backButton:hover {
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
+ /* You can adjust the shadow values to your preference */
+ }
+
+ .printButton {
+ float: right;
+ margin-top: 5px;
+ margin-bottom: 5px;
+ background-color: white;
+ color: #424242;
+ height: 37px;
+ border-radius: 9px;
+ font-family: nucleo;
+ width: 8%;
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
+
+ }
+
+ .printButton:hover {
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
+ /* You can adjust the shadow values to your preference */
+ }
+
+ .excelButton {
+ float: right;
+ margin-top: 5px;
+ margin-bottom: 5px;
+ color: #424242;
+ background-color: white;
+ height: 37px;
+ border-radius: 9px;
+ font-family: nucleo;
+ width: 8%;
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
+ margin-right: 5px;
+ }
+
+ .excelButton:hover {
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
+ /* You can adjust the shadow values to your preference */
+ }
+
+ .buttonCard {
+ width: 100%;
+ background-color: #ffffff;
+ height: 50px;
+ margin: 0px;
+ padding: 0px 16px 0px 16px;
+ margin-top: 20px;
+ }
+ .buttonCardBottom{
+ width: 100%;
+ background-color: #ffffff;
+ height: 50px;
+ margin: 0px;
+ padding: 0px 16px 0px 16px;
+ margin-bottom: 20px;
+ }
+
+ .reportHeader {
+ width: 100%;
+ background-color: #ffffff;
+ // height: 50px;
+ margin: 5px 0px 0px 0px;
+ }
+
+ .bidHeading {
+ font-family: texg;
+ color: #353535;
+ }
+
+ .tenderInfo {
+ font-family: texg;
+ color: #353535;
+ }
+
+ .subHead {
+ font-family: texg;
+ color: #353535;
+ }
+
+ .subDetail {
+ font-family: nucleo;
+ color: #353535;
+ }
+
+ .captchaFont {
+ font-family: captcha;
+ font-size: large;
+ }
+
+ .captchaDiv {
+ text-align: center;
+ height: 100px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+
+ background-image: url('/assets/img/captchaback.jpeg');
+ }
+
+ .captchaSubmit{
+ float: right;
+ margin-top: 5px;
+ margin-bottom: 5px;
+ color: #424242;
+ background-color: white;
+ height: 37px;
+ border-radius: 9px;
+ font-family: nucleo;
+ // width: 8%;
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
+ margin-right: 5px;
+ }
+ .captchaSubmit:hover {
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);
+ background-color: rgb(240, 240, 240);
+
+ /* You can adjust the shadow values to your preference */
+ }
+
+ .rotate-icon {
+ animation: rotate 1s infinite;
+ }
+
+ @keyframes rotate {
+ 0% { transform: rotate(0deg); }
+ 100% { transform: rotate(360deg); }
+ }
+
+ .table-responsive {
+ overflow-x: scroll;
+ }
+
\ No newline at end of file
diff --git a/src/app/_modules/dashboard/payment-details/payment-details.component.ts b/src/app/_modules/dashboard/payment-details/payment-details.component.ts
new file mode 100644
index 0000000..9248d8e
--- /dev/null
+++ b/src/app/_modules/dashboard/payment-details/payment-details.component.ts
@@ -0,0 +1,124 @@
+import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';
+import { MatSort, Sort } from '@angular/material/sort';
+import { MatTableDataSource } from '@angular/material/table';
+import { ActivatedRoute, Router } from '@angular/router';
+import { apiUrl } from 'src/app/_providers/_resources/api-url.properties';
+import { MasterService } from 'src/app/_providers/_services/master.service';
+import { UiService } from 'src/app/_providers/_services/ui.service';
+
+@Component({
+ selector: 'app-payment-details',
+ templateUrl: './payment-details.component.html',
+ styleUrls: ['./payment-details.component.scss']
+})
+export class PaymentDetailsComponent implements OnInit {
+
+
+ title = 'Payment Details';
+
+ today: Date = new Date();
+
+ @ViewChild('table', { static: false }) table: ElementRef;
+
+ @ViewChild(MatSort, { static: false }) sort: MatSort;
+
+ displaycolumns: string[] = ['slNo', 'name', 'mobileNumber', 'email', 'transId', 'Paymentstatus'];
+
+ dataSource: MatTableDataSource
;
+
+ tenderId: number;
+
+ headerData: any;
+
+ tableData: any;
+
+ tenderInputId: any;
+
+
+ paymentStatus: any;
+ userId: string;
+
+ constructor(
+ private _router: Router,
+ private _masterService: MasterService,
+ private route: ActivatedRoute,
+ private _ui:UiService,
+ ) {
+ this.tenderId = +this.route.snapshot.paramMap.get('id');
+ }
+
+ ngOnInit(): void {
+ this.getHeaderData(this.tenderId);
+ this.getTableData(this.tenderId);
+ }
+
+ getHeaderData(id) {
+ this._masterService.getMasterDatabyId(apiUrl.getTender, id).then(res => {
+ this.headerData = res;
+
+ this.tenderInputId = res.tenderId
+ })
+ }
+
+ getTableData(id) {
+ this._masterService.getMasterDatabyId(apiUrl.bidReport, id).then(res => {
+ console.log("res",res);
+
+ this.tableData = res.report
+ this.tableData.forEach(element => {
+ if (element.status === 'P') {
+ element.paymentStatus = 'P';
+ }
+ if(element.status === 'S'){
+ element.paymentStatus = 'S';
+ }
+ if(element.status === 'D'){
+ element.paymentStatus = 'D';
+ }
+ });
+
+ this.tableData.sort((a, b) => {
+ if (a.status === 'P' && b.status !== 'P') {
+ return -1;
+ } else if (a.status !== 'P' && b.status === 'P') {
+ return 1;
+ } else {
+ return 0;
+ }
+ });
+
+ this.dataSource = new MatTableDataSource(this.tableData);
+ this.dataSource.sort = this.sort;
+ })
+ }
+
+ navigateTo(destination) {
+ this._router.navigate([destination])
+ }
+
+ backButton() {
+ this.navigateTo('/dashboard')
+ // this.backClick.emit()
+ }
+
+ sortData(sort: Sort) {}
+
+ onPaymentStatusChange(userId, paymentStatus){
+ console.log("this.paymentStatus",paymentStatus);
+
+
+ let body = {
+ status : paymentStatus
+ }
+ this._masterService.postMasterData(apiUrl.paymentupdatePaymentStatus,body,`${userId}/${this.tenderId}`).then((res) =>{
+ console.log(res);
+ this._ui.toastMessage(res.data)
+
+ },err=>{
+ this._ui.toastMessage(err.error.message);
+
+
+ })
+ }
+
+}
diff --git a/src/app/_modules/dashboard/qr-payment/qr-payment.component.html b/src/app/_modules/dashboard/qr-payment/qr-payment.component.html
new file mode 100644
index 0000000..30599e6
--- /dev/null
+++ b/src/app/_modules/dashboard/qr-payment/qr-payment.component.html
@@ -0,0 +1,65 @@
+
+
+
+
Payment Status : {{paymentStatus}}
+
+
Amount need to be paid : ₹{{amountReq}}/- Only
+
+
+
+
+
+
+
+
+
Please provide the transaction id of payment you've made successfully.
+
+
+ Transaction ID
+
+
+
+
+ Submit
+
+
+
+
+
+
+
+
+
+
+
+
+
+
How can I pay?
+
+ Launch the payment app on your smartphone
+ scan the code
+ Review the payment details to ensure they're correct, and then confirm the transaction
+
+
How do I get my Transaction Id?
+
+ The method to obtain a transaction ID for a QR code payment can vary depending on the payment app you're using and the platform through which you made the payment. Generally, when you make a payment using a QR code, the transaction ID is usually generated and provided to you as a confirmation of the completed payment. please check your payment app or mail for Transaction ID
+
+
How can I ensure that the payment was successful?
+
+ After your successfull payment,enter the transaction Id
+ After the confirmation from Bank, your payment status will be changed from Pending to Paid
+
+
Can I change the Transaction ID once it has been saved?
+
+ You can edit the transaction ID after saving also
+ Editing Must be before the appropriate date
+
+
more info : tscb178@gmail.com
+
+
+
+
\ No newline at end of file
diff --git a/src/app/_modules/dashboard/qr-payment/qr-payment.component.scss b/src/app/_modules/dashboard/qr-payment/qr-payment.component.scss
new file mode 100644
index 0000000..bde6fe4
--- /dev/null
+++ b/src/app/_modules/dashboard/qr-payment/qr-payment.component.scss
@@ -0,0 +1,6 @@
+
+.md-dialog-container {
+ background-color: #000;
+ width: 600px;
+ height: 600px
+ }
\ No newline at end of file
diff --git a/src/app/_modules/dashboard/qr-payment/qr-payment.component.spec.ts b/src/app/_modules/dashboard/qr-payment/qr-payment.component.spec.ts
new file mode 100644
index 0000000..11289ca
--- /dev/null
+++ b/src/app/_modules/dashboard/qr-payment/qr-payment.component.spec.ts
@@ -0,0 +1,25 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { QrPaymentComponent } from './qr-payment.component';
+
+describe('QrPaymentComponent', () => {
+ let component: QrPaymentComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ declarations: [ QrPaymentComponent ]
+ })
+ .compileComponents();
+ });
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(QrPaymentComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/_modules/dashboard/qr-payment/qr-payment.component.ts b/src/app/_modules/dashboard/qr-payment/qr-payment.component.ts
new file mode 100644
index 0000000..44cd965
--- /dev/null
+++ b/src/app/_modules/dashboard/qr-payment/qr-payment.component.ts
@@ -0,0 +1,167 @@
+import { DatePipe } from '@angular/common';
+import { Component, OnInit } from '@angular/core';
+import { MatDialog } from '@angular/material/dialog';
+import { ActivatedRoute, Router } from '@angular/router';
+import * as QRCode from 'qrcode';
+import { PaymentInfoDto } from 'src/app/_dto/payment-info.dto';
+import { apiUrl } from 'src/app/_providers/_resources/api-url.properties';
+import { ErrorTranslateService } from 'src/app/_providers/_services/error-translate.service';
+import { MasterService } from 'src/app/_providers/_services/master.service';
+import { UiService } from 'src/app/_providers/_services/ui.service';
+import { environment } from 'src/environments/environment.prod';
+
+@Component({
+ selector: 'app-qr-payment',
+ templateUrl: './qr-payment.component.html',
+ styleUrls: ['./qr-payment.component.scss']
+})
+export class QrPaymentComponent implements OnInit {
+
+ secuLevel: string;
+
+ userId: string;
+
+ tenderId: number;
+
+ transactionData: PaymentInfoDto;
+
+ amountReq: any;
+
+ dialogRef: any;
+
+ paymentStatus: any;
+
+ paymentId: any;
+
+ constructor(
+ private router: Router,
+ private route: ActivatedRoute,
+ private _ui: UiService,
+ private _errorTranslate: ErrorTranslateService,
+ private _masterService: MasterService,
+ private dialog: MatDialog,
+ private datePipe: DatePipe
+ ) {
+ this.secuLevel = localStorage.getItem('seculevel');
+ this.userId = localStorage.getItem('userId');
+ this.tenderId = +this.route.snapshot.paramMap.get('id');
+ }
+
+ qrImage: boolean = false;
+
+ transId: any
+
+ ngOnInit(): void {
+
+ this.transactionData = new PaymentInfoDto()
+
+ this.getData();
+ }
+
+
+ // ngAfterViewInit(): void {
+
+ // setTimeout(() => {
+ // }, 1000);
+ // }
+
+ getData() {
+ this._masterService.getMasterDatabyId(apiUrl.getTender, this.tenderId).then(res => {
+ this.amountReq = res.tenderFee;
+ this.generateUPIQRCode(environment.upiId, this.amountReq);
+
+ })
+ this.paymentCheck();
+
+ }
+
+ paymentCheck() {
+ this._masterService.getMasterDatabyId(apiUrl.paymentUserCheck + `/${this.userId}`, this.tenderId).then(res => {
+ console.log(res);
+ if (res && res[0].status) {
+ if (res[0].status == 'P') {
+ this.paymentStatus = 'Pending'
+ }
+ if (res[0].status == 'D') {
+ this.paymentStatus = 'Declined'
+ }
+ if (res[0].status == 'S') {
+ this.paymentStatus = 'Success'
+ }
+ this.paymentId = res[0].id
+ }
+
+ }, err => {
+ if (err.error.message.trim() == "User Payment Not Found") {
+ this.paymentStatus = 'Payment Not Started'
+ this.transactionData.status = 'P'
+ }
+ })
+ }
+ generateUPIQRCode(upiID: string, amount: string): void {
+ const upiLink = `upi://pay?pa=${upiID}&am=${amount}&tn=Tender%20Fee`;
+
+ QRCode.toDataURL(upiLink, { errorCorrectionLevel: 'L' }, (err, qrDataURL) => {
+ if (err) {
+ console.error(err);
+ return;
+ }
+ // console.log('url==', qrDataURL);
+
+ const qrImageElement = document.getElementById('qrImage') as HTMLImageElement;
+ qrImageElement.src = qrDataURL;
+ this.qrImage = true
+
+ });
+ }
+
+ openHelpDialog(templateRef) {
+ this.dialogRef = this.dialog.open(templateRef, {
+ width: '700px',
+ disableClose: false
+ });
+ }
+
+ closeDialog() {
+ this.dialogRef.close()
+ }
+
+ preSave() {
+
+ if (this.transactionData.transId == 0 || this.transactionData.transId == null || this.transactionData.transId == undefined) {
+ this._ui.toastMessage(this._errorTranslate.translate("pleaseEnterTransId"), 2000, true);
+ return false;
+ }
+
+
+
+ return true;
+ }
+
+ submit() {
+ if (!this.preSave())
+ return
+
+ this.transactionData.userId = this.userId;
+ this.transactionData.tenderId = this.tenderId;
+ // this.transactionData.
+ console.log('this.paymentId==',this.paymentId);
+
+
+ if(this.paymentId){
+ this.transactionData.id = this.paymentId
+ this._masterService.updateMasterData(apiUrl.paymentMaster, this.transactionData,this.paymentId).then(res=>{
+ console.log('res==.',res);
+ this.transactionData = new PaymentInfoDto()
+ this.getData();
+
+ })
+ }
+ else
+ this._masterService.saveMasterData(apiUrl.paymentInfo, this.transactionData).then(res => {
+ console.log(res);
+ this.transactionData = new PaymentInfoDto()
+ this.getData();
+ })
+ }
+}
diff --git a/src/app/_providers/_resources/api-url.properties.ts b/src/app/_providers/_resources/api-url.properties.ts
index 1e0bb6b..7a3162d 100644
--- a/src/app/_providers/_resources/api-url.properties.ts
+++ b/src/app/_providers/_resources/api-url.properties.ts
@@ -45,8 +45,11 @@ export const apiUrl = {
paymentCheck:"payment-master/bid-payment-check",
emailUserSubmit:"auth/otp/UD",
UserUploadCheck :"tender-doc/userDocCheck",
- emailReport:"email/report"
-
+ emailReport:"email/report",
+ paymentInfo:"payment-master/paymentInfo",
+ paymentMaster:"payment-master",
+ paymentUserCheck:"payment-master/userBidPaymentCheck",
+ paymentupdatePaymentStatus:"payment-master/updatePaymentStatus"
};
export const apiFilterProperties = {
diff --git a/src/assets/i18n/error/en.json b/src/assets/i18n/error/en.json
index 05b5e70..d9ba9e2 100644
--- a/src/assets/i18n/error/en.json
+++ b/src/assets/i18n/error/en.json
@@ -143,6 +143,7 @@
"DocumentsAlreadyUploaded" : "Documents Already Uploaded",
"pleaseAgreeToTheTermsandCondition":"Please Agree To The Terms and Condition",
"pleasePayTheAmountForDoc":"Please Pay The Amount For Downloading Documents",
- "emailSentSuccessfully":"Email Sent Successfully"
+ "emailSentSuccessfully":"Email Sent Successfully",
+ "pleaseEnterTransId":"Please Enter Transaction Id"
}
\ No newline at end of file
diff --git a/src/assets/i18n/languages/en-sales.json b/src/assets/i18n/languages/en-sales.json
index 7823397..cf3033a 100644
--- a/src/assets/i18n/languages/en-sales.json
+++ b/src/assets/i18n/languages/en-sales.json
@@ -351,9 +351,13 @@
"bidEndDate":"Bid End Date",
"report":"Report",
"totalBidAmount":"Total Bid Amount",
+ "TransactionId":"Transaction ID",
"documents": "Documents",
+ "confirmPayment":"Confirm Payment",
+ "DeclinePayment":"Decline Payment",
"tender":"Tender",
"tenderId":"Tender Id",
- "status":"Status"
+ "status":"Status",
+ "Paymentstatus":"Payment Status"
}
\ No newline at end of file
diff --git a/src/assets/img/Image4.jpg b/src/assets/img/Image4.jpg
new file mode 100644
index 0000000..a205c21
Binary files /dev/null and b/src/assets/img/Image4.jpg differ
diff --git a/src/assets/img/WhatsApp Image1.jpg b/src/assets/img/WhatsApp Image1.jpg
new file mode 100644
index 0000000..bade6c7
Binary files /dev/null and b/src/assets/img/WhatsApp Image1.jpg differ
diff --git a/src/assets/img/abstract-white-skyscrapers.webp b/src/assets/img/abstract-white-skyscrapers.webp
new file mode 100644
index 0000000..9bdf075
Binary files /dev/null and b/src/assets/img/abstract-white-skyscrapers.webp differ
diff --git a/src/assets/img/call-to-action-bg.jpg b/src/assets/img/call-to-action-bg.jpg
new file mode 100644
index 0000000..2469fbd
Binary files /dev/null and b/src/assets/img/call-to-action-bg.jpg differ
diff --git a/src/assets/img/call-to-action.jpg b/src/assets/img/call-to-action.jpg
new file mode 100644
index 0000000..1422f9e
Binary files /dev/null and b/src/assets/img/call-to-action.jpg differ
diff --git a/src/assets/img/download.jpg b/src/assets/img/download.jpg
new file mode 100644
index 0000000..ddbc1aa
Binary files /dev/null and b/src/assets/img/download.jpg differ
diff --git a/src/assets/img/emblem (3).jpeg b/src/assets/img/emblem (3).jpeg
new file mode 100644
index 0000000..1a3a23b
Binary files /dev/null and b/src/assets/img/emblem (3).jpeg differ
diff --git a/src/assets/img/emblem.jpeg b/src/assets/img/emblem.jpeg
new file mode 100644
index 0000000..7b4cf83
Binary files /dev/null and b/src/assets/img/emblem.jpeg differ
diff --git a/src/assets/img/emblem.png b/src/assets/img/emblem.png
new file mode 100644
index 0000000..bb30182
Binary files /dev/null and b/src/assets/img/emblem.png differ
diff --git a/src/assets/img/emblem2.jpg b/src/assets/img/emblem2.jpg
new file mode 100644
index 0000000..ef4d637
Binary files /dev/null and b/src/assets/img/emblem2.jpg differ
diff --git a/src/assets/img/hero-background.jpg b/src/assets/img/hero-background.jpg
new file mode 100644
index 0000000..17f4b30
Binary files /dev/null and b/src/assets/img/hero-background.jpg differ
diff --git a/src/assets/img/logo.png b/src/assets/img/logo.png
new file mode 100644
index 0000000..0ff951e
Binary files /dev/null and b/src/assets/img/logo.png differ
diff --git a/src/assets/img/photo.jpeg b/src/assets/img/photo.jpeg
new file mode 100644
index 0000000..0af34b0
Binary files /dev/null and b/src/assets/img/photo.jpeg differ
diff --git a/src/assets/img/team/team-1.jpg b/src/assets/img/team/team-1.jpg
new file mode 100644
index 0000000..2b23b36
Binary files /dev/null and b/src/assets/img/team/team-1.jpg differ
diff --git a/src/assets/img/team/team-2.jpg b/src/assets/img/team/team-2.jpg
new file mode 100644
index 0000000..8f0d75d
Binary files /dev/null and b/src/assets/img/team/team-2.jpg differ
diff --git a/src/assets/img/team/team-3.jpg b/src/assets/img/team/team-3.jpg
new file mode 100644
index 0000000..bf12493
Binary files /dev/null and b/src/assets/img/team/team-3.jpg differ
diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts
index d31e15b..0e47224 100644
--- a/src/environments/environment.prod.ts
+++ b/src/environments/environment.prod.ts
@@ -4,7 +4,7 @@ export const environment = {
// apiUrl:'https://sales.api.accuratesoftware.online/api/v1',
apiUrl: 'https://tenderapi.simssoftware.in/api/v1',
-
+ upiId:'thrikodithanamservicecoperativebank@icici',
production: true,
hmr: false,
timeOutLimit: 3600,
diff --git a/src/environments/environment.ts b/src/environments/environment.ts
index fb91096..248448a 100644
--- a/src/environments/environment.ts
+++ b/src/environments/environment.ts
@@ -4,9 +4,9 @@
export const environment = {
- // apiUrl: 'http://192.168.1.112:3500/api/v1',
- apiUrl: 'https://tenderapi.simssoftware.in/api/v1',
-
+ apiUrl: 'http://192.168.1.112:3200/api/v1',
+// apiUrl: 'https://tenderapi.simssoftware.in/api/v1',/
+ upiId:'thrikodithanamservicecoperativebank@icici',
production: false,
hmr: false,
timeOutLimit: 3600,
diff --git a/yarn.lock b/yarn.lock
index 214e0a6..36468f7 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2593,6 +2593,15 @@
"strip-ansi" "^5.2.0"
"wrap-ansi" "^5.1.0"
+"cliui@^6.0.0":
+ "integrity" "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ=="
+ "resolved" "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz"
+ "version" "6.0.0"
+ dependencies:
+ "string-width" "^4.2.0"
+ "strip-ansi" "^6.0.0"
+ "wrap-ansi" "^6.2.0"
+
"cliui@^7.0.2":
"integrity" "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ=="
"resolved" "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz"
@@ -3366,6 +3375,11 @@
"miller-rabin" "^4.0.0"
"randombytes" "^2.0.0"
+"dijkstrajs@^1.0.1":
+ "integrity" "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA=="
+ "resolved" "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz"
+ "version" "1.0.3"
+
"dir-glob@^3.0.1":
"integrity" "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA=="
"resolved" "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz"
@@ -3511,6 +3525,11 @@
"resolved" "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz"
"version" "3.0.0"
+"encode-utf8@^1.0.3":
+ "integrity" "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw=="
+ "resolved" "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz"
+ "version" "1.0.3"
+
"encodeurl@~1.0.2":
"integrity" "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
"resolved" "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"
@@ -4015,7 +4034,7 @@
dependencies:
"locate-path" "^3.0.0"
-"find-up@^4.0.0":
+"find-up@^4.0.0", "find-up@^4.1.0":
"integrity" "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="
"resolved" "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz"
"version" "4.1.0"
@@ -6420,6 +6439,11 @@
"resolved" "https://registry.npmjs.org/png-js/-/png-js-1.0.0.tgz"
"version" "1.0.0"
+"pngjs@^5.0.0":
+ "integrity" "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw=="
+ "resolved" "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz"
+ "version" "5.0.0"
+
"pnp-webpack-plugin@1.6.4":
"integrity" "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg=="
"resolved" "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz"
@@ -6852,6 +6876,16 @@
"resolved" "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz"
"version" "1.3.2"
+"qrcode@^1.5.3":
+ "integrity" "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg=="
+ "resolved" "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz"
+ "version" "1.5.3"
+ dependencies:
+ "dijkstrajs" "^1.0.1"
+ "encode-utf8" "^1.0.3"
+ "pngjs" "^5.0.0"
+ "yargs" "^15.3.1"
+
"qs@~6.5.2":
"integrity" "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
"resolved" "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz"
@@ -9115,6 +9149,15 @@
"string-width" "^3.0.0"
"strip-ansi" "^5.0.0"
+"wrap-ansi@^6.2.0":
+ "integrity" "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA=="
+ "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz"
+ "version" "6.2.0"
+ dependencies:
+ "ansi-styles" "^4.0.0"
+ "string-width" "^4.1.0"
+ "strip-ansi" "^6.0.0"
+
"wrap-ansi@^7.0.0":
"integrity" "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="
"resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
@@ -9197,6 +9240,14 @@
"camelcase" "^5.0.0"
"decamelize" "^1.2.0"
+"yargs-parser@^18.1.2":
+ "integrity" "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ=="
+ "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz"
+ "version" "18.1.3"
+ dependencies:
+ "camelcase" "^5.0.0"
+ "decamelize" "^1.2.0"
+
"yargs-parser@^20.2.2":
"integrity" "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw=="
"resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz"
@@ -9218,6 +9269,23 @@
"y18n" "^4.0.0"
"yargs-parser" "^13.1.2"
+"yargs@^15.3.1":
+ "integrity" "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A=="
+ "resolved" "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz"
+ "version" "15.4.1"
+ dependencies:
+ "cliui" "^6.0.0"
+ "decamelize" "^1.2.0"
+ "find-up" "^4.1.0"
+ "get-caller-file" "^2.0.1"
+ "require-directory" "^2.1.1"
+ "require-main-filename" "^2.0.0"
+ "set-blocking" "^2.0.0"
+ "string-width" "^4.2.0"
+ "which-module" "^2.0.0"
+ "y18n" "^4.0.0"
+ "yargs-parser" "^18.1.2"
+
"yargs@^16.2.0":
"integrity" "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw=="
"resolved" "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz"